Saturday, December 15, 2012

Gnome Shell Revisited, and the Shocking Truth About Unity

If you've read my previous posts, you've probably ascertained that I like Gnome Shell least among the three main Linux Desktop environments. But my recent experiences have altered my perspective.

I've primarily used Ubuntu and Debian in the past. However, since my job now requires me to develop software for Redhat Linux, I recently installed Fedora on my work laptop, in a dual-boot configuration with Windows 7, in hopes of becoming more familiar with the RH platform.

I do most of my development work on a RHEL 6 workstation, but I also occasionally work on code on my laptop as well. The awkwardness of software development under Windows was getting tiresome, so I requested permission to install a second OS on my laptop. Admittedly, Windows 7 now seldom sees the light of day.

I decided to use the default Fedora install image, rather than the KDE variety, with the idea that it would be better supported. After a couple weeks of using Gnome Shell, I have to admit, it's kind of grown on me. It could still use some polish, and there are far too many features that are only partially implemented, but there's also a lot to like.

One big dislike I had initially for Gnome Shell, is that I can't take advantage of my full screen real-estate to view my workspaces. Instead, they're stuffed into a tiny strip in the right margin, that looks like something that came out of a photo booth at the mall.

However, after several days of using Gnome, I booted up a machine at home running Ubuntu's Unity desktop, and quickly recognized the method to the Gnome devs' "madness." In Unity, if I want to find a window on one of my desktops, I have to:

1 - Switch workspaces,
2 -  Go into scale mode to view the windows on the current workspace,
3 -  Close scale mode,
4 - Change to the next workspace, and so on.

The fact that you can only see the topmost window in Expo view (assuming that window is maximized), renders this feature almost useless. Or at least it makes it far less useful than it could be. There is, of course, the option to click on the launcher icon for the desired application. This is very similar to the way it works in OS X; which is a feature I've always found annoying about OS X. Clicking the icon takes me to the correct workspace, but now I have no idea what workspace I'm actually on.

In Gnome Shell's Activities view, by contrast, I can quickly switch between workspaces, and immediately view all of the open windows on that workspace. I also appreciate the fact that all of Gnome's features are accessible from Activities view. I can access the system menu, the notifications tray, the calendar applet, etc., all without leaving Activities view. In Ubuntu's/Compiz's scale view, I can't do anything without closing scale view first.

I was disappointed, however, upon upgrading my wife's macbook to OS X Lion, to discover that the workspace switcher is now very similar to Gnome's. One of the thing's I've liked about Gnome Shell from the beginning is that the concept felt so original.

I don't know whether it was Apple or the Gnome Foundation that came up with the idea first. If it was the Gnome Foundation, then it's no big deal, because they've definitely put their own spin on the concept. It's just another example of Apple stealing other people's ideas, and then boasting about how truly original they are. If it was Apple, on the other hand, who had the idea first, I see trouble ahead. They seem ready to sue over the slightest similarities in design. That still applies, even if they copied the idea, but were the first to patent it.

I must also mention here, kudos to KDE for their implementation of the workspaces view. It presents you with a scale view of all the windows open on each desktop, and is much more informative than the Compiz counterpart. KWin, in so many ways, seems to me like what Compiz Fusion might hope to be when it grows up.

All this may seem like splitting hairs to you, and just a matter of user preference. However, I found that it goes deeper than that.

I quickly found Fedora to be far too unstable, and trying to get it working was eating up too much of my time. First off, I couldn't even get the system to shutdown without hanging. And then it would drain my battery like a sailor on shore leave drains a pint of beer. My laptop was always hot, and the fan sounded like a 747 on the runway. Then there was the intermittent loss of touchpad control, which could only be remedied by dropping into the console and killing the session.

There's so much to like about Fedora. It's a shame that the support cycle is so short, and it has no LTS equivalent. The closest thing is RHEL, which is like stepping back in time.

So I replaced it with Ubuntu 12.10, which resolved most of the problems I was having with Fedora. This was my first time using Quantal, and I really liked some of the new features, such as Unity previews and web apps. However, I found that running even very lightweight virtual machines under Unity made the desktop almost unresponsive. And this is on a system with 4GB of DDR3 RAM and a 3.0 Ghz i7 processor. My guests were two minimal CentOS VMs, with no desktop, 512 MB of RAM, and 1 processor each.

