Tag Archives: linux

What I Love To See Changed In Ubuntu

I am an on and off Ubuntu desktop user. I also run a few low key servers on Ubuntu but nothing production grade. I have several reasons for that and itches me that Ubuntu has the right vision but I would do the execution a bit different.

In this post I give some friendly well meant advice to the Ubuntu guys how I would like to see their product offering improved. I can summarize it in 4 areas:

  1. Three desktop versions
  2. Excellent applications
  3. Certified hardware
  4. Integrate desktop and server offerings

Three desktop versions

Ubuntu has current two versions; LTS (long term support) and a bleeding edge 6-month release. The LTS version is meant for corporate desktops or people who want a stable version. The 6-month release contains all the new stuff and is bleeding edge.

In my opinion this split does not work in practice. The LTS version is always behind in both application and hardware support from the moment it is released. It only receives critical bugfixes and security updates. But while this release is out hardware platforms keep on moving forward and new major versions of applications are released.

The moving hardware platform breaks hardware compatibility of LTS on new hardware or bugs in existing platforms are not fixed. You cannot just buy a laptop and hope that LTS wil work without problems. It makes buying hardware for LTS either a hit-or-miss scenario or a hard research exercise. More on this in point #3. Either way not recommended for either corporate buyers or consumers.
LTS only makes sense when the current and latest hardware platforms are supported and Ubuntu makes sure new these just work. Bugs in hardware drivers should be fixed and released as soon as possible.

The same applies for releases of major software packages. Consumers like to have the latest bells-and-whistles. You cannot just wait 2 years before your browser or your office application is updated. Especially in the Linux world where so many applications do not receive bugfixes — or even security fixes — after 1 year of the release.
For corporations it makes sense to control the application environment and only move when there is a need. It avoids user training and collaboration problems when there is a homogeneous application environment. For corporations it should be a controlled choice to update the application environment. This also hooks into my point #4.

For these reasons I would like to see 3 desktop versions. These are:

  1. Ubuntu Next Generation – contains bleeding edge software and is for advanced users only. The name Next Generation is because it will show how the Next Generation of Ubuntu LTS looks like.
  2. Ubuntu LTS consumer version – contains a stable software environment but with the latest hardware drivers and major user applications.
  3. Ubuntu LTS corporate version – defaults only to move the hardware platform and applications only by choice — of the IT department. See also point #4.

To keep up with the moving hardware platform some interesting changes required which are not easy. It would require either to keep up with current kernel releases, backporting drivers or creating a kernel-independent driver model. All three options are hard but does not make it less important.

Excellent applications

For any operation system the applications are one of the key differentiators and Ubuntu has 35.000 of them. Even though the Apple App Store has more it is still key to do 10 – 15 applications really well. Apple does the same. The Iphone or Ipad come with a set applications which work really well and give the product instant usability. Ubuntu should do the same. A lot of applications are ok or good or average but none of them are really excellent.

Ubuntu should invest in making a top 10 of really excellent applications. These top 10 should ideally be also the top 10 most used applications on Ubuntu. My guess is that this would include a web browser, office applications and an email application. Ubuntu should set the standard in UI/UX design in the Open Source world. These applications are the crown jewels and need to convince users to come to Ubuntu. Unfortunately besides the web browser there no real winners in these categories.

A problem is also that a lot of Ubuntu homegrown or heavilly sponsored user applications are really not that good. For instance the Ubuntu Software Center looks slapped together. The same applies for Gwibber. These applications really need improvement in the UI/UX department. Another examples are Evolution or OpenOffice. Two applications which are essential for any serious Operating System offering but are really not that good. They are average or ok but definitely not excellent.
Ubuntu should really hire some UI/UX designers and actively participate in these software projects to bring these applications to the next level.

Certified hardware

