Disclaimer: I am not an investment advisor. When I describe my own trading activities, it is not intended as advice or solicitation of any kind.

04 September 2011

Time For a Change

This is the first post in a lengthy series describing my move to Arch Linux. To see all the posts, check out the index.

I have been running Linux pretty much exclusively at home for a couple of years now, and most people would consider that the end of the story. But for people who work and play with Linux on a daily basis, the next obvious question is: which distribution? So far, it has been Ubuntu, but I'm working on switching to a much more advanced and up-to-date distro: Arch. It has already been an adventure, and the adventure continues. But first some background on my choice, and why I want to switch, and why switching isn't as simple as just downloading a new ISO and loading it up.

At work, I mostly program on a real-time Linux distro called RedHawk, which is based on Red Hat Enterprise Linux, known affectionately by most in the Linux community as RHEL. RedHawk had its beginnings in the aerospace and defense industry, where real-time kernels were first deemed critical. It and other real-time distributions has a rapidly growing user base in the finance industry, now that latency is measured in microseconds and nanoseconds instead of milliseconds. Unlike most Linux distributions, RedHawk isn't free - in fact, it's pretty damn expensive, and since it is geared for the defense industry, it isn't kept all that up-to-date. It's a nearly perfect platform for writing latency-sensitive enterprise trading software, but it really sucks for a home machine on which I want to do lots of other - and more fun - things. Plus, it's tough to find a community of users giving help to each other, since it is mostly populated by the hyper-paranoid (finance is as paranoid as the defense industry, but isn't as good at it).

I decided to make the switch from Windows to Linux at home when we decided to move our trading system from Windows to Linux. I figured if I was going to become professionally proficient, it would be a good idea to immerse myself. Plus, I had been thinking I wanted to make the switch "sometime" anyway, and this was a good push in the right direction. I had used Linux as a server at home and was fairly comfortable with most things, but the move to it as my primary desktop was a scary one. So I chose Ubuntu.

Ubuntu is the most popular distribution out there, and is geared toward the novice. Nearly everything can be done with the GUI instead of having to memorize arcane Unix commands. It has a nice friendly installation utility that does a great job of figuring out all your hardware and installing the right drivers for it, just like Windows. It automatically keeps your system up-to-date with an Update Manager, and it provides a nice Software Center facility for searching for software and installing it, usually with the click of a button. But best of all, it has a huge user community consisting of a large number of lost newbs, just like I was, and a moderate number of helpful experts, who answer all their questions. Whenever I had a problem, I was able to find others who had the same problem and had already gotten answers to their questions. This was a big help to a stranger in a strange land.

Ubuntu releases a new version of itself every 6 months, in April and October. The April release is always a new major version number, with ".04" on the end, and the October release bumps that to ".10". Each release has a corny moniker consisting of an adjective and a creature, both starting with the same first letter, which increments with each release. My first installation of Ubuntu was 9.04, Jaunty Jackalope, and today I am running 10.10, Maverick Meerkat. The upcoming release, due in a month or so, is 11.10, Oneiric Ocelot (no, I am not making this up). Most users of Ubuntu simply refer to the various versions by their adjectives: Jaunty, Karmic, Lucid, Maverick, Natty, and now Oneiric.

I dislike the semi-annual release schedule that Ubuntu follows. Because it comes so frequently, it seems like everyone is always looking forward to what is coming in the next release. This causes older releases to rapidly become implicitly unsupported, since the instant response to a question like, "how do I get this new version of XYZApp to run on Maverick?" is usually, "just upgrade to Natty!" This becomes a problem to an old stick-in-the-mud programmer like me who has the heretical viewpoint that his computer is a means to an end, instead of an end in itself. I don't want to constantly be servicing the beast, feeding logs into its all-consuming version furnace, when I would rather be doing more important things like playing Minecraft.

Most people just let Ubuntu upgrade itself to the next version every 6 months, but I find this terrifying.  Maybe it's my Windows heritage, but every time my operating system says, "great new version available with lots of awesome features! Wanna upgrade?" All I hear is, "we've barely finished testing this, and none of your applications are going to work right, and you won't be able to find anything! Wanna roll the dice?" My computer is a garden, not a waste dump, and as such, I'm very careful what I plant in it. My normal procedure for a new version of an operating system is to wait for a few months to see if any major issues crop up, then try it in a Virtual Machine and get all my apps installed and configured to make sure they still work. Then I back up my hard drive, wipe it to clean out any cruft, and then install clean, reinstalling and reconfiguring each of my applications. I usually take that opportunity for hardware upgrades, too. Needless to say, this is not a procedure I want to be going through every 6 months!

Lately, the desktop Linux world has been going through some upheaval. Gnome, the desktop manager I use, has come out with a major overhaul that is ruffling a lot of feathers: Linus Torvalds called the new version "an unholy mess." KDE, the other major desktop manager, has been swinging and missing for years, ever since they started on KDE 4. But just a few months ago they came out with version 4.6 that fixed nearly all of the problems. KDE has a reputation for being a desktop manager that really caters to programmers with its powerful scripting, widgets, and customization capabilities. I tried to use it while it was broken, and now I'm ready to give it another try. Ubuntu, meanwhile, has switched to a new default desktop manager called Unity that looks like it's designed for netbook users, which I tried for a while on the laptop and decided I couldn't stand.

I want an up-to-date system. I want to be able to run Gnome 3.1 and KDE 4.7 as soon as they come out, without waiting for Ubuntu to get around to releasing it. When bugs get found and fixed, I want the changes immediately instead of having to go through another forklift upgrade 6 months later just to fix some bugs. I want to run the desktop manager of my choosing without having to work around my distro. I am no longer a Linux newb who needs his hand held: I'm ready to take responsibility for a greater part of my system, scripting my own upgrades and figuring out my own problems.

Next: Why I Chose Arch
Or check out the Index

No comments:

Post a Comment