Well, this just wasn't going to do. Curious, I decided to try installing Gnome Shell. Actually, it was already installed, thanks to a package in Ubuntu Software Center mis-labeled as "Evolution Calendar."  I thought I was installing a calendar, but instead installed a whole desktop environment!

So, I logged out of Unity, and logged back in to Gnome Shell. I then opened up my regular applications - Chromium, Gnome Terminal, Gedit etc. - and then fired up my VMs. There was a little sluggishness as they were booting up, but after that the loss in performance was almost unnoticeable. Gnome Shell remained snappy and fluid. Even with Evolution Mail and Calendar open - a notorious system crasher - everything still worked smoothly.

I find the huge resource load difference between Unity and Gnome to be kind of shocking, and it may spell the end of my experience with the Unity desktop. If I wanted an OS that requires frequent hardware upgrades to keep it functional, I'd still be using Windows. Sad, I was really starting to get excited about the direction Unity was going.

Wednesday, November 28, 2012

Fix: New Install of Ubuntu 12.10 Won't Boot

I recently installed Ubuntu 12.10 on my Dell Lattitude work laptop, dual booting with Windows 7. Though the install was successful, the system then booted to the GRUB rescue prompt, with the message:

error: file '/boot/grub/i386-pc/normal.mod' not found.

After re-installing several times, and a couple hours of finding nothing on Google. I found the solution  here. It appears the problem was caused by the Ubuntu installer, which installed the GRUB for EFI bootloader instead of the standard version.

I won't go into the whole EFI secure boot controversy, as it's been abundantly covered elsewhere. My laptop is secure boot capable, but this feature had already been disabled when I received it. However, Ubuntu still installed the secure boot version of GRUB, apparently because it detected that my system had EFI capability.

So, and I'm guessing here, that when the laptop started to boot, the BIOS transferred control to GRUB, which tried to boot as it would for a non-EFI system. However, because the wrong variant of GRUB was installed, it was unable to find the necessary files to complete the boot process. GRUB thought it was on a non-EFI system, but the Ubuntu installer hadn't installed the necessary files for a non-EFI boot.

The solution: boot the live DVD, mount the root partition, and re-install grub with --root-directory flag set. Example:

# mount /dev/sda5 /mnt

# grub-install /dev/sda --root-directory=/mnt

This mounts the root partition (assuming it's on /dev/sda5), and then installs grub to the drive's master boot record. Passing it the path to the root directory will cause grub to install it's files into the "boot" directory in that path; in this case "/mnt/boot".  This will install the non-EFI version of GRUB, and the system will then boot normally.

I admit that my understanding of what caused the problem isn't totally clear, so feel free to correct me in the comments.

Incidentally, I installed Fedora 17 on the same laptop, with device encryption set, and experienced no issues. IMHO, Fedora's installer makes Ubuntu's look like a CS class project. I just wish the installed system worked as well. I've long found the Ubuntu installer to have an unpredictable outcome.

Wednesday, September 19, 2012

Giving KDE Another Try

A while back I wrote about my struggles with Ubuntu, and Unity's instability on my desktop computer. While I've always really liked Unity conceptually, It's been unstable to the point of being impractical to use. As I mentioned before, I've been on a bit of a quest to find an alternative.

My laptop, on the other hand has worked well with Unity from the beginning. Well, at least until 12.04, but that's a whole other story. My laptop has Intel graphics, which you probably already know has open source drivers. The closed sources drivers from Nvidia and ATI are notoriously problematic on Linux. Compiz Fusion, on which Unity is based, isn't exactly reputed for it's stability, especially when it comes to proprietary graphics drivers.

With Unity unusable, for the present, and not being too impressed with the current state of Gnome 3, my mind was open for a new desktop environment. I tried Enlightenment. It was pretty cool, but just not for me. Of course, there are the minimalist desktops with no 3D effects, but where's the fun in that. Having learned how to use the desktop effects to actually increase productivity, rather than just to waste time, there was really no going back.

Having eliminated all others, that pretty much left KDE. I tried KDE several years ago on Mandriva and Fedora Core (when it was still called Fedora Core). It had a lot of cool features, but it seemed slow, bloated, and unstable. So I didn't really bother with it for awhile. But I decided it was time to try it again.

I have to admit I've been very impressed. KDE has definitely come a long way. It has the feel of a robust, complete operating system (yes, I know it's not technically an OS). As far as desktop effects go, KWIN approaches rock-solid stable. I didn't think that was possible with a 3D compositing manager. I thought instability was the price you had to pay for cool effects. But not with KWIN. No crashes, no memory leaks, no racing. In fact, it uses remarkably little memory, compared with Compiz.

