atlas news
A Java Geek
11 october
00h00
Scraping websites and bot-protection
While searching for my ancestors, I had to access data from many different websites. I noticed there were different levels of protection against...
04 october
00h00
Security Baked Into the JVM: no single party controls the outcome
A URL is a name, and names get reused. Replace the bytes behind https: repo.example.org order-processor.jar and every permission granted to that URL...
27 september
00h00
From documenting decisions to questioning them
I started with a simple task: I needed an AI agent to help me compile decision records, structured documents that capture why a team chose option A...
20 september
00h00
AI-assisted genealogy, a follow-up
I got a lot of feedback on my post AI-assisted genealogy, some good, some not so good. In any case, I felt the subject was interesting to a lot of...
13 september
00h00
World geography gotchas
Years ago, a colleague of mine told me about two pockets of foreign land surrounded by Switzerland: Campione d’Italia and Büsingen am Hochrhein...
06 september
00h00
Build an AI Agent (From Scratch)
Facts 10 chapters 29.29 (at the time of this writing)315 pages Chapters Building your first LLM agentWhat is an AI agent?
30 august
00h00
AI-assisted genealogy
My son recently came to me to brag about using AI to find our ancestors. While the results were correct, I didn’t learn anything new, as it...
23 august
00h00
Security Baked Into the JVM: sixteen Subjects on the wire
Alice calls the order service. The order service calls the ledger on her behalf. At the second hop, the ledger has to decide whose authority the...
16 august
00h00
Solving Gradle metadata and Renovate integration
My current company has settled on using Gradle. It doesn’t make me very happy, but you need to learn to work with constraints. Plus, I must...
09 august
00h00
Security Baked Into the JVM: two Subjects, one call
The constraint system stops a bad call before it leaves the JVM. The Safe Codebase Audit Pipeline stops bad code before a client ever loads it. What...
02 august
00h00
GitHub agentic workflows and Renovate
I’ve been a big fan of Renovate for a couple of years already. Renovate scans your repositories, detects outdated package versions, and opens...
26 july
00h00
RFC 9880 and the IoT Validation Problem
The IoT IIoT world has a data model problem and the concept of Digital Twin has made this issue more important. Plenty of people have tried to fix it...
19 july
00h00
Security Baked Into the JVM: the Safe Codebase Audit Pipeline
In Part 1, the minimal deployment showed constraints traveling with the proxy: authentication, encryption, hardened deserialization, all declared in...
12 july
00h00
Making ServiceLoader usable: a provider factory
I keep coming back to java.util.ServiceLoader. I have used it to put a JSON layer behind a contract, so the core code carries no direct dependency on...
05 july
00h00
Two nasty surprises in Home Assistant’s config
Last year, I motorized the rolling shutters on the southern façade of my apartment. My idea was to manage them via Home Assistant. I had a couple of...
28 june
00h00
Security Baked Into the JVM: why fork Apache River and OpenJDK?
The more distributed a system, the harder it is to secure. Code crosses JVM boundaries. Objects are serialized across trust boundaries. Third-party...
21 june
00h00
On programming languages, targets, and platforms
I started as a Java developer, but for some time now, I have broadened my horizons. Recently, I thought about how early languages were dedicated to a...
14 june
00h00
double, BigDecimal, or Fixed-Point?
There is an evergreen debate in the Java world: should you always use BigDecimal for money? The short answer is no. The real answer is: it depends on...
07 june
00h00
Seasons time-lapse - the video
In the first post of this series, I focused on the project foundations: what should I do to create a video from photos taken from the same position...
31 may
00h00
AI gateways: why and how
Before working for 2 years on the Apache APISIX API gateway, I was mainly oblivious to API gateways. It’s only by working with them that I...
1791783973