A Java Geek weekly 94

Gracefully stop your batches

In applications, one sometimes needs to run some processes before and after the application’s run. Whereas in an application server you have full access to the web application lifecycle through the javax.servlet.ServletContextListener interface, there is no such thing in a plain old Java application.

I think this might be the oldest technical post on my blog that still holds true today.

What Doesn’t Change

TL;DR:

The tools are temporary. The foundations are forever.

Invest accordingly.

Why Algebraic Effects

I’m not familiar with (algebraic) effects; this post makes a very good job at explaining them and what they bring to the table in terms of abstraction.

Chesterton’s Fence and paralysing your organization

Every problem boils down to an organization problem. Period. The post serves as another illustration of this postulate.

Dealing with Eventual Consistency, and Causal Consistency using Predictable Identifiers

Problem statement:

Users want to attach files and keep working. Systems need time to upload, store those files and link it to the specific process or entity.

You have two choices: block the interface during uploads, or accept temporary inconsistency.

Name-based + new position-based destructuring

The proposal will allow the following:

(val age, val name = fullName) = person

// desugars to
val $tmp = person
val age = $tmp.age
val name = $tmp.fullName
Kotlin Flows Explained

Great overview of Kotlin Flows, including hot vs. cold.

Spring Boot 4 Released: A Full Analysis of 11 Major Changes!
  • Elegant Version Control
  • Convenient Bean Injection
  • Null-Safety Improvements
  • Easy Creation of HTTP Proxies
  • Other Changes
Inside the Box: Everything I Did With an Arduino Starter Kit

I have the exact same starter kit, and I must admit that I couldn’t do half the stuff.

Figma’s $300,000 Daily AWS Bill Highlights Cloud Dependency Risks

It’s funny that when I raise the point, I’m rebuffed when no concrete arguments, but non-arguments and sunken cost fallacies.

Now imagine the CEO of a million dollars company who would put all their eggs into the same basket. Would you trust such a CEO?

kubriX: Your Out-of-the-Box Internal Developer Platform (IDP) for Kubernetes

Note: What if I told you someone has already built an opinionated Internal Developer Platform (IDP) "out of the box"? Hard to believe? See for yourself! Discover how kubriX seamlessly integrates essential open-source tools like Argo CD, Kargo, External-Secrets Operator, Keycloak, Backstage, and more, to provide you with an instant, ready-to-use IDP.

This blog post is a deep dive and requires your time, but trust me, it’s worth it! I’m grateful for solutions like kubriX that enable me to share my knowledge and passion with the community. If you feel the same, please consider leaving a ⭐️ for the excellent work of these tool and project creators!

17 Daily Productivity Tools for a Java Engineer
  • IntelliJ IDEA Ultimate + Select Plugins
  • Lombok
  • Arthas
  • JProfiler
  • Charles / Fiddler
  • SonarQube + SonarLint
  • ArchUnit
  • JaCoCo
  • Postman + Newman
  • OpenAPI Generator
  • DBeaver
  • Flyway / Liquibase
  • Gradle + Kotlin DSL
  • Docker + Docker Compose
  • GitHub Actions / Jenkins
  • PlantUML
  • Obsidian / Logseq

    My personal experience prevent me from using Lombok and Gradle; I love PlantUML, Logseq, and Flyway. TIL: Arthas and Charles.

Nicolas Fränkel

Nicolas Fränkel

Nicolas Fränkel is a technologist focusing on cloud-native technologies, DevOps, CI/CD pipelines, and system observability. His focus revolves around creating technical content, delivering talks, and engaging with developer communities to promote the adoption of modern software practices. With a strong background in software, he has worked extensively with the JVM, applying his expertise across various industries. In addition to his technical work, he is the author of several books and regularly shares insights through his blog and open-source contributions.

Read More
A Java Geek weekly 94
Share this