I started by installing Kubuntiu 11.10 as a VM. I was immediately impressed. Lots of great features, a complete software suite, well integrated admin tools, and highly configurable. But it wasn't completely stable. Not as a VM, anyways. The main goal was to increase the stable factor, not the cool factor, so I decided to try Kubuntu 10.04 LTS; this time on hardware. I was surprised that most of the features were the same as in 11.10. This definitely earned some positive points. A full featured, modern desktop, that doesn't undergo revolutionary changes every 6 months.

Unfortunately, I was unable to the get the Nvidia drivers working under 10.04. I decided to take a chance, and do a physical install of Kubuntu 11.10. This was about six months ago. I'm on 12.04 now, and things are still going well.

Besides the points already mentioned, there are many great apps available for KDE: Digikam, K3b, Dolphin, Kate, Amarok; none of which seem to have a comparable counterpart in Gnome/Unity. Another big plus, is the universality of KDE. You can switch between all the major Linux distros, and even BSD, and still use the same desktop manager. Of course, most, if not all, KDE applications will work under Gnome and Unity. But there are often conflicts when not running in the native environment.

For me, though, the biggest plus is the development tools. QT Creator, KDevelop, Kate, QT Eclipse plugin, etc. Not only are there many highly mature dev tools available for QT, there is also a wealth of documentation. All of these are lacking for GTK. There are no fully integrated visual GUI builders available for GTK. The documentation is definitely improving, but still far behind that of QT. I've always found the GObject documentation to be rather cryptic, and it seems like it can only be understood by those who already know it. Learning how to use the various Gnome components requires too much trial and error.

I don't love the fact that QT development requires practically a whole separate version of C++, which makes it difficult to integrate existing C/C++ code into your project. However, I appreciate that the default language is object oriented. Using a low-level language for GUI programming doesn't seem quite right to me. GTK has C++ bindings, but they're awkward to use, and require a cumbersome amount of boiler-plate code. In my opinion, it's better just to use C with GObject. If you must have high-level convenience, use the PyGTK bindings for your interface, with C/C++ in the back-end to do your heavy-lifting.

So what's the verdict then? Am I sold on KDE? Does it represent the future of the desktop for Linux? Would I recommend it to new and experienced Linux users alike? Not exactly. While KDE has many things going for it, it lacks Unity's elegant simplicity. Much of KDE also seems to be borrowed from other desktop environments. Those things that are uniquely KDE, like Activities (I'm surprised they're not called Aktivities), aren't especially useful, IMHO. Both Gnome and Unity seem more innovative and original. While Unity's often accused of being very Mac-like, I fail to see the resemblance. When I hear people say that, I wonder if they've used a Mac much at all. I'm guessing that the accusations come from people who don't like the global menu.

Actually, if you ask me which DE represents the future of the Linux desktop, my answer may surprise you. While I run KDE on my desktop and Unity on my laptop (or did until recently), I don't predict either as having the best chance for adoption by a wider user-base. Pretending for a moment that Android doesn't exist, I'd put my money on Gnome. If for no other reason, because it's the least likely to be the target of Apple's litigation frenzy. But that's a topic for another day.

Fortunately, there are numerous desktop flavors available to suit your tastes, on an operating system that has proven to be as versatile as our imaginations.  

Wednesday, June 6, 2012

How to Have Bookmark Tags in Chrome/Chromium

