Free Agent: Getting Better All the Time
One of the Gnome desktop's biggest weaknesses is the lack of a serious CD burning application. Yes, there is a rudimentary-yet-elegant burning function built right into Nautilus, the Gnome file manager: Simply open up the CD Creator system folder, dump into it whatever files and folders you want to burn, select File, Write to Disc, and soon you have a brand-spankin'-new data CD. But if you want to burn a bunch of MP3 files to an audio disc, or duplicate an existing data or audio CD, you're out of luck.
To be fair, Microsoft Windows can't do these things out of the box, either: You pretty much need a third-party utility to get the job done. But in the Windows world, that third-party utility is going to cost you some cash. Things don't work that way in the land of Free Software.
For a good long while, Linux users have had only one option when it comes to a GUI-based CD burning tool: K3b, which is built for the KDE desktop. Now, there's nothing wrong with running a KDE app if you're a Gnome user. It'll start right up and behave just fine. But you may have to wait a bit before its window pops up, as the system has to initialize all sorts of KDE system components first.
Further, have you been around long enough to remember how Windows 3.x apps looked and behaved a little oddly when you ran them on your new copy of Windows 95? KDE apps may similarly look a bit out of place on your Gnome desktop, especially if your distribution doesn't have a visual theme shared by both the Gnome and KDE desktops.
So, though K3b gets the job done, I've been waiting for a native Gnome app to handle all my burning needs. One candidate, the Coaster project, has been in the works for a long time, and recently made its first few public releases. I played around with version 0.1.3 while working on this column, and I'm here to report that it's far too early to tell whether Coaster is the tool I've been waiting for. At this stage, the interface is nice and clean, but support for burning audio discs has yet to be implemented. My fingers are crossed in the hope that Coaster's pace of development will pick up from here on out.
There's reason to think that will be the case: competition. I assume that Graveman, a new offering from a hacker in France, has nothing to do with burial or the undead, but rather takes its name from the French verb for burning a disc, graver. In any event, when I downloaded version 0.1, I was surprised to see an elegant interface offering me the choice of burning a music disc, burning a data disc, or performing a straightforward disc-to-disc copy.
If Coaster doesn't kick into high gear in 2005, I fully expect to see Graveman showing up on new Linux distributions to fill Gnome's CD burning gap, because the sucker Just Works. And that's what we want, right?
At Long Last: Painless Wireless?
It's been more than a year since I chronicled my travails in getting Wi-Fi to work on my trusty Thinkpad, and not much has changed. If I am at home, the machine connects quickly and effortlessly to my home network, whose parameters (network name, WEP encryption key) are stored in the wireless configuration for Mandrakelinux 10.1, which I'm now running.
But when I'm elsewhere, trying to connect to an open wireless network, the Gnome desktop falls short. I have to open a terminal window, disassociate from any existing network with
iwconfig ath0 essid any, turn off WEP with
iwconfig ath0 key off, scan for the public network with
iwlist scan, and finally connect to the network and grab an IP address with
iwconfig ath0 essid networknameand
dhclient ath0. That's hardly the epitome of user friendliness. I don't need a computer that holds my hand every step of the way, but I also have no desire to mess around with the command line for something as simple (from an end-user perspective, anyway) as connecting to a wireless network. I'm guessing you feel the same way.
So when Novell was here at PC World HQ several weeks ago, showing off Novell Linux Desktop 9, I was intrigued by an applet running in the demo machine's Gnome panel. A right-click on this applet showed all available wireless networks and their signal strengths. Selecting any listed network made the machine connect to that network. Simple! Elegant! Something that Just Works! I was salivating. I wanted that applet right away. I asked the Novell reps where it came from. They told me that it was a custom bit of work by the coders at Novell, and that, in due time, the code would flow back to the wider Gnome project.
That applet is called Netapplet, and according to one of the readers who wrote in to tell me about it after this column first posted, it may only work on SuSE and Novell Linuxes. (I intend to find out soon.) But when I first scoured the Web for the applet I saw in the Novell demo, I thought I'd found it when I turned up NetworkManager, which is actually a clever bit of work spearheaded by a coder at Red Hat.
Ultimately, it doesn't matter where the applet comes from as long as I can run it, right? Aye, but there's the rub: I can't get NetworkManager running on my Mandrake 10.1-laden Thinkpad. The reason why may be an eye opener for potential Linux converts, or those who've recently made the switch.
Toto, We Don't Have Setup.exe Anymore...
Most Free Software is crafted in the time-honored fashion of standing on the shoulders of giants. Your typical Linux system comes with hundreds and hundreds of code libraries on it--shared code that can perform all sorts of low-level functions. You name it, and there's a system component hanging out on your hard drive that can do it.
So if you're a Free Software hacker and you want to build an app like Graveman or NetworkManager, you begin by finding out what the system already knows how to do. In the case of Graveman, author Sylvain Cresto began by working with components on his system that know how to do things like read MP3 files, burn data to a CD, and more. To grossly oversimplify for just a moment: The work involved in building Graveman is to a large degree all about getting existing system components to play nice with each other and with a newly crafted, attractive interface.
When I downloaded Graveman, it came in the form of source code. Cutting-edge versions of most Free Software are distributed this way. After you download the code, you compile it, and then you install it. During the compilation process, the compiler hunts down all the system components that the new application will need in order to get its work done. If a given component is missing, or isn't the latest-and-greatest version required by the app you're trying to compile, then the compilation will fail.
When this happens, you have a choice to make: Either track down and install the needed component, or give up. Sometimes installing the necessary component will require another download-and-compile procedure, which may itself reveal another missing (or antiquated) system component. If this sounds like a potential snowball effect, then I've explained it adequately.
The situation I just described is what longtime Linux users refer to as "dependency hell"--and it's dependency hell that keeps me from enjoying NetworkManager on my Mandrake machine. In my particular case, attempting to compile NetworkManager generates an error message saying my copy of the "wireless-tools" system component is too old. However, the version I've got installed is the one supposedly required by NetworkManager. I banged my head against that wall, trying various bits of trickery I've learned during my six years with Linux, for a couple of hours before finally (sigh) giving up.
I have two options. First, I can wait, hoping that some kind soul with far more geek credentials than I will figure out how to make NetworkManager compile on Mandrake. At that point, said kind soul may make a binary (that is, precompiled) NetworkManager package available for Mandrake. This sort of thing happens all the time: I am running Gnome 2.8 on my Mandrake 10.1 machine thanks to the hard work of another kind soul who posted some carefully crafted binary packages. (Mandrake 10.1 comes with Gnome 2.6, not Gnome 2.8.) My second option is to wait for Mandrake 10.2, lobbying Mandrake in the meanwhile to include NetworkManager in that release.
Sure, there's a third option: I could spend a whole weekend getting NetworkManager to work. I might very well meet with success. But there are too many better things to do with a weekend.
Vapor Can't Fetch, But Beagle Can
Some folks say that Free Software is perennially in catch-up mode, and that it takes the profit motive that's inherent in the commercial model of software distribution to generate actual innovation. When you take a look at the Gnome desktop, you see some signs of this alleged weakness, with CD burning and wireless handling being just two examples of missing pieces that ought to be there by now.
Elsewhere in the Free Software universe, however, innovation blossoms. Consider, for example, the Firefox browser from Mozilla, the first innovative Web browser of the 21st century.
In this context, it is gratifying to see the Free Software community produce a tool as promising as Beagle, the forthcoming desktop search tool for the Gnome desktop. I have not been able to get the current version to run--more dependency hell--but have played enough with an earlier version to know that Beagle isn't vaporware. It's very real, and if screen shots are any way to judge the app's current capabilities, Beagle can fetch with the very best of 'em.
Enter a search term, and Beagle combs through your e-mail, your documents, your instant message history, your media library, and more, looking for related information. I wish I had Beagle running on my machine today, and perhaps I'll give compiling it another shot before long, but I smile to note that I am likely to see Beagle ship as part of my Linux distribution of choice long before my friends running Windows see any analogous tool built in to their own operating system.
Catching up? In some respects, yes. But in other respects, my Gnome desktop is every bit as cutting-edge as anything else I could install on my Thinkpad. And it's getting better all the time.