Hacker News new | past | comments | ask | show | jobs | submit login

> Oh sure, you can solve the endless little meaningless problems that plague the day-to-day life of programmers everywhere, but the source of these problems — defects at the engineering level — are effectively untouchable. Also untouchable are the systemic issues that cause each of these should-be-trivial-to-fix problems into 5–8 hour tasks.

That part of #4 is so true it hurts. Most of the software I use is full of brokenness and "WTF"s.

About a year ago: AWS Lamba supports Java. Sweet, should be easy. Oh but the command line tools are broken in several ways you won't discover until you try, find they're broken, google around for a while trying to figure out what's wrong, then realize it's not your fault when you find the relevant unfixed issues.

About three years ago: Well I'm writing an Android app so this Google Maps feature should be a piece of cake, I mean, Google makes the OS so surely Maps is amazing on here. Except. Wait. No. That cannot be right. It can't. The Android maps SDK is missing features that the Javascript version has? No. That doesn't make any sense. Oh. Here's a GH repo someone already made to provide a convenient interface from Android Java to the Javascript maps SDK for this exact reason. I mean I guess I don't have to write it myself now but seriously, this was a fucking waste of half my day for no good reason.

A few days ago: Debian installer is flat-out incapable of writing Grub correctly. Several tries, every reasonable combo possible, boot fails with missing OS every time. This ain't my first damn rodeo—something's wrong. Think it's maybe a UEFI issue. Force UEFI. Now my video card doesn't work. Because it's not UEFI compatible? Why dafuq is that even a thing? Open case, reset bios so I have a display again, install again just to be safe, boot to installer's recovery mode, mount, chroot, install grub manually and in precisely the way I'd told the installer to do it the first time, and without changing a damn thing about the config the installer had just written, and it's fine.

This is basically how everything goes every time I try to do anything with software at all. Which is my job. So this is my life.

Software is terrible.

[EDIT] in fact I can think of one area where my tools are consistently as shitty, broken, and unsuitable for their intended purpose as software usually is: it's when I cheap out on power or (especially) hand tools to try to save a buck.




There is a related Jonathan Blow talk titled "Preventing the Collapse of Civilization" [0] that I came across recently from a HN post. You might be interested in watching it. Also, Casey Muratori's talk titled "The Thirty Million Line Problem" [1].

[0]: https://youtube.com/watch?v=pW-SOdj4Kkk

[1]: https://youtube.com/watch?v=kZRE7HIO3vk


I can relate to that a lot, and it's one of the reasons I tell people I'm a software developer that hates software.

I don't actually hate software, I hate all the shit that gets in between you and the solution to your problems.


OS installers are just the most insane Rube Goldberg machines ever. For 99% of the time they ought to just dump a static disk image on the partition and unionfs it with the rest of the system and be done with it. You'd have a system that is immutable, consistent, and transactionally installed. Updates could just layer the latest differential disk on there as a second unionfs. Rollback is to just unlink one disk image. Done. Simple. Reliable.

Oh.. but nooooo. These monstrosities -- for insane 1980s reasons -- have to update hundreds of thousands[1] of tiny little files and go through some truly insane logic.

The major Windows 10 updates (v1809, v1903, etc...) systematically fail to install on both my PC and my Laptop. I get a BSOD loop on boot, the update retries 3 times and then rolls back.

Now, wait for it: I can do a fresh install with zero issues, with or without an Internet connection on both platforms. I've been able to do a fresh install on both platforms with every version of Windows 10 since the first one back in 2015!

But I can't update a fresh install.

Not ever.

Not with an ISO download.

Not with the manual updater tool.

Not through Windows Update.

Not with any amount of prep work, or special flags, or whatever.

I've updated my UEFI firmware. I tried BIOS emulation. I updated my NIC firmware. I updated my SSD firmware. I tried SATA mode, NVMe mode, and even RAID. For God's sake I updated my TPM chip firmware and you have no idea how fiddly that is. I still have nightmares.

The worst part is trying to unravel the hundreds of megabytes of temporary files, staging areas, log files, diagnostic dumps, and other junk that the update process dumps into wonderfully un-descriptively named folders on my disk.

"Panther" they call it, I assume because it's expected to eat your face. [2]

Amongst the reams of "errors", it eventually complains "fatally" about an unsigned driver being used. I wondered for a while how that's even possible, since Windows 10 x64 no longer allows unsigned drivers. But.. ho-ho... it does, for some user-mode drivers only! And there it lurks! An unsigned driver named "Driver SDK Sample" version "1.0" with default strings in all other fields.

Shit. I've been rooted! Maybe even infected with a persistent root kit. The horror! I work in an IT sector that's targeted by state-sponsored attackers. In a desperate panic I googled and googled until finally I tracked down the mysterious, unnamed, unsigned driver.

It ships with Windows. It's on the f#%$ing ISO, three CAB files deep. It's the Virtual Smart Card user mode driver for TPM-hosted certificates.

Let that sink in: Microsoft ships an unsigned, unnamed driver in their operating system disk image, for the highest-security subsystem they support and then their installer shits itself if it is used in a supported manner. O_o

Okay, fine, I deleted my virtual Smart Cards and I tried to uninstall the offending driver. Except that I can't, because it's unsigned and broken. And the OS won't let me uninstall it anyway, because it's not an optional component and weirdly not "Plug and Play". It took days to scrape this thing out of the system.

It still won't update.

The best I can tell is that the highly popular Samsung SSD 950 Pro is the ultimate source of the incompatibility in my laptop, and the also common gaming motherboard "MSI X99A" is the problem in my PC.

Microsoft only fixes bugs in their installer that the telemetry can report. There's zero quality assurance and unfortunately boot loops log nothing except a common error code, so these bugs will never be fixed.

I look forward to once again being forced to format both of my computers to install Windows 10 v20H1 when it is released soon...

[1] 366,559 files on my system for C:\Windows alone. I counted.

[2] https://knowyourmeme.com/memes/leopards-eating-peoples-faces...




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: