Glyph

@glyph
7.3K Followers
351 Following
35.7K Posts

he/him

You probably heard about me because I am the founder of the Twisted python networking engine open source project. But I’m also the author and maintainer of several other smaller projects, a writer and public speaker about software and the things software affects (i.e.: everything), and a productivity nerd due to my ADHD. I also post a lot about politics; I’d personally prefer to be apolitical but unfortunately the global rising tide of revanchist fascism is kind of dangerous to ignore.

postshttps://blog.glyph.im/
disclosureshttps://blog.glyph.im/pages/disclosures.html
codehttps://github.com/glyph
patronshttps://www.patreon.com/creatorglyph
@keithzg this might be the weirdest complaint about python I have yet seen. what GUI package manager are you using? with about 25 years of python under my belt I don’t think I have ever done package management *not* at the CLI
@dalias @whitequark @jpm and the neglect goes up and down the spectrum. for example, IPv6 really ought to be the go-to choice for peer to peer. but your router probably doesn't even bother exposing a manual port-forwarding interface for IPv6, let alone structured hole-punching. so if you want P2P software, you really need to do IPv4-only for the most part
@dalias @whitequark @jpm on the purely implementation side, if you don't care about deployment, it's true that it's not *that* hard, but without at least a test deployment it's easy to screw up in such a way that it doesn't work at all. and on the deployment side, there are very few customers who really care, so it is one of the easiest things to neglect.
@dalias @whitequark @jpm this is one of those cases where the long tail bites you extremely hard. logging is easy if you "just" call getnameinfo. accounting is easy if you "just" understand the implicit structure of a /64. routing is easy if you "just" use ip6tables. testing is easy if you "just" know how to set up your CI provider with custom firewall configurations. happy eyeballs is easy and all you have to do is "just" implement a dense 10-page RFC by yourself.
@jzb @dalias yeah, precisely
@miss_rodent I wish I could agree. The 2020s have caused most members of the general public to develop a mental habit that filters out horrible-sounding news that isn't going to immediately affect them, just to stay sane from baseline daily political news. And this habit is immediately activated by _all_ LLM discourse, boosterism and criticism alike, because the tone sounds like "oh no, more of this shit"

@pinskia @dalias @whitequark @jpm literally the first hit, I did not have to try _at all_ to get this result.

give me an hour or two to really get in the zone of a first-year programmer yelling at a slop bot and I bet I could find you tutorials using gets()

@dalias @whitequark @jpm it breaks down at many levels. maybe your socket code works just fine but your logging code assumes IPv4-only and thus crashes if it gets an IPv6 result, so you just disable IPv6 because who cares it all works on IPv4 anyway. Or maybe you have some accounting code that relies on subnets. Or your software works fine but your release version contains a *configuration* that disables IPv6 by accident, and thus you never test with it. The area for potential errors is large.
@miss_rodent yeah I am not suggesting that it is the protestors who have broken the trust. but the sloperators by and large do not understand just how much harm they are doing
@dalias @whitequark @jpm anyway I want to be clear that I am not saying anyone SHOULD be writing IPv4-only code in this, the Year Of Our Linux Desktop 2026, but that this is an obscure area of application development which is _actually_ systems development, with an EXTREMELY long tail of bad examples, many of which have not been replaced with good examples. Like there's a ton of current documentation out there written as if routing is not just IPv4-only, but also still class-based