Posts
All Blogs Posts and Notes.
Mainlining Nostalgia: Making the Winamp Skin Museum
Thoughts on what I think made the Winamp Skin Museum successful.

Speeding Up Webamp's Music Visualizer with WebAssembly
Writing an in-browser compiler to compile untrusted user-supplied code to fast and secure Wasm at runtime.

The bizarre secrets I found investigating corrupt Winamp skins
I started looking through corrupt Winamp skins and it lead me down some very strange rabbit holes

Grats: A More Pleasant Way to Build TypeScript GraphQL Servers
Bringing Implementation-First GraphQL to TypeScript via a novel static analysis approach.

{transitions} = f(state)
Thinking about the React component tree as modeling a state machine can help clarify the implications of asynchronous updates and React’s concurrent features.

Interesting Bugs Caught by ESLint’s no-constant-binary-expression
I contributed a rule to ESLint that catches a surprisingly wide variety of logic bugs.

This Software is Punk Rock
A reprint of an interview I did with the Italian design magazine Progetto Grafico about Winamp's significance in our digital culture.

Talk: Design as an Optimization Problem
Video of a talk I gave at Speakeasy JS about the engineering and design philosophy behind the Winamp Skin Museum.

Rendering Animated .ani Cursors in the Browser
Technical breakdown of how the NPM module ani-cursor converts .ani files into CSS animations in the browser.

I gave a talk about compiling to WebAssembly in the browser
Video of my TSConf 2021 talk entitled "Faster, Safer: Compiling Untrusted Code to WebAssembly in the Browser".

A VSCode Extension to Clarify Operator Precedence in JS
I wrote a VS Code extension which shows subscript parentheses in your JS code to help clarify operator precedence.

Rendering “modern” Winamp skins in the browser
Writing an interpreter for a custom bytecode opens the door for rendering interactive custom Winamp skins in the browser

Using Machine Learning to Generate Winamp Skins
I used thousands of screenshots of Winamp skins and StyleGAN2 to train an ML model to generate more Winamp skins.

Refresh Hero Avatar Game
I turned my forum avatar image into an interactive rhythm streak game.
Refresh Cannon
I turned my forum avatar image into an interactive projectile aiming game.
Charlie Chaplin's Smile: Ukulele Solo
A solo ukulele arrangement of Charlie Chaplin's 'Smile'.

The Winamp Skin Museum is powered by an sqlite3 database
The Winamp Skin Museum is powered by an sqlite3 database containing 1.2gb of metadata about 86,000 Winamp skins and exposed as a public GraphQL endpoint

This blog has secrets
Shh… this blog has secret features

Generating a 12 hour YouTube video with Python
Making a video that smoothly scrolls through 70k Winamp skins over the course of 12 hours.

Preserving Winamp skins for posterity at the Internet Archive
The story of how the Internet Archive came to preserve over 100k Winamp skins and include Webamp as one of their embedded media players

A nice way to render Markdown in React apps
A pattern for rendering Markdown in React apps directly from an AST without any serialized HTML

How I DDOSed myself with an avatar
An inventive trick with dynamically generated avatar images, or: How I learned the hard way just how motivated people are by leader boards.
2018 Talk by Tracey Jaquith: Webamp at archive.org
Sharing a 2018 lightning talk given by Tracey Jaquith about adding Webamp to the Internet Archive

Building the @WinampSkins Twitter Bot
How my Twitter bot @winampskins works under the hood, how it has evolved over time, and what I've learned from the project.

Electric ukulele ring-tone for Chelsea
While visiting my parent's cabin in the woods, I created a little ring-tone song with my Electric Ukulele for Chelsea.

Open .ani Animated Cursors Online
I made a simple website where you can instantly open and view any .ani file for free.

Client data should not need to exceed O(screen size)
A rule of thumb for thinking about scaling client application state
My first barbershop multi-track: Love Letters
I recorded a multi-track of the barbershop tag 'Love Letters Straight From the Heart'
Surviving Hacker News traffic with the help of free CDNs
Free CDNs are a thing, and they can be put to use almost instantaneously during an unexpected traffic spike.
Implementation-First GraphQL
Defining a meaningful distinction within code-first GraphQL server libraries.
Get alerts when the emails you send are opened
I wrote a script that sends you an email when the image you embed in your emails is opened.
My Git alias for shipping a feature branch
A handy Git alias for merging a feature branch into master and pushing it to the server.
A trick to get consistent checkbox form values
A tehcnique to ensure that unchecked checkboxes submit a value of zero with PHP apps.
The Super Tiny Compiler
A tiny compiler written in JavaScript perfect for hands on learning

