Saturday, May 16, 2009

Nerd Food: The Jaunty Jackalope

Winning isn't always finishing first. Sometimes winning is just finishing.
-- Manuel Diotte

That Time of the Year

So here we are again. Another six months have gone by, and we're all ready and eager to see what those Debian and Ubuntu boys and girls were up to. Like everybody else, I dutifully upgraded my Interpid boxes, very much as I have done for every release since Warty. This time though I decided to expand a bit more on my experiences - the main reason being that, for better or for worse, Linux on the desktop is now big business. You may not think so, considering we appear to still be at around 1% market share, and considering most people using computers are still ignorant of Linux and Free Software in general; but, in my personal opinion, we are now on the threshold, on the verge, of starting to build a commercial position.

Thus, we can no longer afford to look at Ubuntu - or at any other Linuces who wish to break through into the desktop mainstream market - as we have until now. This review is not just a typical Linux review. I do not wish in anyway to upset all those people who work so hard to make GNU, Linux, Debian and Ubuntu what they are now - people for which I have the utmost respect. However, I shall endeavour to make a frank accessment of the strong points and weak points of Ubuntu as it stands at 9.04.

If your main concerns are with software freedom, the remainder of this article will not be useful to you at all. I have taken a stance of the "ignorant consumer", the sort of chap who would buy a product based on price and quality; a person who does not really care how product came to be, but focuses only on features and usability. I think its really important to look at the world from this perspective, because to some extent, we have taken all the easy pickings. A lot of people who care deeply about their freedoms and buy products thoughtfully are probably either using GNU/Linux (or some other free operative system) or have made a conscious decision not to use it. It is the nature of this audience to investigate their choices. It is not the nature of the majority of the market though, and to capture them we must play the game on their terms - not on ours.

In addition, one must bear in mind that GNU/Linux is challenging a strong incumbent, and a very strong second place; being as good as Windows or MacOS won't win any prizes, because they both possess huge advantges: large installed base, marketing, familiarity, large amounts of money. From whatever angle you look, these are formidable oponents. To beat them at their own game, one must be pretty special indeed.

Without further ado, my views on Jaunty.

Booting the Live CD

One of the many advantages Apple and Microsoft have over Ubuntu is installation. Its not that their installation is better - its just that the vast majority of their users have never installed an operative system in their lives. Consumers buy boxes with the operative system pre-installed, giving them the false impression that installation is trivial. A lot of people see a new operative system only when buying a new machine, and, given the choice, would probably revert back to the previous version.

This is in stark contrast with Ubuntu. SWAGging, I'd say the vast majority of Ubuntu installations are/were done by either the end user or its local computer nerd. Dell notwithstanding, until a large number of manufacturers offer Ubuntu pre-installed, installation will always be a key battlefield, and a really though battle to fight. After all, its very difficult to compete against an idealized installation process which is just assumed to be easy.

Overall, I think Ubuntu does a good job with installation - although there are a few niggles. For instance, first impressions are extremely important, and unfortunately, the language menu does not quite give the best first impression. It takes a lot of screen real estate and uses an approach that is just not scalable (what will we do when we have more languages than fit the screen?):

Language Menu. Source: Softpedia.

Its understandable that such an internationalised product as Ubuntu wouldn't want to force non-English speakers to understand just what "F2 Language" means; but the approach taken just doesn't look professional. A lot of thought should have been given to the language list, making it scalable and easy to navigate.

The boot menu has good and bad points. On the plus side, "Try Ubuntu without any changes to your computer" is a good idea, as many a newbie wouldn't understand the concept of a live CD and will think that choosing "Install Ubuntu" will be a non-reversible operation, or one which won't take you to a regular desktop. However, all other options should really be under a sub-menu - or perhaps accessible via F6 Other Options or another such shortcut - because they may needlessly alarm users (why do I need to test memory? is this going to corrupt it? Is my disc defective? what does that mean?)

Language Menu. Source: Softpedia.

If one were to think in terms of flow, the vast majority of users will go through the following two use cases:
  1. Choose language, try Ubuntu
  2. Choose language, install Ubuntu.
Anyone trying anything else is an advanced user who knows what they're doing. As such, I'd say the boot process should start with a full screen combo-box which allows one to scroll up and down to choose a language; once the language is chosen, the second menu has two options: "Install Ubuntu" and "Try Ubuntu without any changes to your computer". At the bottom, the shortcuts should be:
  1. F1 Help
  2. F2 Language
  3. F3 Accessibility (with, if at all possible, a accessibility icon)
  4. F4 Advanced
