What makes a game tick? Part 9.5 - The Curse of the Scheduler Latency
Let's talk about game simulations. Today I bring up a slightly more advanced topic and talk about OS scheduler latency and its impact on multi-threaded tick design.
Choosing Friction - Why Developers Feel Disconnected from Their Work
The tools removed the resistance that used to tie us to what we build. Nobody is going to give it back, so the craft now has to be chosen, and part of that choice is not ours to make.
MacBeeb
You can download MacBeeb from GitHub, where the source is too. MacBeeb is a BBC Micro emulator written for the Mac in Swift. I’ve spent a lot of time in the BBC Micro’s internals through…
Creating a file with ed and a here document
Creating a file with ed and a here document When it comes to creating a new file with ed and a here document, there is a difference between "GNU ed" and "ed" on BSD. This is about…
You're Not Writing Code. You're Running a System.
The most important change an engineer can make isn't a new language or framework — it's a single sentence about what they think they're doing. 'I am writing code' makes the diff the deliverable and…
A Poor Man's Solution to Gradle's Rich Console Issue on NixOS
A follow-up to my post on Gradle's rich console on Nix: a small patchelf script in my nix configuration that repairs the native library cache whenever the Gradle wrapper breaks rich console.
ccfind: search all your Claude Code sessions
I remembered the conversation: transcribing a Rust cohort video with mlx-whisper. I didn't remember where I ran it. It turned out to be ~/Downloads, but I only found that out later: claude --resume…
Integrating Antigravity and Apache/Maka into Raft via ACP
Recently I started testing multi-agent collaboration tools in my daily workflow, spending quite a bit of time with both Cumora and Raft . Between the two, I prefer how Raft handles agent definitions,…
subbed
I've created this app to share videos with my friends who don't speak English. It lets you import a Youtube video, transcribe its audio into an SRT subtitle file, then translate it into different…
Fuji Sun
I wanted to know if, when and where you could see the sun setting right on the peak of Mount Fuji. So I worked with Claude Code to build a Fuji Sun simulator. You get to see the cone where you can…
My research setup has to work without an AI agent
Why I make time to configure my research tools, what my current setup looks like, and how I keep the work understandable as models and agents change.
Open source discoverability - or is it about ego?
tag(s): #emacs #random-thoughts #programming A week ago I received in my inbox a few patches, from two different users, for confluence-reader. My first thought was Aha! Turns out you don't need to be…
ArkOS 0.13: Variants and Samples
We’ve just released ArkOS 0.13.1, along with a large set of associated tooling. For the observant among you, we skipped 0.13.0. It was signed, but a last-minute API change made us pull it.…
Dead Code Shouldn't Exist
How we removed 28k lines of code from Sentry, one Knip at a time. A talk about the cost of unused code, how Knip finds it, and the lessons we learned along the way.
Localize Minimal API Validation Messages in .NET 11
ASP.NET Core 11 localizes Minimal API validation messages. Wire up AddValidation and AddLocalization, add resx files, and return errors per culture.
Custom Highlight Universal Selector ::highlight(*)
I recently added a universal selector for CSS custom highlights, ::highlight(*), to the relevant CSS Specifications (the bulk of it is actually in CSS Pseudos not CSS Custom Highlights) and…
Finding state bleed in Google Search
What happens without a search query?
Guest Garage Control Page for Home Assistant
Every so often someone needs to get into our house while we’re away, like a family member dropping something off or a repair person showing up early. I didn’t want to hand out a garage remote or set…
Random Script: transcribe.sh
I'm finding that I sometimes don't have time to take notes when I need to, but I often times can record audio. Maybe it's just a random thought I need to capture, or a full conversation crafting a…
Blanking Beavers: Results and Open Problems
SCENARIO: The year is 1950, and a brand new Turing machine, the first of its kind, has been installed at a research facility. Lots of people want to use it, but the machine has just one tape. A…
would I have learned as much with an LLM?
incidental learning in the age of LLMs.
AudioRouter's Memory Diet: From 960 MB to 30 MB in Four Steps
I noticed something odd while was running my streaming route: Task Manager showed the window using between 800 MB and 1 GB of memory. For an app whose job is to move audio from a microphone to…
I Made My App Agent-Friendly with WebMCP
How I added WebMCP tools to my social media planner so AI agents can find drafts, create posts and update schedules through an open browser tab.
A5 v1.0: una rejilla global de pentágonos con celdas de área idéntica
Cuando trabajas con datos geográficos a gran escala, tarde o temprano acabas usando una rejilla global: dividir el planeta en celdas, cada una con un identificador numérico, y asignar cada punto,…
Tiling Noise - Procedural GPU Patterns
Part 10 of the Procedural GPU Patterns tutorial series for Godot Engine 4.
I argued IoC was pointless in JavaScript, forgetting I’d published my own container to npm.
Why I built ioc-manifest: convention-based DI codegen for TypeScript and Awilix.
Robots Killed My Career: Long Live Flowcharts
I don't talk about work much on here, but I work in open-source software, and we just released Strudel Flow 2 , a new version of our visual music sequencer built with React Flow and Strudel . Version…
Client Delphi System One : des questions typées, des probabilités
🌐 Cette page est aussi disponible dans d'autres langues : 🇬🇧 English • 🇮🇹 Italiano • 🇪🇸 Español • 🇩🇪 Deutsch • 🇧🇷 Português Un modèle qui décide au…
The Self-Learning Loop: Building a Self-Updating AI Pipeline for Expense Extraction
LLM-based expense extraction is good, but not perfect. Here's how we built a feedback loop that captures corrections, distills them into rules, validates them with shadow runs, and promotes them to…
Introducing Zirql, an embeddable query language
Why I built a shared query language for Zirium and Zincite, with word and CSV examples and a guide to embedding it in Rust.
Does Jujutsu Work with GitHub? Why the Name? 7 Questions Answered
Seven questions Git users have about Jujutsu (jj): GitHub compatibility, missing Git features, the learning curve, using it at work before v1.0, and the story behind its name.
The Silent Crash: How to Fix Biber Dying Mid-Compile in VS Code
Nothing derails a writing session quite like a $\LaTeX$ build that fails without telling you why. You hit save, latexmk spins up, and suddenly the compiler halts with a vague Error return from 'biber…
Experiment: Not Perlin
Noise with CSS backgrounds
Bazelizing Third-Party FPGA Designs: Two Case Studies
Converting existing open-source FPGA projects to Bazel and rules_openxc7 makes hardware builds reproducible, eliminates machine-specific paths, and enables one-command bitstream generation without…
Replace A C Implementation With Swift Without Changing Its Header
Use @c @implementation to preserve a C interface, check signatures at compile time, and keep buffer ownership and failure behavior explicit.
Neocities: Coding Night
I went to an event at Sickhouse.
Using Youtube Movie Fragments as Macos Wallpaper
I like Apple laptops, but that self-satisfied “Made in California” vibe is just too much. When they started forcing people to watch aerial shots of the Sonoma Valley every time they log…
A small libjxl ablation study
Finding out what makes a JPEG XL encoder good - Despite it being a very busy period, lately I have been spending a bit of background time thinking about how to improve cujpegxl, the GPU-accelerated…
Video training – new release, big update, and Black Friday sale
Three months have passed since my previous update on the SQLServerFast Execution Plan Video Training. But I have been working very hard in those three months, and I can now make a few big…
Your .md File Is Not a Specification
Using Formal Analysis to Find Requirements Gaps
Startup configuration files
Learn how to use startup configuration files to run package entry points when the Python interpreter starts up. A startup configuration file is a file with the extension .start . Starting from Python…
Reactive and Proactive AI Agents in Microsoft Teams with Python and Strands
I wanted to connect an AI agent to a Microsoft Teams channel. Someone mentions the assistant, the agent does its work, and the answer appears in Teams. I also wanted the opposite direction: an event…
dtg 0.3
Version 0.3 of dtg is out. Check it out on GitHub ! This is a substantial release. By the end of 0.2 , I knew that the next version would entail major changes. I didn’t appreciate their extent until…
Offline speech-to-text for Flutter, with no server and no API key
transcribe_cpp turns speech into text on the phone itself, live and hands-free, on iOS and Android. Why I built it and what turned out to be hard.
Phrase Algebra as of Today
Four months after Phrase Algebra and Sharpee 2.0, the algebra has grown from 13 kinds to 16. Two of my June examples were never valid syntax, and the Optional and Choice examples contradicted…
volley 0.1.0-alpha1
I made a test runner for Clojure! Clojure is still my language of choice and I've been writing most of my personal projects with it (or babashka) lately, and especially in the babashka projects have…
Where is my C++ memory coming from? Exploring Linux process memory
This post explores C++ memory management within Linux systems, detailing memory allocation for processes, including stack, heap, and global data sections. It explains creating child processes using…
Drawer: A Tidy Menu Bar in One Click
Drawer adds a pair of brackets to your menu bar: [ on the left and ] on the right. Anything between them is in the drawer.