Open Goldberg Variations
Sharing one of my favorite music projects: a gorgeous, free - as in freedom - recording of J.S. Bach’s Goldberg Variations

The Commodordion, an accordion made out of two Commodore 64s
Mad scientist combines two Commodore 64s into a chiptune accordion

WhatTheFuckShouldIBeForHalloween.com
Generate infinite sexy Halloween costume ideas.

Markdown Today: Journal from any browser
A private, mobile-first web app that writes your journal directly to Dropbox.

How Winamp2-js loads native skins in your browser
How we get from a binary Winamp skin file to seeing Winamp2-js take on the look of your favorite skin, all within the limitations of your browser.
[Original Song] "Our Love Will Last As Long"
I wrote and recorded a novelty love song for Chelsea.

Silly fach generator
I created a website that will generate silly fach names.
Original Barbershop Tag: You Beside My Side
I wrote a barbershop tag for my girlfriend Chelsea.
Using Notion as my CMS with Next.js
Why I chose to use Notion as the backing CMS for the Notes portion of this site, and the technical details of how it’s implemented

PHP: Avatar Hack
A php script that generates an image for use as an avatar.
Alice 'n The Irving Street Kidz
My friends and I recorded a rendition of 'I Want to Hold Your Hand' by The Beatles.
Video: I Made a $4 Electric Ukulele
I got bored over winter break and make an electric ukulele out of stuff I found in my parent's basement.

Beyond PEP 8 by Raymond Hettinger
An amazing talk articulating how code style can make you miss the forest for the tree

New Song: Ballad of the man who can't sing
I wrote and recorded an original song about not being able to write.
My blog’s audio player
Details on the audio player I’ve added to this blog

Barbershop multi-track: Original cell phone ring tone tag
I wrote and recorded a multi-track of a barbershop tag for my cell phone ring tone.
Play the card game "War" in my avatar
I programed a dynamic avatar that plays the card game war.
Found: "Update on Money Unpaid to Me and Evil Needed to be Stopped"
A chaotic note I found taped to a newspaper vending box.
Found: Three smutty paper airplanes
Three paper airplanes I found in San Francisco with writing on them which is decidedly not safe for work.
My GraphQL Conf 2024 talk: Semantic Nullability
Youtube video of the talk I gave at GraphQL Conf 2024 covering advanced client error handling and its implications for potentially fundamentally solving the problem of pervasive nullability in GraphQL

Drawing mandalas with PHP for my Papa
I wrote a PHP script that generates mandalas based on the size and number of points you give it.
Turning the database inside-out with Apache Samza
This post on scaling data systems taught me to understand Redux
"The Surprise Slide" Ukulele Micro Song
A micro song for Chelsea, written and recorded while she was in San Diego.

Jazz Ukulele "Love Is a Song" from Bambi
I arranged and recorded 'Love Is a Song' from Walt Disney's Bambi on my new ukulele.

From opera to tech
Reflections on my journey from a classical music background to a career in big tech
I did a Q/A with the Reactiflux community
Read the transcript of a live Q/A I did about Webamp and Nuclide.
100k skins: Reflections on the Winamp Skin Museum’s upload flow
A technical breakdown of the Winamp Skin Museum’s over-engineered upload flow, and how it helped create a positive feedback loop

Laravel 4.1 handles ambiguous routes differently than 4.0
Documenting a change in Laravel 4.1 that affects how ambiguous routes are handled.
Speed up Laravel tests with database transactions
How I used transactions to make my tests run eight times faster.
“A Christmas Carol” by Tom Lehrer
Sharing a quick video I made of Tom Lehrer’s very funny song “A Christmas Carol”

