Config based git hooks for fun and profit
TL;DR Git is going to have (or by now has – via 2.54.0) a new, well, sorta, new feature called git-hooks which you can define in your configuration. This article will explain the how. The way…
July 03, 2026
To start: The Phoenix Code Annoyance. I found out how to use it without having to deal with the AI bullshit. For some reason, it breaks and resets the phcode.json if you update it so that it doesn't…
TIL: Mind Your `field_with_errors` In Rails
I was happily coding my RSS Feed reader, grabbing screenshots, taking notes when I suddenly found a wild bug: Did you see that text area collapse? Yeah, me too. And I didn’t like it. The thing is, I…
Declarative systems and sources of truth
My thoughts on a concept that keeps coming up.
Nifty Django Feature: Counting on Multiple Columns
Part of the Nifty Django features series: The Count expression only works on a single column, but you can use Subquery to count on multiple columns!
Jellyfin Media Integrity Scanner: v0.1.1 Release — Update Checker and Auto-Update
v0.1.1 release article for the Jellyfin Media Integrity Scanner. Covers update checker architecture, session-aware auto-restart, package bloat fixes, Playwright E2E testing, media corruption test…
Obsidian + Claude Code: The Setup I Use Every Day
How I use Obsidian as the markdown editor and project organizer next to Claude Code. No plugin, no MCP server, one folder per project.
Updates: Vite 8, TypeScript 6, Storybook 10, pnpm 11
My frozen shoulder problem means I haven’t had a chance to keep dependencies up to date on my InfiniSheet project. I tried to keep applying dependabot automated updates but hit a problem with some…
Devbox: a pattern for development in the cloud
A post about how I do AI-assisted development in the cloud, with a link to a Github repo for setting it up yourself.
Set up PostHog on iOS to track exactly what you want
The PostHog iOS SDK collects a lot of properties for each event tracked. I use this piece of code to take control over what property is sent exactly.
TIL: bash command tracing at function level
some-function () { { local - ; set -x ; } 2>/dev/null some-command " $@ " } { local -; set -x; } 2>/dev/null enables set -x (command tracing/xtrace) for just this function, without leaking that…
Investing in automated C to Rust translation
Canonical is funding a 3-year PhD at the University of Bristol to investigate whether large, mature C codebases can be translated into safe, correct and maintainable Rust.
Transaction Test Protection
Automated testing is good. This is, I hope, not a controversial statement. Small, isolated tests are also good. This should also not be a controversial statement. But sometimes, tests will need to…
DuplicateHandle works on sockets, mostly
WinAPI represents most “things” as HANDLEs: files, cross-process mutexes, threads, jobs, etc. Sockets, however, are a notable exception: while on Unix systems they’re no different from files, Windows…
Condensing Twenty Years of Wisdom in One Markdown
I've been shipping at a genuinely ridiculous pace lately, and somewhere in there I stopped being an engineer and became the bottleneck in a twenty-person team of AI agents. Don't worry, I am working…
The ECDSA tax: a field guide to threshold signing
Two vendors sell you an “MPC wallet”. Both keep the key in shares that never meet, both produce ordinary signatures, both have a whitepaper with a lock icon on it. One of them signs in…
For and Against Method
The 2nd part will add some actionable insights through the examination of post-Kuhnian thought and the debate for and against method.
Badger Quote of the Day
Following on from the Badger 2040 Hello World example, here is an inspirational quote of the day printed on e-paper. Because this application is a little more complicated, I wanted to test and debug…
How to Make Claude Code Do Things Its Own Docs Don't Mention
A plan of mine hinged on "a startup hook can only add context". The installed Claude Code binary said otherwise, and the docs would not say so for weeks. Docs lag, omit, and describe the version the…
Using hetzner's free inference in your coding agent
Hetzner is offering some free inference and since free tokens are always welcome it would be a shame not to give the models for a spin. Specially since they now offer Qwen3.8-27B for free, which is…
How to Build a Slack Bot with Flue
Learn how to create and deploy a Slack bot with Flue. We add tools, secure event handling, threaded replies, reactions, and persistent state.
McNemar's test in R
Introduction In a previous article, we showed how to perform the Chi-square test of independence in R in order to test whether two qualitative variables are related. As mentioned in that article (and…
Precision is the missing virtue in Go interfaces
Every parameter is a contract. Make it small enough to honor
Precisão é a virtude que falta nas interfaces Go
Cada parâmetro é um contrato. Faz ele pequeno o suficiente pra honrar
Milvus 3.0: Closing the Search Gap
View Slides Test it yourself!
The Repo as Delivery Mechanism
An advisory mandate delivered through a private GitHub repository: what it changed about shared material, about the sessions, and what it foreshadows for services work.
Hello, world!
I want to present a project that I've been working on for the past 4 months: an alternative Rust LSP implementation that is built with a focus on low memory usage. It has two main features: It can…
#0
The project got its first release.
Postgres as an isolation reference model
Use PostgreSQL's transaction isolation levels as a reference model for reasoning about the guarantees and tradeoffs of other relational and non-relational databases.
AMTA - AI and the Future of Low-Resource Languages
Announcement, Colab. At AMTA 2026 me and Vera Senderowicz Guerra gave an overview of the state of the art of LLM usage to translate English into a selection of languages, from low-frequency ones such…
Detecting Claude and ChatGPT using letter counting.
Last time I built a detector that counts four-letter runs (n-grams) and tells you whether Claude Opus 5 wrote something. It works well - about 91% on text it has never read. It has one obvious hole:…
Hover Proximity with Scroll-Driven Animations
Hover proximity? It's when you affect the hovered element and a few surrounding elements. A fancy effect made possible using modern CSS. ⚠️ (Chromium-only for now) ⚠️ See the Pen Hover Proximity with…
Automatic Firmware Generation for Spaceflight Hardware based on Schematics
The interaction between hardware design and firmware implementation requires strict consistency in embedded systems. Firmware must exactly match the schematic-level component configuration and…
The 10x Era Is Here. Ten Times More What?
Ten times more code is the shallowest ambition for coding agents. The real leverage lies deeper.
Highlighting a range of text inside an input or textarea
Using OpaqueRange and the Custom Highlight API
MarkEdit Sort Text Extension
I recently discovered MarkEdit , an open-source Markdown and text editor for macOS. It is intentionally minimal and fast, but I missed one small feature: sorting text, either a selection or the…
A Conjecture That Was False by One Exponential
We named a proof obligation about how fast a shallow exp–log expression can approach zero. It fit the lower-depth results and it looked right. It was false — and false at exactly one scale. Replacing…
Eight Circles, Except When There Are Seven
Apollonius' problem has eight solutions in generic position. While formalizing it in MachLib we assumed the obvious general-position condition — three equal circles, comfortably separated. That…
Fact and Fiction in Grounded Set Theory
Bryan Ford Submitted to arXiv on August 19, 2026 Abstract: Classical set theory buys its power on credit: its axioms assert totalities no computation could survey. This paper asks what set theory…
Three-axis motion with GRBL
getting three stepper stages to work with GRBL software and drivers
Tau Ceti: ten theorems from the first month
It's been a month since we launched, so I'd like to make a brief post highlighting some of the results that have landed in Tau Ceti. We're ready for more contributors at this point. Please come to…
Announcing the Palomar Registry
Today we're launching the Palomar Registry, an index of formalized mathematics repositories with a valid #comparator setup and #formalization.yaml metadata. Limited automatic review rejects…
Fifty-five billion tokens
Fifteen months of agent session logs: 55 billion tokens across 14 models (and what they would have cost at API rates)
Devlog #1: vitald v0.1.0 — Building a Self-Hosted Health Data Pipeline
This is a write-up of a weekend project, vitald, I made after buying a Google Fitbit Air (I’m slowly transitioning out of the Apple ecosystem). One of the main reasons I gravitated towards the Fitbit…
Poor Man's devenv
devenv is great. Declarative dev shells, hooks, scripts, tasks. At work, using nix is fairly uncommon, so I don’t want to litter everyone’s repo with devenv or shell.nix files. Devenv can…
OpenSpec: The agreement layer that keeps your agent honest
AI coding assistants confidently build the wrong thing when requirements live only in chat. OpenSpec adds a lightweight spec layer — explore, propose, build, archive — so you agree on what to build…
Looking for Maintainers!
I have a lot of open source projects. Many are Swift packages, but I also have a few apps as well as a bunch of other projects in Ruby, C, and probably others too. I have realized over the last year…
SQLite for Everything
Dr. Raphael Bauer penned an excellent article (PostgreSQL for Everything) on the value of using PostgreSQL to power your enterprise. I’ve taken the liberty of correcting a couple of errors, mainly he…
I Built matbrown.dev
I built a new site: matbrown.dev . Drop a folder of numbered markdown files in, and it becomes a course automatically: a table of contents, runnable code examples, and a set of questions to check…