site banner

Friday Fun Thread for January 31, 2025

Be advised: this thread is not for serious in-depth discussion of weighty topics (we have a link for that), this thread is not for anything Culture War related. This thread is for Fun. You got jokes? Share 'em. You got silly questions? Ask 'em.

2
Jump in the discussion.

No email address required.

Well, I've been switching back and forth between Windows 10 and Linux Mint for a few weeks now. Windows for work, and Linux for pleasure. I stopped trying to have steam share a steam library between both OS's. For one, Linux and Windows kept fighting over whether the linux or windows versions of the games should be installed. Second, I saw a lot of posts about how Linux eventually corrupts NTFS drives if you try to use them for anything other than simple data storage. So that's a thing I guess.

I've been playing Doom 2016 in Linux thanks to Proton, and it's pretty OK. Every now and again pulling up the menu tanks the framerate, but not consistently. Outside of that it runs fantastic. Because I'm a fucking nerd, I got some simple C programming with SDL set up, as well as a Rust dev environment because I decided I need to learn that. I hate it. It disagrees with all my sensibilities about "talking computer", and thus far I find it's constructs around "borrowing" references silly and contrived, especially in light of being able to assign unsafe sections of code that ignore it's memory safety rules. I guess it assumes you'll be responsible with that, but it feels like a half measure to me, and no replacement for actual skill. All the same, since I mostly work on government contracts, a day may come where it's a requirement.

Anyways, Linux seems like a super viable alternative to Windows these days thanks to Proton. If my work didn't require windows, I'd try to shift over to it entirely. But since a local instance of IIS is essential in my day to day work, that's incredibly unlikely.

It disagrees with all my sensibilities about "talking computer", and thus far I find it's constructs around "borrowing" references silly and contrived, especially in light of being able to assign unsafe sections of code that ignore it's memory safety rules. I guess it assumes you'll be responsible with that, but it feels like a half measure to me, and no replacement for actual skill.

lol, I'll put this in hardcore WoW terms: many imagine skill as being able to stylishly finesse your way out of thorny situations; anyone who's ever succeeded at this game mode knows the real skill is not getting yourself into bad situations in the first place. For example, Xaryu -- professional WoW streamer and many-time rank-1 PVP gladiator -- died in the harpy cave in an extremely stylish way. In his next run, did he learn how to super-skill the harpy cave even betterer? Well, yes, in the truly high-IQ way: he decided going in there was a terrible decision in the first place and he wouldn't do so this time. He hit 60 on that character.

This is the difference between a C++ developer mindset and a Rust developer mindset. It is the humility to accept that you are, in fact, not skilled enough to get it right all the time, so you should stop playing with fire in the first place.

This is the difference between a C++ developer mindset and a Rust developer mindset. It is the humility to accept that you are, in fact, not skilled enough to get it right all the time, so you should stop playing with fire in the first place.

I think that argument just isn't supported by the evidence of 40 years of computers more or less working just fine. People are skilled enough to just get it right enough of the time. I think arguments otherwise are just Rust fanatics pretending the history of computer can be broken up into Pre-Rust and Post-Rust eras.

The problem is that suddenly, thanks to the internet, literally every single line of code needs to become a hardened attack surface. "Exploits" didn't matter in a pre-internet age, and I also question how much Rust will really address them. I doubt at the end of the day a Windows written increasingly in Rust will prove more secure than a Windows written in C. I think Rust is necessitated more by the falling skill level of corporate programmers than anything else, and I also doubt it will remediate that problem. If anything treating Rust as a panacea for a lack of skill will only make the problems worse. Less buffer overflow exploits perhaps, still plenty of attack surface for malicious actors to abuse.

All that is an aside though to my dislike of Rust, which I'm only learning for professional reasons. I said it disagrees with my sensibilities about "talking computer", and let me elaborate on that.

I want to bit-fuck the hardware I paid for however I wish. I want to bend over my mechanical slave and force it to do my bidding without a single complaint. I have friends who gravitate towards LISP or Go, I gravitate towards assembly. I want to be at the metal with a big spiked club, with the CPU to afraid to talk back. Because I don't tolerate backtalk from my machines.

I think that argument just isn't supported by the evidence of 40 years of computers more or less working just fine. People are skilled enough to just get it right enough of the time.

"Enough" is entirely not enough, we're not programming PDP-11s that are only accessed by your esteemed colleagues anymore. Any Slav with a clapped out netbook can and will try to pwn you on a daily basis. It takes only a single buffer overflow vulnerability that he can leverage into RCE for it to be over. Much like missile defense, it only takes one getting through for you to have big problems.

If your security strategy is to return to 1975, you'd better get working on that time machine. In the meantime, perhaps we should put some effort into rectifying, for example, "features" that are acknowledged by even their inventor as a big mistake.

I can tell everyone read to the same point, got triggered, and didn't continue reading. So I'll repeat myself.

The problem is that suddenly, thanks to the internet, literally every single line of code needs to become a hardened attack surface. "Exploits" didn't matter in a pre-internet age, and I also question how much Rust will really address them. I doubt at the end of the day a Windows written increasingly in Rust will prove more secure than a Windows written in C. I think Rust is necessitated more by the falling skill level of corporate programmers than anything else, and I also doubt it will remediate that problem. If anything treating Rust as a panacea for a lack of skill will only make the problems worse. Less buffer overflow exploits perhaps, still plenty of attack surface for malicious actors to abuse.

I did continue reading (that's why I mentioned your security strategy), my point is that your argument doesn't make sense. You admit that even skilled programmers get it right only "most of the time". That's not enough in the internet age. Falling skill levels of corporate programmers are not the trigger.

Let me put it like this.

You have a group that is just plain retarded. Literally can't do a single thing correctly. They will literally find every failure mode possible, and there will always be failure modes possible, in record time of whatever "idiot proof" product you put before them. But perhaps, they always hit one failure mode first.

You wouldn't fix that first failure mode, declare victory, and act like a new era of idiot proofing is upon us. There are literally an infinite number of other failure modes out there. Including several they will hit in rapid succession now that you've rendered the first physically impossible.

That's what Rust looks like to me. Good job. You made memory incrementally safer from a specific type of exploit. I'm pretty sure exploit technology has come a long way since then. We're all still fucked as long as we keep our systems permanently interconnected.

This makes more sense as far as your earlier "half measure" comment goes. But I still don't think this is a good way of looking at it. Nobody serious is saying "this fixes all things forever", they are saying "this fixes some of the problems". Which is fine - incremental progress is still progress. I think it's better to appreciate that a tool fixes one problem than it is to say "well it doesn't fix all problems so what's the point?".

Given that interconnection isn't going anywhere, I don't see any good reason not to eliminate failure modes where possible. Nobody is claiming that rust fixes everything.