Posts whose title or text contains one of these words are left out of every view.
Whole words only: ai catches "AI-generated" but not "openai". Add a star for word beginnings: llm* catches llm and llms.
99 words is the limit
http://sethmlarson.dev
22 posts
Tech 50% · Gaming 45% · Life 5%
Subscribe via RSS
This blog post was inspired by discovering that Pokémon Box: Ruby & Sapphire, a legendarily rare and expensive GameCube game in the United States (>$2,500 USD), could be purchased complete-in-box (CIB) in Japan for $50 USD. That's a savings of $2450, or ~98% of the US price. This is a somewhat extreme example: in the US market Pokémon Box was only sold online and at a single store: the Pokémon Center in New York City. This big price difference between regions got me thinking: what other games…
Some internet standards only support ASCII characters, but the world uses much more than the Latin alphabet. Thus, a mapping from Unicode to ASCII for use in domain names is required. NamePrep was part of that solution, defined in RFC 3491 as a profile of StringPrep, and is crucially a component of Internationalizing Domain Names in Applications (IDNA), also known as “IDNA 2003”. The StringPrep algorithm is defined in RFC 3454. IDNA 2003 has been obsoleted by IDNA 2008 defined in RFC 5890,…
Moments ago I just finished playing “htmx 4: the game”, the first JavaScript library published exclusively for Game Boy and Game Boy Color. I've recorded my play session and published the video to YouTube: When I first saw this announcement it was pure blog bait for me. Game Boy, open source software, reverse-engineering, oh my. I purchased the cartridge within moments of seeing the announcement. The Game Boy cartridge arrived earlier today inside a custom cardboard box and plastic case which I…
Another day, another extracting ROMs from GameCube titles mini-tutorial. This time it’s the PAL Legend of Zelda: Wind Waker Bonus Disc that I recently purchased from Kraków, Poland. This disc contains two N64 games: Legend of Zelda: Ocarina of Time and the “Master Quest” version of Ocarina of Time. Let’s extract those ROMs from the GameCube ROM so we can play on other emulators. Going from a GameCube disc to an ISO ROM is the usual process, for me that means using the FlippyDrive Disc Backup…
While I was in Kraków, Poland during EuroPython 2026 I was able to sneak away from sprints and buy a few PAL region GameCube games for my collection. This was on Sunday, which means that many stores are closed until Monday... except for one! “Game Over” was open and the owner was very friendly and chatted with me as I browsed the selection. I purchased three complete-in-box games: The Legend of Zelda: Wind Waker & Ocarina of Time Master Quest (UK), Pikmin (UK), and Billy Hatcher and the Giant…
I delivered this talk at EuroPython 2026, I'll update this blog post once the recording is available on EuroPython's YouTube channel. Below are the slides and full list of links and resources included. This talk is a continuation of a talk I gave a year ago: “Security Work isn’t Special” as the keynote for OpenSSF Community Day NA where I lamented on how security work didn't match other Open Source contribution models like documentation, community, or code contributions. My work as the Security…
The Legend of Zelda: Four Swords Adventures (FSA) was released for the Nintendo GameCube in 2004 in Japan and America and 2005 globally. The game is split into eight areas with three levels per area. Data miners discovered that there were 8 levels that were cut late into development of the game that were all mostly playable. These cut levels can be seen on The Cutting Room Floor. In 2021 a game modding and localizing group named “Eternal Dream Arabization” and $$$Link created a mod for FSA…
Mario Kart World for the Nintendo Switch 2 adds a new unique game mechanic for the series where courses that neighbor each other in the sprawling world map can physically and thematically morph over a short transitionary “lap”. These course-connecting laps are commonly called Routes or “Intermission Tracks”. There are 202 routes connecting the 30 courses in Mario Kart World, some of which change depending on your direction between courses. This new mechanic enables what I consider the highlight…
I was among the delegation of “open source experts” invited to the UN Open Source Week 2026 in New York City by the Sovereign Tech Agency. Thank you to the Sovereign Tech Agency for inviting and supporting my stay and travel for the event. Thanks to Alpha-Omega for sponsoring my position at the Python Software Foundation. UN Open Source Week is a week-long event with a different focus for each day. In order, the focuses were: Maintain-a-thon (UN Tech Over), Open Source × AI, Digital Public…
I'm in a few Discord servers of friends and we get together in-person regularly. Whenever I was the one organizing an event I would attempt to ping everyone details in the Discord using @here. After the initial ping I would usually follow-up with folks over text, which is fine and expected part of organizing. More often than not, invitees would be way more responsive over text than over Discord. I created an SMS BCC tool because of how effective texting is for organizing events. Turns out that…
Today I was reviewing a pull request for some Python code when I saw a semicolon in the diff. Screenshot provided below, which as we all know is the best way to share text on the internet: I was just about to leave a comment, but then I scrolled the page a bit and... Ah. Time to clean my laptop screen then... 🧼🫧 Thanks for reading ♥ I would love to hear your thoughts! Contact me via Mastodon, Bluesky, or email. Browse the blog archive. Check out my blogroll.
Three months ago I saw that PyCharm shipped with a “Full Line Completion” plugin that “uses a local deep learning model to suggest entire lines of code”. These suggestions manifest as whole-line suggestions after you start typing and can be accepted with Tab. Essentially auto-complete for entire lines. I decide to test this functionality. I started by writing import urllib3, created a new line, and then typed u and received a suggested completion for the line marked below with a dashed border.…
Happy Donut Day (and #FediDonutFriday) to those who celebrate! 🍩 Present and Correct shared a link to the Mister Donut museum on Bluesky and upon clicking through I was greeted with a familiar face: a chocolate ring donut. Strangely, I've seen this chocolate ring donut before: from the hours staring at sprite-sheets from the Super Smash Bros. and Kirby Air Riders franchises. That donut looked just like the one from Super Smash Bros. Brawl. “But Seth”, I hear you say, “chocolate ring donuts all…
It's impossible to objectively quantify art, but we try anyway. For example: Is “Super Mario” a good video-game franchise? Looking at review scores, Super Mario includes some of the most universally-acclaimed games ever published: Galaxy, Galaxy 2, and Odyssey are respectively the #4, #5, and #13 highest ranking video-games of all time on Metacritic, all with 97 overall. Chances seem good? What if we tried quantifying art in a different and slightly more reductive way? This blog post introduces…
When Epilogue announced the Retrace app for iOS and Android I was over the moon excited. In theory this meant I could archive ROMs from the GB Operator directly to my iPhone where I play the games with the Delta emulator. This meant I wouldn't need to ferry ROMs between the GB Operator to my laptop to my phone. Unfortunately I ran into two hurdles with my plan, if you were able to get Retrace to work with a pre-USB-C iPhone let me know. Upgrading the GB Operator firmware First I saw that the…
Let's say you are the maintainer of a Python library that depends on another Python library like “urllib3”. Because you want to make sure users receive a compatible version of urllib3 you add a version specifier that restricts the version to the current “major” version so users know that older versions aren't compatible. This is what your pyproject.toml might look like: [project] name = "example-library" dependencies = [ "urllib3>=2", ] Now let's say that urllib3 publishes a vulnerability that…
Kaeru no Tame ni Kane wa Naru (カエルの為(ため)に鐘(かね)は鳴(な)る) is a Japanese-only Game Boy title published in 1992 by Nintendo and developed by Intelligent Systems. The title’s official English translation is “The Frog for Whom the Bell Tolls”. For brevity, I’ll be using the title “Frog Game” in this article. After I finished Link’s Awakening, the Frog Game started popping up everywhere in my digital life. The first occurrence was without my knowledge: some of the characters in Link’s Awakening, Prince…
My work as the Security Developer-in-Residence at the Python Software Foundation is sponsored by Alpha-Omega. Thanks to Alpha-Omega for supporting security in the Python ecosystem. I published a blog post two months ago about how to hack relative dependency cooldowns into pip v26.0 with crontab. Now with pip v26.1 available, this hack is no longer required! Time to upgrade my pip and delete that cron job... Now in pip v26.1 you can use uploaded-prior-to in your ~/.config/pip/pip.conf file or…
Since my last post about Nintendo Switch 2 storage and prices three major things have happened affecting Switch 2 game prices: Nintendo published a new digital game pricing strategy where digital first-party games would be priced $10 USD less than physical games. This puts the American game market in line with the rest of the world. We'll see below why this change makes sense. microSD Express cards have increased drastically in price. The Lexar 1TB microSDXC card cost $200 USD in July 2025 and…