FachMe: Find your roles
I built a website to help opera singers discover role which might suite their voice.
I'm glad I factored out jQuery
I refactored Winamp2-js to not depend on jQuery, and learned native JavaScript is not so bad.
Barbershop Happy Birthday For Amanda
I multitracked 'Happy Birthday' for my friend Amanda Ortmayer's birthday.
Implementing Python's Context Manager Pattern in JavaScript
Python Context Managers are a great way to model resources with setup and teardown. Here's how to implement that pattern in JavaScript.
Book: Crafting Interpreters
A glowing review of the book I most recommend to people interested in learning about compilers

I did an interview for the Changelog podcast
I talked about Winamp2-js on the Changelog podcast.
Eight-Part Barbershop Tag In Parallel Fifths
Experimenting with recording every part in a barbershop tag a perfect fifth higher to create jazzy chords.
Next.js’s unstable_cache() demystified
I found some interesting information about Next.js’ elusive unstable_cache API
My old websites
Sharing a hilarious collection of screenshots of websites I built as a kid

Backyard Ukulele Session: Ukulele Videos with Chelsea
Chelsea and I recorded a few songs in our backyard with the help of Beau Lambert.

Kids on Youtube playing my ukulele arrangement
Sharing and reflecting on four videos from Youtube of kids from Malaysia playing a simple ukulele arrangement I made in 2011

Mouth Dreams mashup album by Neil Cicierega
Sheer musical brilliance and hilarity

Multitrack Video: "In My Room"
On New Years Day some friends and I recorded a multitrack video of The Beach Boys' song 'In My Room'.

How Relay Enables Optimal Data Fetching
Sharing a blog post I wrote about what makes Relay so special
SQLite can emit ASCII art diagrams of its parse AST
For debugging purposes you can compile SQLite with special flags to make it print out its ASTs in a special ASCII format

Markdown is great for encoding test snapshots
Making the case for encoding test snapshots as markdown

The Birth & Death of JavaScript
Sharing this classic brilliant, hilarious and prophetic talk about the crazy language that is JavaScript

Breaking into open source
A detailed guide for those who are struggling to find a way to contribute to open source.
Piano Four-Hands Arrangement (Wedding Gift)
As a wedding gift for Chelsea I arranged a piano four-hands version of the song her dad wrote to sing her to sleep.

React’s useTransition and state update reordering
Clarifying how React will sometimes apply state updates out of order when using concurrent features, and a best practice which can help you avoid it.
You can now “read” this blog as a podcast
I wired this blog up to Open AI’s text-to-speech API so you can listen to individual posts or subscribe to the blog as a podcast.

Intro to Vim Talk
I gave a talk at the San Francisco Vim Enthusiasts user group.
Grats’ very nice testing strategy
Sharing a document I wrote about a testing strategy which I’ve found quite effective for Grats

Barbershop multi-track: Lord, You Made the Night Too Long
I recorded a multi-track of the barbershop tag 'Lord, You Made the Night Too Long'
Eager vs Lazy Learning
An observation about the way I learn
An archive of 31k GeoCities badge images
Sharing a collection of 31k website badges scraped from archives of user-generated GeoCities sites

Tom Waits on small print
A great Tom Waits quip on the nature of “small print”

Tom Lehrer on Mozart
Tom Lehrer quote on comparing your successes to those of others

[Ukulele Solo] Never On Sunday
I arranged and recorded a solo ukulele version of the classic song 'Never on Sunday'.

A Vim macro that edits itself to draw a fractal
A virtuosic self-executing Vim macro that renders a fractal in your editor

I think my new paste bin should be immune to takedown notices
I recently released a new website called HashBin which avoids being able to see the content the pastes it helps create.

Web Audio regression in Safari iOS 17 Beta
Documenting a regression, I observed in iOS’ implementation of the web audio API
Super Tiny Type Checker
A minimal JS implementation of a type checker great for hands on learners
Better indent support for PHP in Vim
A .vimrc snippet for better indent support for PHP with HTML.
Setting up PHP completion in Vim
.vimrc settings for PHP completion in Vim
Talk: The Big Ideas in Relay
Sharing the video of one of three talks I gave at GraphQL Conf. 2025. in Amsterdam.

Keynote: GraphQL at Meta
Sharing the video of one of three talks I gave at GraphQL Conf. 2025. in Amsterdam.