Up until this day it still baffles me that Ubuntu does not certifies hardware for use with their Operating System. Any Ubuntu user who wants to buy a new computer or peripheral wants to know what to buy. It is also a great incentive to show to hardware manufacturers that there is a market for Linux compatible hardware.
It baffles me because it so easy. Just buy the latest hardware from a few vendors and test/tune/tweak until Ubuntu Just Works on this hardware. If there is a major problem because driver support is missing then write a driver or publicly announce that this hardware will not run on Ubuntu.
The current crowd-sourced solution on Ubuntu.com is nice but more geared towards advanced users and not consumers. There should be a list of a few laptops, desktops, printers, etc per manufacturer on Ubuntu.com which work with Ubuntu and Ubuntu will make sure they keep working. The selection should be intelligent like a 13-inch and 15-inch laptop together with 1 budget and 1 workstation combined with 1 inkjet printer and 1 laser printer. Maybe add a netbook or two if the manufacturer makes them.

Ubuntu marketing department should have field day with this and should make this a honor badge. If they are really good it can even convince hardware manufacturers to see this as an important asset for their hardware. At that point they can do the grunt of the work themselves and maybe even add Ubuntu Compatible sticker on the hardware itself.

Integrate desktop and server offerings

This topic is aimed at improving the corporate offering of Ubuntu. Ubuntu leaves a big gap by not tightly integrating their desktop and server offerings. Ubuntu Landscape tries to cover this but is only very limited. Moreover it does not integrate the desktop and server very tightly. It is just an additional layer on top of Ubuntu. Moreover it is only available via Canonical. Not very practical to win over organizations except some big corporations who rather outsource their deployment anyway.

The tight integration of desktop and server is a marriage to be made heaven. It has proven very successful for Microsoft. Corporates like to be able to manage and roll out large number of desktops. To manage a large installed base of desktops you need to have set of tools available. This set of tools is available on Ubuntu but are not easy to setup or manage. Here is an excellent opportunity for Ubuntu.

I talked in point #1 about a corporate release of LTS. The reason for this is that corporates would like to manage the roll out of desktop applications or updates. They need to verify updates or applications are compatible with existing hardware platforms and do not require user training. They need to be able to force security updates to desktops or make new applications available on a per desktop basis. Other options include custom non-Ubuntu managed software release of external software.

But it does not stop here. Corporates need to manage configurations and manage authentication / authorization on a network. Or roll out VPN access to specific users.

The Ubuntu desktop and server versions should integrate out of the box. By installing a Ubuntu desktop version there should be an option automatically configure it for a corporate network including authorisation / authentication and software package management through company servers. Desktop configuration for a corporate network should be automated. Just imagine that there is automatic configuration of email settings, network printer and network storage.

Ubuntu servers would come out of the box with image bootstrapping functionality to create servers and desktops based on custom build images. Any Ubuntu version would incorporate a tool to create such an image with a push of a button. Again all these tools are available on most Linux distributions including Ubuntu. The problem is setup. It should be made easy and reliable.

A great example is Ubuntu One. Just imagine when corporates could create their Ubuntu One environment on their networks. It definitely makes sense on a corporate network to move everything to the network and make desktops fully interchangeable. No more problems with lost files when desktops break or get lost. Just pick a new desktop, boot it up, login and you are done.

Last thoughts

I think there is still so much opportunity for Ubuntu but I feel there is so little progress. I sometimes think that Ubuntu has too much focus on particulr details like Unity or 3D effects and looses sight what really could make Ubuntu successful. Their eye of detail has brought them on top of the Linux distribution lists but to conquer the world they need to make bigger changes. I can only hope that some of this on the road map of the product guys at Ubuntu. Until then I think I will keep on being an on/off user which is fine. It just bothers me that so much potential is left unused. But maybe I am just impatient.

Is Ubuntu contributing to Open Source or not?

Mark Shuttleworth wrote an interesting piece as a rebuttal on complaints from the community that Ubuntu and Canonical are not contributing enough. He states that Ubuntu is contributing by polishing, bug fixing and bringing Linux to the people.
The critics say that only very little code is written by Canonical or Ubuntu community as a whole which flows back into the underlying projects like Gnome or X.org.

And I have to agree that Ubuntu has too much focus on their own products. It is their right to do so. There is no legal obligation that they should. But they cannot claim that they are really contributing to the Open Source community. Their behavior is to look the upstream projects as suppliers. And they do not go into partnerships with them. Instead they fork and extend as they see fit. Without active participation of Ubuntu there will be a divide between Ubuntu and the upstream projects since the vision and goals are never part of the upstream projects. The community at large will go in their own direction and if that does not match up with the direction or vision of Ubuntu the divide will only get bigger.

