A little more time with Ubuntu

In the quest for the perfect Linux for me, I decided to give Ubuntu a longer bit of time on my setup. This lead up largely to the weeks till the release of 9.04 meaning it is the latest Ubuntu has to offer.

Ubuntu has a very solidly frozen release which kinda bothers me since I either have to apply an unsupported PPA external repo to get the version of software upstream supports. This is the case for things like Banshee e.g.. In addition Ubuntu does not seem very willing to adopt software early which means that 9.04 ships with the older 0.9.14 version of Pulseaudio, which is a shame since 0.9.15 definitely is an improvement and finally lets me set up 5.1 (though still only analog). Again I can enable a PPA but that leads to a support nightmare (and breaks the awesomeness that is Apport) which I am not really prepared to bestove on anyone having worked with supporting users myself I know that I always like them to be in the most vanilla state I can get them to lessen my burden. This is a larger problem though of what to do with regards to the balance between a static release with updates and a rolling release. I do not believe this to be an easy problem ti solve but making people rely on PPAs to get important updates to X drivers and leaf applications like Banshee is not a good way to solve it from a QA point of view. What is, seems a huge problem space which would be interesting to explore.

There are also some really annoying moments, mostly when dealing with the package manager. I really miss an up to date PackageKit 0.4.x and interacting with apt-get or dpkg from the commandline just doesn’t feel as natural as using yum or rpm. The output of yum e.g. is very clean and easy to follow as is the out of rpm. In contrast dpkg has multiple lines of jibberish which one has to dig into to find simple information like version numbers for filing a bug report. I really think the time is approaching rapidly to have dpkg put down and radically redesigned, things like debhelper are especially poor designs for the target audience Ubuntu has. If you default to a situation where asking questions during the installation of updates you have failed. My metric for this is normally how quickly my mother would call upon me screaming “IT’S SAYING SOMETHING AGAIN!!! HELP”. Aside that dpkg is extremely frail for some reason, it falls over and gets it database corrupted quite quickly and unlike with rpm the recovery has not be easily discoverable (rm -rf /var/lib/rpm/__db.00* && rpmdb –rebuilddb normally takes care of it). It lacks some nice modern functionality like rollbacks and delta downloads, sadly it does’t look like it will gain them anytime soon either. I am concerned that I have yet to see a clear sign of commitment to PackageKit from Ubuntu, they don’t have the latest version and despite being marked as “in process for Jaunty” we still do not have it by default in any capacity.

I hate the fact that I can’t delete everything relating to gimp and openoffice without also losing my danish translations for everything else. Yes I know OpenOffice has features like a presentor that GNOME office does not have but AbiWord does just fine for me, it’s pretty, quick and very stable. I should be able to remove all those useless help files from OpenOffice as well. Minor nitpick I know but it seems that Ubuntu isn’t very flexible when it comes to changing these applications.

The Mono stack works beautifully, documentation is generated for everything and the coverage is near spotless (all I lack is Monsoon). You are given a full MonoDevelop stack. It’s truly a thing to behold how well kept it is and how much work has gone into making it the best Mono stack around. Additionally the excellent debian/ubuntu Mono team has done some impressive work cutting down the size of applications by removing Mono 1.x functionality meaning that now Banshee and all it’s dependencies take up less space on the CD than rhythmbox. I find this especially interesting as one of the, fallacious, accusations I got when proposing Banshee as the default media player in Fedora was that I disregarded the space contraints and I suggested just this solution to meet the requirement along with splitting out debug information. I am happy to see that it paid off for them and I hope that the patches will be broken out and pushed upstream where possible, also so other distros might benefit that they become available in something other than dpkgs default horrid one mega pseudo patch per package format. Truly masterful, and I get moonlight in the repos as well which rocks my rationale mind.

The desktop itself has some nice tweaks, I like the idea of using the fast user switching applet to do presence and to handle the logout/halt/suspend/hibernate scenerios. I just wish they did that work upstream so that everyone would benefit from looking at the design and applying. It is though a very nice idea and it works really well with Empathy. I do lack the option to set some predefined custom states such as “Having dinner” and such. There is the risk of growing this list very long if one was to do this though.

I hate Launchpad marginally less now, I still think that it is confusing and dead hard to use but somehow work gets done. It needs to be orders of magnitude easier to use before I beats bugzilla though. In the same sense I really miss an easy overview on a per package basis of all the bugs, like bugz.fedoraproject.org/<packagename>. It makes it much easier to do what I love, namely breaking software and triaging bugs, in an effective manner.

