Book Review: “API Design Patterns”

Disclaimer: this post includes affiliate links; I may receive compensation if you purchase the book from the different links provided in this post. This review is about API Design Patterns by JJ Geewax from Manning. I already mentioned how I’m trying to get to speed in the API world: reading books, viewing relevant YouTube videos and reading relevant IETF RFCs. …

Read More »

How to Create SBOMs in Java with Maven and Gradle

When building applications in Java, we highly depend on external libraries and frameworks. And each Java package that is imported likely also depends on more libraries. This means that the amount of Java packages included in your application is often not really transparent. As a developer, these nested (transitive) dependencies create the problem that you probably do not know all …

Read More »

Book review: “Practical Design Patterns for Java Developers”

Hone your software design skills by implementing popular design patterns in Java This book is for sale on Amazon in Kindle and Paperback editions. We’ll start this post with the personal verdict of two avid readers of this book: Frank Delporte’s Verdict I’ve been programming since I was 10y old, but I graduated from film school as a video editor, …

Read More »

Validating Java Profiling APIs

In my last article, I covered a correctness bug in the fundamental Java profiling API AsyncGetCallTrace that I found just by chance. Now the question is: could we find such bugs automatically? Potentially uncovering more bugs or being more confident in the absence of errors. I already wrote code to test the stability of the profiling APIs, testing for the …

Read More »

The Speed Test: Comparing Map.of() and new HashMap() in Java

Java is a popular programming language used for developing a wide range of applications, including web, mobile, and desktop applications. It provides many useful data structures for developers to use in their programs, one of which is the Map interface. The Map interface is used to store data in key-value pairs, making it an essential data structure for many applications. …

Read More »

Efficient Memory Mapping for Terabyte Sparse Files in Java

On Linux, you can create sparse files, where only the pages (of 4 KiB) that are touched utilise either memory or disk space. This allows you to memory map large virtual regions without worrying about wasted memory or disk In this program, you can see it reserves 8 TiB (8,192 GiB) Figure 1. Test 1: Sparse file Tip: x << …

Read More »

How Gradle Works: Inside the Daemon

Previously in the How Gradle Works series: How Gradle Works: Startup This is the second article of the series How Gradle Works. In this article, we’ll explain what happens inside the Gradle Daemon JVM. Why Do We Need Gradle Daemon? In the last article, we mentioned that Gradle starts a Gradle Daemon JVM (“the daemon”) to run the build. The …

Read More »

Getting Started with IntelliJ IDEA

First up, I have created a tutorial on the IntelliJ IDEA Guide if you want to view the content with videos. I’ll concentrate on text-based for this article. When someone new joins your team, it can be quite an overwhelming experience. There are lots of people to meet, new technologies to learn, different processes to learn and of course, an …

Read More »

DevOps for Developers: Introduction & Version Control

I start some of my talks with a joke: back in my day we didn’t have monitoring or observability. We’d go to the server and give it a kick. Hear the HD spin? It’s working! We didn’t have DevOps. If we were lucky we had some admins and a technician to solve hardware issues. That’s it. In a small company, …

Read More »