Barbershop multi-track: Happy Anniversary Chelsea
I recorded a barbershop tag for Chelsea on our year and a half anniversary.
The Internet Archive is populated by hundreds of gnome-like effigies
The Internet Archive is wild. Eccentric, and all the better because of it

Why there was never a Winamp 4
Did you ever wonder why they skipped straight from Winamp 3 to Winamp 5?
Barbershop Multitrack Tag: Overtone experiment / robot quartet
I recorded a barbershop tag in a robot voice to experiment with overtones.
Reactive GraphQL Architecture
A vision for using GraphQL on the client for local-first apps, apps using e2e encryption, and other apps with heavy client state
[Multitrack] "That's Why I Love You"
I recorded an a cappella version of 'That's Why I Love You' by The Flamingos.
Refresh Cannon Bot
Geoff's Boring Programming Stuff wrote a bot to beat my Refresh Cannon game.
Jazz Ukuele Video: What's New?
I arranged and recorded a jazz ukulele version of the classic song 'What's New?'

"Ah leave me not to pine" ukulele solo
Video and PDF tablature of a Gilbert and Sullivan aria arranged for ukulele.

A Mental Model for Data in UI Applications
A technology-agnostic model of the layers that naturally arise in any reasonably sized application, and the abstract properties of each layer.
Dr. Richard Hipp Lectures on SQLite
SQLite’s creator Dr. Richard Hipp shares the story and implimentation of SQLite

On ephemeral UI, fragile app state, and anxiety
Ephemeral UI make us nervous because we’ve learned that there’s a high likelihood lose our state by accident

The Chrome team is working with the SQLite team on an official Wasm build
SQLite is getting an official Wasm build
SQLite Railroad Diagrams
I love the way SQLite uses these visual diagrams to describe the grammar of their SQL dialect

How the React model tames N by N code complexity
Explaining how exactly the UI = f(state) model tames code complexity
Creating project-specific ESLint rules in a Yarn workspace
How to create custom project-specific lint rules for a repository that is using Yarn Workspaces where ESLint is run from the workspace root
Original Song: "Driving"
I wrote a song for Chelsea after three years of dating.

My brother's minuet
I recorded myself playing a minuet my brother wrote for a music course.
Drawing mandalas with JavaScript and canvas
Rewriting a PHP script from 2008 in JavaScript.

Creating the Shepard Tone audio illusion with JavaScript
The Shepard Tone is an audio illusion that creates the impression of an endlessly rising or falling tone.
Crash Safari with the Web Audio API
Discovering, reproducing, and working around a bug that crashes Safari hard.
Implementing a Robust Web Audio API Balance Node
After more than four years, I'm finally happy with how Webamp implements balance.
Talk: Explaining the MissingNo glitch in the Game Boy Pokemon games
A deep dive into how Gameboy games were written and analyzing the disassembled Pokémon game code to understand the mechanics of the famous glitch that could let you catch MissingNo

Philip Glass Piano Works by Víkingur Ólafsson
Sharing an album I’ve been obsessed with this year

The ABCs Backwards
I learned to sing the alphabet song backwards and recorded it in Golden Gate Park.

Can’t use Shiki (and likely other Wasm-based tools) in Next 13 server components
A bug I hit with Skiki and Next 13
“The Old Dope Peddler” by Tom Lehrer
Recorded another Tom Lehrer song over my lunch break

Fumbling through “Aria” from Bach’s Goldberg Variations
A quick recording I made of myself fumbling through one of my favorite pieces to play at the piano

“A Dream is a Wish Your Heart Makes” (piano/whistling)
Playing Disney songs at the piano on a rainy Friday

“’S Wonderful” by George Gershwin
Snuck in a few minutes to record myself playing through this Gershwin tune on the piano

Why I switched from Vundle to Plug
I've found Plug to be superior to Vundle in several regards.
Barbershop multi-track: Cry
I recorded a multi-track of the barbershop tag 'Cry'
You're underusing Underscore
Ten common mistakes people make when using Underscore, and a linting tool to detect them.
Doo-Wop Multitrack: "Earth Angel" (for Chelsea)
I recorded a doo-wop arrangement of 'Earth Angel' for my girlfriend Chelsea.

I gave a talk: Finding Creativity Through Constraints
In which I discuss how constraints have inspired my creative process as a musician and programmer.

