It is what it is and I cannot deny it: I'm a normie. I live on the outskirts of the "serious" world of FOSS. My cynicism about some of the developments in this field, especially on the desktop end, is one of the negative things that I have reluctantly stopped hiding. Here follows an account of my sinful ways, so that others might learn from them and not be left on the outside of this marvelous world of innovation and bold progress.
I have, for the longest time, used FreeBSD and its jails system. I liked it -- I still do -- but I find it barbaric to beat a horse, even when it's dead, and I have given up on this one.
I use Docker on servers. It's not pleasant but it sure beats having no containers. Besides, it would be pretty foolish to do otherwise in a world where virtually every new tool exposed to the Internet assumes it's running in a Ubuntu LTS container.
But I prefer to avoid it otherwise, especially for building things. I've found that if you need to use Docker to build your program, that's usually a sign that your build system is so vast and incomprehensible that it's no longer manageable. When (not if) is it going to bite you in the ass is not even the interesting question, the really interesting question is how it's going to do it. Wrestling with dependencies for half a day is not fun. Debugging weird crashes due to impedance mismatches with
glibc, though, is in a league of its own.
Sure, having dealt with Node.js and Python, I know it's unavoidable sometimes. The fact that it's the only idea doesn't make it a good one. Can I avoid it all the time? Nope. Do I avoid it if I can? Fuck yeah.
The only tiling WM I ever enjoyed was ratpoison, because it works the way software is supposed to work. I tell it what to do and it does it. I stopped using it after I got a huge monitor, as tiling two
xterms on a 30" screen is not very pleasant, and sometimes I just don't need more than, you know, two
xterms. I've used stacking WMs ever since.
I tried dwm and i3, I really did. I like Lua, so I tried Awesome, too. They look amazeballs. But I found the idea that I ought to learn how a program treats windows so that I might use programs in a manner that keeps the window manager pleased goes a bit against my principles regarding software. Not having to put up with arbitrary shit is half of why I like open source software and computers in general. Arbitrary shit as a window management system does not quite go in the direction I like it to go.
I'm not sure I can get enough normie points here because the window manager I use, for better or for worse, is FVWM. I don't really like it, I just like the other ones less.
For about two years I've tried to jump on three separate bandwagons: Ansible, Nix and Guix. My approach to setting up a new machine was "set things up and copy my stuff over the network" but that did not seem sufficiently scalable.
Of these three, I've found that Ansible is the only one that works, for non-hobbyist definitions of "works". Even so, though, I still found myself debugging obscure problems way more than I found myself sipping Pina Coladas while Ansible was setting up a laptop. Since I am not paid to debug Ansible problems, that made me uncomfortable. I do use Ansible to provision servers and the like, that's another story, but I've abandoned it when it comes physical machines that I will not only physically access, but physically use.
Nix reminds me of that hot summer of 2004 when I first tried Gentoo, because they're both extremely straightforward to set up as long as you stick to copy-pasting things off the wiki. That's where the similarity stops, though. Where portage gave you an obscure, but Google-able error, Nix gives you a stack trace. Like I don't see enough stack traces every day. No thanks.
So I eventually reverted to my primitive, barbaric ways. The way I set up a new machine now is I install packages using the package manager, then copy my config files over the network.
How do you deal with things like rollbacks, you ask? Easy: I avoid software that makes me need rollbacks.
Frantically trying to fix formatting issues, chasing stray '#'s in a Markdown document and typing like mad are very low on the list of things I want to do while I'm attending a talk or a lecture. They're literally below things like "fart loudly", which opens the list of things that are generally socially unacceptable but sometimes called for, like, what if I'm ever forced to attend a TED talk, for instance? If it's something I think is worth keeping in digital format, I'll write a memo afterwards or scan it. But until then, it's mostly pen and paper.
I've spent five years of my life writing LaTeX. The fact that it's still the best way to write technical papers is not testament to its strength, it's testament to how much the software industry has declined in the last fifteen years. But unless I have a good reason for it, like "I need to write long equations but I don't want my eyes to bleed when I read them", I will absolutely use normie software like LibreOffice. And I'd really use Microsoft Office if I could.
"Dead" the way Latin is a dead language. It was once the vehicle of human progress, now it's only of use to people who study history, have to deal with ancient institutions, or want to seem all smart and cultivated. Every posterchild of FOSS success in the last twenty years, from Firefox to Redis and from LibreOffice to Android flies in the face of anything Unix.
awk hasn't been the best tool for anything important in thirty years. As Rob Pike once observed, these things are dead and their eulogy has been sung by Perl.
Obviously, some lessons from the age of PDP-11 are still worth applying today. But writing software for PDP-11 today is the software engineering equivalent of doing data transmission by spark plug radio: it's rarely worth doing except for fun.
I don't like it. It doesn't solve any problem that I have (although I realize it solves a lot of problems other people have, Red Hat doesn't do charity). Every time I tried to talk about it, the discussion devolved to "but today boot devices can appear at random and you may want to synchronize an arbitrary number of services!" because yeah, that's what I do while my computer boots, I plug and unplug hard drives at random while waiting for it to start the web server, mail server, Gopher server, IRC server (which powers a number of web apps!), my automated backup script, a notification daemon, the cloud sync service and the temperature sensor monitor for my hatchery. What else am I gonna do, twiddle my thumbs like a moron?
That being said, not using systemd is worse. Because then I have to deal with all the software that wants systemd. Life is too short to send patches for all the programs you want to fix. Sometimes it's just better to live with the brokenness.
I'm the posterchild of the Amiga generation: if a computer isn't fun to use, it's a waste of time to use it in my spare time.
Back to blag archive
Back to blag index