Wednesday, August 17, 2011

The Linux Destop: Still Not Ready

So, for work reasons I've migrated my daily computer environment to GNU/Linux, specifically Ubuntu 10.04 LTS on my ThinkPad. This isn't the first time I've tried to live in Linux. I've tried many times, since Red Hat... what, 2.0? I'd have to check my old notes.

It's getting better, but it's not there yet. One of the most maddening things is that a lot of fundamentals still seem to be changing rapidly, such that it isn't enough to, say, look up how to mount a USB flash drive on Ubuntu, because it has varied so much between versions. Does your system use UUIDs to identify volumes? Does your system use the new "service" commands for managing servers? And it's all over the map; sometimes a tool will tell you to use a newer command that doesn't exist on your system.


Over the course of changing some partitions, I've had to become fairly familiar with Grub 2. Now, I like Grub a lot better than I liked LILO. When I broke LILO systems I was often scrambling for a boot sector I had archived onto a floppy disk or some such. So far when I've broken Grub I've been able to fix it without having to boot from a live CD. That's a big improvement. Still, having to type a series of commands at the grub rescue> prompt is a little nerve-racking. In general, what I've needed to do is set prefix=(hd0,5)/boot/grub, set root=(hd0,5), insmod normal, normal, boot the system, then under Ubuntu do sudo grub install /dev/sda, sudo update-grub.

Of course your requirements may differ depending on your drives and partitions, but this has worked a couple of times for me and at least I didn't have to do any manual dd.


Gparted will apparently happily reconfigure your partition table into a state that doesn't seem to be corrupt per se, but which the Gnome Disk Utility, aka palimpsest, doesn't like. By "doesn't like" I mean palimpsest throws an assert on startup. I found the solution here. Apparently adding and removing partitions can cause your partition table entries to be in an order that doesn't match the order of the sectors on the disk, and palimpsest doesn't like that. It seems to have a pretty non-robust way of examining partitions that involves recursion.

This seems ill-advised and ill-tested on real-world systems and not very robust, but at least there was an assert in there, so I suppose it could have been worse; I didn't actually lose any data.

It doesn't seem to cause problems per se but I'll just note in passing that gparted seems to be ugly and inconsistent in how it displays partitions; sometimes I get a 1.00 or 2.00 MiB "unallocated" block listed before and after given partitions, and sometimes I don't. I don't know if this is round-off error in display code per se, or there is some default alignment going on, but it is maddening to see these things come and go depending on whether I'm using a live CD, running on my live system, or looking at the same hard disk with Paragon Partition Manager.

USB Sticks

Access to files on a USB stick was working perfectly for me; I could put the stick in and edit and add files, and then eject it, and stick it back in, at it all worked just fine. At some point my Unbuntu setup stopped recognizing the sticks. Some help I found online suggested that the "usbmount" package needed to be removed using the Synaptic package manager, but it wasn't there. So I added it, and the USB sticks started showing up again. Except that they are read-only.

There's a manual mount procedure I could go through involving editing mount tables but I think in modern Ubuntu versions you aren't supposed to have to do that, and as I mentioned it was working before. This remains unresolved. It could be this bug but I haven't confirmed it yet. This is pretty basic stuff that ought to just work -- and indeed, recently seemed to.

MP3s and Flash

Flash video on Chrome (say, YouTube video) has been a disaster for me. The help I've found claims that Chrome comes with Flash built-in and I don't need to install a plug-in but just to enable it, but that doesn't seem to be true.

The 64-bit plugin seems to crash constantly. I still can't play MP3 files. I have to install libraries and Ubuntu wants me to assert that I have the legal right to do so. The players suggest I install packages with names like gstreamer0.10-plugins-ugly. To install them I have to click through a dialog that says:

Confirm installation of restricted software

The use of this software may be restricted in some countries. You must verify that one of the following is true:

* These restrictions do not apply in your country of legal residence

* You have permission to use this software (for example, a patent license)

* You are using this software for research purposes only

I'm not using the software for research purposes only; what the hell does that even mean? I was hoping to play some podcasts while I worked. I'm not a goddamned lawyer and I'm not about to pay one to determine whether I can legally play some audio files.

I realize this is not the fault of the legions of (largely unpaid) developers, who are diligently trying to cover their butts... but wow, is this really where we still are with Ubuntu on the desktop, that in 2011 I can't play an MP3 file without resorting to quasi-legal means?