Avoid “straw that broke the camels back” lint rules
A class of lint rules that I think are best to avoid
Lint or Keep Quiet
Code review feedback that could be encoded as a lint rule, should be
Obscure Tom Lehrer song: The Subway Song
Sharing an obscure novelty song

“KillsParentOnException” a lesson in API naming
An internal Meta decorator name which taught me something important about API naming
How I indirectly helped remove stray characters from across the web
I wrote a simple lint rule which detected hundreds of user facing bugs at Meta and inspired my colleague to ship a similar validation to every major JS parser
Backwards ABCs One Step Nerdier
I recorded myself singing the ABCs backwards while playing the ukulele.

I Come To the Garden Alone (For George Morris)
I arranged and recorded the hymn 'In The Garden' on ukulele in memory of George Morris.

Type systems as a mental tool
Type systems lead to clearer thinking and thus better code
My favorite API: Vim Mode
An observation that Vim mode is a type of API
I was on the Changelog podcast again
I caught up with Jerod and Adam about nostalgia, music, file sharing, Napster and the weird stuff I found in corrupt Winamp skins
The Challenges with Client Controlled Nullability
Explaining some of the non-obvious problems with the Client Controlled Nullability GraphQL spec RFC
Your Debut Album (Automated)
I wrote a PHP script that automates a hilarious method for generating Your Debut Album.
no-unused-binary-expressions: From code review nit to ecosystem improvements
How implementing an ESLint rule led to changes in how people write JavaScript
The tangibility of SQLite databases
For some reason SQLite databases feel more “real” to me
Alvin sings Schumann's Widmung
I tricked my professor into thinking I found a recording of the Chipmunks singing Schumann's Widmung.
Barbershop multi-track: Who'll Take My Place When I'm Gone
I recorded a multi-track of the barbershop tag 'Who'll Take My Place When I'm Gone'
"Lazy Afternoon" Barbershop Tag
I wrote and recorded a barbershop tag for Chelsea.

Found: Henry system of music transcription
A strange document I found on the ground which refers to an unknown music transcription system.
Disassembling Winamp with Ghidra to find the Maki interpreter
Sharing my n00b attempt at disassembling the Winamp binary

Multi-track Jazz Standard: Everything I have is yours
I record a multi-track of the jazz standard Everything I Have is Yours, with strange harmonies.
[Original Song] "Parking Garage"
I recorded a short song in a parking garage.
Free Edition of Charles Gounod’s Le Crucifix
I typeset a Creative Commons edition of Charles Gounod's a cappella choral work 'Le Crucifix'.

I Love You Truly [Ukulele Mp3]
I arranged and recorded 'I Love You Truly' on electric ukulele for Chelsea.

Chelsea's Text Tone [Ukulele]
A tiny ukulele track for Chelsea's iPhone text tone.

Papageno's Glockenspiel-kulele [Ukulele Ringtone]
A ringtone for Chelsea based on Papageno's Glockenspiel music from Mozart's The Magic Flute.

Compiling to AST
A pattern for tracking location information when compiling to a high level language

A Tour of Winamp2-js Features
Demo videos of Winamp2-js' more interesting features with notes on how they are implemented.

We're Going To Be Friends (White Stripes Cover)
I recorded a cover of 'We're Going To Be Friends' by the White Stripes with multiple voice parts and ukulele.
I Wish I Had The Time [Ukulele/Vocal Multitrack]
I wrote and recorded a song about not having time to write songs.

Some statistics are just a function of term definitions
A class of statistics to look out for when evaluating statistical claims
My two takeaways from Getting Things Done
The main idea that’s stuck with me from the self help book “Getting Things Done”
An SQL murder mystery
A fun murder mystery in the format of an SQLite database

Code golfing interview questions
A very silly code golf solution I came up with that I’m still amused by ten years later
“Cool S” as a Unicode standard
There was once a proposal to codify the ”cool s” as a unicode character

A verbose version of The Night Before Christmas
Sharing a humorous rewrite of a classic poem that would often get pulled out around Christmas time during my childhood
The Winamp Skin Museum has a secret debug mode
Shhhh. Don't tell anyone, but the Winamp Skin Museum has a secret debug mode.

A Winamp Skin Detective Story
Tracking down the cause of some mysteriously corrupted Winamp skins