Suspend just works… most of the time, I have gotten the system into a state where the network driver never regained life and other little wringles but overall it is the first time I have seen suspend work consistently on this laptop. I hope the same is the case for other people so that one day we might rely universally on this technology to suspend machines when they are idle. If wake up could be made really quick perhaps a system as envisioned by OLPC that would suspend the machine while reading a website might be a viable future for us all.

I am still not sold on the per home directory encryption and it does worry me that I have yet to see any evaluation of this technology by a 3rd party security expert for flaws. It is appealing to have security that does not require every user of a machine to know the master password to boot it yet still have the advantage of knowing that while you are not logged in your data remains safe. It also does not encumber boot nor imparts the performance overhead to system binaries that full disk encryption would do, which is another appealing idea. I would like to have a more informed opinion on the design before I judging one way or the other. It worries me that I have not been able to find a wiki page listing the known weaknesses in this approach, it is not enabled by default but it would still be nice to be able to look up more information. Personally since my laptop is used only by me, I used the alternative CD to install and used dm-crypt, then added this on top, mostly “because I could”, surprisingly the performance overhead of doing this was very low. I think what worries me is that it seems like such a finely pick solution that does the best from a user point of view that it really has to have problems from a security point of view – experience tells most people that when sounds to good to be true, it very likely is.

A problem that seems to plague all Linux desktop right now on this laptop is that it takes very little to make it lock up for seconds or minutes. Audio stutters when the slightest load comes along. It didn’t used to do this but looking at the cpu scaling the slightest load seems to cause a problem where it instantly lowest the cpu speed to the lowest setting. I am currently unaware of what is going on and I don’t have another machine to confirm that it isn’t just this machine going tits up. Ubuntu sadly is affected as well, I won’t deduct them any points but it does make Linux as a desktop very painful on the whole.

Jaunty is an excellent desktop I would not hesitate to recommend it to people, out of the box you get a lot of very nice functionality and a very polished look and feel. It does somehow feel like it is the end of the line for the current Ubuntu desktop and that their experiments with new UI elements will have to lead to some major changes. Hopefully they will be able to pipe this into the GNOME 3 process in a standardized manner so to avoid basically forking the desktop.

a brief stop over in Ubuntu land

Once more we jump on the distro bus, this time to the land of brown and fanboys.

Contrary to what I have done before, I will start out by mentioning all the things I dislike about Ubuntu, this is to contrast with how little it takes to weight out a lot of bad.

Firstly I greatly dislike dpkg, mostly because it’s frail like a sickly 99 year old (note: my beloved grandmother is 93, and she bowls +200 points once a week as well as attending a weekly gymnastics class, she is a tough bird. Some old things are tough, dpkg is not). Twice during my testing I had managed to get the database in such a bad shape as to render the entire system for all practical purpose unrescuable by merely applying the daily Jaunt updates. This cannot happen, ever, it is unforgivable. Your packaging system does not need to be perfect but after as many years as dpkg has been deployed I would have expected it to be at least stable enough to not die on me completely. Secondly because of this annoying thing they call debconf, this is the highly annoying little program that pops up right in the middle of package installs and asks you technical questions, of a nature so scary it would force any regular user to call tech support or mindlessly press the yes button. This is not a good thing, additionally failure to address this issue means that the dpkg crowd have basically forked PackageKit into a project called aptdeamon which entirely defeats the purpose of PackageKit.

Second major pain point with Ubuntu is Launchpad, not only is this proprietary dongheap exceedingly hard to figure out how to use, but when a bug is maked as a duplicate – which thanks to the excellence that is apport happens several times a day during a development release. You get mail.. more mail than your average spammer can send out if he tried and there is no apparent way to turn it off. Launchpad just refuses to make the hurting stop, this is the primary reason to never use it really, it lets real bug resolving drown in duplication messages and users adding their +1 to bugs. The latter should clearly be a little counter or something which developers could use to gauge the number of affected users, bug messages are not intended for this. This leads developers to script replies asking for backtraces instead of reading the bugs, even when the request doesn’t concern a crash you get a request for a backtrace. The whole Ubuntu bug experience is exasperating to the point of wanting to throw oneself off a bridge, I have one bug that has had a fix posted for nearly 2 months, the fix is confirmed and will fix a major regression.. yet it has not been applied. As a maintainer you always should attempt to keep the bug count at zero, this lead to stress but if you take the responsibility for a piece of software you should also do so with regards to the bug reports. Failing to do that at least pay attention to bugs with patches, do a monthly run down, have bug templates, give users a sign you are paying attention. It could also be that I filed the bug wrong, it’s hard to tell since Launchpad is so unlike the common bugzilla everyone else uses and orders of magnitude more complicated to use.. who knows, regardless it is painful.