Probably the thing I've missed the most since changing to Chrome as my primary browser, is the bookmark tags. As with many innovations, I didn't see much use for them at first. But after I tried them out a little, I realized how powerful a tool they are. No more stopping to decide which folder or subfolder to bookmark a url in. Just a few quick tags to describe it and I'm done. I quickly learned how to do it without even touching my mouse.

Unfortunately, however, I found Firefox overall to be getting pretty buggy, and crashing far too often. Not to mention how slow it was getting. I swapped back and forth at first, hoping Mozilla would show the innovative flare they once had, and get caught up. But in the end, Chrome's simplicity and speed won out.

Like many others, however, I've been frustrated by the failure of the Chrome/Chromium developers to implement some very simple features that would greatly enhance the user experience. Despite scores of requests for them to implement bookmark tags, over several years, the response has been one of indifference. At times I've come very close to switching back to FF. It's funny how a feature you'd never had use for previously can become essential.

Funny thing is Google got it right with Google Bookmarks. They were ahead of the game. But now development on Bookmarks has all but ceased. Rather than adding functionality, they've stripped away support from it.

The bad news is that there doesn't appear to be any plan to implement bookmark tags in Chrome in the near future. The good news is that there's a simple workaround. It doesn't require installing an extension, and it syncs between computers. So here's how it works.

One of the really cool features of Chrome is the ability to create custom search engines for the omnibar. In fact, you can do just about anything with the omnibar, if you're willing to take the time to learn how. You can create a search engine for pretty much any website that's searchable.

How does this work? Well, you may have noticed that the url in the location bar (or omnibar in Chrome) changes when you search a website with your browser. Typically, your search query appears near the end of the url. I realize this is all pretty spoon-fed for the more tech-savvy among us, but bear with me.

If a website uses this type of search, you can create a custom search engine for Chrome by removing your search string from the url, and replacing it with %s. This symbol acts as a place holder for search queries. Sometimes you can create the search url quickly by just searching for "%s" on the website you want to create a search engine for.

Well, it turns out that you can also search your bookmarks this way. To get started, open your bookmark page with ctrl+shift+o and search for "%s". You should get something that looks like: chrome://bookmarks/?#q=%s. Now, right click in the omnibar and select "Edit Search Engines." Scroll down to the bottom and you'll see a row where you can "add a new search engine."

In the first box, just put whatever you want to call the new search engine, e.g. "Chrome Bookmarks." In the second box, you can set a keyword to activate the search engine. Whenever you type this keyword into the omnibar followed by a space, the search engine will be activated. Then you can type in whatever you want to search for in that website or, in this case, your Chrome bookmarks. In the last box, put the url, e.g. "chrome://bookmarks/?#q=%s." Now, press enter to save.

Pretty cool, huh? Note that you can also customize the keywords for the other search engines. I recommend something short and easy to remember. It should also be unique, so it doesn't get activated accidentally when you're googling something.

So now you can use the omnibar to search your bookmarks. But what about tags? Well, another great feature of search engines, known only to a geeky few, is called a wildcard character. There are different kinds of wildcard characters, which are all part of a larger concept known as "regular expressions," or regex. However, for our purposes, we're only concerned with the "*" wildcard character.

Of course, you probably recognize this term from card games like UNO or poker. Well, it works the same way. An "*" basically means "any number of random characters." So if I search for d*g, I might get results for anything from dog to daring. For more info on Google search operators, see this page.

Well, we can use this to set up a tagging system for our bookmarks. At the end of the bookmark title, put something like [tags:jobs, employment, ka-ching]. Just some way of saying, "Here are my tags." The key is to make it something that's very unlikely to show up in a regular bookmark title. Using my example, you would then modify your search url to look like this: chrome://bookmarks/?#q=[tags:*%s*]. Now, whenever you enter the search engine's keyword, e.g. "btag", you will be able to search for specific tags in your bookmarks.

Very simple. If you're like me, you don't like installing extensions for every little thing. And the best part is that it will sync between computers, if you have sync set up, because it's just part of the bookmark title. Of course, it's not nearly as slick as the implementation in Firefox. There's no autocomplete, and you can't browse by tag. But it offers a simple solution, if you want a way to tag your bookmarks, and are determined to use Chrome/Chromium.

