Build Native Autocomplete in Rails Forms with f.datalist (No JavaScript)
Rails 8.2 adds f.datalist to FormBuilder, so you can wire a text input to a native HTML autocomplete list with zero JavaScript and no derived-id bookkeeping.
Deploy FastAPI to AWS in 60 Seconds
Deploy a standard FastAPI app to AWS Lambda serverlessly in two commands using Lambda Web Adapter. No Docker. No handler code. No code changes.
How Other Link Checkers Do Recursion
After I published Five Years of Trying to Add Recursion to lychee, one reply I got was a very fair question: If recursion is so hard, how do other link checkers do it? Plenty of them already crawl…
How I Built My Perfect Linux SteamOS Machine
Note I wrote this post by hand. An AI helped me review it, tighten the writing and fact-check the technical parts. The build, the choices and the opinions are all mine. TL;DR Link to heading I…
Partiful, buybacks, Knicks
Events are generational, Buyback brigade, Courting complexity
Transcript: Goals, Motivation, and Shipping
This is a transcript of a mentorship conversation I had with an AI Safety founder. It has only been lightly edited.
Adding new posts in AstroPaper theme
Some rules & recommendations for creating or adding new posts using AstroPaper theme.
Dynamic OG image generation in AstroPaper blog posts
New feature in AstroPaper v1.4.0, introducing dynamic OG image generation for blog posts.
My Other Brain is a Library
Bricolage When I was in university, I wandered the stacks of the university library, flipping through volumes at random , building up a mental map of human knowledge via bricolage . This essay, too,…
Getting BPF exceptions RISC-V JIT support
Ok, so I recently landed this: damn das a patch I did this because I saw this and I then wanted to add arm64 support to it. But Puranjay added it so fast that my dumb head had no time at all to add…
209 - in door we trust
this is 209 featuring jan jelinek, marihiko hara, facil, slowdive, datasette, gescom, ae, ulrich schnauss... enjoy
The Design Patterns and Legacy Code Books Are More Valuable Than Ever
The Gang of Four book and Working Effectively With Legacy Code are more valuable after agents than before. Legacy Code because of the proliferation of massive codebases of questionable quality.…
Beyond the OIDC Silver Bullet: Why "Keyless" GitHub Actions Aren't Enough
OIDC kills long-lived cloud keys, and everyone treats that like the end of the conversation. It's the start. The supply-chain attacks landing in 2026 are self-propagating worms that never touch your…
🌃 TOWNSQUEER and housekeeping
Announcing TOWNSQUEER, a games bundle and zine from the members of Gamedev.lgbt! Plus some general housekeeping for Indie Tsushin!
Introducing Gitsy: git pull all repos in a dir
A compact CLI to concurrently check, fetch, and synchronize multiple Git repositories and worktrees at once.
Open a link in browser A, from browser B
Normally, when you click an https:// link in a browser, it opens in the same browser. The browser doesn't send it the OS, which means Linklever can't route it to another browser. The Linklever…
Not all links are for the browser
Some links are not meant for a browser at all. They're called custom URL schemes, and you've seen them before. A notion:// link belongs in the Notion desktop app. A steam:// link belongs in Steam. A…
Summer is here
May Recap I was thinking of May recap but not feeling up to it. Missed April recap because all I had to say for myself was that I was sick, but I can recap May like this: Put in a new garden bed,…
How LLMs Work, Part 3: From Toy Model to GPT
How LLMs Work, Part 3: From Toy Model to GPT In Part 1 I covered how text gets tokenized, embedded, and processed through the transformer architecture. In Part 2 I went through backpropagation,…
The Approval Engine: Why AI Gets More Agreeable as It Gets Smarter
RLHF trains AI systems to maximize user approval, not truth. The research shows this gets worse as models scale. A 2025 OpenAI incident proved it publicly.
Installing NZBGet, Radarr, and Sonarr on Rootless Podman and Quadlet
Time for some geeking out. I’m one of those fools who like to run their own local server with not cloud shenanigans. I’ve been running an Ubuntu server for a while with a bunch of…
That 503 Was Not Your Code
The alerts started coming in mid-afternoon. Intermittent 503s. Not a flat outage, not a clean failure. Just enough errors to be alarming and inconsistent enough to be confusing. The kind of thing…
Backrooms
Not the best film ever, but in today's Hollywood landscape it’s a rare breath of fresh air.
Journey Book: May 2026
What happened during May? Let’s see!
Your Dropdown Has Offended British Columbia
I was trying to add my website to the Internet Phone Book, as one does, when I encountered the following option in the registration form: (UTC-08:00) Pacific Time (US and Canada) Absolutely the fuck…
Gracemaria VI/VII
So. Here's what happened. I wrote the whole dang thing explaining what happened in session 6 where the party tracked down a mech and kicked its ass. It was really cool. Then my browser refreshed and…
Crown 0.63
What's New After almost two months of development, The Crown Foundation is proud to present Crown 0.63 to the gamedev community! This…
Password and Entropy: The Science Behind Your Security
« Your password must contain 8 characters, an uppercase letter, a lowercase letter, a number, and a special character. » We all know this rule. And yet, in cybersecurity, this is what we call…
A survey of inlining heuristics
Compilers, especially method just-in-time compilers, operate on one function at a time. It is a natural code unit size, especially for a dynamic language JIT: at a given point in time, what more…
JuiceSSH just took away my paid features and vanished
I noticed today while using JuiceSSH on my phone that certain features that I’d been using fine for the past couple of months suddenly disappeared. The standard free vs. pro dialog showed up, so I…
You won't be talking to AI in natural language for too long
Natural language will make AI accessible. Expert language will make it powerful.
Weekly Links -- 3rd June 2026
Ten Minute Focus, Branding, Design, Motion and more.
What I Learned Building Websites for the Public Sector
For a freelancer, "trusted by the NHS" is the kind of line that makes people look twice. And honestly, it should. Public sector and health work comes with a level of scrutiny that most commercial…
Boston Go BOOM!
Where’s the kaboom? Boston, that’s where!
How Do I Use a Software Ontology?
The interviews are done. Someone sat with the domain expert and committed ontology.md next to the code. Then the quarter got busy. Six months later a report counts the same Customer three times, and…
Build the squad. Own the platform. The org chart will catch up.
My wife Helen, who works in HR, sent me an episode of HR Disrupted last week - Lucy Adams interviewing Andy Doyle from Kantar on putting AI agents into production HR workflows. Andy describes some…
Teasing A Game Concept
Motivation I have had this game idea bouncing around in my head for a long time. Expressive movement, open-world, low-res to permit a lot of speed, and a variety of celestial objects to zip in and…
The SID Chip Is a Reservoir Computer
Reservoir computing says don’t train the dynamics, just train the readout. I used the SID’s analog filter as the dynamics and one ridge regression as the readout. It’s not state of…
Five Levels of Adding AI to Your SaaS App
A practical framework for moving from simple SaaS to an AI-native platform
Beyond Inline Values: Evolving Strata's Storage Engine
An architectural decision record: why Strata is moving from inline values to block-based storage.
Tools That Pause the Loop
In a chat interface, text is the natural medium. The user is driving, and free-form text is the right tool for “here’s where I want to go next.” But sometimes the AI is the one that…
1 in 6,500,000
A chance set of events.
Keyboard-centric web
What if the web was keyboard-compatible
Not a Good Day
The day that, according to people around me, I almost died.
Pi: A coding agent for engineers who own their tools
Claude Code, Codex, OpenCode - great places to start, not best places to finish. Pi is the thin harness that gets out of your way. Here's why experienced engineers should pay attention.