https://www.gravatar.com/avatar/306d401b2a8c0efe0996fec60e0c90aa?s=240&d=mp

My coding journey

Disclaimer: it's just for fun

How to use Maven 4.0

This article presents a short overview of what has changed in Maven 4: changes in POM, most important improvements and a short migration guide. It is packed with helpful links which - I hope - will inspire you to check and play with this (still in beta) new Maven release.

You don’t need to read this article. Just look at the reference below: \uf0a7

The problem

The problem that maven 4 solves is the lack of separation of concerns. And there are two which - untill maven 4 - were not cleanly set apart:

Maven Notes from JavaOne 2025

Notes from JavaOne

The talk Apache Maven Survival Guide “Bring It On! gives a nice overview of the tools and techniques for managing the build process.

Random trivia

Super POM

Apache Maven runtime is by default using Super Pom which - unless specified otherwiese - is the parent of each pom file:

flowchart TD subgraph mavenRuntime["Maven runtime"] direction TB superPom[("Super POM")]:::super end child1{{"Project-A POM"}}:::child child2{{"Project-B POM"}}:::child child3{{"Project-C POM"}}:::child superPom --> child1 superPom --> child2 superPom --> child3 classDef super fill:#AA1660,stroke:#751040,color:#FFFFFF; classDef child fill:#E04F8E,stroke:#B73B70,color:#FFFFFF; style mavenRuntime fill:#F3C1D5,stroke:#AA1660,stroke-width:2px,color:#000000;

Dependency management

Important: understanding what direct and indirect (transitive) dependencies are:

Functional Patterns in Go

Functional Patterns in Go

One morning I faced a familiar challenge – processing a list of data through multiple transformation steps. In Java, I would chain a stream of operations (filtermapcollect), but in Go the tools are different. Although Go is not a “functional” language per se, it does offer first-class functions and closures that enable functional-style designs.

As Eli Bendersky notes, Go has “many of the building blocks required to support functional programming” even if FP “isn’t a mainstream paradigm” in Go eli.thegreenplace.net. My goal was to leverage higher-order functions, function composition, and closures to build a clean, maintainable pipeline – while comparing how Java’s lambdas and streams handle similar tasks.

Ewolucja języka Java

Podsumowanie ewolucji

Doskonałym źródłem informacji o zmianach w języku Java jest dla mnie wciąż The Java Version Almanac, przeglądam też oficjalne dokumenty na stronie jdk.java.net (n.p. JDK 25 release notes) i od jakiegoś czasu odnoszę wrażenie, że ewolucja języka, a także całego “ekosystemu” znacznie przyspieszyła po wydaniu javy 17.

Dlatego poniżej spróbuję zrobić krótkie podsumowanie najważniejszych zmian wprowadzonych w dwóch przedziałach czasowych:

  1. Od Javy 8 do Javy 17 (czyli era zmian po “klasycznej Javie”),
  2. Od Javy 17 do Javy 21/24 (czyli nowoczesna, projektowo-eksperymentalna Java).

Warto spojrzeć na zmiany w ten sposób, ponieważ obserwuję z doświadczenia, że migracje kodu przebiegają właśnie w takich “skokach” - modernizacja z 8 do 17, a później z 17 do 21. Jaki był temat przewodni tych zmian? Jakiego typu modyfikacje i usprawnienia zostały wprowadzone? Rzućmy na to okiem:

PGP i szyfrowanie

Dzisiaj przygotowałam mały poradnik 📖 dla tych, którzy dotychczas nie używali szyfrowania 🔐 wiadomości, nie posiadają swojego klucza 🔑 publicznego i nigdy nie podpisywali komunikacji elektronicznej 💻. Uwaga: tylko dla fanów terminala 😄.

How to write Bubbletea CLI app in golang

Intro

In my previous post I wrote about Gum which is a program that allows writing beautiful interactive shell scripts.

If you want to go beyond simple shell scripts, you can use bubbletea with lipgloss for terminal styles and layout, also utilizing bubbles. Check also other goodies on charm.sh page for yourself!

How to write Bubbletea CLI app in golang

  1. have an idea
  2. think about screen transitions, models. key bindings
  3. explore existing “bubbles”
  4. familiarize yourself with examples
  5. start coding
  6. profit!

Really, how to start?

You can start by cloning bubbletea-app-template which is a small working example app which imports bubbles and lipgloss.