My one, awkward, Winamp Skin
Despite spending a fair portion of my adult life thinking about keeping Winamp skins accessible and preserved. But I was never a real skin creator myself.

I archived all the Tweets referenced by my blog
Preserving Tweets
The Ultimate Game Boy Talk
An amazing deep dive into how the Game Boy’s hardware works and the way that forced games to be written

On sheet music and software APIs
Reflections on the parallels between sheet music notation and software
Itsy Bitsy Data Structures
Sharing this repository which teaches data structures through charmingly commented JavaScript implementations

List Out of Lambda
Sharing a brilliant post in which Steve Losh shows, in JavaScript, how you can build up the constructs of arithmetic and eventually arrays using only lambda functions

I was interviewed for a podcast
My work interviewed me as part of their "employee spotlight" series.
Bob Nystrom explains the Pratt Parser algorithm
Sharing Bob Nystrom’s excellent blog post explaining the Pratt Parser algorithm which offers a very clean way to model operator precedence
Introduction to Compiler Construction by Christoph Kirsch - University of Salzburg
An online compiler course which I found quite helpful
Mermaid: A little embeddable language for charts and diagrams
A delightful little language for describing diagrams
Growing a Language, by Guy Steele
A tech talk which is as structurally and linguistically virtuosic as it is insightful

Endlessly rising Shepard Tone
I created the Shepard Tone audio illusion using Lilypond.
Webamp can pose for the camera
Webamp.org has a feature that lets it pose as if it were in action

Teenagers making Winamp skins in 2025
Hack Club is running a program where teens who make a Winamp skin, and upload it to the Winamp Skin Museum, will be rewarded with a prize

Winamp in Your Pocket: 63 artist depictions of physical Winamp players
A massive dump of every 3D rending and artist concept of physical versions of Winamp

Hyper-Reality
This incredible 2016 video presents a dystopian, visually opulent, and depressingly believable augmented reality future.

Cracking the Cryptic: Variant Sudoku Youtube Channel
A channel that make the logic and brilliance of advanced hand crafted puzzles accessible and appreciable by us mortals

“A Glorious Dawn”, a brilliant remix of Carl Sagan and Stephen Hawking
I still frequently think about this 16 year old remix

Spike Jones Presents a Xmas Spectacular
My favorite Christmas album

Hamburger Helper released a rap album
Title says it all

This 11 second mashup has ruined the Friend’s Theme Song for me
Brilliant, hilarious mashup of two entirely different musical moments

Podcast episode on the history of the Real Book
An excellent podcast episode detailing the early music piracy of jazz fake books and their codification as the Real Book

Why linting errors should cause tests to fail
Making the case against allowing linting errors in master.
Video: Barbershop tag taught with hand signs
I recorded a video multitrack of a barbershop tag, showing all four parts in sol-feg hand signs.

Wireless Xbox controllers work with Macs
TIL Xbox controllers “just work” with Macs, and you have a lovely nostalgic evening playing Mario 64 in an emulator

Mac OS X keychain fix
How to fix a corrupt keychain file on Mac OS X
Fixed the two major problems with the MAME cabinet
Update on my MAME cabinet project.
Only the first and last letters of a word need be in the right place
A made a script that scrambles the inner letters of words but, surprisingly, leaves them still readable.
PGP Desktop was causing OS X to run slowly
Sharing an issue I found where PGP Desktop was causing my computer to run slowly.
Issue tracking for your workflow
I've been using GitHub issues to track problems with my workflow.
Prevent MacOS from inserting a period after two spaces
How to disable the feature of MacOS that auto inserts a period after typing two spaces
Mary Had a Little Lamb - Parallel Fifths
My dad and I recorded a version of Mary Had a Little Lamb where I sang and played the same song a fifth above.

Irving Berlin's "Blue Skies" on Eleuke electric ukulele
I arranged and recorded Irving Berlin's 'Blue Skies' on my new Eleuke electric ukulele.

Videos: I used to sing with a men’s chorus
Youtube videos of a choral group I used to sing with

Listen Faster: How I Found 30 Extra Hours in My Week
I've added the equivalent of 30 hours to my week, all dedicated to reading and listening.

