ACCU On Sea 2026 trip report, still with AI!
Two conferences in one. You can see France in the distance but then they pour wine from a can into plastic glass to remind you where you are.
Introducing: gitRmap / “Guitar Map”
I’d like to introduce gitRmap: a semi-automated map of locations that you can add your own points to. It’s designed for people who are new to GIS, but who know a little bit of Git. You can create a…
Trip report: ACCU On Sea 2026
Once again, I got the chance to come to Folkestone, UK. I think this was my fifth time, but the first one at ACCU On Sea. Yes, there is no more C++ On Sea, there is no more ACCU in Bristol — they got…
What Was Radical Speed Month?
What Was Radical Speed Month? While I was looking back through my archive of posts on this blog, I realized that I never concretely defined what Radical Speed Month was. I have talked about it a lot,…
Een handgeschreven blog
Eigengemaakte, eigenzinnige projecten zijn de leukste projecten. Zeker als ze twee van mijn interesses combineren. De Poolse Daniel Janus maakte in 2022 al een handgeschreven blog met behulp van zijn…
Relay 0.5.4
What's new in Relay 0.5.4 (Build 19)? Reactions redesign New iMessage-inspired emoji picker: a horizontally scrollable capsule of recently used emoji appears above the message bubble. Frequently used…
AI Agents for Devs Who Ship
Nnenna Ndukwe, AI Developer Relations Lead at Qodo, joins Nick Taylor to discuss all things agents for developers shipping software.
Packing Sprites into a Texture Atlas in MonoGame
While building Vulcard for the Game Programming Lab at ETH Zurich, we accumulated dozens of individual sprite PNGs for icons and UI elements. Loading each as a separate texture works fine early on.…
Using Claude Code makes you a worse developer, but a slightly better manager
Like many other engineers in the field I have started using Claude Code to be more familiar with the tech and to keep up with the trends. I have used Claude Code in several personal projects at this…
Is it really ambiguous?
Volume 10 , Issue 25 ; 23 Jun 2026 Exploring the intersection of ambiguity and serialization in iXML. A, uh, tagging Tuesday post. I’ve missed a few markup Mondays. I’ve been … busy . I’ll try to…
Rust
My Standard Library [dependencies] # COMMAND LINE PARSING clap = { version = "4.5.53", features = ["derive"] } # ERGONOMIC DATETIMES chrono = "0.4.42" # SIMPLE PRETTY ERROR HANDLING color-eyre =…
If you are interested in running such demos, look into --demo mode in my local model swiss army...
If you are interested in running such demos, look into --demo mode in my local model swiss army knife localpi https://t.co/LyjwJWDjmi Thank you @googlegemma for the shoutout
Is Successful Agentic Coding a Delusion?
Somewhere in the mid-aughts eXtreme Programming (XP) practices became widely-discussed in software. From that time forward, a strange chasm emerged in the discourse. I would stumble across large…
I’m Still Clauding
A couple of months ago, I wrote about starting to use Claude Code . I’m still there, still living in Claudeville. I’m still feeling plenty of things, including being conflicted in many ways. And it…
The Rest of the Crate: Tempo, Key, and Never Stranding a File
Part 2 of building cratemind: the unglamorous 80%, tempo that lies by an octave, key from 1990s music theory, and a downloader that never quietly loses a track.
From API to Ontology: An Architecture for On-demand Semantic Digital Twins
In our previous post, we drew a line between two layers of an urban energy digital twin: the Truth Layer, a relational system of record that protects the structural integrity of a city's data,…
Computing Generalized Eigenvalues using GUPTRI
This post shows how to call the GUPTRI algorithm from C. The GUPTRI algorithm solves the generalized eigenvalue problem $A x = \lambda B x$. The algorithm can properly handle the cases when $A$, $B$,…
Stop Paying Your Agent to Do the Same Job Twice
CVE volume is accelerating and most teams are running scripts that can't keep up. We used an agent to build a scanner that queries three databases, classifies and scores every CVE on actionability.…
Getting There...
This is the door handle the previous blog post was talking about. There remain a few more bells and whistles to add to it, like favourites and a directory navigation dropdown, but this perfectly…
Nobody's Reviewing Your Robot's PRs
The industry just figured out AI agents lie about their own work. In a homelab, there's nothing between the lie and your infrastructure.
AI Ping-Pong with Polly (and Omnigent)
Sometimes the most entertaining way to test a new orchestration tool isn't to run a standard benchmark, but to lock two state-of-the-art AI models in a virtual room and make them debate historical…
365 days of commits
I'm a fan of not breaking the chain, and after 365 days of at least 1 code commit a day, I think I'm a better engineer.
Sightread
Open source web application for learning to play piano that listens to your MIDI instrument input while you play to songs displayed as sheet music or falling notes, both with extra notation to help…
Scaling EF Core for Data Imports: From CSV Files to Millions of Database Rows
The Import Job Nobody Wants to Own Every team has one. It might be called an import service, a feed processor, or a sync job. The name varies. What stays constant is the shape of the problem: a large…
IFIP foray
This is really a meta-level post... after attending two meetings as a visitor, most recently in Santiago, Chile, I was recently invited to join the IFIP working group on programming language…
Nobody Agrees on What a “Good” AI Code Reviewer Is. So I Studied How Uber, Meta, and Google Measure Theirs.
Nobody Agrees on What a “Good” AI Code Reviewer Is. So I Studied How Uber, Meta, and Google Measure Theirs.
Make a method a recurring task with solid queue
This week I made a refactor to remove a job ( ActiveJob::Base ) that was used only in recurring.yml , and call a class method directly instead. Sometimes it is ok to have a job, but sometimes using…
Switch Sports Golf and automating my Denon AVR
My home audio system goes through a Denon AVR-X1700H as the primary receiver. My house has three pairs of ceiling speakers: one in the living room, one in the dining room, and one in the kitchen.…
The struggle is valuable
I've written about “writing the software isn’t the hard part operating it is” before. Today, I think we can say the popularity and success of LLMs generating code is proving the first part of the…
A workaround for "framework 'AGL' not found" for Qt on macOS
Non-commercial prebuilt Qt versions below 6.9 currently fail to link on macOS Tahoe (macOS 26). Two quick specific examples are Qt 6.5.3 and 6.8.3, both offered in the maintenance tool at the time of…
Reinforcement Learning Part 8: Temporal-Difference (TD) Learning
Temporal Difference (TD) learning is one of the foundational concepts in reinforcement learning (RL). It combines the notion of updating estimates before the final outcome is known, similar to how…
Migrating cmdtest from Zig 0.15 to 0.16
The Zig 0.16 release brought a complete I/O system redesign. Here is my experience migrating `cmdtest`, including the new Child process API, file operations, and what I had to learn along the way.
Plan 9: Tiled Map
Use plot(1) to display tiled maps. The zoom factor decides the grid dimension. osm.js: Download tile images using hget. Cache the images. Convert the PNG image into Plan 9 format using png. Display…
Please keep code descriptions simple
Just something I experience more and more these days. When it comes to reviewing code, the descriptions, commits and such can be massive blast of information: Full of extraneous details depicting…
LLM Experiments: Recent Slop Projects
LLM Experiments: Recent Slop Projects Skip to the bottom for project list Slop that I generated and have been "orchestrating" for the past 2 months in order to "learn" LLM code generation and…
Data Cleaning for RAG Search and Response
In a previous post, I covered what Retrieval-Augmented Generation is and how to prepare data for ingestion. A companion post on the ingest pipeline walks through the data cleaning techniques that get…
Event Sourcing: Aggregates, Dynamic Consistency Boundaries, or what?
In part eleven of this series on event sourcing, we make a small detour to discuss consistency boundaries. I never thought much about this aspect until recently, when I watched a couple of conference…
Rewriting the world in Rust
The world runs on legacy code—hundreds of millions of lines of it. Can we rewrite it all in Rust? And is that even a good idea?
Is breaching WIP always bad?
In a Slack conversation recently, someone asked “Isn’t it a big assumption that breaching WIP is always bad?” It’s a great question, and the answer is more interesting than it first looks.
From Families to Schools - Math Academy Podcast #9
What we covered:– It's been a few months since our last podcast, and in that time, we've seen a huge increase in the number of schools wanting to use Math Academy for this upcoming school year.– Now,…
A book on loop engineering for the whole team
It’s about agentic engineering (of course). But it’s also for the whole team working on software products as well as practicing knowledge work.
Why Agile Works
The Why Agile Works slide deck can be used for a two-hour interactive session exploring the reasoning behind agile software development, without referring to any specific agile method.
Guidance injection: reliable instructions for local LLMs
System prompts don’t work reliably for smaller models. Guidance injection delivers instructions at the exact moment they’re needed instead.
Procman: An alternative for running Procfile apps
Procman is a tool written in Rust that offers a TUI interface to manage processes defined in a Procfile.
Swift 6.4 adds async support to Result
Greetings, traveler! Swift has had Result.init(catching:) for a long time. It is a small convenience initializer that runs a throwing closure and stores the outcome as a value. If the closure returns…
29th International Congress on Insurance: Mathematics and Economics, 서울, June 2026
The 29th International Congress on Insurance: Mathematics and Economics (IME 2026) will be held in Seoul, I will present on Friday our joint work with Bertille Tierny and François Hu, Direct and…
Elixir's Agentic Product Team
I’ve been exploring and engaging in agentic software deeply for a couple of months now with a number of my own projects to learn with. Thus far, nearly all of what I’ve done has been…
Introducing Kempt
Formatting should be boring, in the best possible way.
Improving Git Search Performance
In reply to Searching for and navigating Git commits.
Two Indexed Hash Tables
Two Indexed Hash Tables