I don’t even know what I want out of a computer anymore.
Outside of my job, the things I want a computer to do are about the same things anyone wants a computer to do:
- Surf the information superhighway
- Read and write email
- Store recipes
- Play some wicked tunes
Since about 1998 or so I’ve used Linux at home, the reason then and still being that I like to tinker. Windows is pretty alright for the things I want to do but often confining, and I’ve never quite been able to wrap my head around Mac OS. My attempts at using Mac OS, even without the xtreme popup rad-mode dock, have usually ended in confusion over some detail or another, and I still haven’t forgiven Apple for Quicktime.
As far as my computer habits today, the difference I’m finding is that while I still like to tinker, I’d rather not have to. I’d like for everything to work right out of the box, but I know that this will never fit my skewed view of the world, so I’d instead like everything to work after the box, some brief configuration and a handful of extra programs. My choice of web browser dates back to the Netscape wars with reasons long since irrelevant, but I now find the Web unusable without Adblock and a browser that makes such extensibility possible. I use Thunderbird mostly because it’s slightly less awful than the alternatives and less likely to do something unexpected. My music player, Amarok, is really the only choice that binds me to Linux. Could I find something in Windows to fill the gap? Probably, but it was painful enough finding a good player in Linux that doesn’t choke on a collection of my size and understands that some albums have more than one artist. I stick with Linux partly because of its philosophy of customizability–easy access to keyboard shortcuts, “sloppy” focus, finely tunable keymap options that present the full range of human expression, or in my case at least the full range of New Yorker English and the occasional dash or two–but mostly because of the environment it provides for when I program as a hobby instead of as an occupation. Windows provides some very nice tools, some them now even free, for building a Windows application, but it doesn’t make it easy to tinker.
What I don’t like about Linux is that it’s always a step or few behind environments that don’t require tinkering. The particulars of hardware support is always the worst. For example, I have a USB hard drive, and in order to save power and wear it will spin down after ten minutes or so of inactivity. It takes about five seconds or so to spin back up, and it used to be that Linux would wait about two of those seconds and then decide something must be wrong: even if you do end up reading from the device at some point, it’s probably a bad idea to write to it so let’s just turn the whole thing off before you do something dangerous. There was a way around this. I added a file to /etc/udev/rules.d that, when it saw the plugin event from this drive’s particular set of identifiers, would write some text to a file somewhere in /sys that would instruct Linux to chill out and maintain if it can’t read the device right away. This extra step became unnecessary a few upgrades ago, but still: this was a release version of a popular Linux distribution, and it failed in an annoying way that would never be seen in Windows or Mac OS. My annoyances today seem mostly to stem from the differences in GNOME and KDE, an ancient and boring fight between graphical toolkits that I only care about now because I use one for my music player and the other for everything else. Amarok wants to be able to watch for discs in the CD-ROM drive and iPod plugins, and if it happens to catch on to those things before GNOME, which is fortunately rare, it usually makes a mess. Linux has gotten a lot better over the years, but what’s most frustrating is that while it’s grown into something that feels much more like a real desktop operating system than it did back in the 90’s, it’s always fallen a little short of the mark.
The first Linux distribution I used was Redhat 5. I briefly used Slackware before switching to Debian by the time I went off to college, I experimented with Gentoo for a while after that, and I eventually became fed up with distributions in general and joined two other Tech students in creating Peachtree Linux (not affiliated with Sage Software or the Peachtree Accounting suite). After Peachtree’s demise I switched to Fedora because everyone else was using it. Fedora, by way of Redhat, has been a long constant in the Linux world, and I no longer cared enough about whatever objections I’d had to it before. Recently I realized that maybe there are other choices out there, and maybe I ought to take a look around and forge my own path. I ended up finding a lot more maybes.
What I want is a Linux distribution that provides a desktop environment where manual configuration of just about anything–network, display, sound cards, USB devices–is considered an exceptional event, preferably a distribution where these exceptions can be handled by simple graphical tools instead of a need to poke through a hundred text files in a hundred different formats. I’d like a distribution that can adequately walk that thin line between cool new features and stability. Additionally, I need to consider whether a distribution can handle the fourth task in that list above. Due to a mess of patent licensing and other legal concerns, distributions that are out to make a buck tend not to provide support for mp3s or several video codecs. So I need a distribution that can either turn a blind eye to this point of law or has a community that does, something like Livna, in order to easily play mp3s.
Debian might fit most of the bill, but I doubt it. Their “stable” release is famous for being hilariously out-of-date, and “testing,” a compromise created about eight years ago between the slow-moving stable and the unfiltered, buggy battle of the unstable distribution, is still a briar patch of surprises and daily changes. Also, while Debian is famous for creating their community-oriented model, opening to their users an unfathomable expanse of software choices, they lack the centralization or drive necessary to make the coherent environment I’m looking for. Gentoo is just a Debian that’s made some bad decisions and where an update means spending a week rebuilding the system from scratch. Ubuntu is a derivative of Debian, but built in such a way as to take advantage of the huge pool of community contributions but offer a friendlier environment on top of it. I don’t trust Suse or Mandriva (didn’t one of them go bankrupt?) to have grown past the mistakes I remember struggling with at Emperor, and I don’t think either is in a position to offer anything interesting. And then there’s Fedora. I’d like to like Fedora. Fedora’s problem is that every release contains some new thing that’s kind of cool and some new thing that’s horribly broken.
Fedora 9 switched from Redhat’s system-config-network, a tool that’s brought me joy and pain through the years on its own, to GNOME’s network configuration tool, NetworkManager. That all seems well and good, switch from the Redhat-specific things to the the new, generic things, but they left system-config-network running. I don’t know why and don’t really care–my guess is that NetworkManager doesn’t work in all situations and they left the old tool around to pick up the slack,–but the result is that, after whatever exciting races the two tools run at boot time, I get a DHCP lease about 95% of the time; the hostname isn’t set at all, even though I set it during the install, unless I add it to some text file somewhere, and I have about a 5% chance of being able to lookup names local to the LAN (like the name of the NAS box I need in order to get to the mp3s I can’t play). Fedora 8 brought pulseaudio, which appears to be an attempt to reinvent esound in a way that crashes even more frequently. As a bonus, after installing the compatibility layer that makes sound work on Youtube again, Flash becomes extra unstable and will bring the browser itself more often than not. Perhaps pulseaudio is meant as a madeleine to bring back memories of those halcyon days of Netscape 4. Sound in Linux is complicated. A lot of people made some bad decisions; I think the Fedora maintainers are among them. Fedora 7…I don’t know, I’m sure it had something wrong with it. Fedora 6 seemed ok.
But Fedora, or rather Redhat, has done a lot of things that I think are really kind of cool. Rpm, despite its flaws and godawful spec file format, is really the best package manager I’ve seen. It has an automatic dependency creation and resolution system that puts the hand-crafted three-level ridiculousness of Debian and its ilk to shame, and it was the first to figure out that it isn’t feasible to use a flat text file to store the kind of package data needed in any general purpose distribution. One Redhat-specific addition that I find pretty neat is the way it handles debugging symbols. While Redhat/Fedora packages are shipped without debugging symbols, as is the way of such things, it also has the option of installing unstripped programs and libraries in /usr/lib/debug. The Redhat-packaged gdb knows to read these files and can even tell you which debug library packages you’re missing for a particular program. It makes tinkering available and easy. I wish the rest of the distribution had that kind of thought put into it.
I’ve viewed Ubuntu as some kind of a hipster joke for most of its existence. When it came out I didn’t want an extra user-friendly desktop, I didn’t want something based on Debian, and I certainly didn’t want something with ads that looked like American Apparel joins the Peace Corps. With this distro-existential crisis I’ve been having I decided to cast off my prejudices and install Horny Hedgehog, or whatever the H release is called. There were a few minor things that annoyed me right off the bat, mainly the choice to make the trash can a tiny icon in the taskbar instead of a big one on the desktop, and the hoops I had to go through to prevent anything from happening when I plugged in my mp3 player when all I want in to get to it in Amarok, but overall the Desktop is pretty nice. Missing packages are available at the click of a button in situations where things go wrong (mp3 codecs, flash plugin), and I actually found myself getting annoyed when I had to change things outside of the available tools (like the music player plugin thing), getting annoyed at times where before I wouldn’t have thought it unusual to open a text file in one window and a dense manual in another and fix it by hand. It has a kind of cool feature where if you type an unavailable command in a terminal, it’ll tell you what package to install and what command you need to run to install it. And it’s removed the idea of a root user, instead making administrator functions available by prompting for the user password anytime an escalation in privilege is needed (or just silently doing it for people who know what to add to which file), something I think desktop-oriented systems should have done long ago.
As time wore on, it became increasingly obvious that Ubuntu’s main contribution is to offer a theme that turns everything brown. I guess that theme was really the first thing that irked me. I get it, founder dude’s from Africa, some of Africa is the color of dirt; please make everything not ugly again. H is a “long-term support” release, which apparently means that it’s still full of buggy software, but those bugs will be updated over the course of thirty-six instead of eighteen months. The bug that pissed me off the most was one involving the keyboard. I like to remap Caps Lock to act as an extra Ctrl key, because I hit Ctrl a lot, I don’t want carpal tunnel and I think Caps Lock is useless. This Ctrl key position is seen a lot on old Unix workstations, and it’s easy to set this layout in the GNOME keyboard preferences. The problem in Ubuntu is that once I did this, while the Caps Lock was Ctrling like it should, it was also toggling the Caps Lock LED. The bug was fixed in the new short-term support release, but I don’t know if the change ever made it back to H; I just figured out what to put in which text file and moved on. One problem I haven’t yet figured out is the little gray rectangle the sometimes appears in the top left corner of the screen. It looks like the corner of a window that’s been accidentally moved off-screen, and it’s becomes most visbile and distracting when I try to watch a video full-screen and the little rectangle stays in the foreground. It goes away when I close Firefox, and it’s something I never saw in Fedora. On the plus side for Firefox, flash isn’t so crashy anymore despite it still running through pulseaudio, but it looks like that’s because Adobe released Flash 10 while I was making this switch, so it’s probably fixed in Fedora by now, too.
So in all Ubuntu works mostly like I’d expect it to, but it’s especially noticeable when it doesn’t, and from browsing the forums and bug reports it looks like users and developers alike lack either the knowledge or motivation to do anything beyond making every program match their shit-ugly brown coffee stain theme. Sigh. At least some of the folks at FedoraHat know what they’re doing and maybe even get paid for it. I just don’t know. Fedora 10 is coming out in a couple of weeks. Maybe that one will be ok.