Speedrunning is when you try to complete a video game as fast as possible. You can speedrun individual levels, you can speedrun specific categories like 100% where you try and collect all items and complete all quests, etc. but the main category is Any% — get to the end as fast as possible, anything goes. For many games an Any% speedrun looks similar to someone playing the game normally, albeit with a lot of skill. But for some games the Any% run looks completely different, like Super Mario World's current 41-second World Record. How do people come up with these? Using Harry Potter and the Philosopher's Stone for the GameBoy Advance, I'm going to do a technical deep dive into the Any% speedrun and how you could discover it starting from scratch.
Read More
I subscribe to a lot of email newsletters (Vox, We're Here, Tom Scott, Money Stuff and Heatmap News among many others) all of which I enjoy...but maybe don't always read. I don't want to unsubscribe because I do read them, but I don't need Dropout.tv's episode announcement from three weeks ago floating around in my inbox. Ideally if I don't get to them they could quietly be purged in the background, but the default Gmail and Apple mail filters don't support delayed filtering. But Google Scripts does!
Read More
The iOS compass app is great for pointing north. But what about if you want to point somewhere else? This was a quick two-hour project to whip up a web app for pointing to a static location, much like Jack Sparrow's compass from the Pirates of the Caribbean.
Read More
The average American spends 4h30m on their phone each day. I've done some things to curb this in the past (see my post on Grayscale Lock which you can now do on stock iOS with Shortcuts!) but the number one thing I've found to work is using the built-in Screen Time tools. You may have tried this and found yourself just typing in the code to bypass the limit, but here's the twist — I don't know my code.
Read More
Fitness SF has a number of great gyms around the Bay Area, but their app can be slow to load, and having to open it every time to scan in was annoying. Apple Wallet passes solve this problem by allowing you to set locations where it will auto-prompt showing a QR code if you're in the radius. The app doesn't let you create an Apple Wallet pass (or even screenshot the QR code), so let's make our own!
Read More
I have the Roborock S7 MaxV, and it's fantastic. It automates vacuuming and mopping, keeping my allergies under control at the touch of a button. I have a number of routines that I use, and wanted to schedule some of them to run. This is built into the app, but only allows you to do this for set times and days. I instead wanted to automatically suggest a full clean when I left the house (max once/day) where I could approve/disapprove, but was blocked by the poor integration between the iOS app and the normal way to do this kind of customized triggering, Shortcuts.
Read More
The Books app on iPhone (previously named iBooks) allows you to highlight text and leave notes. Unfortunately there's no good way to export these, as the information isn't stored in the ePubs themselves. The information is saved in the Media folder though, which is accessible from iPhones over USB. I built an app to read this into a searchable UI without having to install a bunch of software or pore through full backups.
Read More
I noticed a while back that a lot of new romantic comedies (especially those pumped out by streaming services like Netflix and Amazon Prime) have optimized their formulas to the point that you can predict basically the whole plot from just the title and movie poster. To bring a little more spice into them, I started playing bingo with common tropes. To make it easier, I built a website that allows you to build a bingo board out of your own tropes and some defaults, and then compete to get bingo first (or in many cases, as many bingos as possible)!
Read More
I've been getting into crossword constructing, but found the initial process of staring at a blank 15x15 grid to be one of my least favorite parts. Just like themes and seed entries can be good ways to get a foothold, I ended up building this tool to allow you to explore interesting constructions through an interactive heatmap of previous NYTimes puzzles. As you place black squares into the grid it will update the heatmap to only show grids that include those black squares (though ideally you should diverge from history: 70% of published puzzle grids are novel).
Read More
Back in 2016 I wrote some code to automatically transcribe 'Pearls Before Swine' comic strips to make them searchable. At the time, this transcription relied on Tesseract, the "state of the art" OSS OCR program. As part of that I used a segmentation algorithm based on linear whitespace to separate the original strip into boxes, and then attempted to do something similar for the bounding boxes of the text. This had a lot of problems, in part because the OCR program was not that good on the handdrawn font, in part because the dialogue boxes were inconsistent (which you can see in the image below), and in part because my code wasn't very good.
Read More