But there is also the moral obligation. That is what I read in all the posts made by critics. The community expects more back from Ubuntu. And to be honest I think that with 300 developers on staff it is really not impossible to have 30 people working exclusively on Open Source projects. It may sound not very business like for Mark but without the continuous improvements of the underlying software Ubuntu could not come to where they are today.

And as a regular Linux desktop user I am still not convinced that it is good enough for the masses. There is still much to do. The upstream projects could really benefit from the insights and vision of Ubuntu.

So please Canonical hire some important Open Source developers and let them work on their projects. What would have happened if Linus Torvalds would spent his time on porting the Linux kernel to some obscure CPU? Would the Linux kernel be where it is today?

My desktop is back on CentOS

For a while I have flirted with Windows 7 and Fedora 13. I spent in total 4 months on these two OSes combined. Before I used almost exclusively CentOS 5 on my desktop. And I have come back to CentOS.

The question is why? And to me the answer is clear. I feel at home on CentOS. It is not fancy, it is not up to date with the latest releases of applications like OpenOffice and the software repository is quite limited. But it works fine. Moreover it is stable as a rock. I do not mean this in the sense of crashing but in the sense of keeping your configuration working. Fedora needs an update every 6 months. After the upgrade it needs work. I always have the feeling that I waste my time to tweak a Fedora machine to my liking since it will be gone / changed in 6 months again. Moreover my battery was draining quite quickly under Fedora.
Windows 7 is a problem because it does not offer working sound support for my good ol’ Thinkpad Z60m. Moreover it is unreliable with auto suspend. It sometimes works and sometimes it does not. Try to debug that on Windows. Good luck!

On CentOS everything just works and I can easily add the missing pieces like tpb (thinkpad button support). It suspends and the battery life is great. Everything works again as it should.

Red Hat is currently running the RHEL6 beta program. Beta 2 just came out and I am looking forward to see the final version as CentOS 6. It is scheduled for the end of the year.

Why Ubuntu never works (and how an ideal Linux distribution should look like)

I like the work Ubuntu is doing for Linux and they initiated some interesting advancements for desktop Linux. The problem is that I never recommend Ubuntu to anyone. The reason is that although their product is easy to use there is also always something wrong with any Ubuntu release. Because they move so fast they do not have enough time to properly test and validate the releases they make. For this reason they invented Ubuntu LTS but this version is outdated after 6 months due to lack of hardware support. It only receives security fixes. Both version are not ideal. And for this reason I could not recommend them to anyone.

The question is what are the requirements for a great desktop Linux distribution. From the point of view of the user the ideal Linux distribution should:

  • be easy to use
  • works on every computer reliably
  • looks great
  • have the latest stable versions of all user applications (OpenOffice, Firefox)
  • includes all available hardware drivers
There is also another important group which have specific requirements for desktop Linux distributions. These are the ISVs. Their requirements are:
  • stable software support environment (APIs, libraries, filesystem layout)
  • bug free software environment (to avoid support issues related to the Linux distribution)

When you combine the requirements of these two groups I can only conclude that Ubuntu is just not there yet and never will be with their current product scheme; regular Ubuntu and Ubuntu LTS.

Other Linux distributions have similar schemes as Ubuntu like for instance Fedora Core. And Fedora Core suffers from the same flaws as Ubuntu does.

One exception from my point of view is Red Hat Enterprise Linux Desktop (or derivates like CentOS). Their approach although not perfect is better. In short their approach is to:
  • provide stable software environment (same kernel, support libraries, APIs and filesystem layout)
  • backport of new hardware drivers to support new hardware
  • regular rebase of user applications to latest stable version (OpenOffice, Firefox)

Their approach is not perfect because they only backport a subset of all new hardware drivers. This is probably due to effort involved and incompatibilities in the kernel ABI between kernel versions. Moreover their rebasing does not happen enough to which extend their Linux distribution is always at least 1 version behind the latest stable version.

