A Java geek

Nicolas Fränkel's blog

  • Me
  • Books
  • Speaking
  • Mentions
  • Focus
Feb 15, 2026 blog jekyll hugo static site generator performance

Migrating from Jekyll to Hugo... or not

Most of my blog posts are lessons learned. I’m trying to achieve something, and I document the process I used to do it. This one is one of the few where, in the end, I didn’t achieve what I wanted. In this post, I aim to explain what I learned from trying to migrate from Jekyll to Hugo, and why, in the end, I didn’t take the final step. Context I started this blog on WordPress. After several years, I decided to migrate to Jekyll. I have been happy with Jekyll so far.

Nicolas Fränkel
Feb 8, 2026

Rediscovering Java ServiceLoader: Beyond Plugins and Into Capabilities

When you think of Java modularity, chances are your first thoughts land on JPMS, or perhaps on Spring’s flexible configuration model. For those who 'experienced' like me, thought can reach OSGI specification or other stacks like Vert-X. Yet long before either, Java offered a minimal yet powerful mechanism for loose coupling: ServiceLoader.

Stefano Fago
Feb 1, 2026 exceptions error handling lambdas

Feedback on checked exceptions and lambdas

I got a lot of interesting feedback on Checked exceptions and lambdas. Let’s start with my own: after writing the post, I realized I had written a similar post some time ago. Mistakes I made I made a mistake in the code regarding Apache Commons Lang 3, where I mistakenly used the recover() function, which is actually from Vavr. Apache Commons Lang provides a regular utility function, which mimics the custom code we wrote last week.

Nicolas Fränkel
Jan 25, 2026 jar macos app

From a JAR to a full-fledged MacOS app

A couple of years ago, I developed a small Kotlin GUI to help me rename my files in batch. I actually created it with different JVM frameworks to compare their relative merits. In any case, I didn’t use it up until last week. And then, I was surprised to see that it didn’t work to rename a network volume, although it had in the past. In this brief post, I aim to describe the issue and its solution. The problem When launching the UberJAR, I couldn’t see the network volumes.

Nicolas Fränkel
Jan 18, 2026 exceptions error handling lambdas

Checked exceptions and lambdas

Java’s checked exceptions were a massive improvement over C’s error-handling mechanism. As time passed and experience accumulated, we collectively concluded that we weren’t there yet. However, Java’s focus on stability has kept checked exceptions in its existing API. Java 8 brought lambdas after the 'checked exceptions are great' trend. None of the functional interface methods accepts a checked exception.

Nicolas Fränkel
Jan 11, 2026 cloudflare tailscale networking

From Cloudflare Zero-trust to Tailscale

I have spent some time last year implementing Cloudflare Tunnels on my Home Assistant and my Synology NAS. On Mastodon, I had not one but two commenters advertising for Tailscale: Post by @frankel@mastodon.top View on Mastodon I decided to give it a try and migrate my servers and devices to Tailscale. In this post, I want to describe how I did. Thanks to Heiko Does and higgins for prompting me to look further! What is Tailscale, how and why?

Nicolas Fränkel
Jan 4, 2026 2025 retrospective

2025 in retrospective

From the beginning, the focus of this blog has been technical, very rarely organizational. I broke this unwritten rule once in 2015. I began writing retrospectives in 2023 on the year that had passed. Let’s continue the tradition, but with a wider scope than before. The situation warrants it. More chaos It’s a hard realization to admit, but the world is spiraling deeper and deeper into chaos.

Nicolas Fränkel
Dec 14, 2025 conferences review

YOW! 2025

I have been eyeing the YOW! conferences for probably more than a decade. They occur in Australia, and feature top industry experts. I was thus overjoyed when they invited me to speak on the YOW! tour earlier this year. Here’s a summary of my amazing time there. My participation YOW! takes place in three different cities: Melbourne, Brisbane, and Sidney. I presented my brand new talk on WebAssembly on Kubernetes in each city.

Nicolas Fränkel
Dec 7, 2025 rust

Yet another Rust ownership tutorial

One of the most important concepts to master in Rust is ownership and borrowing. Tons and tons of articles are solely dedicated to this narrow subject. This one tries to explain the concept with examples. I hope it helps you. Ownership is a set of rules that govern how a Rust program manages memory. All programs have to manage the way they use a computer’s memory while running.

Nicolas Fränkel
Nov 30, 2025 cloudflare cloudflare tunnel otp authentication

My second Cloudflare Tunnel

I decided to stop using Twitter, but for my own content and supporting Ukraine against its barbarian invaders, I understood the contemporary media landscape was quite fragmented. I bet on Mastodon, Bluesky, and LinkedIn. My flow is the following: when I read a piece I find interesting, I schedule it for publication.

Nicolas Fränkel
Page 1 of 83 Older Posts »
A Java geek © 2008-2026
v. b27ec4806f5488ff23f65f1ab3d5819eab07c63b/13210655108
Latest Posts