Obviously, I've been kind of busy lately. The stuff I've been busy with, however, is a bit less than obvious, and deserves a few quick notes.
Or at least I thought they would be quick when I started drafting this...
Besides the (un)usual amount of work, I've been adjusting to a new routine of PMI training and getting up relatively early on Saturday to attend Mandarin classes - which collides with my usual habit of catching up with the news on Saturday mornings.
And, in the meantime, I've decided to have another go at running some form of UNIX on my work laptop.
There are several practical reasons for this:
- All my corporate stuff is in Citrix now. Which is great, since I no longer have to worry about carting around sensitive documents on my hard disk, have the same user experience anywhere, etc.
- With some new projects requiring some hands-on involvement, I very badly need something that can run Wireshark and do proper networking. Doing anything network-related in Windows is a nightmare - i.e., you end up wondering if the OS has choked on a blue packet or something.
- I found that mySQL Windows tools choked (or rather, that the OS choked) when querying our pet (60 million and counting) statistics database. Perl and DBI it is, then, but on a decent OS.
- Even if I were to consider bringing my own Mac laptop to work (remember, my company doesn't provide Macs to its staff), my iBook wouldn't cope well, and rumors of Core 2 Duo MacBooks now point to November (which, with the usual hassles of getting Apple hardware in Portugal, effectively means I will only be buying one in 2007 anyway).
So, which UNIX?
Well, honestly, I would love to run Mac OS X on my Toshiba. I know it can be done, and the kinks of this particular hardware (i.e., no Wi-Fi, no Bluetooth, half-baked power management, etc.). But it's not (for the obvious reasons) something I can condone, so I went and looked for alternatives.
BSD? What? Are You Nuts?
And, to a point, I'm inclined to agree. Anyway, let's keep this on the level. As it happens, I had a number of reasons not to go with Linux, which I can summarize as follows:
- I don't believe in monocultures, and Ubuntu is fast becoming one.
- I am used to running BSD from time immemorial.
- Linux is too damned distracting. Windows is pretty bad (considering that you have to put up with all the crap like IE, MSN Live and whatnot), but jumping out of the mainstream and not feeling tempted to play around with the latest X.org, or Gnome or whatever is good for you.
Remember, I rely on my laptop for actual work, not as my own personal playground - I have a battered old Toshiba at home to get the CTD urges out of my system (which is fortunately becoming a rarer event).
So BSD was my first choice, and I researched things to a point where it looked like PC-BSD was the easiest way to get both a stable OS and an environment I could run Citrix and other selected Linux packages via its compatibility layer with minimum hassle.
And PC-BSD was, indeed, great. The whole thing installed in a bit longer than half an hour (using a nice graphical installer), boot times were very quick, and, unlike the BSDs I used before, it has progressed to the point of providing niceties like antialiased fonts and brainless sound support "out-of-the-box".
A couple of clicks after dinner were enough for me to be able to run Linux binaries, and there is no shortage of pre-packaged applications. Getting my ipw2100 to work was pretty easy - support was built in, and all I had to do was grab the ports tree and install the firmware loading tools.
One hour later, I had a stable working environment, which lasted me up to Saturday. Why did I stop using it, then?
Three main things:
- Despite encouraging hints I picked up during my prior research, ACPI, CPU throttling and suspend/resume didn't work reliably (a deal-killer for me at this point).
- I could only run Citrix via Java. Java was trivial to install and I basically ripped out the guts from my widget and ran them, but somehow the experience wasn't as good as in Mac OS X. Since Citrix is still stuck in the 1990s and builds their Linux client against Motif, I would have to figure out how to get Open Motif installed in some way that the Linux compatibility layer picked up on it.
- And, finally, KDE was getting on my nerves. I have this thing against Chicco-like window decorations, and having a bunch of "mis-kapitalized kool applikations" crammed with visual noise doesn't help. It's nice, fast and feature-packed, for sure, but I want something that doesn't waste my personal CPU time and has a cleaner interface.
Mind you, a lot of people will love it. With a few tweaks (like installing Katapult), the environment is very user-friendly.
Solaris Express - No stops at this workstation.
But he also told me that despite there being support for my Wi-Fi card, power management was still a work in progress and that some tweaking would be in order, so I passed.
I will be making a note of it, though. It is progressing rapidly, and pfig swears by it, so I will probably have another go at it in a year or so.
The Holes In The Hat
Then I started researching again. Poring over my own notes on Fedora and combing forums and mailing-lists, I saw that I would still have to jump through hoops to install Wi-Fi drivers, and that a re-edition of my own kernel patch would most likely be necessary to get Bluetooth working. I also couldn't find any evidence of CPU throttling, or mentions of suspend/resume that said, unequivocally, that it would "just work".
And that's where they began to lose me. You see, no matter how slick and polished Fedora is and how much experience I have with it, there is absolutely no way that, in 2006, I am going to install something that requires me to jump through hoops to get the most basic hardware support working.
Well, I wasn't going to wait around for them. And so, after having confirmed that pretty much all my hardware would be recognized by Ubuntu out of the box (and trying to ignore the nagging feeling of having to share an OS with Cory Doctorow), I went and tried to figure out exactly how stable Edgy really was.
Living On The Edge
I didn't rush in, though. Before trashing a perfectly working PC-BSD install, I trashed my perfectly working Xubuntu 6.06 install on my battered home laptop - first by attempting to upgrade it (which failed miserably, by the way) and then by doing a clean install on it.
Which makes this as good an opportunity as any to explain why I don't trust Ubuntu - every attempt of mine to invoke the legendary Debian ability to do in-place upgrades has resulted in a broken machine (unlike Fedora, which has worked for me every time).
And considering that only a couple of weeks ago a bunch of people running "stable" Ubuntu 6.06.1 had their X configs completely borked by a broken update, I wasn't too keen to go out and try a beta release of something I see as unstable.
And yes, broken updates can happen anywhere - even in the Mac world. For instance, the 10.4.8 upgrade broke a colleague's Mac mini (although, to be fair, he did not heed my advice to set up separate user/admin accounts).
What sealed the deal for me was that I was able to confirm that this week's Edgy pre-release had complete support for my M100's hardware and suspend/resume/hibernate support (this via a couple of colleagues that have M1s - which is almost exactly the same hardware - and judicious Google searching).
No Paper Cuts
As it turns out, the rest was pretty much uneventful. Most of those two hours were due to the infernally slow setup process (much slower than PC-BSD's), and it took me something like 30 minutes to get all my stuff working.
For instance, those interested in getting Citrix to work painlessly merely have to type sudo apt-get install libmotif3 before running the Citrix command-line installer (I mostly ignore the Gnome menu items it sets up and add a launcher button for /usr/lib/ICAClient/wfica that invokes my custom session script).
A single tap was enough to activate (or deactivate) Bluetooth, even down to displaying a notification balloon - I did have to apt-get the Gnome UI applet for file transfer, but the basics were already installed. Obviously, serial port setup will still have to be done manually, but hey - this isn't the Mac.
Besides hibernation and suspend/resume, CPU frequency scaling also works (with the only caveat that you can monitor the frequency scaling via the Gnome applet, but not set it via the GUI, like I could in Fedora).
There are still kinks, though. Despite a nice dialog listing details of both batteries on my machine, it still crashes (at kernel level) when I remove the secondary battery. Again, this isn't the Mac.
My Vodafone-branded Huawei/E220 isn't working, either. The incantations I used to get it working on Linux before were for RedHat-based distros, and will require some tweaking that I can't be bothered with right now - the reason being that I now have different HSDPA hardware (that I can't mention) that works fine.
It should be noted that despite my not having really tried to set up the USB serial ports, Ubuntu automatically detected enough of the E220 hardware to access the internal storage we use for automatic installs in Windows and display the volume contents.
Software-wise, all that I need to work was trivial to set up. And some of the stuff I was dreading to install (like Google/Earth, Flash and Java) turned out to be a one-click process via Automatix2 (hint: forget the extra fonts, they are ugly and useless).
Besides a few clicks to enable Deskbar (which feels a lot like an actually useful version of Spotlight), that was about it. Oh, and I installed the Chinese input methods to be able to type Mandarin text.
So far, the only issues I have are:
- NetworkManager doesn't work (known issue, and worked around via using the "normal" Gnome network applet).
- I keep getting a dialog box before login saying that the gdm greeter has crashed (which it hasn't). Could be some stale lockfile somewhere.
- The system-wide spell-checker (which is otherwise great and almost at a par with the Mac's) doesn't work correctly in TomBoy (selecting corrections from the pop-up menu doesn't apply them to the text).
Other than those, I have a stable environment, and there will be no more tweaking. The only exception is that I'm thinking of installing some form of file system encryption. I usually have a 650MB sparse image on my Macs where I dump any confidential stuff, and would like something similar on this laptop.
You see, although one of the greatest security benefits of using Citrix is that technically all the stuff I'm working on never leaves the company (something to consider for those of you who share my penchant for KISS security), there are always drafts, presentations, etc. you have to have with you when traveling, and I don't want to have to worry about losing the laptop (well, at least not in that sense).
So, despite utterly moronic choices like the brown/orange theme (which you can't even get rid of in the most basic gdm greeter) and the use of dash (which tripped a few things until I caught on to it), Ubuntu Edgy has been a moderately peaceful ride so far.
I will be living with this for some time, either until the official Edgy release rolls around or until the Fedora team comes to their senses and starts delivering a distribution not just with a superior amount of polish, but also with a decent "out-of-the-box" experience for laptop users.
Mind you, I have completely disabled automatic updates and won't be installing any new packages for a good while - Ubuntu has been prone to breaking randomly for as long as I've known it, and I still don't trust it.
They do, however, have excruciatingly poor taste in color schemes - orange and brown looks like a compost heap.