At some point, I'd like to write an extension to make this work more like it does in FF. The good thing is that this method would allow for a fairly seamless transition to using the extension. A script could search through your bookmarks for the regular expression - e.g. [tags:*%s*] - and use it to create a tag index. And should the Chromium devs ever decide to implement tags, all your tagging efforts won't be lost. If you're really adventurous, you could always download the Chromium source code, and implement tagging into the browser itself. Oh, the wonders of open source! The only limit is your imagination.

Update (Sept. 1, 2013)

Well, I finally got tired of going without features that will probably never be implemented in Chrome, and having to open Firefox to view pages that Chrome still can't load. After reading a recent browser test in which Firefox handily out-performed Chrome, I decided to give it a try.

I'm impressed. Firefox has definitely made improvements since I switched over to Chrome a few years ago. While I have been using it several times a week to load pages that Chrome can't, it was never enough to see the difference.

It's so nice to have real tagging again, as well as some other powerful features. The only drawbacks I see are decreased integration with Google services, and a loss of simplicity in adding search providers. 

So I wrote a Python script to convert my Chrome tags into Firefox tags. You can download it here. If you use the same tagging syntax I describe above, it should work as is. Instructions are in the script. If you use a different syntax, you'll have to edit the 3 lines that start "tags = " and the regex match string.

Note that this script ignores case, which means that "Linux" and "linux" are treated as the same tag, and so on. If you don't want this, you'll have to edit a couple lines (tip look for "lower").

The normal caveats apply: Use at your own risk. Back up your bookmarks first. It worked perfectly for me. Unlike a lot of people, I don't post code that I haven't actually tested first. But there are no guarantees. As with any script you get off the internet, look through it before running it on your computer. I know I'm trustworthy but you don't. a simple line like "scp -r ~/.thunderbird myuser@myserver" could really ruin your week.

I adapted this script from one I found on a forum for converting tags. That may be useful to you, if you use that service. That script doesn't work as is, but I explained in my comment there what needs to be done to get it working.


Sunday, May 27, 2012

Microsoft Pulls Desktop Support for Visual Studio Express

In an article today on, Katherine Noyes writes of the latest blow by Microsoft against open-source software. Apparently, the latest generation of Visual Studio Express IDEs will no longer be usable for creating desktop applications, and will instead be designed exclusively for Windows Mobile app development. Go here to read the article.

I guess it's a matter of perspective, as to whether this is really a blow to open-source. One of the reasons application developers favor Windows so much is because there are so many great free dev tools. Building a desktop app with Visual C# Express involves a very small learning curve. It's easy. And, of course you can't ignore the enormous user base. For a novice programmer, it's the obvious place to start. So who is Microsoft really hurting here? Only time will tell.

As I've mentioned before, I believe this is one critical area where Canonical really seems to be getting it wrong. With all the effort to ready Ubuntu for the mainstream user, there appears to be little being done to attract developers to the platform. Creating your first graphical app for Ubuntu still takes a good deal of web searches and research; First, to figure out what tools to use, and second, to figure out how to use them.

The fact is that GTK+, the default graphical toolkit for Unity and Gnome, is still pretty painful to build interfaces with. While seasoned GTK developers may disagree with this, it's important to remember that nothing seems difficult when you already know how to do it. We tend to forget what it was like when we were first learning how.

Compared to other graphical frameworks, Gnome development requires an inordinate amount of hand-coding. Even when you use Glade and GTKBuilder to create the interface, the process can be awkward and time consuming. In particular, the GTK+ bindings for C++ require a lot of redundant coding to be done by hand in order to integrate the XML file into the program. You can use the native GTK+ C libraries instead, but you will still be very limited on how much can actually be done with Glade. It may come as a surprise for the novice Ubuntu developer when, after spending hours crafting their interface in Glade, they find that none of their signal handlers are accessible from their code. Besides that, GTK+ falls a bit behind aesthetically.