Thirdly, despite Shuttleworths pretty words on the matter, I just don’t see Ubuntu contributing much anywhere I care about. When they do development such as these new notifications (which are pretty I will grant you that) it seems like catheral development which is being thrown over the wall. It is very hard to figure out where if anywhere one can participate from the word go in these projects. I feels very closed and that is just not my idea of fun, I like getting my hands dirty with first looks, trying to find a way to break it or look at parts of the idea that have not yet been fully thought through.

Fourth, security. Ubuntu relies on an out of kernel solution called AppArmor instead of the in-kernel solution SELinux. I just don’t feel safe when the code I have to rely on every day to keep me safe doesn’t meet the standards of the kernel development community. Additionally patching the kernel for this very likely leads to bugs and a delay in getting important updates out. Then they have an encryption thing to create a Private directory in your home dir, however by design if I am correct this is readable by root so on any off the shelf Ubuntu box all I have to do to break it is boot the machine into single user mode. I was kinda hoping for something.. more.

Fifth, the community. I hate to say this, I hang out a lot on the Ubuntu Forums but it is very hard to have a technical debate with anyone there since it’s so infested with fanboys and people who purposefully keep themselves uninformed. On the other hand there is the development mailing lists which seem to have everything except developers, nobody throws out new ideas or gets people excited, it is in fact very hard to see how development is done or to have a look at where one would go. The image given off is that of development happening behind closed doors which is sad. There just simply doesn’t seem to be the kind of community I care about, there is all kinds of other types but none that involve a developer, some code and some great ideas being thrown around.

Sixth and final. On your start up of an Ubuntu desktop it literally begs you to install the nvidia driver if you have such a card with the words “There are things Free Software cannot do”. Free Software can do anything thank you very much, instead of helping us close the gaps of currently lacking functionality the elected solution feels some what like mockery. I also don’t see this software having a nice switch to say “No, I actually like kernel developers and have no interest in drowning them in pointless tainted reports and I wish you would solve the real problem, please don’t bother me again” and turn this off.

I shall refrain from pointing out that the Ubuntu implementation of PulseAudio is just inferior and causes popping, hissing and other nice things. This being worked on, and to be honest I have problems with audio on all distros so I will cut them slack, there are general issues and then issues specific to a distro. This is just a sign that audio really is due for a good whack with the collective bugfixing hammer and I am happy to see progress. It is sadly also one of the signs that Linux still has a long way to go to be really good for many use cases – good thing we have those walking boots on then.

Now the good stuff.

First and most important, Jo Shields. I have mentioned this guy before. He is fun, he is helpful and he makes the best maintained Mono stack run for my pleasure. He almost singlehandedly makes up for every single bad point I just mentioned. This is why they went first, to show just what makes the difference.

Secondly, supporrt for ARM as I have stated before I feel that supporting many architectures is important and a great way to get technical contributors as well as fixing bug all around for everyone. ARM is an important one to me.

Third, Apport. Apport is made of pure awesome and really helps close an important hole for bug reporting. So far as I know it still doesn’t catch crashers in Mono apps but it is an impressive tool that everyone should have. If Ubuntu gave the world anything truly great it is Apport, after they pioneered this now pretty much every distro have their own port of Apport or a separate but similar solution. The openSUSE people had a great apport presentation at FOSDEM 2009 which also compares similar solutions in other OSes which people should go watch.

Fouth, I like the artwork. No really I do. They managed to keep it consistently improving over a number of years, polishing it every cycle. While it is closing on it’s useful lifespan I so admire this as I have always found it frustratingly unprofessional to look at Fedora changing every 6 months and in my eyes not fundamentally improving over time. I am sure they will come up with a great look for the future, and polish it till it shines and starts the test of time. It is why you can always clearly make out an Ubuntu desktop, it is an important brand and I wish we all took this more seriously.

I really want to like Ubuntu but they make it so hard. It just feels opaque and undutily closed off from participation, what work is being done also feels like it is living it’s own life in Ubuntu world and never really leaves, this is especially true for translations which is sad as that is a great stepping stone for contributions. The tools are frustratingly hard to use correctly and everything seems to have need to be done in an Ubuntu specific way. It doesn’t feel so much as a Linux distro but a different world. Had it only been a utopian world of peace, cake and pink unicorns.. but no.