Blog
-
Handwriting Is an Inheritance. Typing Is a Right.
Vox says we lose something when we stop writing by hand. True — but typing, not handwriting, is the foundational literacy of the future, and the more humane and universal of the two.
-
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.
-
The Future of Product Development
After winding down DevSweet and seeing the same product-development issues at Apple, Nest, and Google, why I joined Tara AI to build a smarter toolchain.
-
Ember FastBoot + Google App Engine
A guide to getting EmberJS FastBoot running on Google App Engine with the Node.js runtime in just seven lines of config.
-
Leaving the Nest
After over five and a half years at Nest, a reflection on leaving to pursue building better developer tools.
-
An Update on Taco Truck Tuesday
An update on the Taco Truck Tuesday initiative to bring food trucks to polling places on Election Day, with a list of food truck organizations to contact.
-
Taco Truck Tuesday
A proposal to get food trucks to set up at polling places on Election Day as a celebration of diversity and entrepreneurial spirit.
-
Unicode Chicken Dot TK
Registering an emoji chicken domain name and navigating the quirks of Unicode URLs across browsers and social networks.
-
CoverLeaf magazines can still be read for free
Discovering that magazine page images from CoverLeaf's iPad app are freely accessible via predictable URLs, with a script to download them.
-
MAKE RSS Feed Generator
A walkthrough of building a tool to auto-generate RSS feed URLs for MAKE magazine subscriptions on CoverLeaf, including the reverse engineering process.
-
How CoverLeaf could use my hack to make a mint
A proposal for how CoverLeaf could turn their PDF magazine distribution into a real revenue stream for smaller publishers in the post-iPad world.
-
Read MAKE on your iPad
How I discovered unprotected PDF download links on CoverLeaf's magazine platform and turned them into an RSS feed for reading MAKE on the iPad.
-
Running JSLint with Safari's JavaScript Core
A launcher script for JavaScript Core that lets Mac users run JSLint from the command line without installing anything extra.
-
iBank for iPhone
A web-based iBank interface for iPhone using iUI, syncing financial data through MobileMe iDisk.
-
Chicken Subculture Resources (Updated)
A curated list of chicken farmers fighting the system, from urban chicken advocacy groups to news coverage of the backyard chicken movement.
-
iBank Tapp
A telekinesis tapp for entering transactions into iBank directly from your iPhone.
-
Poultry Underground
Discovering the Mad City Chickens political movement in Madison, Wisconsin and the broader urban poultry underground.
-
Stay of Execution
A visit to City Hall reveals that the city council has tabled the chicken issue and hired a lawyer to review the matter.
-
PoultryGate
Strategic advice from a grandfather on how to petition city council for a waiver to keep backyard pullets.
-
Letter to City Council
A formal response to the City of New Auburn regarding an alleged violation of the anti-livestock ordinance, arguing that pullets are working animals, not livestock.
-
City of New Auburn bans Chickens
A letter from the City Council of New Auburn, MN regarding an alleged violation of the anti-livestock ordinance within city limits.
-
Pullets Forever
A neighbor's dog attacked my chickens, leading to a confrontation with local politics and an uneasy resolution.
-
iPhone Theme
A Mac OS X-inspired theme for Sony Ericsson T600 series phones.
-
Gingerbread Mac
Holiday cookies taken to the next level with a gingerbread Mac Classic, complete with a Fruit Rollup Apple logo and gummy power cord.