The other day I opened Stardew Valley online but got an endless screen:
My desktop computer runs NixOS, so I get bugs like this often. I was about to play on my laptop instead, but on a whim, I sicced my boy Claude on it.
Claude fixed it. Apparently Stardew Valley uses the
GOG Galaxy SDK for networking (even
on Steam), and
glibc 2.4.1+ refuses to run
two of its binaries (libGalaxy64.so and
libGalaxyCSharpGlue.so) because they request an executable
stack. Claude patched their headers to not ask for it, and it
worked.1 To be fair, Claude didn’t solve the executable stack thing from first principles.
It found the solution on the internet.2 I like how easily you can debug random issues like this nowadays. Previously I would have just updated my drivers and rebooted, which has like an 80% success rate. And if that didn’t work I’d try another computer. But you don’t learn anything from that. More fun to resist rebooting until you’ve found the cause and learned something weird about your operating
system.3 A few other things I’ve troubleshot in the same way recently:
- Chrome has a bug where if you restart PulseAudio underneath
it,
[audio playback stops working](https://issues.chromium.org/issues/41461763)
- My low framerate in Clair Obscur was because Vulkan has no concept of a default GPU, so the game was randomly choosing my iGPU
- A strange ClickHouse / Iceberg SQL bug when using
IS NOT NULL<sup>4</sup> - Laptop GPU power saving features are the cause of all evil in the world. Like seriously, why is this so hard. I’ve never had a Linux laptop that just worked when you plugged in a monitor. AMD, Nvidia, doesn’t matter. Nobody will ever fix this.
Moral of the story is that if you like learning weird things about computers, resist the urge to fix things the easy way. Poke around yourself and break stuff more. Even if you’re out of your depth,
you can usually binary search to the root cause in O(log n) time.5 I don’t actually do that, but it’s good advice. I just sic AI on it. Not as good, but
easier.6
Footnotes #
- Well, that was the first problem. The second was me plugging both ends of an ethernet cable into the same switch. In my defense, I am stupid. ↩
- Especially when you record the solution in a config file so it automatically applies to all your computers and you never have to think about it again #NixOs ↩
- I was running into weird crashes on a huge SQL query, so I told Claude to binary search it’s way to a minimum reproducible example. Then I took a long walk. I came back to Claude proclaiming victory in all caps. My GitHub issue was quickly resolved. Props to ClickHouse, I love those guys.↩
- I swear I’ve read a blog post about using the MECE framework to debug software, but I can’t find it. Please help. ↩
- I know this post is basically just AI glaze, but sigh, I miss building character by banging my head against an instrutable bug for days. Or exploring an open source repo looking for the bug that I swear is not mine. ↩
Well, that was the first problem. The second was me plugging both ends of an ethernet cable into the same switch. In my defense, I am stupid.
Especially when you record the solution in a config file so it automatically applies to all your computers and you never have to think about it again #NixOs
I was running into weird crashes on a huge SQL query, so I told Claude to binary search it’s way to a minimum reproducible example. Then I took a long walk. I came back to Claude proclaiming victory in all caps. My GitHub issue was quickly resolved. Props to ClickHouse, I love those guys.
I swear I’ve read a blog post about using the MECE framework to debug software, but I can’t find it. Please help.
I know this post is basically just AI glaze, but sigh, I miss building character by banging my head against an instrutable bug for days. Or exploring an open source repo looking for the bug that I swear is not mine.