The ideal Linux distribution should fullfill all requirements of both users as ISVs. No Linux distribution does this. One of the major challenges is the backporting of hardware drivers. The reason that backporting is necessary is due to the fact that Linux has a monolithic kernel design. It should be better when hardware vendors could just make one or two versions of their drivers and with that support all Linux distributions.

This would elimnate the need to backport hardware drivers to support new hardware on a stable platform and at the same time makes it possible for bleeding edge Linux distributions to move to a stable platform.

But this would require a complete different mindset of the Linux kernel developers. Based on the discussions regarding this topic I would not hold my breath for the near future that this is possible.

For anyone doubting the necessity of separated hardware drivers I can only point to the efforts of AMD/ATI and NVidia to support binary drivers on a wide range of Linux versions. Their drivers are always behind the capabilities of Windows and notoriously unstable. Their open source counterparts are not much better and are still in their infancy after years of development.

Without solving the issues with the current Linux distributions desktop Linux will never gain traction and reach its full potential. Desktop Linux will only succeed when it can meet the requirements from both users as ISVs. Users want a reliable and stable OS combined with great hardware support and the latest stable versions of their favourite software. ISVs need to be able to target and support a stable platform. Current Linux distributions are moving targets or do not support the latest hardware or applications. This needs to be resolved. One major improvement would be the separation of hardware drivers from the kernel. I can only hope this will happen and at that moment desktop Linux has a bright future.

Picture by trekkyandy (Creative Commons Attribution-Share Alike 2.0 Generic)

TODO in Desktop Linux III: an ode to Unison

This is the third post in a series about open issues in the current offerings of Desktop Linux. In this post I write about my favourite Open Source application which is Unison.

In my daily work I use two laptops; one at home and one at work. I need to have my document repository available on both machines. Moreover I am sometimes in a situation where I connect to a network which is not my office network or in some rare occasions I am even offline. In all these situations I need up to date access to my documents and email. In all these occasions email has an easy solution. I use an imap server to store my mail and use Thunderbird to sync my mail tree. But the document repository is more of a challenge. Try to solve this with the available Gnome tools on a standard installation of Ubuntu. It is simply not possible. Here comes Unison to the rescue.

All my documents are stored on my home server. That could easily be an backoffice server but this has historical reasons. It is essential I have my documents available on both laptops and for that I need reliable two-way synchronization of the document repository. The synchronization needs to be able to work in different locations with different types of internet access. In some cases I am on my office LAN but in other cases my documents need to flow over the public internet via public internet gateways. Therefor security is essential. The second requirement is reliability. The synchronization can take a few minutes to an hour depending on the size of the accumulate update of the repository and the available bandwidth. The third and last requirement is that the synchronization needs to take place in the background. I am just too busy to remember to synchronize. It needs to happen transparently.

The solution to this problem is a combination of OpenSSH with a password protected private/public key combination and Unison. SSH provides the essential data encryption combined with solid access protection of my document repository. Unison takes care of the two-way synchronization. In my 5 years of use it proves to be a very reliable tool which survives unreliable and slow links, mid-way disconnections and large updates.

For background synchronization I use cron which can login without a password to my server when I enable ssh-agent key forwarding. In my Gnome session I autostart ssh-askpass which asks me for my private key passphrase during logon. During my session cron can start a script I wrote to access my ssh-agent to use the private SSH key to login to my server and start Unison.

To give you an idea on the reliability and scalability of Unison. A few years ago I used Kontact/Kmail for my email. And although Kmail supported IMAP, it did not synchronize my email. When I was offline I could not access it. I solved this using Unison. At that time I used Courier IMAP which stores the user’s email in a directory called Maildir in their home directory. I synchronized this email repository containing 10.000+ emails with my laptop and ran a local Courier IMAP server to access my emails through Kmail. This worked very reliable. A synchronization run only took 10 seconds when no changes were detected which is an amazing feat in itself by the people who wrote this great tool.

When I find the time I will write a small howto on the setup of Unison together with OpenSSH and ssh-agent key forwarding.

But to come back to the original theme of this series of posts I am disappointed that Unison is still not integrated in the Desktop environments of Linux. Often users find themselves in a situation they need to have reliable and scalable two-way synchronization of data. The tools are available but the Desktop Environment does not give easy access to these tools. For me personally this would be a killer feature and I am not alone.