About 6 months ago I was having a conversation with my roommate Beth, talking about her aging Dell laptop. She was considering getting a desktop machine to use as her primary workhorse for her up and coming graduate student immersion.
I thought a bit, and said “Hey, I could probably get you something decent. We could even make this an interesting experiment. Tell you what, I’ll get you a machine, but it’ll run Linux. Up for it?”
And we were off…
Naturally, the first steps for any project were… no, not figuring out desktop colors. First was trying to figure out what she really needed to DO with her machine. She’d been working on her Dell WindowsXP laptop for a few years now, and had many a tale of technical problems; lockups, crashes, and endless hours on support calls. So the first step was something stable, updateable, and zippy. That was the easy part, but what about applications? What was on the requirements list for software?”
We started out by listing needed functions, rather than specific applications. Most requirements refer to a task that has to be accomplished. If you start out with “Well, my first requirement is Internet Explorer”, you’re not going to get very far. But if the task is “Web browsing”, that opens things up. So we started with a list of ‘what needs to be done.'”
- VPN – For her paying job, she needed to be able to VPN over PPTP into her work servers.
- Remote Desktop – the VPN system used remote desktop (RDP) clients to attach to machines within their internal network
- Personal Finance – Balancing checkbooks, doing online bill payment, interracting online with the credit card companies and banks, that all had to be work.
- Digital Camera interfaces – Needed to be able to upload images from a digital camera, and needed to be able to work with the image galleries, sorting, fixing, discarding, etc.
- USB pen drives – Have to be able to socket in a pen drive, copy files to and from it, and take it with you.
- Word processing / etc – basic office suite functions. Must be able to do descent document management, and be fairly compatible with Microsoft office formats, though this was primarily for exchanging documents with other students and faculty, not dealing with Large Corporate Insanely Complex Spreadsheets [tm]
- A decent PDF viewer
- Ability to print to the network printer(s) at the house. This was important, as we have a nice color document printer available on one of other PC’s, and being able to work with that was crucial.
- Network access to shares – With other PCs in the house, transparent access to remote file shares, and copying files to and from her old laptop, that was important.
- Music! Must be able to listen to Radio Paradise! In addition, have to be able to manage a portable music player like an ipod, and be able to buy and download music online.
- Most video and audio formats were needed. Not just flash animations, but also WMV files and the like
- Graphic Editing – A high end photo editor and graphics editing tool was definately needed – not just for cropping, resizing, and the like, but also for composition, effects, and other detail work
- IRC – yeah well.
- IM – Google chat is fine, but really, the other chat systems needed to be available as well. Not everyone is on google. Mostly.
The list wasn’t short, and there were a few red flags in there, but all in all, I was pretty sure I could accommodate all of her needs on a Linux machine without too much yak-shaving. It was time to start.
Naturally, I had start with a computer. None of the requirements were particularly CPU intensive, so I didn’t need to go bonkers on horsepower, though memory was going to be important. I had had great luck with ‘yawl’, my Dell GX260 desktop machine, so I opted for a similar configuration. Some fast ebaying, and I aquired a Dell GX270 with a P4 2.8gig CPU, 1gig RAM, and 80gig HD for $150. It was an SFF machine (small form factor), so it would be smallish. Perfect for her desk, and was in a configuration I was comfortable with. After some discussion, the name ‘wherry’ was chosen, in keeping with our boat-based naming scheme. (A wherry is a type of boat used for carrying cargo on canals in England).
Now to choose an OS. This really didn’t take much thought. I’ve been a convert to the Ubuntu banner for about a year and a half now, and with each successive release of the platform, things have only improved. Because I wanted this machine to be as maintainable as possible, I opted not to go for Kubuntu, the KDE variant of Ubuntu, because I was trying not to apply my own biases toward KDE, and therefore defaulted back to GNOME. I later regretted this decision, but more on that later.
I downloaded the Ubuntu ‘Feisty Fawn’ release (what at the time was considered ‘current’ and stable), and burned a CD for it. Popping it into ‘wherry’, I booted it, selected ‘Install!’ and off it went. 15 minutes later, I had rebooted, and had a lovely Ubuntu login screen available, running at 1024×768 (the maximum my current monitor could support), in full color, and on the the net. We were in business!
The basic applications
Naturally, we needed to do some of the basic things. Firefox was the natural choice for web browsing. While there are certainly alternatives, Beth was already comfortable in Firefox, and we knew it was easily extended and had lots of plugins. With the latest updates in Feisty Fawn, we also had fully functional Flash and Shockwave plugins, as well as an updated Realplayer. Video and audio playback on websites worked like a champ. The only thing missing was WMV support, which required some fiddling to get working. We enabled the Totem Browser Plugin for Firefox (via installing the totem-mozilla package, which automatically installed all the necessary support tools, such as gstreamer). With these bits installed, we had virtually the same browser experience as was provided under Windows, with full audio, video, and graphic support, within an interface Beth was already familiar with. Score!
I thought this would be the easy part, but of all the components I thought we’d be able to cover, this one completely stumped me. The goal is to be able, as in Windows, to double-click on a VPN icon, authenticate to the remote PPTP server, and voila, we would be tunnelled in.
Alas, this was not to be the case. I worked with KVPNC for almost 3 weeks, but was consistently foiled at this seemingly simple task. There are many tutorials on the net on how to configure PPTP via various utilities, but I could not get success no matter what I worked with. This was vastly disappointing, and as of this writing, I still don’t have it working.
In the end, I realized that the only way to make this work was to have Beth use her VMware installation (see below) for VPN access. This is a solution I really don’t like, so if anyone has any ideas on how to debug this KVPNC or NetworkManager to work with Windows PPTP servers, please let me know!
If we had a working VPN, we could easily use the awesome remote desktop tool Krdc to access remote machines via RDP. Unfortunately, no VPN, so we’ll have to remote desktop via the VMware install
The VMware Instance
I already knew there were certain things we weren’t going to be able to do under Linux. There are gaps in what can be easily moved to a whole new platform. In this case, the great immovable obstacle was Quicken from Intuit. There will never actually be a Linux version of Quicken or Quickbooks, I am fairly sure of that, having some… experience with how Quickbooks is developed – there is no reason for Intuit to ever port their application to Linux. I did look at other possible replacements, such as GnuCash, but in reality, businesses and banks support Quicken. Without Quicken, we were just going to get in trouble.
There were two possible ways to get around this. The first is to go sort of ‘halfway’, using an interim environment. The best free tool around is WINE, which has gained a reputation as being quite robust for certain applications. It’s still a ‘half-step’ though, as you’re emulating a windows environment under Linux. A better solution is Crossover, by Codeweavers. A commercially supported tool based on the work done in WINE.
Both of these solutions MAY result in a running version of Quicken, but it would be a hybrid installation – half in Linux, half in Windows. My experience with Quicken is it depends very heavily on it’s environment in order to fetch data from banks, print invoices and reports, etc. I wasn’t really sure it would work completely, and I was trying to avoid as much yak shaving as possible. In the end, I decided to install the absolutely fantastic VMware, and create a WindowsXP virtual machine that Beth could start up and shut down as needed. We already had an XP license, and we knew we’d need XP for VPN access. Running Quicken under the VM was just the logical solution.
I purchased a license for VMWare Workstation and created a new workstation image. I installed XP onto it (a truly surreal experience if you’ve never done it. Windows running in a window on a Linux desktop), and then installed the VMware tools into the Windows XP VM. (The tools allow much faster screen updates and mouse integration – rather than having to ‘shift in’ and ‘shift out’ of the VM, the tools allowed basic mouse navigation to and from the VM without really missing a beat.)
Once the patching process was done (a handful of reboots, all within the VM of course, updates, and very very boring downloads), the VM was determined “OKAY!” by me, and I was ready to install it on wherry. VMware has this fantastic little ‘mini’ installation called VMPlayer which allows any machine to run a VM configured elsewhere. This means I could simply install VMplayer on wherry, copy over the VM I created on yawl, and we’d have a legal, simple running VM of WindowsXP for Beth to use. And in fact, it worked! VMplayer works as advertised. The only drawback is if the VM needs to be reconfigured or changed or updated, it needs to be copied back to the Workstation install, edited, then re-deployed. No problemo! Thank you VMware!
Photo Downloads and Editing
So with the personal finance stuff out of the way, it was on to the graphics. Beth has a digital camera she needs to pull pictures from, as well as a huge collection of photos being scanned in from a film scanner. We needed a good tool to browse, organize, label, tag, and perhaps edit these several thousand images.
My favorite tool, and one that I feel has not be equaled, is DigiKam. It started out as the KDE alternative to gPhoto, but has since far surpassed it in functionality, ease of use, and in features someone actively working with many many digital photos really needs. DigiKam has excellent browsing and album tools, can export photos to Gallery or to flat HTML directories for publication, but also has a great interface to allow uploads into Flickr.
DigiKam also interfaces very nicely into the KDE desktop tools. When a USB device comes online (just by plugging it in), KDE pops up a dialog asking if you’d like to import pictures into DigiKam from it, or just open it in a browse window. If you select DigiKam, it starts up, and previews the pictures on the device. This works great for pen drives or for digital cameras, most of which support the USB mass storage specification, and files on the camera just appear as normal files. No special reader needed.
But beyond basic photo browsing, uploading, and categorization, Beth also needed to do photo editing. Cropping, resizing, color changes, effects, compositing, the whole works. The natural choice for this is the GIMP, or the “Gnu Image Manipulation Program.” GIMP is the defacto standard for graphic editing under Linux, and is frequently compared to Photoshop for functionality. As far as differences, the big one comes in the price. GIMP is free, and Photoshop, well, isn’t. GIMP doesn’t have the huge array of commercial plugins that Photoshop has (and there are a lot of them), but it has a pretty large array of plugins on it’s own. The other criticism frequently levelled against GIMP is that it’s hard to use, or has a very ‘strange’ interface. I don’t know about that, but have you ever really looked at Photoshop? It’s interface is just as bizarre, complex, and unintuitive. It’s just been around longer. Beth and I discussed the differences between GIMP and Photoshop, and after talking through the things she needed to do with it, decided GIMP would probably work just fine for her needs.
Word Processing and Office Apps
I thought this might be a challenge as well, but in the end, the conversation was brief. “Hmm, office stuff.” “Can’t I just use OpenOffice?” “Uhh, sure. You okay with that?” “Hell yeah, we use it all the time.”.
Okay then, Open Office it was.
This was a little bit tricky. Adobe provides a fully functional reader for Linux, that has the familiar Reader interface and all that jazz. I’ve used this under numerous circumstances on yawl. But in point of fact, it’s not 100% necessary. KDE and many other environments come with perfectly functional PDF previewers and readers that let you browse and work with PDFs. Adobe’s reader is more complete, and includes PDF extensions that may not be in the opensource tools. I know that Beth works with a TON of very complex PDFs when dealing with our cohousing project, so having the ‘fully supported’ reader is probably a good idea. In that goes.
Network printing and share access
This one was pretty nerve-wracking as well. Linux (and in fact all Unixim) have had a long history of not-playing-well-with-printers. In fact, up until a year ago, Firefox couldn’t even print a page correctly in a standard Linux distro. So with great trepidation, I set about configuring wherry to talk to the HP color inkjet printer attached to ‘dragon’ (my wife’s computer running Windows XP). KDE provided a simple Printer dialog screen, and after specifying the printer was on //dragon/HP930C, I selected ‘Print test page’ and… it printed! Knock me over with a feather. That wasn’t supposed to be that easy. I set the printer as wherry’s default printer, went in to Firefox, ran up a Google map, said “print this”, and it came out on the remote printer perfectly. This sort of transparent network resource access, particularly for printers was virtually unheard of as little as a year ago. What fantastic advances have been made.
Accessing file shares was just as easy. In Konqueror (KDE’s all purpose filesystem and web browser), simply typing in ‘smb://dragon/’ immediately let me browse the shares available on ‘dragon’, copying files to and from them and working with them as if they were local filesystems. We had network access! Strike another requirement off the list.
Playable music and mobile device management
Naturally what would a computer be without the ability to listen to the best online music, as well as local MP3 archives? I set up Beth with Amarok, the KDE music player. Each time there’s been an update to this outstanding package, it’s just gotten better. It functions well as a music player, archive browser, and online streamer. It also has the capability of managing plug-in music players like the iPod, by managing what files are tagged for transfer, then performing a synchronizing update.
Unfortunately, one of the things that Amarok cannot do is interface with the iTunes store. To do this, we’ll need a full iTunes installation. We haven’t tackled this particular issue quite yet, but there’s been a lot of work getting iTunes working under Wine. Stay tuned for an update on this front!
IRC and IM chatting
While not quite ranking up there with Open Office in importance, the need to be online with friends and family for IM and IRC chat is definately there. In the past, Beth had been using tools like ChatZilla for IRC chat, and Google Talk for Jabber conversations. We’d like to move her up a few notches, so we dug around for what would work best
A lot of my associates are very keen on Pidgin (formerly ‘GAIM’). I personally have tried it a few times and really wasn’t that impressed with it. Beth apparently agreed with me, as after she used Pidgin for a day or three, decided the interface was just too uncomfortable to work with, and abandoned it in favor of Konversation. As far as IM goes, we’re planning on checking out Kopete for multi-protocol chatting. I use Kopete for all my Jabber contacts, and it’s been a very stable, useful program, and integrates well into my desktop
Wait, what happened to GNOME?
Boy you folks are sharp! In the beginning of this article, I specifically said I was going to use Ubuntu Linux with GNOME as the desktop environment to avoid straying into ‘my personal favorites’, and coloring Beth’s experience in the new environment. The last time I tried to use GNOME full time, I gave up after only a few weeks. At the time I speculated that my long time exposure to KDE made me uncomfortable in GNOME, but after trying to get things set up and useable and easy for Beth to work in with GNOME, I gave up in disgust, and switched her to KDE. Konqueror, the embedded browseable targets, DigiKam, all the other decent tools in KDE not only made it easy for me to get her up to speed, but it also made it easy for her to learn and explore new things, allowing her to figure out stuff on her own. GNOME’s minimalistic interface puts up more barriers than anything else, and in the end, wasn’t appropriate for this new user. A quick change of login preferences, and she was happily working away in KDE.
It’s now been about a week since ‘wherry‘ first came online. So far I’ve only been called down to Beth’s desk once to figure out a simple URL problem with the SMB share. Everything else – photo editing, browsing, printing, copying files to and from the shares from her old laptop, and just plain Getting Work Done she’s done on her own, without needing my input. This alone shows how stable and, dare I say it, user friendly the Linux desktop has gotten.
I’m tickled to note that 95% of the functionality that Beth needs was accomplished with native Linux applications. The VMware instance is now less of a “here’s where we’ll do all the things Linux can’t do”, and more of a “We need to run these old crufty applications that have no choice but be wedded to that icky OS. We’ll give them a special place to run so they’ll be happy.”
I have to give a big thanks to Beth for letting me give this project a try, and the go-ahead to write about it here. Make sure you stop by her profile and send her a thanks! Also thanks to my wife Catya, who has also been a great supporter, trying her darndest not snark at our geeky pursuits. Thanks everyone!