Astro: HTML first, JavaScript when you need it
Why we chose Astro for teaching Content APIs and Web APIs in the CMD Amsterdam Web Design & Development minor.
You Don't Have a Relationship with Your LLM. You Have Five.
This is happening to me often enough to where I need to understand it. It's not just me. I have heard this from my colleagues and friends as...
Every prototype needs knobs
You’ve probably seen the videos on social media - there’s a cool looking prototype, but wait, the person expands a menu with a bunch of input sliders and knobs. Then they start to tinker with them -…
FiiO TT11
FiiO’s $179 fully-automatic belt-drive turntable — a pre-fitted Audio-Technica cartridge, Bluetooth, seven lighting modes and a wood-grain finish that looks far above its price.
Howto Find the Start of a Cycle in a Linked List
Learn how Floyd’s Fast and Slow Pointer algorithm detects cycles and finds the exact starting node of a loop in O(n) time and O(1) space.
Weekly Reflection #27 - Delete, Delete, Delete
Each week, I share one insight. One piece of wisdom. One question to reflect on. (and a little Lagniappe) A great design is easily hidden by unnecessary…
I built a vulnerable app and spent $1,500 seeing if LLMs could hack it
As a part of my work I do security research for various apps and websites. I wanted to see if LLMs could reproduce a common class of exploits I've found in multiple apps. So I built a deliberately…
2D Waves - Procedural GPU Patterns
Part 2 of the Procedural GPU Patterns tutorial series for Godot Engine 4.
Text imports
Importing strings
Everyone keeps rediscovering Claude Code sub-agents
Sub-agents aren't specialists — they're disposable, isolated scratchpads for the noisy, expensive, tool-heavy work, handing back only the part that matters and keeping the main thread clean for…
Dr. Oz as CMS Administrator: A review
Every day you see a headline about a celebrity official in the Trump administration. One day Robert F. Kennedy is promoting junk science. The next day, Pete Hegseth is retweeting Christian…
Do web components make your design system framework-agnostic?
I recently read a blog post claiming that web components can make your design system framework agnostic. But this is down to the false dichotomy between engineers who: love React (or the current…
Announcing Mutation Testing in Haskell
Mutation testing is now generally available in sydtest . This is a major step towards a saner development workflow in the age of AI-generated code. What is mutation testing? Mutation testing aims to…
🈲Janggi Checkmate
Play at 📱Google Play Play at 💙Toss Play at 💜playgama.com Janggi Checkmate is a collection of 3,000 hand-picked Korean Chess (장기) checkmate puzzles. Spot the forced mate — from quick one-move strikes…
A collection of things I made for Ribbet
3D art Ribbet is a 3D platformer made by a team straight out of Uni. I was the Art Lead for the majority of Ribbet’s production and one of three 3D artists on Ribbet. These environmental assets I…
Top 5 Time Management Tools
How you go about managing your time can be greatly enhanced by using the right tools. From pomodoro techniques, to day planners, and even time tracking software.
Findings, May 2026
Assorted LinksI finished book eight of Dungeon Crawler Carl. Loved it. I have recommended the series to a lot of different people now with a pretty good hit rate. If you haven't read it yet, you…
Sam Baker
About 15 years ago, I stumbled upon a songwriter named Sam Baker who had released an album called "Cotton." I liked almost every song, not because he was a great singer or a great musician but…
A Standard Framework for Trade Negotiations
by Brad Johnson December 19, 2018 (This is not my work but fear it may someday not be found at the link below) Originally published here:…
Touring a Californian Wind Farm
I had a fantastic time touring the wind farms at Palm Springs in California today. It was fascinating to see the evolution of this technology from the 80s when they…
What’s the outlook for Starlink’s consumer business?
I’ve been writing a lot about Starlink’s financials since the SpaceX S-1 came out almost two weeks ago and now I’ve just released my new 65 page report forecasting the opportunity…
Game Studios Have More Channels, But Not More Control
D2C stores, platform access, UGC, AI agents, and creator channels only matter when they strengthen the player relationship. The post Game Studios Have More Channels, But Not More Control appeared…
Contributing to DaxLib
How to contribute a Library to DaxLib
Blogging in Numbers
A year and half of blogging, in numbers
Everything's Green Cap…
Your AI says the job is done. Your container says it is running. Your firewall says it is up. All three are lying, and the green light is the most dangerous output in your stack.
Why Pure Swift Beats ARM Hardware CRC32 Instructions
After publishing Can Swift Match Rust on a Lambda Micro-Benchmark? I got a wave of questions about one specific result: the CRC32 decision. People couldn’t believe it. Fair enough. I…
Modernizing Clinical Trial Design and Analysis to Improve Efficiency & Flexibility
UCLA Cardiology Grand Rounds 2020-10-23 | Video (better video below) Vanderbilt University Department of Biostatistics 2020-11-18 Vanderbilt Translational Research Forum 2021-11-04 | Video Consilium…
Curated Routes: Santa Monica & Pacific Palisades — Coastal Modernism and Sensory Rituals
In this route through Santa Monica and Pacific Palisades, we let tea serve as the narrative thread, grounding a beautifully paced day of mid-century architecture, intentional art spaces, and…
Don’t Call It Art is out now!
Buy the book Finally — finally! — after 7 years, there’s a new book of mine out in the world: Don’t Call It Art: 10 Ways to Create Like a Kid Again is now available wherever you buy books. Don’t Call…
The SaaS desktop app
I’ve been looking at several PostgreSQL clients as I migrate my local development databases away from Docker containers and back to a native PostgreSQL installation.
The Prompt Is the Meaning
Why textualism, original public meaning, and AI governance all turn on the same uncomfortable fact: intent does not travel unless it becomes part of the record. There is an old fight in legal…
android launchers
It's absolutely insane to me that there are so many "minimal" launchers that promise to reduce your phone usage and don't have the main blocker for actually doing it: hiding all the apps. Close to…
A harness for every task: dynamic workflows in Claude Code
The writing on the Claude blog is consistently great, and often becomes the defacto standard for the subject at hand. This post is nominally a marketing piece for dynamic workflows but the article…
Border series: Evening show on KIKX 102
KIKX 102 was the new name for the short-lived Monaghan pirate FM 100, that broadcast for a few months from 26th July 1989. Using the former studios and transmitter of previous pirate KITS in Monaghan…
A faster bump allocator for rust
Announcing stumpalo, an extremely fast bump allocator for rust, with chunk reuse and safe scoped stack support.
Finding Old Movies on YouTube When You Don’t Have TCM
by James Wallace Harris, 6/2/26 Turner Classic Movies (TCM) is the gold standard for old movie lovers. Unfortunately, in the era of cord-cutting, fewer people have access to this wonderful resource.…
Keeping Code Reviews From Dragging
You know the feeling. You open a pull request on Monday morning. You ping the reviewer(s). You go to lunch. You come back. Nothing. You context-switch to something else. On Wednesday, the reviewer…
Origami Cranes above the entrance to Lomená Galerie in Olomouc
In Olomouc, Czech Republic, I recently stumbled upon Lomená Galerie (Broken Gallery), an art gallery located in a passage inside an old building. The entrance is currently decorted with two origami…
pg_stat_statements: everything it tells you
If not first, pg_stat_statements is one of the most used extensions in the PostgreSQL ecosystem. It ships in contrib and costs almost nothing to use. Most of us turn to it to answer the question:…
I am giving up on VM Gaming
I was told one could use virtualisation software, spawn virtual machines with PCIe passthrough, and achieve near identical gaming performance.
Audit, Test, Automate: How We Decide What AI Can Own
I run a tiny compiler startup: two people, pre-revenue. Like most companies at this stage, we are always short on staff, money, and time. When Claude Code and Codex became good enough to use every…
Installing the Hero Camper nested drawer
Hero camper recently announced their new Nested Drawer — it’s a small drawer that gets mounted above the cooler and holds the gas hob parts safely. Which is pretty genius; the pan support is…
Practice Speaking with Google Translate
Use voice input to talk to Google Translate (or any other translation app). Seriously. Let's say I'm learning Japanese. 1: Set the translator app to English ⇢ Japanese . 2: Press the microphone icon…
NAS "State of Science" 2026 address
I watched the webcast of the NAS State of Science address by outgoing NAS president Dr. Marcia McNutt . (I did not watch the panel discussion afterward, so sorry if I missed critical pieces.) A few…
Weeknotes 26:22
Week of adjustment It was a week of adjustment at work as I took on some new responsibilities after the departure of our team leader. I had more meetings than usual as I needed to communicate with…
Aeons
I met a traveller from an antique land Who said: A vast and jagged temple Stands in the desert. Near it, on the sand, Half sunk, a shattered placard lies, whose angles, And jagged prose and words in…
Google's Private Navy: The Deputy Secretary of Defence, The Seabed, and a Coincidence So Tidy It Practically Files Its Own Maritime Notice
3 SubCom cable ships worked Google's Bosun cable simultaneously in Australian waters. Their owner's founder runs the Pentagon. Coincidence?
N'Joi'd that
Sourced in Isn't she lovely? After N’Joi , Saffron fronted - front being the operative word - this Republica tune that I file with a lineage of excitable go-for-it ladette pop ( Icona Pop , "I Love…
Reconnecting, Rereading, Revisiting
Yesterday, I started messaging some old friends I hadn’t spoken with in literal ages. One of them, it’s been about a decade since we last connected. One I haven’t seen in person in over two decades.…
Just five more. Then we stop.
The last Moduleurs are on the bench now.