Link: Mojo is now open source
Mojo is now open source, via Simon Willison. I was also struck by the same quote as Simon in the Mojo road map: As Mojo matures through phase 3, we believe it will become increasingly compatible with…
Do Not Send Me Your AI Code to Review
AI has its places, but asking a human to review code you did not write takes the biscuit
Why can’t you combine <code>.tar.gz</code> files with <code>cat</code>?
To combine archives safely, I had to start by understanding the `tar` and `gzip` file formats. I learnt about tape drives, patent laws, and end-of-file markers.
For the Babel Fish Out There
Ooloi's interface now speaks twenty languages (with two national variations), with varying degrees of confidence. I've added a Translator's Guide for the native-speaking musicians who can tell it…
Everyone Says Assembly Is Untyped—Everyone Is Wrong
TL;DR: I believe Odin;s inline assembly is currently the best out of any language.The most important aspects are of this article listed below. I am not aware of any other assembly…
Issues in the Repo
refs/bugs, refs/notes, refs/heads/ticgit, or a directory full of YAML.
Introducing Umbraco AI Copilot Workspace
The RC for Umbraco AI Copilot Workspace just went out on our open release branches, so it’s time to properly introduce it. If you’ve used Umbraco...
Java 27 features: Compact Object Headers by default, JFR redaction & post-quantum TLS!
A JEP-by-JEP tour of JDK 27, tested on the early-access build: compact object headers by default, G1 everywhere, JFR secret redaction and post-quantum TLS.
Making React Testing Library Tests 43% Faster
Three fixes made one React test file 43% faster without changing the tests.
A CSS Hover-Reveal Pattern for Technical Specs
A CSS-only hover-reveal pattern for Gate Seal specs, with keyboard focus fallback, that keeps core numbers visible and tucks extra context behind intent.
How Much Data Does a Win-Probability Model Need?
It’s a lot; quite a heck of a lot
Inside the Simulation Model
We dig into the details of the model:
Wally 7
14 years ago, I built my very first native app for iOS together with two friend. Today, Wally 7.0 is out, with a brand new data store, and lots of new features.
Limiting the number of turns in agent loops through manual caching
I’m creating my own reusable skills. This week I learned something more about the ergonomics: it can be worth it to design what is loaded into context not just around limiting the size, but…
Two ways to make Opus 5 concise
Opus 5 is a strong coding model, but it answers every question with a word salad. My fix used to be a custom output style built on ASD-STE100, the simplified English of aircraft maintenance manuals.…
Worth Reading: Reading the Git Crime Scene
Tony Mattke continues publishing excellent “Git for Networking Engineers” content. In his latest article, he described how to find who made what changes (and why) in a Git repository . Absolutely…
Packaging skills in a plugin, this time for GitHub Copilot CLI
Note: this post is part of a series. Part one covered packaging a skill in a plugin for Claude Code . Same idea, different tool, this time focussing on GitHub Copilot. After writing that first post I…
The Hardware Store and the Cost of Software Maintenance
So, who knew a trip to the hardware store would lead me to a theory about how to calculate a team's velocity, not in story points, but in complexity points?
TTF Font Rendering on Rust ESP32's for EPaper
Most embedded graphics libraries can’t directly render TTF fonts, instead, they convert bitmap fonts (usually bdf fonts) to a binary format. Since there is no consensus on what this format is,…
Fixing tags on 17k mp3s
Beets is a python CLI tool for fixing up metadata in music collections. I wrote up a guide from my own use on my ~17k track collection because writing instructions is a good way to learn. But also:…
How to Generate Audio Spectrum Videos from MP3 songs with FFmpeg
Sometimes I need a simple way to convert an MP3 file into a video suitable for YouTube. Instead of using a static image. I created a small Bash script that generates an animated frequency spectrum…
Overthinking Bayesian Mixture Models with PyMC
Much has changed in the ten years since I published Density Estimation with Dirichlet Process Mixtures using PyMC3. To name a few new developments: PyMC is now on version 6, it was on version 3.…
PlugBO: A Modular Framework for Agentic Bayesian Optimization
A plug-and-play framework for Bayesian optimization
Code Smell 321 - Getter Piggybacking
TL;DR: Don't reuse an existing getter to bolt on new business logic from outside the object. Problems 😔 Duplicated business rules Broken encapsulation Scattered comparison logic Hidden domain kn
How to Configure Playwright Test to run smoke tests, headed tests, and debug versions through scripts in package.json
Earlier, we went over how we could create scripts in the package.json file of our Playwright framework to add typechecking, linting , and formatting your code with prettier . Want to see the entire…
Use the built-in GELU, don't roll your own!
Unsurprisingly, PyTorch's own built-in GELU function is faster than the hand-rolled one I've been using to date. But I was surprised at how much faster using it made things when training my models. I…
There's no such thing as a small software team anymore
Uber infamously runs thousands of microservices. They ended up with so many services because hundreds of engineers wanted to deploy on their own schedule, with clear ownership of their code, instead…
Three ways to smuggle SQLite into Nix
The core of nixpkgs-multiverse, when you strip away the Nix API and the CLI, is an index. It is a map from (attribute, version) to the revision that shipped it as a JSON file.1 There are actually a…
Hacking with Claude on a $27 Smart Watch
The Pine Time is a $27 smart watch that runs open source firmware. I’ve had one sitting in the back of a drawer for a year or two. When I saw @steveruizok ’s Tweet about hacking on ESP32 devices with…
FOUT Reduction is a Great Agent Loop
Since I use a lot of unique fonts on my site (I love bitmap fonts!) and I have not put much effort into optimizing the page loads, I was noticing quite a bit of Flash of Unstyled Text. Before the…
Math Facts Practice – Slides
Google Slides with all the math facts to practice. The post Math Facts Practice – Slides appeared first on Teacher Tech with Alice Keeler.
Welcome to pg_shmemviz: PostgreSQL shared memory visualizer
Introduction The purpose of this blog post is to introduce pg_shmemviz, a new tool to visualize PostgreSQL shared memory. It follows the same approach as pg_walviz, bringing physical layout and byte…
How this site works
How I build my site with Astro, GitHub Pages, and a few other things.
Soup Raiders Goes Native: Porting the demo from Unity
A port is not simply “the same game in another engine” or “just an emulator”. It is a long series of decisions about what to do with the original content (art, code and audio) to create a new version…
Implementing a retrospective agent: how it works
Using an LLM agent to bring productivity metrics into engineering retrospectives
Should testers write unit tests?
This post was previously published through my newsletter on May 25, 2026. From time to time, I will republish newsletter issues on my blog here if I think people (and search engines) might benefit…
Can a blog post be handwritten?
Can a blog post be handwritten? Suppose I handwrite a post on my supernote, then export it as a webp, which supports XMP metadata. Pretty sure I should be able to read that with javascript. Then, I…
Local-only Voice Dictation
Local-only Voice Dictation
What every kernel programmer should know about Jump Labels
Introduction 1 Hardware background (why this is hard) 1.1 What a CPU actually does with instructions 1.2 x86 instruction encoding: JMP and NOP 1.3 Why you cannot just memcpy over live code on SMP 1.4…
Stop Making TUIs
Our field has a weird relationship with terminal and command line interfaces. The time has come to re-evaluate it. I’m on a kick lately getting my friends to try building native user interfaces. I…
Why I Started Building PureJsImage
I wanted a fast, low-memory pure JavaScript image processing library for Lambdas and memory-constrained browsers. Then I expanded into codec compatibility and started tackling science, geo, and…
Don't check out
Doing my best not to press the push-to-win button.
I don't think we are ready to NOT read the output
I don’t think we are ready to NOT read the output I read the code for things that are important. Personal projects, non-critical, funsies - sure I’ll allow it through and take the output…
Building a Single-Pane RED Dashboard for Microservices with OpenTelemetry and Semantic Conventions
Three months ago we had 34 microservices and 34 Grafana dashboards, each one hand-built by whoever owned that service at the time. Some had rate/error/duration panels. Some had CPU and memory but no…
accept() and socket inheritance
This post is about Windows. Last time we saw that sockets are pretty much just handles, and as such, they can be inherited. If a process creates an inheritable socket and runs CreateProcess with the…
Oh no, not again, or: Porting Phoenix LiveView to Go
Why I’m porting Phoenix LiveView to Go, the rules I’m setting to avoid stalling like the attempts before mine, and the first four milestones.
Hypothesis testing, EWMA, and portable histograms in Node.js
The Node.js histogram API gets Welch's t-test, Mann-Whitney U, EWMA for streaming stats, SLO burn rate tracking, and a CBOR-based export/import format.
Writing a C preprocessor for bgfx shader compiler
Introduction For 14+ years, every shader that bgfx compiled, starting from the initial commit, went through a preprocessor written for the Amiga with origins in 1984: fcpp - Frexx CPP (C…
Do We Still Need Database Management Tools When AI Can Write SQL?
As AI makes database operations easier, the enduring role of database tools may shift from UI to governance.
Training a 125M-parameter Model to Autocomplete Piano
RollTab is a real-time piano MIDI autocomplete model and iPhone app.