The Most Improbable Managed Node: Haiku in AWS Systems Manager
amazon-ssm-agent can’t run on Haiku. So I taught Haiku to speak SSM instead — 600 lines of C++, one very confused fleet console, and a BeOS-descendant desktop in my browser.
The app blocker I made because I kept cheating on Screen Time
I kept skipping my Screen Time limits and did not want to spend €50 on an NFC blocker, so I made my own.
Do Cross-References Help LLM Agents Complete Documents?
mcp-data-platform exposes knowledge as wiki-style pages. An agent talking to it over MCP can search them and fetch them, and the pages can point at each other the way an internal wiki does. The…
ArchSpec 1.0: Executable Architecture Specification for Ruby’s Agentic Coding Era
ArchSpec turns your architecture into an executable spec: declare components and boundaries in one Ruby file, and every change gets checked, whether a person or an agent wrote it.
Raw transaction decoder
A raw transaction is a byte string with no field names, no delimiters, and no forgiveness. Every explorer and wallet shows you its interpretation of those bytes; this page shows you the bytes…
Automating Away the Chicken-And-Egg: Bootstrapping Pulumi Backends
As the old adage goes, "when you have a hammer, everything looks like a nail." Adapting this to the past few years of my life, "when you have Go, use it for everything." So when I began my BYOC…
Better Batteries
One of the eternal schisms in programming is over the question of whether the standard library should be minimal or encompassing. This is the wrong question to ask. The right one is:
Build and Train a MiniGPT with JAX
In this article, we will build a workflow for training a language-model using JAX ecosystem. Specifically, we will build a compact GPT-style language model with JAX and Flax NNX, train it on a small…
Use Prime Numbers to Schedule Repeating Tasks
.recurrence-chart { margin: 0 0 3rem; border: 1px solid #30343b; border-radius: 14px; background: #16181c; overflow-x: auto; } .recurrence-chart svg { display: block; width: 100%; min-width: 680px;…
My Emacs Agentic Workflow
Two years ago I was a skeptic about GenAI. Now Emacs has become my agent cockpit.
A Clean Way to Mock Upstream APIs Inside Your BFF Service
When developing against a Backend-For-Frontend (BFF), stale or filtered upstream data can halt frontend progress. This post explores three approaches to mocking data that allows developers to swap…
AI makes code cheap to create, not cheap to own
AI has made code cheap to create, but more code means more overhead. Before coding agents, creating more code cost time and effort because engineers had to write it. That naturally encouraged us to…
The Dark Factory
People keep talking about dark factories in software development. How could this work? How do I know that the right things got developed? Questions I keep hearing. Lets explore an idea.
CCCP: the Computer Controlled Camera Project
controlling a camera and lens from software
I built my own Coding Agent harness and orchestrator — Part 1
Three things lined up over the past few months and pushed me into building this. Token costs kept creeping upwards the more I leaned on cloud coding agents. Open weight models got genuinely good —…
My phone is now just an emacs interface
If you follow me for even five minutes, you will find my disenfranchisement with modern smartphones is palpable. It seems to be a massive waste to have this capable device that sits in your pocket be…
Bash over Node
A GitHub Action at work goes from a Node.js action to a composite action running a single bash script. The scenario is ideal: the action only does an HTTP request, JSON parsing, and some conditions.…
Asymmetric Numeral Systems
Jarosław Duda is a Polish professor at the Jagiellonian University in Kraków. He developed a family of entropy coding methods called asymmetric numeral systems (ANS), mainly used in data compression.…
Desktop icon alignment in LisaGUI
Some minor updates to the project in blog-post form
Reinforcement Learning Part 14: Baselines, the Advantage Function, and Actor-Critic
In the previous post, we ended with a straightforward application of the policy gradient in the REINFORCE algorithm, which proves to be a useful stepping stone in our deep reinforcement learning (RL)…
fecs: a lisp interpreter written in wasm
fecs: a lisp interpreter written in wasm fecs is a programming language in the style of PicoLisp and implemented as a lisp interpreter running in wasm. This version is written in WebAssembly in the…
I’m Building for Shipaton 2026: Three Weeks In
Three weeks into Shipaton 2026: The initial features for v1.0 are set up. Now it's time to clean up and polish 🧽
A Gentle Introduction to RDBMS
A beginner-friendly walkthrough of Relational Database Management Systems: what they are, how they organize data, and core concepts to get started.
Proprioception for the Smart Factory: A Reactive Graph for Industrial Documentation
Proprioception for the Smart Factory: A Reactive Graph for Industrial Documentation Intro In biology and robotics, proprioception is the intrinsic sensing mechanism that allows a system to…
Fuzzy Find Everything
Time and time again I find out I was wrong about something, like the time I thought vim keybinds were stupid or when I thought that trackballs were stupid too.This time is the dmenu function of…
Capturing the Mouse for a First-Person Controller
A first-person game needs a slightly different approach to mouse input than a typical desktop application. Normally, the mouse cursor moves around the screen. In a first-person game, however, we…
LLM-driven Code Review Process
After a recent conversation where someone mentioned that they experienced multiple model lineages surfacing additional issues in code reviews, I decided to revisit the code review machinery in my…
My Emacs configuration (Mastodon)
A calendar icon 20 Aug 2026A tag icon emacs it Table of Contents Preamble Mastodon.el overview Mastodon.el common configuration Hacking the Mastodon.el TL icons Use Nerd Icons for toots…
CueCam 2.0
So, this is probably the biggest software release I've been responsible for in a while, and it all started as 'pet project' for myself and a couple of other LDs (much like lxkey I…
Eight Code Virtues (draft)
Some time ago, Jeff Langr and I came up with seven virtues for code in Agile in a Flash , and we wrote more about them over the years. The original set is: Working, Unique, Simple, Clear, Easy,…
One style guide for everything Claude Code writes
I wanted everything Claude Code writes for developers to follow the Google developer documentation style guide. A forked skill, a few adaptations, and a local snapshot of all 70 guide pages got me…
Using Claude Code to develop my apps
I've often had really good ideas when it comes to develop apps, websites and businesses, but my lack of coding knowledge, skill and know-how has always been a barrier to that, and I've never had the…
The Record Compiler
Twenty minutes after I told a coding agent to use GLiNER to structure a set of messy records, it said it was done. That was too fast. I opened the code. It had parsed the raw fields with regex and…
Parsing IP addresses in C# at crazy speeds
We are all familiar with IP addresses such as 192.168.0.1. They are typically written as four numbers in the range 0 to 255 inclusive, separated by dots. In C#, you can parse them with the standard…
The Golden Age of Open Source Applications
We are seeing a Cambrian explosion of open-source software applications.I have written before about how AI has made software dramatically easier to build. A developer can now create in days what…
Btrfs Snapshot Integration in KDE
I have been working on integrating Btrfs snapshots into KDE software. The central part of this work has been realized in the form of KIO Snapshot , which has just been released. Here I want to…
How to Stop AI from Ruining Your Codebase
This post is also available as a video on the Modern Software Engineering channel Kent Beck once said – ‘I’m not a great developer, I’m a good developer with great habits’. Now, Kent Beck…
Replacing the Implementation Without Losing the Decisions
Chad Fowler published The Specification Is Not a Document while I was finishing this. He gets to the same problem from the other end: if we can replace the code, where do we keep what we learned from…
We Stopped Teaching What We Never Stopped Running
The training went where the roadmap went. The work didn’t. [also posted at Engineer of Data Substack] tl;dr – Sign up for SSIS Premium, use the coupon code “alblog” and save…
The Amnesia Cycle and Why AI Is Turning Developers Back Into Testers
I started working in technology around 1993. One of my first jobs was in quality assurance, partly because there was no security profession to join yet. There were people doing the work, but few…
How AI agents rekindled passion for my open source projects
This is a short story of how thanks to AI agents, I am again passionate about my open source projects, namely pretty-git-prompt (p-g-p in short).
Atproto Gave Me Superpowers to Fix My Bookhive Data
I let Claude log into my atproto PDS with a temporary password and fix my messy Bookhive reading data against my Obsidian vault. Ten minutes later, everything was in sync. Imagine what we could do if…
The wrong unit
Remember when I told you all I'd swim in one lane? Well... I'm swimming in two to six lanes now. And I can report that my deploy paralysis is gone, and that my mental fatigue doesn't kick in meaningfu
.NET 11 Preview - Customizing HttpClient Zstandard Compression
In our previous post, “.NET 11 Preview - Using ZStandard Compression With A HttpClient”, we looked at how to use ZStandard to compress outbound traffic to a web server.
MCP Grew Up Fast: From Experiment to Enterprise Trust Boundary
how an 18-month standards effort quietly turned into the compliance layer for AI-to-CRM access
Agentic Liberation of Methods and Practices
Software rarely fails because it lacks a feature; it fails because it cannot scale, cannot recover, or cannot be securely maintained. Yet, Non-Functional Requirements (NFRs) are routinely treated as…
Black Box Tests Are Your Most Valuable Asset
When an agent writes the code and the tests, passing doesn't tell you much. Black box acceptance tests are the independent verification boundary that actually matters.
How I Learned to Stop Worrying and Love the Monorepo
I recently learned how to use some newer Git features (partial clones and sparse checkout with sparse indexes) to effectively wield a brand new “monorepo” for my team’s data science work. In previous…