By far my biggest painful time sink has been working with Thunderbird. For work I connect to an Outlook server via IMAP. Thunderbird on Windows does a quite credible job interacting with the server. I tried to import my mailboxes into my Linux world and archive them.

Big mistake. Dragging a few thousand messages from an IMAP server folder to a local folder ought to be no big deal; maybe it will take a while, but eventually it should finish copying.

No such luck. Instead, the Activity Manager pane will display nothing happening, but I'll get a few updates as the first few hundred messages are copied and then... nothing.

Sometimes it starts using 99%, or 101%, of a CPU, eating a whole core. The GUI grays out the app. Sometimes it shows nothing happening but clicking on the destination folder shows a spinning cursor. It stays like that indefinitely (I even left it to run overnight once, to no avail).

So, what I finally had to do was move 25,000 mail messages manually in small batches of 300 or fewer.

Still, sometimes even these small batches triggered the hang, and I'd have to quit the application and start over. When I did I found a corrupted message. Don't get me started on the JavaScript/XML errors on the console that didn't tend to correlate with this problem.

Worse, I found that occasionally during these batch copies messages would just get dropped, so I had to manually skim through 25,000 e-mail messages to find the odd dozen that had been lost.

I manually updated Thunderbird using dist-upgrade to version 5, which gave me fewer errors on the console but still exhibited this problem. Color me incredibly unimpressed.

Do you want to know how a good mail client behaves? Look at It just works. Seriously. I've seen a few cosmetic bugs but they are pretty insignificant and I trust it not to just hang or lose messages.

Let's not get started today on jEdit and the state of Java. As I have time I'm reporting bugs and attempting to help diagnose issues. Freakin' fonts won't even display correctly with the default install of what ought to be some pretty basic tools. At least Wi-Fi mostly works on my ThinkPad... which is more than I can say about 8.04 LTS.

Laptop Followup

I'm trying to use 10.04 "untethered" on my ThinkPad T500, running on battery power. My first observation is that the battery life is terrible.

My second is that the little flashing light indicating WiFi activity is constantly flickering, which is driving me batty. I'm not sure what this indicates -- any network activity? A dropped connection that it is trying to re-establish? I'll have to compare how it behaves under Ubuntu compared to under Windows. But there is no denying that network connectivity is maddeningly inconsistent: sometimes when I put in my WPA2 Personal password, which I can't seem to get the system to store and manage automatically, it connects instantly, and the signal strength indicator shows maximum; sometimes when I try to connect, the signal strength indicator animates indefinitely and seems that it will never either connect or give up trying. The Airport base station it is trying to connect to is directly upstairs, perhaps 25 feet away, and it probably bears mentioning that our Macs have always worked with it flawlessly.

When the battery went dead -- after only two hours, compared to the usual four or five i get under Windows -- I brought the sleeping laptop back upstairs and plugged it in to let it charge up. This morning I woke it up, plugged in the Ethernet cable -- the network changeover worked flawlessly -- turned off the wireless radio, and plugged in the second monitor, which is always plugged in when I'm working in the office. It is an old 20" HP monitor that does 1200x1600 and rotates, and I use it in "portrait mode," as part of a continuous desktop.

Ubuntu seemed to forget all this and would not light up the monitor until I brought up the Monitors preference application. I had to tell it all over again where the monitor belonged in the virtual desktop and that it needed to have its image rotated, which is a tedious task given that you have to fly the cursor around on an sideways image. It is working again but I am unimpressed.

By comparison, setting up services on Ubuntu as a server, using command-line tools, has been easy-peasy, practically a cakewalk. The tools in general seem to quite well-evolved, robust, and mature and if they are complex -- well, that's the nature of modern software stacks. Quite honestly, I'd rather configure server tools on any recent Ubuntu or other member of the Red Hat/Fedora/CentOS family tree than on my Mac Pro, given that on the Mac, since I'm not running MacOS X Server, I don't have the (allegedly quite refined) GUI tools to configure it. I've had considerable pain building some standard software tools on MacOS X: issues with arbitrary bugs and limitations on the ld library tool, the unusual default Apache2 configuration, and the lack of a "blessed" and de facto-standard way of installing and managing dependencies between open-source tools.

Without this I'm flying blind a bit on the Mac when using it as an open-source server, and it feels like a step backwards, although it is still my Mac Pro I use for iPhoto, for Aperture, for iMovie, for Logic Pro, and plug-ins and assorted audio tools, even for managing my music library in iTunes. And for writing code I'll still stack the XCode toolchain up against anything the competition can offer at any price.

No comments: