In Search Of Performance (2)

This article on performance was not actually intended to be a multi-part article. But if you take a closer look at your own code through performance glasses, you will quickly discover further bottlenecks. In this case, it’s an unclean modeling that FreshMarker has been carrying around since its early days. This article is about how this affects the performance of the template engine.

Bullseye Architecture

I call Hexagonal Architecture, Onion Skin Model and Clean Architecture the “Bullseye Architectures”, because they contain the domain logic as a central component in the middle of their structure.Currently they are popular again, so here is a short article on the topic.

In Search Of Performance

In addition to the expressiveness of the template, the number of supported data types and functions and the expandability, performance is a decisive criterion for a template engine. FreshMarker only evaluates the template output at runtime, so although the template engine is very flexible, it cannot compete with those that evaluate the templates at compile time. For historical reasons, FreshMarker also has no upfront type information about the data used, so some optimization options are not available.

A Custom Forth Interpreter

red dice stacked on table on terrace

Once again there was an funny code challenge from John Crickett. This time a custom Forth interpreter was to be implemented. Forth is a very interesting language that I got to know in my youth. Unfortunately, I don’t remember exactly, but I probably tried it out on my Commodore 128D at some point.

FreshMarker 1.11.0

I am pleased to announce the release of the Java 21 template engine FreshMarker 1.11.0. This is the last planned release before the next major release 2.0.0 and includes some new features and improvements.

FreshMarker Fo(u)r Seasons

Some features in open source projects are gimmicks whose utility value is rather low. On the other hand, they enable the evaluation of new functions and previously unused libraries. In this article, support for astronomical seasons is implemented in Freshmarker using the Time4J library.

FreshMarker 1.10.0

I am pleased to announce the release of the Java 21 template engine FreshMarker 1.10.0. The version includes some new features and improvements.

Back to the Ancestors

Christmas is a contemplative time. You meet up with friends and family and enjoy being together. Until a family member gets in touch and asks for a new printout of the family tree. Family trees were a topic on this blog in 2018 and since then it has been rather quiet on the subject.

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

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