Make Me Heard
The brief Recording the audio From audio to data.json A quick 2D preview Driving a Blender armature The final visualization Conclusion The brief My wife runs a communication coaching agency and…
Daily GitHub Stars: June 28, 2026
Today’s starred repositories:
The one UML notation every developer should know
Dashed arrow means dependency
The Last Ten Per Cent
IT Philosophy. Perfectionism, as the industry practises it, is the chase for the last ten per cent, and that last ten per cent costs more than the ninety that came before it; the polish rarely earns…
1 Year of Omarchy as My Learning OS, Not Just My Linux Setup
After one year of using Omarchy, the thing I value most is not the Linux setup itself. It is the learning environment I built around it.
Python, Inside JavaScript, Inside a DAW
For about fifteen years, my answer to a music theory question had the same shape: open another window. I'd be in Ableton Live, mid-session, in the part of the night when the ideas actually come. A…
Dev Weekly Jun 22-28, 2026: OpenAI Previews GPT-5.6 Sol, Anthropic Says Claude Writes 80% of Its Code, Google Ships Gemini Interactions API, Leo npm Worm, Cursor Buys Continue
OpenAI previews the GPT-5.6 family under a government-gated rollout, Google promotes the Interactions API to general availability as the front door to Gemini, Anthropic reports more than 80 percent…
An animated radial gradient mask over text in CSS
Here's a technical walkthrough of how I made a fun little demo to mask some text in a clever way with CSS.
Ozymandias on Rails. The Pedestal Inscription
Every successful Rails monolith becomes a ruin if it survives long enough. This post is about why, and what a recovery looks like from the inside.
Do you even need to? Sharded maps vs xsync and otter
Last time I hand-rolled a 256-way sharded map and crowned it the best concurrent cache in Go’s standard library. The top question back: what about the popular libraries? So I added xsync and…
Simpler
I started programming on calculators in the late 70s. Always fascinated with the HP-41 that came out in the 80s. Did a huge number of projects on that beauty, including lots of Assembly programming.…
tmux trick #3: open URLs without the mouse
tmux trick #3: open URLs without the mouse
Leave before locked
A small story about CAD software, ownership, and changing while it is still your choice.
Bazel's time has come
With regard to builds, a cohort of companies using agents are leaping across the Bazel ROI boundary. The way that software companies tend to grow and evolve is that they start out with a few people…
You Can Detect if Code Is Being Run Inside a Terminal
Most programming languages have a way to detect if it’s being run in a terminal.
Two kinds of scheduled work in Codex
A simple rule for choosing between Scheduled Tasks and Scheduled Messages in Codex.
The Future of Node Security in 2026
I wanted to do an analysis of where the Node ecosystem is going into the next few years, and in particular around the security layer Node provides. With the rise of AI, supply chain attacks are…
Is Fixed-Point Still Relevant?
Over the last six months I’ve been polishing and optimizing Tofu Engine’s software renderer. Yeah, I know… a full and detailed devlog on this topic post is due, but while I’m organizing my thoughts…
Die zweite Spur: warum Agenten im Bestandssystem Code doppeln
Wenn ein Coding-Agent ein Ticket abarbeitet, baut er sehr häufig eine zweite Implementierung neben den vorhandenen Pfad, ohne den bestehenden zu benutzen. Das Feature funktioniert, die Tests werden…
The fintech engineering rules that actually hold
Three separate people sent me the Fintech Engineering Handbook this week, which is usually a sign the document is answering a frustration engineers already had. It covers the fundamentals of building…
Different hydration and rendering strategies
Over the years, in our goal to achieve faster and faster web applications, we created different hydration and rendering strategies. Each with benefits and drawbacks that we explore in this article.
The Loudest Bug Is Never the Worst
The bug your angriest customer is emailing about and the bug wrecking the most lives are almost never the same bug.
Ten Years Of Emacs
This post is a reflection on over ten years of Emacs usage. Why did I even start using it? How has my usage changed over the years? What's the future looking like? I'll discuss this and a whole lot…
Blinkie Maker updates
Blinkie Maker updatesfixed the hue slideradded saturation and brightness slidersadded ‘surprise me’ and 'reset’ buttons, which apply to hue, brightness, saturation, text color,…
Capturing Links to Drafts
In the past I have employed numerous solutions to capture a link to a web page into another app. I think that in every case I was focused on working in that other app and pulling in a link to the…
Lauscher: LLM-Powered Web Monitoring
I wanted to keep an eye on a handful of web pages — a supplier’s pricing page, a regulatory portal, a competitor’s changelog — without either checking them by hand or drowning in alerts…
Rendering markdown with LaTeX in the terminal
Even when I’m not using Claude Code, most of my chatting with LLMs happens in the terminal. I use my fork of mods, the (now sunsetted) LLM CLI client from Charm, to which I’ve added an interactive…
Building Principia for Windows XP
Back in the day when Principia originally released for Windows in 2014, the game would run on versions as far back as Windows XP. Given that Principia 1.4 was released while Windows XP still had…
Weekend Reading — It's gettin' hot in here …
Tjeerd Royaards "Hot. Cartoon from last year." Tech Stuff DevCleaner Free space on your Mac that's currently used by the caches of Xcode, npm, Cursor, Claude, et al. Runs local,…
The Model Has Never Used a Phone
The model building your app has never used a phone. Here's the prompt that fixes the mobile UX, thumb reach and all.
Weeknote 26:2026
Weeknote 26:2026 Coding fever On Monday, I started a speedrun cleaning up the modernization issue queue for the freistilbox infrastructure code. I was fed up with our team running into roadblocks all…
GNU Mes and the need for speed
A short report on Mes performance
Climate Map
How I made a fully interactive historical climate map. Why I did it and what's next. Award Winning I love competing in challenges where I have the freedom to bring my creativity to a pre-defined…
The Side Panel — The Cast
The Cast, June 27, 2026 (in which a file dragged out of a two-hundred-pixel panel produces nothing, Claude clones the entire source of Muxy — six hundred and forty-six Swift files — to find a...
F# Weekly #26, 2026 — Fable REPL on BEAM & WebSharper 10.1
Welcome to F# Weekly, A roundup of F# content from this past week: Microsoft News Videos Blogs Highlighted projects New Releases That’s all for now. Have a great week. If you want to help keep F#…
What to do with junior developers
There's something cruel about the arc of career training that's occurred in tech over the last few decades. The first group of people through the door were a group of people that taught…
Switching from pre-commit to prek
I moved my repos from pre-commit to prek, a reimplementation of the same framework in Rust. It reads your existing .pre-commit-config.yaml unchanged, so the switch is mostly a no-op. Two things sold…
Claude Code - Experimenting With Dev Containers and Permission Allowlists
I run Claude Code, and its VS Code extension, inside dev containers. The reason is isolation. Editor extensions and the toolchains a project pulls in have been a real supply-chain vector lately, and…
Observability and AI Hackathon - Day 1
Day 1 of the OpenValue hackathon in Belgium. I explored AI tooling and got hands-on with gcx, Grafana’s Observability as Code CLI tool.
pi-automode: Bringing Claude's Auto Mode to Pi
I’m having a good time with pi, a lovely minimal agent harness made by thoughtful Austrians. It’s a super-solid, very extensible foundation to work with, and writing your own extensions…
World Cup Scenario Planning
Earlier this week, I put together a quick Jupyter notebook to figure out who plays which third-place team in the Round of 32. I parsed the Wikipedia table into a Pandas DataFrame with 20 columns:…
Individual Block Rules now work correctly in Miniflux
I’ve been using Miniflux as my RSS reader for quite some time. It’s a simple and fast open-source feed reader convenient for self-hosting with a focus on keyboard-driven navigation. Few days ago new…
New round() Precision In Adobe ColdFusion 2025 Update 8
Ben Nadel demonstrates the new rounding precision argument in the round() function in Adobe ColdFusion 2025....
FAIR and Square: making a static site support FAIR signposting
<p>After my <a href="/2026/06/23/making-blog-posts-harvestable-by-zotero-and-preserving-case-in-citation-fields/">previous post about Zotero ingest</a>, I wondered what…
onak 0.6.5 released
I had intended that the next release of onak, my OpenPGP keyserver, would be 0.7.0, and include OpenPGP v6 support (RFC9580). However events conspired to make a 0.6.5 release a really good idea.…
Automatically testing ChoiceScript games for difficulty balance
One day I'm going to write a proper polished blogpost about testing for difficulty balance for ChoiceScript games. It is not this day, but here's a link to my most recent short post on the subject.
I Vibe-Coded Some Apps
Recently, I’ve been using Claude to build some apps that I’ve always wanted, but which were too much work to do myself. The first is a bass guitar practice exercise app, which I’ve…
After installing MinerU with uv tool install, you still need cuda and ninja
Install MinerU with: uv tool install "mineru[all]"After that, mineru and mineru-gradio can both start. But the first real conversion may still fail. The first error I hit was: RuntimeError:…
We won Honestbee Logistics Challenge 2016
I usually go out and join tech events in the city. I’ve joined several of them, but the most memorable was the event where my friends and I won first prize by solving a delivery optimization problem.