Somewhere to stash my mixtapes (Week 28)
TL;DR: I built mixtapes.lmorchard.com to publish playlists on my own domain instead of leaving them trapped in Spotify, which spun off two new repos (byom-sync and byom-player). Plus more starnet gamedev (an exploit-barrage mini-game with a Butterchurn "brain damage" overlay), I finally ditched Disqus for remark42 after almost 20 years, and Minnaloushe is inching toward parole from cat jail.
Minnaloushe makes parole soon?
Minnaloushe has been in cat jail for about a month now, behind a tall gate in my office while we reboot the introduction process. He's still got a couple weeks left, though he's getting acknowledgement for good behavior. He's clearly had a horrible time of it.

In adjacent cat-and-machine news: I told Miss Biscuits she's pretty and incredibly treasured, and Gemini on my phone overheard and said "that's incredibly sweet of you to say and I'm glad to be here with you." So, you know, maybe Skynet will go easy on me.
Somewhere to stash my mixtapes
So, I made a thing this week: mixtapes.lmorchard.com.


And, if this isn't broken, an embedded playlist should appear here:
This one started sideways. I spent some time reviving my Big Sonic Heaven Spy bot, a little thing that watches what's playing at bigsonicheaven.com and appends new songs to a Spotify playlist. BSH is all ethereal, shoegaze, dreampop, and post-punk from a DJ I've been listening to since high school. The playlist is past 8000 songs now, and Spotify caps playlists at 10000. So, I'm going to hit a wall before too long.
This got me grumbling. I really need a place to stash playlists and mixtapes - one that isn't locked inside somebody else's app. I've been meaning to do this for literally years, but this week I finally got around to starting it with two new repos:
byom-syncis a Go CLI that pulls my Spotify playlists down into Git-friendly YAML files. From there it compiles out to JSPF for the web player and Markdown for static sites. It'll even build the whole browsable site, which is exactly what mixtapes.lmorchard.com is.byom-playeris a framework-agnostic Lit web component that plays those JSPF playlists through swappable audio providers.
Along the way I discovered Navidrome and the OpenSubsonic API, which turns out to be a lovely way to expose a personal music library to a web app, provided the browser can reach the server through Tailscale, a VPN, or a reverse proxy. I've got exactly that hacked together in my basement homelab.
That sent me spelunking through the wider ecosystem of Subsonic-compatible servers - bringing me to Psysonic (a Winamp-inspired Navidrome desktop client), gonic, smolsonic, LMS, and Funkwhale's Subsonic support.
All of this jibes with what a bookmark I saved this week names outright: be a gardener, not a tenant, because cloud services are not forever, and neither, apparently, is a Spotify playlist with a hard cap on it.
Back on my gamedev bullshit
starnet, my long-simmering cyberpunk netrunning RPG, got some more attention too. This week I was ginning up an arcadey sci-fi visualization of a metasploit-inspired exploit barrage against a network node.
There's a target node in the center, surrounded by defensive shields. Orbiting the target are a couple of concentric belts of exploits you've queued up. When the barrage starts, the shields wear down, your exploits occasionally get burned or disclosed or used up, and a detection-risk "noise" level climbs.
I'm stealing some juice from Star Castle here, which apparently lit up a few people's nostalgia circuits the moment they saw the screenshots.
The other weird bit was wiring up a Butterchurn (a web port of the trippy old Milkdrop music visualizer) overlay as a way to depict brain injury in a cyberdeck jockey who's been pushing their luck. There's a whole trove of Milkdrop presets converted for Butterchurn to draw from, which is delightfully more raw material than I could ever use.

I still have no idea whether this game ever becomes a thing worth "releasing" - but I'm having a genuinely good time hacking on an idea I've been carrying around for years.
Disqus, gone after 20 years
This felt overdue: after almost 20 years, I finally switched my blog comments away from Disqus. I'm running remark42 for now and we'll see how I like it.
The final straw was they turned on a spammy chumbox at the bottom of every comment thread. What's a chumbox? This is a chumbox:

Complete garbage. I mean, sure, I was freeloading comments off Disqus most of this time. But inserting ads for vitamin supplements and crypto scams and boner pills on my blog is unacceptable. That convinced me to get over the hump of figuring out self-hosting, rather than pony up for a paid plan.
The part I'm quietly pleased about is that I got the Remark42 comments to lazy-load only when they're scrolled into view and to follow theme changes along with the rest of the page.
A nice writeup on automatic remark42 theme-switching did a lot of the heavy lifting there. Still on my wishlist: figuring out whether there's any way to get remark42 talking to indielogin.com for authentication. If anyone's done that, I'm all ears.
Miscellanea
I printed a little charging dock for my Anbernic RG35XXSP, which even has a micro-HDMI-to-HDMI adapter built in for the day I feel masochistic enough to use the thing as a console. The Printables model has space in the base for metal weights so it doesn't topple over. #gamedad



The raccoon is back. We thought we'd been forsaken after nearly a month, but no, they've returned and they are hungry for lily pad and electrical cords.
The pond bandit, returned from a month's absence and back on the electrical cords. A cluster of "the AI bill is coming due" reading this week: The AI Hype Reckoning Is Upon Us on the chasm between useful automation and technofascist hucksterism, Ford rehiring human engineers after AI failed the quality checks ("Mistakenly, we thought that by just introducing artificial intelligence... that would produce a high-quality product"), and Zuckerberg 'admitting' Meta's layoffs were ineffective. Someone on Mastodon also passed around a Futurism headline about execs being horrified by their huge AI bills after assuming they could replace workers for free, which, hah.
Two on the state of gaming as a business: The console wars have been lost (Valve winning by doing nothing while everyone else shoots themselves in the head) and World historic amounts of gamedev talent thrown out to rot, which is a genuinely sad read about hemorrhaging not just people but the trust and momentum that make good teams.
What does Jeff Bezos think is going to happen? on the logic of DRM'd Kindle books eventually just pushing people to pirate the things they've already paid for.
Apple shipped a Safari MCP server for web developers, which lets an agent see how your code actually renders in the browser.
The EFF wrote a nice reminder that RSS is one of the tools you've been looking for if you hate "the algorithm."
A small, sharp piece of advice: leave a failing test before you go on vacation so future-you has somewhere obvious to pick back up.
The Tragedy of the Engineering Commons: "The surest way to ruin an engineering team is to believe it will survive whatever you do to it."
Conan O'Brien surprising Jordan Schlansky with Geddy Lee so he can interrogate the man about a specific mastering of "Tom Sawyer" is exactly the kind of nonsense I needed.
Podcast-wise it was a good week for retro and sci-fi: the Retro Hour on the Commodore 64 as a cultural icon, the STARLOG Podcast talking science and storytelling with Dr. Erin Macdonald, Aftermath Hours on the slow death of physical media, and Never Post on "inheritance posting" as a new kind of grief.
Songs that were stuck in my head, for the record: Parralox's cover of "Sirius / Eye in the Sky", Battery's cover of Depeche Mode's "Shame" ("it all seems so stupid, it makes me want to give up"), and, unfortunately right before bed, the hyperactive "MEOW" by Anamanaguchi.
You know, I should put these in a playlist. Hmm.
None of this was especially planned. A dead Spotify playlist cap turned into two new repos, a game about breaking into computers grew a way to render brain damage, and my blog quietly shed a service it had carried since roughly the Bush administration. That's about the right ratio of accident to intent for a good week around here.