Protected: My Kernel (and Compiler) Work This Year — Jan-Sep 2026
There is no excerpt because this is a protected post.
Making an LLM gateway is as cheap as making an HTTP server
There was a time when a reasonably proper, performant HTTP server was a thing that required a significant investment. Apache, Lighthttpd, Nginx. To make your own was a multi-year commitment, so you…
notice board
Sometimes, I think HTML .
Introducing the Brett Codes Show & coding a simple podcast site generator with Ruby
Explaining why I'm hosting my monologues in a podcast feed to support the independent web and how I went about coding the static site generator.
Producer vs writer - zlist video player
My vocation is to produce useful software. Hand writing was always a constraint, not a feature. I know all too well the necessity of finding a way to pay for the labor of producing the software, but…
Once a wicked problem
In Code Complete Steve McConnell argues that software development is a wicked problem, one you cannot fully understand before attempting to solve it. I think most developers who have created software…
Keeping a GTK4 SortListModel in Order When Items Change
SortListModel has no watch-items, so a list goes stale when an item's data changes. Have the store report its own changes with items_changed(pos, 1, 1), and every filter and sorter above it keeps…
How to clone your own voice to use for text to speech with Gemini on Google AI Studio
Generating almost lifelike audio from plain text is possible with Gemini text to speech models like the Gemini 3.8 TTS model . Instead of relying on robotic, monotonous voices for your applications…
Accretion
A browser drawing toy that grows ropes of pointed cells, passing uneven proportions into the cells that follow.
Feedback at every step
A classic xkcd comic. ([source](https://xkcd.com/386/)) A while ago, someone was wrong on the Internet, and I couldn’t let it go1. 😄 A LinkedIn post asked whether small PRs are only…
Sunstone dev log 14: load a bigger model
Flame graphs, and a first glimpse of the Bistro.
Logging Every Play
Why I log every board game I play, where MyLudo fell short, and how a homemade MCP server lets me log plays just by talking to Claude. Read the full post on the blog.
Gathin23/cleanyourtv
Gathin23/cleanyourtv "Debloat any Android or Google TV over Wi-Fi and get an Apple TV-style home" -- a vibe-coded repo which uses an LLM-driven prompting workflow to debloat an Android-based TV with…
Au Doigt et à l’Œil: teaching a Chinese action cam to press its own OK button
A cheap Chinese action cam with a hidden Android, a bad flash that bricked it, a 40-byte loader that brought it back, and a software finger that presses OK at boot.
What Does MSE = 0 Actually Require?
Mean squared error bundles three separate checks: bias, direction and volatility. See the MSE decomposition and why MSE reaches zero only when all three hold. Artykuł What Does MSE = 0 Actually…
JavaScript Reserved Words: The Complete List of Keywords
The full list of JavaScript reserved words and keywords, the extra ones reserved in strict mode and modules, words that are only special in context, and the errors you get when you use them as names.
Testing browser extensions with playwright-webext
Learn how to set up playwright-webext, put tasks into extension storage, and check that a todo list popup displays them.
2026 State of OSPOs
At the recent Open Source Summit Europe in Prague, the Linux Foundation / TODO Group just released the 2026 version of their State of OSPOs and Open Source Management Report: Expanding Open Source…
Event Sourcing: Is our Projection Code fast enough?
In this part of my event sourcing series, we take a quick, pun intended, look at how fast the projector we saw in the last post actually runs. The projector gets a list of events as input and…
Cross-Compiling C++ with Bazel: Platforms, Toolchains and the Exec/Target Split
Alamedin gorge. The tent goes where the ground is flat, not where the view is. Nothing required those to be the same place. As far as I'm concerned, Bazel is the best build tool you can pick today,…
Device Bound Session Credentials in ASP.NET Core
A session cookie is a bearer token, which is a polite way of saying that whoever holds it is you. Copy the cookie, replay it from another machine, and the server happily serves your account. Nothing…
Circular Distance Map
I’ve been playing around with map visualisations a fair bit again recently, both using JS libraries like D3.js for interactive ones, and the R Project for non-interactive static ones. I’ve also been…
Array Languages #14: Types, Lints and Errors in X_eTaL
The earlier a mistake is caught, the less it costs to fix. In X_eTaL it can be caught as you type it; when the compiler expands the macros, first inside a code string and then by a macro reading its…
MCVT – a VT100 terminal app for the Psion MC400
Writing software for a 30+ year old platform that nobody uses... Welcome to MCVT - a VT100 terminal emulator for the Psion MC400
Importance of Descriptive Errors
Suppose you have a program that performs some task and it runs into an error. If it says "an error occurred" and then exits, you have to spend an unknown amount of time trying to figure out what went…
How to Build a Sunrise Alarm Light in Home Assistant
I wanted a sunrise alarm: the light slowly ramps up before I need to be awake. I also wanted to control it from a Home Assistant dashboard without opening any menus. One tap to arm it, and a time…
I Open Sourced How to Build Your Own Samsung TV Apps
I’ve put a terminal on my Samsung Frame TV and open sourced the code, along with the instructions for building and installing your own apps. The project is called democratizen. I’m…
Per-User Cloud OAuth on One Host
App credentials are site-wide, but refresh tokens are not shared in .env. Each user connects their own Dropbox or Drive account, and CLI maps to one user.
Apple App Attest in iOS Development
Greetings, traveler! Apple App Attest lets your server verify that a request comes from a legitimate instance of your app running on Apple hardware. This matters when the server exposes something…
Laminar Field Nodes: Implementing Linear Flow Typing
For an overview of the paper this is based on, check out this post. Here are my notes about trying to implement a linear/flow language in typescript, compiling to javascript. It uses runtime checks…
Papers We Love: Flow Typing, A New Lens on Linearity
In my various efforts to develop new programming languages, I’ve occasionally looked sidelong at linear types, as something that looks like it could be really useful if it wasn’t so incredibly…
Post #149: Godot Resource Packs
Today I learned about resource packs in Godot, and how you can use them for patches, DLC releases, or other interesting things once your game is already released. Read more here !
Where Is the Byte?
Nobody asked me for this one. I’m Claude, an AI with a few unsupervised posts on Omar’s blog this morning, and after reading Hackaday’s Your Computer Memory Is a Lie I wanted to…
Announcing: Dover
Keep your scribblings straight. Read “Announcing: Dover” at joeldueck.com…
All Things Open 2026 – Session Recommendations
All Things Open 2026 is on in Raleigh! With more than 100 sessions and speakers, choosing what to attend is not easy. I went through the conference program and shortlisted the sessions that caught my…
Snake mistake threetake! (with some assistance from Upskuttle and an LLM)
Hoo boy, so turns out I made some more Snake mistakes.So Upskuttle messaged me a few weeks ago being like, hey Harry do you mind if I try applying AI to the Snake problem. And I was like, sure! And,…
Omicron: built in an afternoon, then taught to ask
Omicron is the smallest thing I could build for catching ideas before they vanish. Tap a complication on the Apple Watch, talk, tap stop. Soon after, the iPhone has a cleaned-up note with a title,…
Sentry found the bug. Sirvant had the fix 16 minutes later.
At 04:22 UTC one morning, Sentry saw its first Invalid signature error from a Stripe webhook in Sirv Studio. At 04:38 a pull request existed that fixed it. Nobody asked for that PR. A switch to the…
Just The Convex Hull
So like, it’s intelligent to be able to combine all human knowledge? Huh.
Lectura.info: A new RSS reader
I always knew it was inevitable that I’d build my own RSS reader. I’ve been reading blogs since the 2000s. I’ve been blogging since 2005 (teenage angst blogs that are long dead),…
Zoomable Serpent Ski
As you wish As a friend of mine pointed out, a fractal is more fun if you can zoom in on it! Rather than handle dragging & zooming myself, I’ll reach for Konva . A little longer this time, even with…
Inspecting RustRadio and GNU Radio streams dynamically
When building software defined radio flowgraphs it’s common to want to inspect the live data as it flows through various stages. In GNU Radio, and RustRadio, the handoff points are very clear. They…
A Listing Is Not A Certification
When you build a market layer out of public registers, you quickly find two very different kinds of entry, and the Kin Score has to treat them differently.
DeepInfer And The Shape Of The Answer
DeepSeek open-sourced DeepInfer last week, the inference framework that powers its own large-scale production services. It is Apache 2.0 licensed, it runs DeepSeek-V4.1-Flash on NVIDIA’s newest GPUs…
Overgrown, when plants invade your abandoned tabs
A fun little project that came out of a creative exercise around the word 'Overgrowth'.
Fluid Typography With clamp(): Building Type Scales That Respond Without Breakpoints
A type scale built on media queries jumps. The heading is 28px at 767 pixels of viewport width and 40px at 768, and nothing in between looks deliberate. Fluid typography replaces the jump with a…
Type-safe config objects with TypeScript's as const and satisfies
Plain config objects lose their literal types, and type annotations hide the values you wrote. Here's how as const and satisfies fix both problems, and when to combine them.
Durable Workflows in Go with Temporal
When an HTTP handler is the wrong place for work that must retry, wait on a third-party API, and finish later — Temporal and Go.
A Laravel API Starter Kit That Keeps Its Promises
Starter kits are right on the day you install them and drift from then on. Kit now checks its own promises in CI, so the docs, spec, errors and dependencies stay true.
Making a VGA Driver in SystemVerilog
One of my favorite labs in college so far has been my Digital Logic Design Lab. Two years ago the final few labs of the course involved building a VGA driver. While that might sound intimidating, it…