All these options are perfectly meaningful to any basic user; anything which requires domain knowledge is hidden in "Advanced".

At anu rate, once Install Ubuntu is chosen, the boot process is elegant and blazing fast - a great improvement over Intrepid.


Overall, the installation process is very clean, with as few steps as possible. In fact, I'd go as far as saying that Ubuntu installation is probably second to none now. I wasn't very keen on live CDs when they first came out - couldn't quite see the point - but I now understand the error of my ways. Having the ability of starting your PC with a full blown version of the operative system you're about to install is fantastic. You can quickly assess which bits of hardware are going to be more problematic, as well as giving Ubuntu a good run. For the average consumer this is great, a sort of taste before you buy, if you like. The only change I'd perhaps make to the live disc - for systems with plenty of RAM (say 2 Gb or more) - is to create a RAM disc with all the apps, to avoid reading so much from the (slow) CD-Rom.

With regards to the actual installation steps, there are two points which may warrant a bit of attention.

Partitioning is clearly the scariest aspect of the installation process, so its important to be clear and reassuring to users. It would perhaps be a good idea to make the partitioning options slightly clearer, in particular with regards to resizing an existing Windows partition. It would also be a good idea to ensure the text below "Use the entire hard disc" is clearly disabled, as just the words "This will delete Windows XP..." are enough to dissuade many a newbie.

Partitioning. Source: Softpedia.

Users and passwords are also rather important. It is common for a single PC to be shared by two or more people, so multi-user support is very important. It is also very common for users not to want to type a password every time they log in. These use cases are not very well served by this dialog:

Users and passwords. Source: Softpedia.

Ideally all the user wants is one of two scenarios:
  1. Setup one or more users and, for each user, decide whether to use a password or not.
  2. For a single user box, probably allow automatically login.
Multi-user polish will be addressed further on in this article.

Loging in

