Fast Checks for Code Generation
I’ve been thinking a lot about code generation with AI agents lately, and wanted to start writing a bit about how I’m approaching the pro
The Search for El Dorado: How Traditional Data Science Unlocked the Hidden Markets of Latin America
Expanding into Latin America is not the UK game of branding. Here is how traditional data science found the hidden, government-backed markets the incumbents never saw, and turned a sub-$1,000 trickle…
Hack Your Summer
Hack Your Summer I learned about this initiative from DJ Patil this morning: It’s a 4-week, high-velocity production sprint for undergraduate students, graduate students, and recent graduates who…
Illegal States Won't Compile
Before Orbit can place a workload or reclaim a core, it has to know how to say what a workload is. That sounds like the boring part. It isn't. The shape of the object model is where Borg and…
Overriding Emacs' Broken Bookmark Position Code (Updated)
(Note: I've updated this post: see the solution at the end .) Emacs has a useful function called bookmarks, where you can make short names for files you visit often. But bookmarks has one terrible…
2 Wheel Robot with Vision Processing, Part III
Posted 28 June 2026 When I work on significant projects like the vision-enhanced robot project, I generally hold two different but related mental maps for the overall project. One map describes the…
.NET 11 Preview - Get Extension From MIME Type
Yesterday’s post, “.NET 11 Preview - MIME Type Lookups”, looked at how to get the MIME type of a file given its extension using the new MediaTypeMap class.
What the pls?
tl;dr; The pls package on PyPI is an abandoned Python version (last released as v6.0.0 in 2023). The actively-developed pls was rewritten in Rust and now lives at pls-rs/pls. If you installed it with…
Weekend Reading
Agentic coding and Free Software - getting started with LLMs with WindSurf systemd for Linux SysAdmins - there is a book out about systemd - history and usage vmsync - released vmsync . A small…
The forgotten professional side of the Commodore Amiga: SAS/C Development
There is a familiar version of the Amiga story. It is the one filled with bouncing balls, sampled drums, scrolling game maps, ray-traced logos and teenagers learning how far they…
Bounded Wrongness: A Field Guide to Probabilistic Data Structures
Bloom filters and their descendants trade a bounded, one-sided, tunable error for a space collapse exact structures can't match. The whole family, with the math.
Bringing Swift through Distrobox on NixOS
I am working on a project that combines Swift, Raylib, and Raygui. I don’t really know what the end-goal is here, but I am having fun. That’s enough for me to work occasionally on that. I…
Voxel Raytracer Devlog
Hello, SDL! 2026-06-28 Commit: 03feb13 All projects have to start somewhere. The rendering infrastructure is set up to render a fullscreen quad. SDL_GPU is used as the rendering abstraction. The…
When Impressive Performance Gains Do Not Matter
Even order-of-magnitude improvements in performance may not matter.
Bookmarked Designing a Personal Pebble Watchface by Jonas Hietala.
Interesting tutorial by Jonas Hietala on designing a personal Pebble watchface . I like the idea of using a watchface to display personal information, and this tutorial provides a good starting point…
Making Developer Tools Available Through Bazel
Traditionally, when setting up a developer machine, instructions include something like “install the following tools using Homebrew”. What if we could always have tools available without…
When cat Beats Claude
I made a classic mistake when building my voice journal cleanup system: I tried to orchestrate everything at once. The idea was elegant. Spawn multiple subagents, process all unprocessed journal…
More SQL Demos
Added demos of subqueries, series, and aggregate functions.
Replace all spaces with underscores in filenames using bash
I decided to add this to my online notepad because it's such a simple thing to want to do, but trying to look it up often returns excessively complex solutions (using Perl, for example). It's doable…
Just Watch
Friday's release post announced wearable support. This post covers both wearables in detail: how watchOS works, how Wear OS differs, and the small amount of code you write to reach either one. What is
Saving tokens with a SaaS template
How many tokens does “building a SaaS project” cost and how many of those are non-requirements? The parts you need but are not core to the product. I have asked my trusted codex to build…
Linking A Diary Event To An Org Heading
Ray Zeitler has a useful post that describes how to solve a niche problem involving Emacs diary and Org mode. The problem is you have an event scheduled in your diary and you want access to an Org…
Don't Outsource the Learning
Anthropic ran a randomized trial in early 2026 where engineers learned a new Python library, half with AI assistance and half without. Both groups finished the tasks at the same speed. But the AI…
BlogMore v2.44.1
I've just done a quick update to BlogMore , bumping the version to v2.44.1. This release fixes an issue with auto-cover generation where, if you changed some properties relating to a post (or the…
Recipe Rescaler
I keep my recipies on my website, and like most of my website it grew over time instead of being designed. A couple years ago I added some progressive enhancement that puts checkboxes on the…
Copapers: multiplayer docs for humans & agents
After getting sick of no reliable, token-efficient way to collaborate on docs with agents and humans alike, I built my own.
Just One More Prompt
Starting is free now, so I start everything and finish nothing. On the compulsion loop of agentic coding — and why stopping and resuming are _the_ skills to play with now.
Fixing A Bug Inside Tmux Menu
Sometimes my tmux sessions will crash. This is super-rare and seemingly random so I just accept it. Today I figured out why and resolved it.
Three Ways to Give an AI Agent an Identity
Three ways to do it, and the plumbing that's reshaping all of them.
Forward Deployed
As a forward-deployed engineer (FDE) my job is to manufacture customer-product alignment.As Nina has pointed out, I love documentation, guides, thinking in procedures, and systematizing relationships…
Joys of cancelling a TBB task group
A Blender issue #152467 (“File Browser thumbnail cache broken with large amount of images”) reminded me to write this up. This particular issue is a (documented) surprise that when you…
Structured output and the JSON Schema dilemma
In this post I like to describe the current dilemma of using JSON Schema for structured AI outputs and how TypeSchema can be used as a clean, alternative data-modeling layer to generate both native…
Getting ready for local inference
Recently I’ve been experimenting with local LLMs for coding. Up until a couple of months ago I was a happy GitHub Copilot subscriber. I’d been quite satisfied to let other companies take on the cost…
Git Diff Report (HTML, txt)
Export a [[git difftool]] as text, HTML, PDF, or image for seeing and sharing changes with others in a nice visual way.
TUIs
Modern application with a UI running in [[Terminals]]. Tools Development & APIs posting - [[API Client]] like [[Postman]]: A modern API client that runs in the terminal. Neovim option:…
The Architecture Was Correct. The Decision Wasn’t.
Your system can be scalable, secure, and beautifully designed. And still be the wrong thing to build.
Reflections: 6 months of Agentic Engineering
blockquote.large { font-size: 1.2em; padding-top: 1em; } blockquote.large span { font-style: italic; } figcaption { font-size: 0.8em; text-align: center; } .image-columns { display: flex;…
Newspipe 12.1.0 released
I’m happy to announce the release of Newspipe 12.1.0. This version brings a reimagined reading experience, a few features I’ve wanted for a long time, and a much smarter crawler under the…
Your Customer List Is Full of Duplicates. Here's How to Find Them in Postgres.
Every CRM quietly fills up with the same person entered three different ways — and you pay for it in wasted marketing, wrong reports, and split histories. I measured three ways to find the duplicates…
Rogallo v0.4.0
I've updated Rogallo to v0.4.0. The main new feature in this release is support for capsule-requested user input. There are some other simple additions too. I've added a Reload command, bound to F5…
Collabnix AI Weekly - June 2026 Edition
Your weekly digest of Cloud-Native AI, Docker Sandboxes, and Model Context Protocol innovations.
Naive Bayes: classifying search intent with Bayes’ theorem
In the article on the multi-armed bandit we used Bayes to decide between variants: shifting traffic toward the one converting best while the test is still running. Now we take a step sideways, while…
Taste Is in the Spec (Cooking Is Not the Recipe)
Here’s a question I can’t stop chewing on: why is some software so damn good, and most of it so… not? Not buggy. Not slow. Just bad. Bad in a way you feel in your gut the moment…
Author Self-Review: The Cheapest Code Review You Skip
Self-review your pull request before requesting eyes: catch the cheap defects at the cheapest point and halve reviewer round-trips. A five-minute pass.
Basic Proof Techniques for Software Engineers
Basic Proof Techniques for Software Engineers
Standardize the Gates, Not the Steps
The problem that started this was not philosophical. We were trying to write down our SDLC. Not the aspirational one on a Confluence page, the real one, the one an auditor could follow and a team…
Optimizing LLVM's bump allocator
BumpPtrAllocator is LLVM's bump allocator (arena allocator): each allocation bumps a pointer within a slab, and everything is freed at once when the allocator dies. It backs Clang's ASTContext, lld's…
Build a Command-Driven Markdown Toolbar in React
Use custom invoker commands to format selected textarea text as Markdown. Read it on the web
In Plain Sight
A few days ago, in The Rungs , I reached for a phrase to describe something I'd found reassuring: two doors, one room . I'd been teaching a Rails application to compile itself into nine languages,…