Neovim the Elite Editor
Most editors today are bloated, slow, and pretending to be IDEs while burning your RAM. Neovim 0.12 goes the other direction: less junk, more control, better speed. This is the no-BS breakdown of…
Color Preference Analysis System
A website that presents users with 2 colors in UI contexts and asks them to pick one. It collects this data with the user’s browser, os, etc.
Lunch Talk Series: An Opinionated Guide to Modern Django Forms
A review of Josh Thomas' DjangoCon US talk on how to use Django forms to build modern web apps.
The First Real Autoresearch Run Was Expensive, Messy, and Extremely Useful
I pointed the skills autoresearch harness at a real frontend security project. It cost roughly four dollars, failed before completing a full improvement loop, and taught me more than any of the…
Daily GitHub Stars: May 5, 2026
Today’s starred repositories:
Vanilla Web Book 🆕
I'm happy to annouce my 15th book: Vanilla Web published by Manning Books. It's currently available at MEAP (Early Access Program): you can read it while it's being written and get the final eBook or…
My RSS client has an MCP server
Although the days of every site having an RSS feed have long past, I still find that it remains one of the few ways left to curate your own garden of content on the internet. There’s no…
Tiny toggle
Over at the Design Systems House website , I made a small toggle for light and dark mode. While there’s an abundance of posts describing this, I didn’t find any that made it into a compact script of…
Make Technical Documentation Available for Local AI Use
For our recent work, we looked into how to consistently crawl technical documentation and make it available for further processing by LLMs or agents. Doing so would either allow you to use the…
How to autocomplete translatable entities in Sylius
Learn how to seamlessly integrate the autocomplete feature with translatable entities in Sylius by leveraging the Sylius TranslatableAutocompleteType.
BugBash 2026, or how the correctness decade has started
BugBash 2026 was two days in Washington D.C., organized by Antithesis, dedicated to extracting reliable software from the slop factory . The conference brought together thirty speakers from across…
Pragtical v3.9.0 Release
The time has finally come! A new contestant enters the arena and promises some
Build you a personal assistant agent for fun and profit
An opinionated guide to building your own always-on personal AI assistant using Pi, OpenCode Go, Telegram, Resend, Hetzner, Tailscale, GitHub, and Nginx.
The agency stack
It’s been an interesting few days with insightful comments related to my latest developments. The sharpest pushback on my desktop post — the one about replacing my desktop with software I’d built —…
You cannot sell AI written software
You may have seen it too. This trend of “I wrote some software to solve a problem. I think it’s pretty great. Does anyone have any feedback?”. Maybe it’s a budget app. Or some company management…
Voice Agents 101: The Architecture Behind AI That Talks Back
The first time I built a voice agent and got on a call with it, the thing felt like talking to someone over a satellite phone in 2003. Long pauses, unnatural cadence, occasional cuts where it would…
Bridging Container and Host
Part 6 of Modernizing my Terminal-Based Development Environment. Part 5 introduced crib. Let’s say a Capybara spec fails inside the container and dumps a screenshot to a png in tmp/. How do I…
Debezium and the Outbox Pattern: The Real Impact on Your Postgres Database
What logical decoding, replication slots, and the WAL actually cost when you stream the outbox table to Kafka with Debezium - You proposed the transactional outbox pattern for your service. The…
Programming Is Real Engineering, And AI Proves It
One of the recurring hobbies of the programming community is to self-righteously self-flagellate about how we don’t do Real EngineeringTM like those other engineering disciplines do, with their…
Pydantic Monty: The LLM is powerful now, get the harness out of the way!
Let LLMs write Python that orchestrates parallel tool calls in a single invocation — Pydantic Monty is the sandboxed interpreter that makes it safe and fast.
What's new with Repowarden
I launched Repowarden about three months ago. It started as "a dev in a box that does the boring jobs." It's grown teeth since then. Here's what's actually shipped and why some of it matters more…
Zero-Downtime Migrations: Expand and Contract Explained
How to ship schema changes with zero downtime using the expand and contract pattern. A practical walk-through of the three phases with real code.
Polynomial autoencoder
A closed-form autoencoder: PCA encoder + quadratic Ridge decoder. On FiQA it gives 4× compression of mxbai-embed-large-v1 at -0.85 p.p. NDCG@10, +2.73 p.p. over PCA. No SGD, no neural networks.
Coding with Local Agents on an RTX 3090
TL;DR Running coding agents on local machines has never been easier. This article gives easy setup instructions for running Qwen 3.6 27B on an RTX 3090 in Linux. I then show how to use the model in…
kamal-backup: Scheduled Rails Backups for Kamal Apps
One Kamal accessory for encrypted Rails database and Active Storage backups, restore drills, and redacted evidence for security reviews.
Cupertino v1.0.0 "First Light"
First release stable across crawl, index, rank, serve, and distribute. Search that finally returns the right answer, one bundle, MCP spec 2025-11-25.
AI wants direct access to your data
Why I switched my note taking app and built my own personal finance app: AI works best with direct, bidirectional access to your data.
Explicit vs. Implicit in the Age of Intelligences
Why the implicit becomes fragile when humans and agents co-produce code.
Cognitive Surrender
Cognitive offloading is delegating to the AI and still owning the answer. Cognitive surrender is when the AI's output quietly becomes your output and there is nothing left to check. For software…
Pi: A Coding Agent That Gets Out Of The Way
Pi is a minimal terminal coding agent that can read, edit and run code - but its real strength is how easily you can adapt it to your own workflow.
CBOR serialization in Goakt V4
Even though Goakt has always been a great technology for me to adopt, I was always reluctant to use it in my application because writing and managing Protobuf files wasn’t feel really elegant…
The Race to Become the Context Layer for Agents
The next data platform may be less about storing data and more about deciding what AI agents should know, trust, and act on.
What makes a game tick? Special Issue - Buffy the Performance Slayer
Let's talk about game simulations. In this special issue we talk about how to handle buffs, modifiers and other stat bonuses.
Diskless Linux boot using ZFS, iSCSI & PXE
Motivation # I wanted to test out the new Unsloth models for Qwen3.6 and Gemma4 on my gaming PC. llama.cpp on Windows is tedious to compile, and I have littered my Windows installation with too many…
Killing a `Cow` made my JSON formatter 42% faster
Early optimization is bad
Spotify Walklist
A CLI tool (UI to come) that helps you build playlists that match your physical activity.
Implementing a virtual filesystem over Elasticsearch
LLMs have been trained on vast amounts of shell sessions and codebases. That’s why agents are naturally good at using CLIs and navigating filesystems. A recent blog post describing how LangSmith…
Dynoxide patch notes: 0.9.10 to 0.9.12
Dynoxide now lives entirely in its own public repo, out of the private workspace it shared with Nubo. One repo, one CI pipeline, no shuttling private commits to test against the public version.…
What you need to make an agent
I've been digging into agents for internal tooling and processes. Looking for how to scale without drowning in manual work. Here's what I found
Building A Space Invaders Easter Egg With Claude Code
A few days ago I had a silly idea: what if my homepage had a hidden arcade game? Click a button, and the page turns into Space Invaders - where the actual text on the page becomes the enemies you…
OSS updates March and April 2026
In this post I'll give updates about open source I worked on during March and April 2026. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make…
Inbox & Outbox patterns for reliable event processing
Modern applications rarely do just one thing at a time. An API request creates an order, and then another service needs to reserve stock, another to charge the customer, another to send an email, and…
Watch History Journal 2.3
It’s hard to believe it’s been over two years since I released Watch History Journal, my shortcut for logging your TV and movie watch history in a journal app on Apple devices. I’m always delighted…
DB GUI 0.4.0 Remember SQL Command History (useful w/ Ruby on Rails DBs)
DB GUI is a Database querying desktop app built in Ruby. It supports PostgreSQL to start. Version 0.4.0 added support for remembering SQL command history. I needed that feature at my job to be able…
You can get around Reddit’s new paywall with this iOS shortcut
The other day I posted about how you can no longer use Reddit on a phone without downloading their app. Several people wrote in to tell me about libreddit, a great frontend for Reddit that bypasses…
Fizz Buzz Through Monoids
Some decade ago I read a good implementation of fizzbuzz. What set it apart was its excellent modularity. The original article is no longer on the web, but this is my reconstruction: In[1]: module…
Scrolling read-only buffers with Spacebar in Emacs
A small usability improvement If you are used to scrolling reading material with your spacebar and you dislike Emacs’ unhelpful default (showing Buffer is read-only: #<buffer blah.txt> in the…
rusty wisdom — looong string delimiters
strings may be delimited with the r#""# delimiter. you can actually add up to 255 hash characters on each side, in case you needed 254 #'s inside of your string. example: r#####"i really need this…