Jordan Eldredge

Items tagged "note"


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


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


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


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


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


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


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


My blog’s audio player

Details on the audio player I’ve added to this blog


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


Beyond PEP 8 by Raymond Hettinger

An amazing talk articulating how code style can make you miss the forest for the tree


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


“A Christmas Carol” by Tom Lehrer

Sharing a quick video I made of Tom Lehrer’s very funny song “A Christmas Carol”


Book: Crafting Interpreters

A glowing review of the book I most recommend to people interested in learning about compilers


My old websites

Sharing a hilarious collection of screenshots of websites I built as a kid


Turning the database inside-out with Apache Samza

This post on scaling data systems taught me to understand Redux


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


From opera to tech

Reflections on my journey from a classical music background to a career in big tech


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


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.


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


How Relay Enables Optimal Data Fetching

Sharing a blog post I wrote about what makes Relay so special


Client data should not need to exceed O(screen size)

A rule of thumb for thinking about scaling client application state


Next.js’s unstable_cache() demystified

I found some interesting information about Next.js’ elusive unstable_cache API


Mouth Dreams mashup album by Neil Cicierega

Sheer musical brilliance and hilarity


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


The Birth & Death of JavaScript

Sharing this classic brilliant, hilarious and prophetic talk about the crazy language that is JavaScript


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


Eager vs Lazy Learning

An observation about the way I learn


A Vim macro that edits itself to draw a fractal

A virtuosic self-executing Vim macro that renders a fractal in your editor


Super Tiny Type Checker

A minimal JS implementation of a type checker great for hands on learners


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


“KillsParentOnException” a lesson in API naming

An internal Meta decorator name which taught me something important about API naming


Dr. Richard Hipp Lectures on SQLite

SQLite’s creator Dr. Richard Hipp shares the story and implimentation of SQLite


The Internet Archive is populated by hundreds of gnome-like effigies

The Internet Archive is wild. Eccentric, and all the better because of it


SQLite Railroad Diagrams

I love the way SQLite uses these visual diagrams to describe the grammar of their SQL dialect


Why there was never a Winamp 4

Did you ever wonder why they skipped straight from Winamp 3 to Winamp 5?


The Chrome team is working with the SQLite team on an official Wasm build

SQLite is getting an official Wasm build


Web Audio regression in Safari iOS 17 Beta

Documenting a regression, I observed in iOS’ implementation of the web audio API


How the React model tames N by N code complexity

Explaining how exactly the UI = f(state) model tames code complexity


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.


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


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 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


The tangibility of SQLite databases

For some reason SQLite databases feel more “real” to me


Obscure Tom Lehrer song: The Subway Song

Sharing an obscure novelty song


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


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


An SQL murder mystery

A fun murder mystery in the format of an SQLite database


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


Videos: I used to sing with a men’s chorus

Youtube videos of a choral group I used to sing with


The Challenges with Client Controlled Nullability

Explaining some of the non-obvious problems with the Client Controlled Nullability GraphQL spec RFC


Avoid name-spacing GraphQL mutation fields

Explaining why nesting your mutations inside GraphQL types is problematic


Why use the Relay Connection Spec?

My response to a Reddit user’s question about the value of the Relay Connection Spec


Disassembling Winamp with Ghidra to find the Maki interpreter

Sharing my n00b attempt at disassembling the Winamp binary


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


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


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”


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



“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.


Compiling to AST

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


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


Code golfing interview questions

A very silly code golf solution I came up with that I’m still amused by ten years later


On sheet music and software APIs

Reflections on the parallels between sheet music notation and software


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


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


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


Webamp can pose for the camera

Webamp.org has a feature that lets it pose as if it were in action


Spike Jones Presents a Xmas Spectacular

My favorite Christmas album


Hamburger Helper released a rap album

Title says it all


Official LEGO white noise album

Did you know LEGO has an album on Spotify?


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


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.


My personal search engine

A little web service I wrote to help myself


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


Chord notation is a domain-specific language

Reflecting on parallels between chord notation and software language design


Will Mastodon eventually end up centralizing like email?

Thoughts on the future of Mastodon


Why I’m so stressed following Elon’s Twitter 2.0

A vulnerable reflection


“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


My friends and I meet Thomas Hampson

My one interaction with the famous baritone Thomas Hampson


“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.


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


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


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


Grats’ very nice testing strategy

Sharing a document I wrote about a testing strategy which I’ve found quite effective for Grats


Winamp Skin Mosaics

Generating photo mosaics from Winamp Skins


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