This is in sharp contrast to KDE, where you have an abundance of mature graphical development tools. These include: QT Designer, QT Creator, KDevelop, the QT Eclipse plug-in, and the powerful KATE text editor. All, of course, work very well with C++, but also with most of the other major languages used on Linux. In my opinion, QT applications also have a much more professional and modern look and feel, and they seem to play better with graphical effects. Take, for example, the beautiful oxygen-transparent theme. QT apps can be run in Unity and Gnome, but they still don't quite fit in.

Going back to Microsoft and Visual Studio. It's hard to see how eliminating one of their greatest boons to developers will help them. According to the article, the VS Express IDEs will only be usable to make apps for the mobile platform. Considering the uphill battle Microsoft will likely have in winning over users from iPhone, Android, and Blackberry, this is a big risk for them. It seems almost as if they are trying to force people to use Windows 8 mobile, and are desperate to make headway into the mobile market.

There was a day when most of the great free applications were only available on Linux, and the only stuff you could get for Windows came with a lot of unwanted bloat and stipulations. Of course, things are very different now. The plethora of open and free apps available for Windows has probably done much to maintain the platforms popularity among the rising generation. The fact is that, people love free software, and free software greatly benefits when more developers are available to work on it. Having affordable development tools that are easy to use makes a big difference here.

Only time will tell if this move by Microsoft will pay off, but to me it seems like just another manifestation of a shrinking mentality on their part. My guess is that it will push developers away from Windows, and toward Linux and OS X. Perhaps it will drive more development on cross-platform tools like Eclipse, which would hardly be a blow to open-source.

Hopefully, Canonical and the Gnome Foundation will see the opportunity here, and focus more energy on providing better tools to developers. A huge part of this is having really good documentation, in addition to integrated development software. When you're building a house, it's great to have a lot of help, but it's even better if everyone has a good set of tools to work with. If you have people standing around because there are not enough tools, or the tools you have are too difficult to use, then the extra help is largely wasted. Two guys with a nail-gun are much better than 10 with hammers. In short, focus on providing the right tools, and the other stuff will take care of itself.

Saturday, January 21, 2012

Ubuntu 11.10, Unity, and Gnome Shell

I installed Ubuntu 11.04 (Natty Narwhal) almost as soon as it came out last April. Overall I was thrilled. I'd played around with the numerous desktop customization tools available for Linux, and finally decided that what was needed was a fresh perspective on the Linux Desktop. Unity brought together simplicity and innovation in the same package, proving that you don't have to strip out all the features to simplify. Gone was the old Ubuntu desktop default install, with its chaotic collection of applications and administrative utilities. The idea seemed be, "Let's start small and build it back up again, only adding what's really necessary when it's really ready."

Okay, so that's a somewhat Utopian description, which ignores the numerous bugs in Unity. Still, I believe it reflects where Ubuntu is headed, though it still seems rather distant at times. However, I have to say that I was surprised at how well 11.04 worked. There were a few annoying bugs, but I was able to quickly resolve most of them; with the help of the Ubuntu community.

Most surprising was how well it worked on my Laptop. Until very recently, my experience with the Linux laptop has been an almost hopeless endeavor. But not only did 11.04 run well on my Acer 1410, but it ran much better than the painfully sluggish Windows 7 factory install. Strangely enough, Natty has actually worked much better on my laptop than on my desktop.

Needless to say, I looked forward with bright anticipation for the fixes and improvements that would come with the 11.10 release. Unfortunately, however, Ubuntu 11.10 (Oneiric Ocelot) has not been the delight I'd hoped for. While there are many things I like about this most recent release, it also introduced some annoying bugs that have made it almost unusable. Boot up and login have gotten quite slow, and the desktop effects are subject to frequent corruption and conflict. It seems that the numerous Compiz plugins are at war with each other, even if only the defaults are used.

I've become far too familiar with the magical "unity --replace" command. While it does fix most problems temporarily, it also constitutes a jolting interruption to my work flow. The frequency with which I've had to either log off or reboot my computer has given me flashbacks to Windows XP. Many of these reboots have required some magic key combinations to avoid a hard shutdown.

Admittedly, the lion's share of these headaches have been on my desktop, not on my laptop, though both have become buggier with the upgrade. And, of course, the nice thing about Linux is that there are alternatives to simply holding down the power button when the system locks up.

