RSS.Social

Evan Hahn (dot com)

follow: @[email protected]

Posts

human.json

How I use generative AI on this blog

Introducing llm-eliza

The two kinds of error

Notes from February 2026

Introducing gzpeek, a tool to parse gzip metadata

Track Zelda release anniversaries in your calendar

Notes from January 2026

An LLM that's 7500× stupider

A mental math heuristic to convert between Fahrenheit and Celsius

I set all 376 Vim options and I'm still a fool

Notes from "On Writing Well"

Notes from December 2025

Prediction: Mastodon will outlive Bluesky

Notes from "Bad Company: Private Equity and the Death of the American Dream"

How I implemented relative imports with Pyodide

I made a little audio speed calculator

Notes from November 2025

Draft: Stopping bad guys from using my open source project (feedback wanted)

Notes from "The Story of the Typewriter"

Experiment: making TypeScript immutable-by-default

Fizz Buzz without conditionals or booleans

Kirby Air Riders demo impressions (from a big fan of the original)

"Understanding Unicode": my October 2025 talk at Longhorn PHP

Notes from "Tor: From the Dark Web to the Future of Privacy"

Notes from October 2025

Scripts I wrote that I use all the time

Notes from September 2025

People read your blog in many different ways

@ts-ignore is almost always the worst option

JS fetch converts string request bodies to UTF-8

Notes from August 2025

Notes from July 2025

Notes from "The Weather Machine: A Journey Inside the Forecast"

Notes from "Where Wizards Stay Up Late: The Origins of the Internet"

Local LLMs versus offline Wikipedia

Simple macOS script to extract text from images (OCR)