2009-09-08

System Reloads and Customizations

I follow the blog of one of my fantastic ex-professors from Knox, and he's been posting recently about switching from Mac OS X to linux. I know better than to criticize someone's decision when it comes to their OS, especially a professor of Computer Science, but Don's post did get me thinking.

See, I've played with my fair share of *nix distros in my day. I cut my teeth on FreeBSD 4.x, and I've installed everything from Ubuntu to Gentoo (an odd duck that at the time I played with it insisted on compiling the entire damn operating system from source code for every installation.) Thanks to its incredible utility for recovering files from corrupted Windows NTFS partitions, I've spent a ton of time inside Knoppix boot CDs too. Out of all of these, I can tolerate FreeBSD the best, provided I don't touch the X Windows system at all. (If I'm going to have to deal with some *nix flavor, at least give me the semi-consistency of the command line!) The reason I've stuck with FreeBSD is because they have a halfway-sane package management system that makes it somewhat less painful to maintain an "up to date" system. Even then it's a serious undertaking in order to ensure your network-facing components are fully patched and still happily talking to each other afterwards!

Now, it's worth saying that I've personally tried to use linux as a primary desktop OS. In particular my attempts were a desperate attempt to avoid Windows 2000 and XP so I'm willing to acknowledge that some distros have (hopefully) come a long way in the 8 years since I was put off by each and every one of them in turn. Based on my experience, I just can't for the life of me see how anyone could subject themselves to the kinds of "system maintenance self-torture" that Don is fastidiously documenting on his blog specifically so it won't hurt so bad next time he has to install and configure his system.

This brings me to the point of my post. Back in the day (primarily my first year or two at college) I would "modify" my B&W G3's copy of Mac OS 9 in a variety of unadvised and unsupported ways. Custom visual themes, custom icons, custom behaviors and desktop utilities abounded to fill in the gaps where I found the stock OS lacking. All of this was fine, because I was experimenting, and learning, and it was all very educational. As time went on though, and as I installed new hard drives and reloaded operating systems onto my machine, those customizations began to get dropped. They simply wouldn't get loaded onto the new installation either in the interest of system performance, or because the utility they provided wasn't worth the investment of time to find, download and install any more. I began to look for faster ways to get through the increasingly tedious system setup up process and back to the important work I wanted to be focusing my attention on instead.

Now, you can criticize me for being willing to adjust my own workflow to the provided behavior of the system, but after all these years when I'm faced with a clean system install now, I think about how much time it's going to take before the computer is "usable" and I still cringe. I have very savagely uncluttered my setup experience. There are certainly still some things I insist upon, such as MacPorts, TextWrangler, MenuMeters and DropDrawers, but these tend to be things that I keep bundled together specifically so that they're on hand when I sit down at an unfamiliar Mac. And more importantly, I make sure to keep the list of "extras" small enough that it fits comfortably in my memory, even during the years that pass in between reinstalls on my Mac (which is itself a blessing I try never to take for granted.)

MacPorts in particular is soooo ridiculously easy to use compared to just about anything I've been exposed to in the linux world. A single command like sudo port install x (where x is the name of the unix utility I need for the given situation) will get me literally any tool I need in a matter of seconds along with all of the tools it needs in order to run. And six months from now, when both x and every single one of x's dependencies have updated point releases, I can run sudo port upgrade installed and come back in half an hour with a fully up to date, still working system! It absolutely baffles me why anyone would bother with traditional RPMs or installing from source unless they were: 1) a student, 2) masochistic, or 3) had a gun to their head and had no other choice.

Here's the bottom line for me: When I have to reload one of my systems (which I've gotten pretty adept at avoiding) I ask myself this question: Do I want to spend the next 3 days downloading and installing and tweaking and customizing this poor system into the convoluted environment I require in order to be able to be productive, or do I just want to sit down and concentrate on banging out some great code? The answer these days is invariably the latter. I certainly wish Don the best with his switch, but for me sysadmin != productivity and the day I need to start writing down how I configured my system to get it to do what I expect is the day I need to reevaluate my expectations. Believe it or not, I think I'm still young enough that it's easier to change myself than it is to change hundreds of lines of config files throughout the various and sundry /etc directories of my system.