Progscape. A 64K demo for NOVA.
My entry for the newschool intro for NOVA2026
WireGuard for Saints Row: The Third
Great games come with LAN co-op. Even greater games allow you to directly enter the game lobby's IP address. Saints Row: The Third doesn't and relies on UDP broadcasts, instead. And because WireGuard…
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.
Decision Records for AI-Driven Software Development
Decision records are the missing memory layer in AI-assisted software development. They capture not just what was built, but why — and that distinction becomes critical when AI tools are writing your…
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…
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.
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…
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…
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…
When VB6 Was the Future
In 1998, Thomas Whitaker opens a box of MSDN CDs like it’s Christmas and builds a shiny VB6 front end for his COBOL payroll engine.
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…
.NET 11 Preview - MIME Type Lookups
In a previous post, “Use Constants For MIME Types”, we discussed how to avoid specifying strings for MIME types and use built in constants instead.
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…
Bayesian Workflow exists as a physical book!
We’re very excited about this book. It’s the result of several years of effort. You can order from the publisher or from Amazon. Here’s the book’s webpage, which includes the…
Prompt Engineering for Performance Engineers: Chain-of-Thought, Prompt Chaining, and Iterative Refinement
In this blog post, we will see how performance engineers can use advanced prompt engineering techniques to get sharper, more actionable results from LLMs, whether you are analyzing JMeter reports,…
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.
Sparse Ranges
Implementing sparse_range : From a Python Discuss Idea to a Sieve Stress Test I found an interesting thread over on the Python Discuss forum titled " Possibility to exclude ranges from range " . The…
Java To Native Linux App: One 5MB Binary, x64 And Arm
Yesterday's release post introduced the new native Linux desktop port. This post is the detailed version: what it is, why the hard parts were hard, and how to build one. What is Codename One? Codename
RP2040+W5500 = Ethernet Swindle
I was not really happy with the CH32V307 Ethernet Version. It is a all-included & cheap version. But it's only 10 Mbps and there is not enough flash/sram to comfortably host swindle. The ESP32S3 wifi…
Toggling Ghostel
Randy Ridenour is living proof that you don’t have to be a young nerd to master Emacs and Elisp. Ridenour, a professor of Philosophy, has shown repeatedly that it’s possible for a…
Social Media Site For Vinyl Record Collectors: Wax Spinner
As you may know about me, I like to make things in what little free time I have. Often that is music, but lately it’s been apps. Since I also like collecting vinyl records, I have been making…
Yak shaving using slot machine
I try to use the slot machines to solve code-related issues. For some tasks, these machines work well, for some tasks we get a long line of wiggle until it works but the wiggling does not produce…
Using a MacBook Neo for web development
I've been in the market for a portable computer for a while, ever since moving my main PC to the attic where it's too out of the way to use for quick tasks. I originally tried reviving my old ~2012…
C++26 Pack Indexing
C++26 pack indexing lets you select types and values from parameter packs directly with pack…[I], which removes a lot of tuple and index_sequence ceremony from metaprogramming utilities.
How to support multiple Slack workspaces on MCP for Claude Code
Claude Code talks to Slack over MCP, but out of the box you only get 1 workspace. Here’s how to run 2 or more at once. The trick: every workspace beyond the first runs as its own token-based stdio…
A knowledge base is a graph, not a folder
Turning a manual into an agent's knowledge base isn't converting it to text — that flattens the thing that mattered. The power comes from the graph: the criteria that condition each other. How we…
something i made up in a few minutes
nah ur wrong becuz to gave a good windowing systwm on windows you gotta havw access to function call 0x08FFB5F0000A6D00 in winapi.h using the C:/Windows/System32/winwm.dll dynamic library that only…
This Week in Package Management: 27 June 2026
Releases, advisories, and articles from across the package management world
How to read and update URL query params without regex
URLSearchParams reads, sets, and removes query string values with a clean API. No string splitting, no manual parsing.