As part of my previous post reverse engineering the Denon XML API I talked about my love for the Golf sound effects in Nintendo Switch Sports, complete with a way to build an ambient soundscape. But where did I get those sound files? There are in-game ambience recordings on YouTube but the sounds are all muddled together, and separating them out is a bit of a nightmare. So where and how do I get them? Let's go exploring!
Read More
My home audio system goes through a Denon AVR-X1700H as the primary receiver. My house has three pairs of ceiling speakers: one in the living room, one in the dining room, and one in the kitchen. When listening to music I want them all streaming from the same Spotify source, but if I'm playing video games I occasionally want Spotify from just the kitchen/dining room. Let's reverse engineer how the app controls the receicver so I can swap from my watch.
Read More
While Elon's purchase of Twitter knocked me off the platform for a bit, I returned for bad political takes, mediocre housing takes, good energy takes, and a surfeit of memes. A tweet recently caught my eye showing off a rigged word search. I wanted to make my own, so I built a generator.
Read More
I will be the first to admit that I'm sometimes bad at responding to texts — but I'm not 112-unread-messages bad, as the notification badge on my Mac makes me out to be. It sits there mocking me, over a hundred messages that despite my best efforts I can never clear. No matter how many times I right-click to try and find them they remain tucked away somewhere, inactionable and yet unread, invisible yet demanding to be seen. "Look at me!" they shout. "You're missing out on the opportunity of a lifetime!"
I've ignored this in the past and tabled it for later: it must stand the test of time. But that time is now. Here's how I used lldb to reverse engineer Messages, found a bug in Apple's code, and fixed my badge.
Read More
My brother Spencer works as an artist in Asheville. He's also into nature conservation, leading a nature journaling class and regularly weaving ecology and local wildlife into his work. When UNC Asheville announced plans to turn a local urban forest into a soccer stadium, he pushed back, in part by raising awareness through birding sessions to show off a Great Horned Owl family and their three owlets living in the forest. Spencer set up a 24/7 camera filming their nest but wanted to livestream that footage and couldn't figure out how — enter me, stage right! While it wasn't easy here's how I eventually made it work (though unfortunately by the time you're reading this they've flown away and the livestream has ended).
Read More
I am doing a series of blog posts diving into 400 Divisadero Street, a defunct car wash and gas station in San Francisco that they're trying to turn into apartments — and have been for over a decade without breaking ground. The reasons for the lack of (visual) progress is multifaceted, but to properly dive into it and explain the timeline I wanted to dig into the raw planning documents. They're widely available as part of SF’s PIM (Property Information Map), but I wanted to download them all locally for OCR, manually review them all, and process them with Claude.
Read More
I am unfortunately spending more and more of my time interacting with LLMs through terminal interfaces. While the sentient silicon churns through thousands of tokens I find myself scrolling short-form videos contemplating next steps, freeing my time up for deeper mental pursuits, and much more importantly (and realistically) getting entranced by the blinking cursors. But how do they work?
Read More
As you may have noticed by my propensity for footnotes sidenotes I love asides. Likewise there are a lot of small things I come across that either aren't meaty enough for a full post, or trend so narrowly technical that I feel hesitant about broadcasting (a reticence my college self didn't share based on my post setting up my router). I still want them to be searchable as a reference for myself and potentially others, but I want them to take up less presence on the blog (and not be sent out in email blasts). The solution? Snippets!
Read More
Back in college I ran a service called Dog-a-Day, where I emailed subscribers a picture of a dog every day, along with a fun caption. This was initially just a Christmas present for my dad but it spiraled into a full service with some ~200 subscribers. I stopped it in 2020 after five years, but am resurrecting it for the month of December as an Advent calendar, complete with a hidden Santa Mouse each day.
Read More
I bought a cheap push button combination lock and fell down a rabbit hole when I realized it didn't matter what order you entered the code in. Check out my teardown of the mechanism and the 3D models I designed to figure out how they worked (and why the manual’s advice to set a 5–7 digit code is so interesting).
Read More