Review of the Advent of Code 2024

This year I took part in Advent of Code for the first time. Advent of Code is an exciting and challenging annual competition in which a task has to be solved every day from December 1st to December 25th. The task can be solved using any programming language such as Java, Typescript, Python, Rust, SQL … Read more

Passage of Time Events

It’s not that often that a design pattern really blows my mind anymore, but recently I discovered the Passage of Time Pattern by Mathias Verraes. This pattern describes how to deal with time-dependent processes in event-based systems. What makes this pattern stand out is its elegance and simplicity.

FreshMarker bei der JUG Bielefeld

Am 8. Januar 2025 ist es soweit, der erste Vortrag über die Template Engine FreshMarker. Um 18 Uhr stelle ich die Kernfunktionalitäten der Engine vor und erläutere außerdem, was ein Entwickler neben dem Programmieren, sonst noch alles beachten muss. https://www.meetup.com/de-DE/de-DE/java-user-group-bielefeld/events/305164577

REST endpoints with filters

Java Bibliotheken

This article is a slightly updated English version of the article “REST Endpunkte mit Filtern”.

In addition to sorting and pagination, filtering is a fairly common action on REST endpoints. In contrast to the first two, however, there is no adequate solution for filtering in the Spring Boot framework. With little effort, however, this can be elegantly implemented with the Spring Boot tools.

Of bridges and tunnels – agile system creation

Tunnel constructions are classic waterfall projects in which extensive planning is carried out and then construction can be completed without major changes. There are geological surprises from time to time, but a tunnel plan is, quite literally, set in stone.

Optimistic Locking mit dem ETag Header

Bild von Kerstin Riemer https://pixabay.com/de/users/kriemer-932379/

Wenn mehr als ein Beteiligter beim Speichern von Daten involviert ist, kann es zu ungewollten Überschreibungen kommen. Um solche Probleme zu umgehen, existieren drei Vorgehensweisen. Pessimistic Locking, Optimistic Locking und Ignore It!

Lorem ipsum dolor sit amet

The title of this article is no mistake. Anyone who has looked at the FreshMarker Random plugin recently will probably have discovered the new sentence and paragraph built-ins. These two bilt-ins support the library with the generation of the famous Lorem Ipsum pseudo-texts. Without delving deep into history, the Lorem Ipsum texts are a corruption of a Cicero text and serve as dummy texts.

FreshMarker – Groundhog Day

The moment is a wonderful thing, but not for software developers, because it keeps on moving. How can you write a test if the value changes with every test run? Functionality has always been an abomination that concealed some form of now. In FreshMarker, for example, this little monster can be found in the built-in variable .now.

Spring Modulith – An Architecture Guard

Spring Modulith is now available in version 1.3.0. So it’s time to write an article about this framework. I have created many microservices with Spring Boot over the last few years, but of course that doesn’t mean that you can’t also create large, monolithic applications with the framework.

FreshMarker Random Plug-In

The topic of randomness has visited this blog several times. There was a post about the Voses algorithm and random values in JUnit 5 Test. So why not provide random values in FreshMarker. Since random values are rarely needed in templates, this extension is not realized in FreshMarker itself, but in a separate plugin. In addition, this is a good opportunity to demonstrate the FreshMarker plugin mechanism.

FreshMarker I18N

Internationalization, or I18N for short, is a skill that every modern software must master. Long gone are the days when software could only offer an English only interface. Localizable values such as dates and numbers can always be output in FreshMarker using the language-specific formatter. The situation is different with terms that need to be adapted to the language of the document.

Even more about Ranges

In the last article on FreshMarker Ranges, the Right-limited Exclusive Ranges and Length-limited Ranges were introduced. They were not part of the FreshMarker Ranges support for quite some time. Previously, it was only possible to create regular ranges with the Length-limited Ranges syntax, i.e. ranges that represent monotonically increasing sequences. The reason is simply illustrated … Read more

Formatting Numbers

Java Bibliotheken

A fundamental assumption of software developers is that the system libraries are error-free and perform well. Every now and then you are taught better, but after a while the memories fade and you hang on to the original misconceptions.