The new login screen may be perhaps a bit too dark for users with accessibility needs, but overall its a triumph of parsimony. Its literally impossible to get confused using it. The only slight snag is the missing user list. Most people will probably prefer not to type a password, so it makes sense not to type a username either. The security conscious will no doubt complain, scream and shout - but from the perspective of the regular user, it makes complete sense (it's my house, not a public computer!).

Login Screen. Source: Softpedia.

The Proprietary Question

One of the greatest problems with Ubuntu (and most linuces) is the hidden steps of "additional setup". These can be extremely costly. Whilst there are enumerable articles, detailing exhaustively what needs to be done, and whilst most guides can be followed blindly by even the newbiest of all newbies, the very existence of the "additional setup" is a huge barrier of entry to many users. The additional setup is exclusively related to installing and configuring proprietary applications and drivers. For me these are:
  • NVidia/ATI drivers
  • MP3 support
  • Getting (encrypted) DVDs to play
  • Wireless drivers
  • Flash
  • Adobe acrobat
  • Skype
For a very large number of users out there, a PC is not usable unless all these have been successfully installed and configured. The additional setup process has been trimmed to its absolute minimum, methinks, particularly if one compares it to how things used to be 5 or 10 years ago. It is, in fact, trivial in most cases. But this is the problem: when we look at where we are, we inevitably see things in terms of a natural evolution. A Windows or MacOS user will not see things that way; it will become instantly apparent to him or her that a lot of things are not setup on Ubuntu out of the box, and setting them up is non-trivial (even if all we're talking about is following a very simple and detailed procedure) because this is just not the way they are used to work.

In my mind, just like we have gNewSense for the purists, we also need a "compromised" Ubuntu, _even_ if it requires users to pay for it to ensure all licences are in working order. After all, time is money, and I'd much rather pay Canonical 10-30 EUR twice a year for a "compromised" version with all the proprietary stuff installed, rather than having to waste time doing it. The "compromised" version should also be used in any pre-installed PCs.

Alas, this is not how things are at the moment. To make matters worse, my "additional setup" has been very far from trouble-free. These are the issues I've faced:
  • Wireless (WPA) is utterly broken for my laptop. Try as I might, I just can't get my laptop to connect, even though it used to work well with Intrepid. Some people reported this issue in Kubuntu, but I'm seeing it with regular Ubuntu. A few of the proposed workarounds don't seem to work for me either, such as typing the password in hex. Its a rather annoying regression, and until it gets fixed, I've got a big fat Ethernet wire in my living room.
  • Recommended NVidia drivers (v180) are broken for my card. This is #366222. For me there was a very simple workaround, which was to downgrade the drivers back to v173. No problems since then. Its an annoying bug though.
  • Epiphany still crashes frequently after closing tabs when I'm using flash heavily. This is not a regression; I've had this problem for a long time. Its similar to #196588.
  • Sound in Skype is not working. This is a regression prior to Intrepid - in fact, since PulseAudio. Its getting really close to working though; now the problem seems to be that Skype somehow lowers the volume of the microphone on startup (I can see this from the PulseAudio volume control). I followed many a tutorial (including this one, with amazing screenshots of volume control configuration), to no avail.
  • Sound in RealAudio is not working. Same as for Skype really.
Lets make a few things clear. Setting things up and chasing bug tickets is not something that would put me off Ubuntu and GNU/Linux the least - after all, I've been using GNU/Linux for over 10 years, and I value FOSS highly. Also, it is important to understand that none of these problems have anything at all to do with FOSS - these are exactly the issues people have been warning us about with regards to binary drivers and closed software. After all, PulseAudio works incredibly well for all my other applications - its the closed source ones that are and have always been the problem (in fact, the only real FOSS problem I have with Jaunty is #366083).

However, this is not an excuse for a commercial company looking to increase their market share at the expense of two ferociously competitive companies such as Apple and Microsoft. If I was Ubuntu, Novell or RedHat, I would have had personal meetings with all key companies providing commercial software (Flash and Skype are certainly key applications in the desktop space, even if RealAudio is not) and would have made available engineers to work with them to sort out the PulseAudio mess once and for all. Pulse is the future and its an increadible piece of software; Its just that the commercial companies seem unable to keep up. The same applies to NVidia/ATI.

Wireless is slightly more complicated, and its a symptom of a more difficult problem. The truth is GNU/Linux and Windows work in extremely complex ecosystems, with mind-bogglingly complex hardware combinations. Many things just cannot be known until releases hit the wild and people complain. Microsoft attenuates this problem by massively regression testing the most common hardware combinations; as far as I am aware, no Linux vendor does something similar. In a way, it shouldn't be necessary; after all, the software is provided to all at all points of development, so in theory regressions should be picked up quickly. Release soon, release often right? In practice, it doesn't quite work this way.

The potential number of testers is huge - just have a look at the number of people that downloaded Jaunty on the last betas and since it has gone gold - but a very large percentage of users will not download until close to the release date. This means that the bugs reported during the development process are not representative of those that will be found post going gold; and people reporting bugs after the official release will be rather more upset with problems than those doing the alpha/beta testing. If there was some traceability, one could "register" all the different hardware combinations out there (say those using Jaunty over the next 6 months), and then check to see how many of those were tried during the development phase. But there is no such data, so one is driving blind. Metrics here are fundamental, and knowing what was tested and when is vital. I'm sure many people would contribute (after all, a lot of the testing can be done by booting a live CD) if only they understood where they fit in the big scheme of things.

All these problems are clearly distribution issues, and can only be fixed if distributors make an incredible effort. In order to have any semblance of a chance at attacking the desktop mass market, they must be addressed thoroughly and convincingly, or else we risk the ire of many a user.

Multi-User Deficiencies

UNIX is the multi-user operative system par-excellence, and GNU/Linux carries on that tradition. However, there is a need to update the multi-user view of the world to today's reality. The challenge these days is not so much isolating users so that they cannot damage eachother or the system, but to create ways in which a machine can be shared sensibly. The issues I constantly keep on bumping into are:

  • Music. I spend a lot of time creating groups, shares, permissioning, etc. just to ensure all users of the main PC have got access to a central music collection in RhythmBox. The setup is now more or less stable, but its not conceivable that a newbie would stumble on it after half-hour of googling (I'll write it up one day). This is an incredibly common use case: to have a shared music collection as well as a private music collection. The second problem is to access your music collection from another device, such as a laptop. I've had no luck in setting up DAAP from RhythmBox.
  • Photos. I love F-Spot, its great. But I just cannot set it up in a multi-user environment - again with a set of private photos, as well as a set of shared photos that all users in the PC have got access to. As with DAAP, it would be nice to be able to browse the photo collection from a different device too.
  • Printers. Setting up a local printer in Ubuntu is amazingly trivial. However, sharing that printer over the network is not trivial at all. It should really be a matter of right-clicking on a printer and choosing "Share". and, funnily enough, there is just such an option in "Printer Configuration". Problem is, my printer remained invisible to my laptop even after sharing. Making it visible required a large amount of faffing with CUPS config files and the CUPS web-based config.
  • Shutdown with multiple users logged in requires entering a password. This won't go down well with the average user; a big notice would have sufficed.
All these complaints are sympthoms of a larger problem, which is a lack of use case based usability analysis. This should probably be done at the Gnome level, as it is not a distribution issue as such. There is a lot of focus on Gnome 3.0 these days, but it seems to me that the job of Gnome 2.0 is not yet done; the architectural work is excellent, but the polish wasn't quite finished.

The final thing with regards to multi-users, is user switching. It seems this will be comprehensively sorted out with KMS, at least technology-wise, but it will be interesting to see if the user switching process is made much smoother (no flickering; allowing switching with no password; allowing switching with music still playing from previous user; etc.).

Grumpy Old Man?

By now you probably have made up your mind and judged me as a typical grumpy old man, lost to FOSS and soon to migrate to Windows 7 or MacOS. In fact, its quite the contrary: I'm a very satisfied Ubuntu user, and I think the future will belong, undoubtedly, to Free Software.

There are many, many good things to say about Jaunty, and in a way, the criticisms laid out above demonstrate just how far we have come. After all, Jaunty did do a sterling job of detecting all my hardware, other than the wireless / NVidia issues, and NVidia is working just fine with v173.

The best thing about Jaunty for me is performance. Its nothing short of amazing. I'm using EXT4 for all partitions other than home, but I'm not sure if the filesystem is enough to explain the snapiness of this baby. For instance, with two users logged in, quite a lot of applications open, playing music, 3D effects, etc and my CPU usage rarely goes above 10% and my memory usage has oscillated between 400 Mb and 1 Gb! Its amazing. All apps have slimmed down so much as to be unrecognisable. A two day old loaded Epiphany is still below 100 Mb, a sight I don't recall ever seeing. Booting and shutting down are now lightening fast. And there are so many unsung heroes: Evolution, Evince, Liferea, Nautilus - so many applications that just work, and do what they're told. I most certaintly recommend upgrading to all Interpid users, and I'll certainly will be waiting unpatiently for karmic and all the KMS goodness (NVidia/ATI permitting).

This is to say that Ubuntu is certainly working very hard, and releasing a product with a lot of quality. But as I said on my opening words, good is not good enough; one has to be much better than Apple and Microsoft if one is to challenge them.

For me, the big question is: can we put the fantastic engine of FOSS to good use in the hard problems of testing and usability? This is the key to unlock the mass market consumer desktop market.


coxy said...

Hi Marco,

Like the article. I am an Ubuntu user since Feisty so am much newer than you but i love it.

One use i have had for a Live CD is where i had a defective hard drive, i changed the bios to boot from cd first then i could still do my work, browsing etc until a replacement drive arrived. I also go into live cd mode when i am doing and logging in to bank websites so there is not trace left on the pc when i re-boot.Very handy.


Jójó said...

Well, I pretty much think that the whole post just goes to show how clean and broad-visioned Windows XP really is :-D

Seriously, I think that the Ubuntu guys have made some really good work here, but I still have the personal vision that the Linux desktop will only fly when it adopts a diferent desktop paradigm. By that I mean "not a windows clone". Until then, some other issues may be dealt with, and there is a lot of work to be done in other areas besides a paradigm shift in which inspiration could be drawn from other platforms. Namely:

- Hardware support. Windows hardware support is simply incredible. Criticezed as they may be, the folks at Microsoft have made an incredible job maintaining backwards compatibility with older hardware - that is, until Vista came along, though I think these issues will be solved i n Windows 7 and Vista will be left off as a fluke pretty much like windows ME. The steps in this direction have been steady and very good. I'd say it's just a question of time.

- Post-install configurations. Yes, you do have a serious point on this one. An OS today is not just an OS. It's a whole suite of applications, so it makes perfect sense that your computer should work in all senses when you finish installing the OS. By that I mean that when you finish installation, you should be able to play DVDs, MP3s, set up a Skype account and make a call, and view Flash videos, for instance. Not with custom configurations, but a default should be there in place so that it does what you expect, even if it's with no bells and whistles. It kind of reminds me of a time when Fedora removed MP3 support (you had t install it by hand) because of licensing issues - that's one major shot in the foot! Why would you have an MP3 player installed if the system can't play MP3s?!? In that area, it has a lot to learn from OS X. When I bought my first Mac, I popped in a DVD and it just PLAYED! It's somewhat ironic that I get amazed if the computer does what it's actually supposed to do! I kinda likt to setup a whole machine from the beginning and solve problems after the instalations. It's kind of fun. The average user doesn't find it fun. The "It just works!" approach should be something to strive for.

- Pre-installed based. This is a battle that has to be won. The eeePC has shown that people will use Linux if it comes pre-installed - albeit in a heavily modified enviroment, but still, they'll use it. It will be interesting to see what added value the desktop Linux can provide the hardware vendors so that it can be a compelling argument. The Dell thing is good, but not enough.

Still, I think there needs to be a paradigm shift. People don't use OS X because it's like Windows :)

Sardaukar said...

Good article. Like Jójó, I believe Linux needs an identity. But I also think it's too much to ask for volunteer hackers and coders to come up with it, or good usability testing for that matter too. Linux seems to be doomed to "good enough" status for some users (techies) forever.

My laptop does not pose much of a challenge for Linux anymore - everything works out of the box, but yes post install there is still a lot of work to do.

I upgraded to Jaunty at work (we're a Linux shop and I couldn't resist the big "Upgrade now" button) but recently downgraded back to Intrepid since performance with an Intel gfx board was terrible...

About Skype, not sure it will work but try

And Jójó: it doesn't ship with an mp3 player, it ships with a music player - for many codecs, some of them out of the box like FLAC and OGG :D

Marco Craveiro said...

Coxy: yes, I eventually learned my lesson about live CDs :-) I find them really useful too these days, for loads of things. For instance, the other day someone mentioned they use live CDs to on webcafes to ensure privacy.

Jojo: I agree with all points, except perhaps the need for a different desktop paradigm; i mean, I'm not saying it wouldn't help - maybe Gnome 3? - but I also think that there is a need for an operative system that just works and does things more-or-less like people expect it to. At least, I'd be a really happy user of such an operative system! :-)

Sardaukar: man, thanks!!! that fixed the volume problem!!! bit of a user problem, to be fair; didn't even notice that tick box was there :-) now I may be down to the last Skype issue (which was the one I had in Intrepid). Unfortunately it only happens after a little while, so I'll have to test it with a proper call (the Skype Test Call is to short for this).

With regards to hardware testing: I'm not convinced it can't be done the Bazaar way. I'm not saying it can :-) just that I don't think it has been seriously tried by anyone I'm aware of. It will require someone spending a chunk of money - unless someone out there finds the subject interesting - but once the infrastructure is in place, people will follow on. If you recall, back in the days when we had no bugzilla people also thought that bug reporting would never catch on, and yet these days everyone does it. If there was an easy way (read: automated) to test ubuntu and report one's findings, I'm sure loads of ubunteros would cooperate. Things like lshw give us part of the solution; all we need now is a good database to store that info and a process by which users can report which bits of their hardware are working/not working (not unlike the wine AppDB, really, but integrated with Launchpad). This would also allow us to know before hand how well a release was tested before going gold. One can even conceive a countdown process were the release would only go final if 100% of the hardware reported as working for the previous release has been certified by users as working for the new release - this is an incentive for users to give it spin. Testing should be fairly painless: boot the PC off the new release's Live CD and state what works/doesn't work - unless it's your network card! :-)

I even think that Free Software is more suitable for this sort of testing than commercial softare, first because of the community spirit - people are not afraid to pitch in - and second because of the diversity - take any three random ubunteros and I bet you you'll find at least 4 different hardware configurations :-)

Usability would be perhaps trickier, but again if we had templates for use cases and allowed people to report their use cases (e.g. find a document with words XYZ) and how they are currently implemented (or not, as they case may be; e.g. don't know how to use search) perhaps things would become clearer. We just need structure, really. Creating this sort of structure is not something volunteers could do, I don't think, but once its there people will get into the swing of things, methinks...

Marco Craveiro said...

This HOWTO may just have saved my sanity! :-)

HOWTO: PulseAudio Fixes & System-Wide Equalizer Support.