I talked about Winamp2-js on the Zeal Interestings Podcast
I appeared on the Zeal Interestings Podcast to talk about Winamp2-js.

The game Snake in 90 lines of JavaScript
I wrote a minimal implementation of the game Snake in JavaScript.
Avoid name-spacing GraphQL mutation fields
Explaining why nesting your mutations inside GraphQL types is problematic
Barbershop multi-track: I Love To Sing 'Em (Best tag so far!)
I recorded a multi-track of the barbershop tag 'I Love To Sing 'Em'
Barbershop Multitracks with Zane
I recorded two barbershop tags with my friend Zane Fiala.
Found: Socrates Myspace Page
A drawing I found depicting what Socrates' Myspace page would look like.
Found: Envelope of old photos and slides
I found an envelope of old photos and slides in a PG&E bill return envelope.
Found: "still, the fire hasn't burnt out yet for us Baby, just keep holding on to me Alfonso"
I found a letter in which the writer tries to assure the recipient that the fire hasn't burnt out yet for them.
Happy Birthday/PhD Nathaniel: "That's Mathematics"
I got my family to record a math themed song for my brother's birthday and graduation.
Colors of The Wind (Alice n' The Irving Street Kidz)
My friends and I recorded a cover of 'Colors of The Wind' from the major motion picture _Pocahontas_.

Tom Waits' "Ol' 55" for Jared and Kathleen [Ukulele]
I recorded a simple version of Tom Waits' 'Ol' 55' for my friends Jared and Kathleen's wedding.

Walking Away [Ukulele]
An original song from the vaults. Recorded on my first ukulele into my first (MacBook) laptop.

Vim Awesome: Talk at the San Francisco Vim meetup
Video of a talk I gave introducing and explaining Vim Awesome.

One way "curl pipe sh" install scripts can be dangerous [proof of concept]
One way in which 'curl pipe sh' install scripts can be dangerous.
Gzip hates your DRY code
How to remove code and still increase your library weight.
?? "" is a Code Smell
Defaulting to empty string is a lie we tell our type checker.
On software becoming a prestige job
Reflecting on how the reasons people pursue software engineering has evolved
On grinding
Thoughts on the tradeoff of not grinding
Seeing Beyond Edge Cases
How my thinking about edge cases has evolved as I’ve grown as a software engineer
Software at Scale
On scaling software to large numbers of developers, not just large amounts of data
On persuasive technical writing and clarity of thought
How technical writing forces clearer thinking
Becoming a local subject matter expert
Expertise is a self fulfilling prophecy
Why UrlMe.me failed
Reflections on why my side project meme generator never caught on

Will Mastodon eventually end up centralizing like email?
Thoughts on the future of Mastodon
Why use the Relay Connection Spec?
My response to a Reddit user’s question about the value of the Relay Connection Spec

“Alexa, add half & half”
The funniest Alexa interaction I’ve ever had
Elf Storage
Probably the funniest vandalism I’ve ever seen
Life, a fatal STD
A humorous quip by my high school sociology teacher
An old engineer’s tale
My dad‘s reframing of a sexist idiom
“Thank you for teaching me”
A charming moment of recognition when helping pick up litter with my daughter
Laravel’s obsessive comment style
An insane detail that points to the obsessive approach Taylor Otwell took with Laravel

Falsehoods programmers believe about music genres
Did you know that the ID3 metadata tagging system hard coded the entire set of music genres? Some of the ones that got included are hilarious.
A GraphQL Maturity Model
I believe the benefits of GraphQL are fundamentally under-realized. Most organizations fail to capture much of the value it can provide.
Php only serving one page at a time [fix!]
I uncovered the reason why my php server was only serving one page at a time.
The two characters that were destroying our CodeIgniter sessions
Documenting a bug in CodeIgniter that causes sessions to be irretrievable.
Acceptance testing with Codeception and Vagrant
How to get Codeception acceptance tests working in a Vagrant workflow.
Testing emails with Codeception
A Codeception helper to test emails sent by your application.
Writing a custom Codeception module
How to write a custom Codeception module and distribute it as a Composer package.
Globally install PHP command-line tools with Composer
How to install CLI tools with Composer.
My personal search engine
A little web service I wrote to help myself
Partitioning complexity
Sharing Kent Beck’s excellent article describing how we can find modes of working which can help manage complexity as it scales
Hal fixing a light bulb (what software development always feels like to me)
This clip from Malcolm in the Middle perfectly encapsulates the experience of trying to get anything done with software

Windows93.net
One of the most fascinating pieces of software art/trolling/humor I’ve ever seen

Diagnostics are the UX of a compiler
Sharing an insightful observation about the role diagnostics play in compiler design
JSFuck: Express any JavaScript program with just six characters
Express any JavaScript code with just these six characters

Extracting a beloved Pokémon from a corrupted save game
Sharing a YouTube video of an awesome ROM hacking rescue mission

Sentimental Versioning
Sharing a great post about software projects with unique versioning schemes
How to build a typeahead
Sharing the canonical post on how to properly build a typeahead. It’s much more complicated than it first appears
Universal Paperclips
An amazing minimalist video game where the medium is the message

Admiral Grace Hopper Explains the Nanosecond
Great way to conceptualize very small increments of time

Jones Forth
A prodigiously commented implementation of the Forth programming language in x86 assembly. So clearly communicated even I could mostly follow it

BBC micro:bit
A beautiful, inexpensive single board computer for teaching kids to program

Sudoku Set Equivalence Theory: The Phistomefel Ring
An incredible property that all sudoku puzzles have which can be proven with set theory

A C program whose source code forms a Magic Eye
What if you wrote a program to generate magic eyes. What if that program’s source code was itself a magic eye!

Redbean
A software system that is brilliant in its simplicity
Mother Earth Mother Board
One of my favorite tech long reads of all time
Mathgen: Randomly generated math papers
My brother’s brilliant software project capable of generating shocking convincing, yet hilariously silly, Math papers
Cracking the Cryptic iOS Sudoku App
Recommending a great iOS sudoku app
The Book of Shaders
A wonderful, and free, book for learning about GPU shaders
Pixel Spirit: Gorgeous tarot deck with GLSL shader code
A luscious gift for anyone in your life interested in shaders. Maybe yourself?
Build your own LEGO fidget toy
A simple but captivating fidget toy you can build out of LEGO

A C program who’s source code is a Magic Eye
A 2001 International Obfuscated C Code Contest winner who’s code forms a magic eye and which can produce a magic eye for any input

Winamp Skin Mosaics
Generating photo mosaics from Winamp Skins

Youtube also caught my choir
Sharing a youtube video of the choir in which I sing.

SFSU Chamber Singers sing for ACDA
A video of my choir singing at St. Boniface Church in Anaheim, California.

Video: Overtone singing
I experiment with overtone singing.

Further Backwards ABCs Foolishness
I sing the alphabet song with the melody backwards, the words backwards while showing solfegge hand signs and conducting.

Official LEGO white noise album
Did you know LEGO has an album on Spotify?

A video of my wife and I singing Mozart’s Requiem
A video from earlier this year of my wife Chelsea Hollow and myself singing the soprano and bass solos in Mozart’s Requiem

[2012] FachMe mentioned on Voicebox
Recalling the time in 2012 when my opera related software project was discussed on a local public radio program

[Multitrack] Gilbert + Lisa 30th Anniversary
I recorded a little audio drama for my parents 30th wedding anniversary featuring characters and musical excerpts from the hilarious musical Forever Plaid.
Podcasts I like
A summary of the podcasts to which I subscribe.
Making the case for building something useless
Why I'm perfectly happy to have built something that nobody really uses.
UrlMeme: Make memes anywhere you can type a URL
I made a meme generator where the URL is the user interface.

Chord notation is a domain-specific language
Reflecting on parallels between chord notation and software language design
My friends and I meet Thomas Hampson
My one interaction with the famous baritone Thomas Hampson

Aliasing alias
The time I accidentally aliased the command alias and fork bombed myself
Infinite javascript array using AJAX
A simple way to asynchronously load suggestions into an array in JavaScript.
Functional JavaScript: Learn by refactoring
Learn the basics of functional programming by iteratively refactoring imperative code.
Have you tried rubbing a database on it?
A collection of mad science talks applying the ideas of databases to all kinds of different problems
Shrewd Simon Short
I recorded myself reading a tongue twister story about Shrewd Simon Short.