-
Claude Writes Better Image Prompts Than I Do
I asked three LLMs to write an art brief for a pelican riding a bicycle, then rendered all three briefs through the same image model. Only one of them had taste.
-
Using Gemini to Give the Feedback You Know You Should Write
How I built a Gemini Gem to draft specific, growth-oriented feedback on free response questions — turning ten hours of grading into a review-and-personalize workflow.
-
I Forced Claude to Write a JSON Parser in Brainfuck
How I used a CodeSpeak spec to get Claude to build a fully compliant RFC 8259 JSON parser in Brainfuck — and the six bugs it had to debug along the way.
-
20 Years of Banning Phones. We Don't Have That Long for AI.
We spent two decades banning smartphones from classrooms instead of teaching students to use them. We can't afford to make the same mistake with AI.
-
Noodle: Search Like It's Y2K Again
I built a self-hosted search engine that uses LLMs to rank results by relevance instead of ad revenue.
-
Personal Shopper
How a failed startup became an AI prompt—and how you can use it to shop your values at the grocery store.
-
Copper Charlie
A review of the new Copper Charlie battery induction range
-
Swift FractionFormatter 1.0
Properly format fractions in Swift using Unicode (e.g. "1/2" rather than "1/2")
-
Emoji Domains & Mastodon
Getting a Mastodon server running on an emoji domain
-
Bloggin'
Starting to blog again, evaluating static site generators, and settling on Eleventy with Cloudflare Pages for hosting.