After several months of trying to be patient, and telling myself that bugfixes will be forthcoming, I'm on the verge of falling back to a more stable desktop. Maybe Fluxbox on Debian or Mint. The problem is that I've become addicted to certain unity features, namely the Dash. The ability to hit a key, type in a search term, and quickly locate whatever I'm looking for, is a quantum leap ahead of menu browsing.

When people complain to me about not being able to find anything in Unity, I tell them that they just need to transition from the "menu mentality." Once you make that transition, it's actually much easier than the old way. In fact, this has probably been the biggest selling point for me in getting "non-geeks" to use Ubuntu. For me this is the principle innovation in Unity. The launcher is kind of neat, but I could live without it.

I challenge those who call Unity an OS X clone to show me a comparable tool on the Mac desktop. Spotlight is similar, and the 3rd party Quicksilver add-in is even better (albeit unreliable). However, in my opinion, the Unity Dash is far more intuitive, easier to user, and more powerful, not to mention more visually pleasing. There are, of course, some things that need to be ironed out - as far as organization and a more inclusive search algorithm - but I like where it's headed.

So there you have the good and the bad. Now for the ugly. Actually, I think I've already covered that, though not in detail. I don't want to turn this post into a bug report. As much as I like the new Ubuntu in both form and concept, I've finally reached the conclusion that Unity's instability on my desktop is far too disruptive to be acceptable. At least for now. I'm still running it on my laptop, though I'm considering a revert to 11.04.

Fortunately, Gnome 3 installs easily in 11.10, and actually runs quite well. It's much more responsive than Unity, and far less buggy. In fact, I haven't run into anything yet that I'm sure is a bug. Login is much faster, and I haven't had any lock-ups or corrupted visual effects. Best of all, there's still a dash. The Gnome 3 searches do lag a bit behind Unity Dash, but not by much. Overall, things seem to work as intended. Gnome-Shell is disturbingly restrictive for a Linux desktop, but I think the developers have made their point: there's always a trade-off.

All that said, I still like Unity better, and I plan to go back once sanity is restored. Gnome-Shell is a well put together product, and has the advantage of running on several distributions. However, it's a little too blatently "tablet-esque" for my taste.

I'm still considering other alternatives, as Oneiric has some frustrating bugs that have nothing to do with the desktop used. High on the list is the fact that my NFS client tries to connect via NFSv4 by default, and NFS server requires frequent restarts. And there's still no option for connecting to an NFS server in nautilus. Such deficiencies in a mission critical service leave me wondering if I've "boarded the wrong train."

Of course, there's a touch of "Christmas morning effect" in all this. Once the initial thrill of playing with the new toys has passed, we typically fall back to the old stuff. Especially when the new toys are already broken. And now that the holiday is over, it's time to get some work done.

To their credit, the Gnome devs appear to have productivity as their main focus. That's probably why their desktop feels like a tool, whereas Unity seems more like a toy. If they can tone down on the touch-pad thing, Gnome-Shell will likely do well in enterprise deployment.

For those just wanting to play, neither desktop would likely be the best choice. Both have limited customization in favor of stability, or at least have made it more difficult. The principle audience for Unity is probably somewhere in the middle, much like OS X.

I doubt that either desktop will do very well on tablets, though both seem to have that platform in their cross-hairs. Albeit, for Gnome-Shell it seems much closer to reality. The mobile environment is all about apps. Specifically, apps that work well in the mobile environment. Who's going to want a tablet without any apps.

There is a chance, however, that many independent Android devs will be drawn over once they see that a truer Linux distro is fully functional on a tablet. I'm sure there are at least a few who wish Android had fallen a bit closer to the tree. And it would be nice to have a tablet that's a little more like a laptop, and less like a smartphone. Having gnome-terminal on a tablet would be great.

So, as far as what I'm going to do with my desktop - other than build a new one - there are a lot of options to consider in the Linux world. The trick is to pick a combination that's stable enough to use for file serving and development, and still has some desktop goodies. But the future looks bright for stable, feature-rich Linux desktops. For now, I just need a little patience.