Tuesday, May 26, 2009

Recent Books

Some of the books I went through (or will go through), in no particular order:
  • Flashman and the Mountain of Light: Like every other book of the Flashman series - of which I have now read four - it's unbelievably un-PC, and incredibly funny. The cover says it best, really: "farcically outrageous and disgracefully entertaining". Flashman is probably one of my best finds, and this particular book is the best yet. I'm beginning to think that it narrates British colonization a lot more accurately than any real history book. Amongst all the fun and madness, it has some gems of prose. It also seems the author spent a lot of time doing historical analysis, since the detail is amazing. If, like me, you are from a minority group, you will undoubtedly find the book rather offensive; ignore it and keep going, if you can.
  • Las Venas Abiertas de America Latina: I had this on my list for a bit but forgot all about it. My interest was rekindled by Chavez, who decided to offer a copy of it to Obama. Cannot recommend this book enough, really. If you want to understand Latin America, and particularly the latest shifts to the left, this is a good starting point. Towering work. Read it in the original Spanish, but there is, of course, an English translation.
  • High Stakes, No Prisoners: A Winner's Tale of Greed and Glory in the Internet Wars: Mandatory read. This book was not at all what I expected - I was looking for a geeky read to lift my spirits. Instead its a gruesome account of the difficulties of startups in the silicon valley. Its really, really good. The language is not as polished as say Galleano's (how can you beat gems such as "People were in prison so that prices could be free"?); in fact, some parts are rather dry, such as the final chapters on market analysis. But this is still incredible stuff. Compelling reading. Should be mandatory for all computer science students (high-school and university).
  • Child of the Dark: The Diary of Carolina Maria de Jesus: Via Galleano, bumped into this. Ordered the English version (which is quite ironic, since the original is in Portuguese; totally forgot that Miguel had offered to buy me books in Portuguese, if required). Seems very promising.
  • Empires of Oil: Corporate Oil in Barbarian Worlds: Couldn't quite finish this one. Although it had rave reviews, and started interestingly enough, it proved to be too dry a reading. It seems to waffle a lot without providing any real insight. I may attempt it again - got half-way through it this time - but not for a good while. Seems a bit pro-oil, but there's nothing wrong with that if the argument is well constructed.
  • This is Not a Drill: Just Another Glorious Day in the Oilfield: Quite unlike the previous one, this is a compelling read. Always wanted to know what exactly oil workers get up to in the middle of nowhere, and this book explained it in great detail. Basically, the boys have a great laugh, while trying not to get killed and working their socks off. Fantastic humour - if somewhat dark.
  • Traders, Guns and Money: Knowns and Unknowns in the Dazzling World of Derivatives: Absolute classic. Must read if you really want to understand the finantial markets.

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.