UDS App for MeeGo and Symbian

Are you attending the Ubuntu Developer Summit? Maybe you want to try the UDS app then 😉

Some time ago I started writing a mobile UDS app to manage UDS affairs on my mobile phone. Being a Qt fanboy and owning multiple phones with Qt the choice of toolkit was rather obvious. And oh boy is it awesome.

Right now there are stable versions for Meego 1.2 Harmattan (Nokia N9 and N950) as well as Symbian^3 (basically every Nokia Symbian device after the N8). Additionally there is a working prototype for Maemo 5 (Nokia N900) as well as platform UI code for Android >= 1.6.

Get it while it is hot! From the Nokia Store (for the N9) or here (for Symbian^3).

If you want to help with the Desktop/Maemo5/Android UI please poke me on IRC or drop me a mail.

The code is available at projects.developer.nokia.com.

This slideshow requires JavaScript.

Kubuntu 11.10 Sneak Peak

Last week the Ubuntu project met in Budapest for the Ubuntu Developer Summit. The Kubuntu team discussed an incredible amount of cool things, of which I’d like to present a number of generally interesting topics.

A very strong focus of the 11.10 release will be continuing innovation in the area of embedded systems such as mobile phones, but also for the first time on tablets. Since the work in embedded systems is quite extensive, information on that will be posted separately in a special ‘Embedded Sneak Peak’.

Boring things first. Kubuntu 11.10 will come with KDE 4.7.2 as well as Qt 4.8.

Accessibility

Accessibility always was a bit of a sore spot in Kubuntu. Mostly for two reasons:

  1. Getting the average developer to care about it is hard
  2. Qt did not support some important features

While the first problem is difficult to fix, the second one is perfectly fixable.  Some weeks ago Qt developer Frederik Gladhorn presented the initial code for Qt AT-SPI 2, which essentially allows screen readers such as Orca to work with Qt (and thus KDE) applications. This is absolutely great news for everyone who needs to use a screen reader, as the better part of the free software desktop world (Qt and GTK+ applications) will be accessible.

In cooperation with the awesome Ubuntu accessibility team we are doing our best to get this into Kubuntu 11.10.

We will also improve the out-of-the box accessibility experience. Primarily by integrating existing KDE accessibility software stronger into the Kubuntu system.

To find out more about Ubuntu accessibility check out their blog.

Low Fat Kubuntu

As a result of ongoing efforts in the area of embedded systems, the Kubuntu team has acquired a lot of knowledge in slimming down the default KDE Workspace to a bare minimum, freeing up more resources for other use. This makes it possible for use to introduce a new set of default configurations enabling a low fat Kubuntu setup.

While we realize that many of the technologies that make the KDE 4 workspace the incredible amazing product that it is, we also see a demand in reducing resource consumption on systems with limited hardware resources. The low fat configurations of Kubuntu 11.10 will enable users to run the KDE workspace on setups where it is essential that the base system uses as little resources as possible.

Touch This

Needless to say from all the work on “touchable” systems, we have plenty of awesomeness related to touch up our sleeve. Kubuntu 11.10 will by default (though probably not activated) come with an application called Touchégg.

Touchégg enables you to assign certain input gestures from your touchpad or trackpad to certain actions. For example if you tap with two fingers at once it could mean a right click, or if you swipe with 3 fingers from left to right it means ‘switch to next track in Amarok’.

After having tried this on my netbook I must say, this is one of my personal favorite new features, though one needs a sufficiently large touchpad to use it properly.

To find out more about Touchégg please visit the project website.

Package Manager

For quite some time we have been using KPackageKit as default package manager in Kubuntu. While it has seen constant improvement over time, a very strong competitor appeared meanwhile: Muon. Muon is developed by one of the Kubuntu Developers and uses, unlike KPackageKit, the native APT libraries. As it is using APT directly it enables Muon to have a much tighter integration into Debian-like systems (such as Kubuntu) as well as expose specific functionality of APT/DPKG more directly.

As a result of these and other advantages the default setup of Kubuntu 11.10 will feature the Muon Software Center instead of KPackageKit, The Muon Software Center has an interface very much like the Ubuntu Software Center, it is however not a clone of it.
For more advanced users there is also a Muon Package Manager which has an interface much like Synaptic and thus allows for more involved “management” of packages. Whether the package manager interface of Muon will be part of the default installation of Kubuntu or not is not yet decided, in any case it will be easy to install.

To find out more about Muon please have a look at Jonathan Thomas’ blog about Muon 1.2.

Kubuntu 11.04 Sneak Peek [UDS Cookie]

At every Ubuntu Developer Summit, the Ubuntu project comes together and tries to find new and exiting ways of breaking their own systems.

So it also happened about a month ago in Orlando, FL. But let me focus on the Kubuntu bits and pieces, since Ubuntu is way to big a project to summarize all the awesomeness in one (sensibly long) blog post.

Maybe first I should say that we were rather conservative with regards to major changes of the kind “might-eat-fluffy-bunnies”, though we have some that probably qualify as “might-eat-bunnies”. The important thing with such kinds of changes is testing, testing, testing, testing, testing, testing, testing, testing, testing and fixing 😉

Testing is not something terribly difficult, a bit time-consuming maybe, but surely worth the effort. If you want to help test the upcoming Kubuntu release you might want to download the daily ISO image every once in a while, or checkout the progress after each pre-release release (alpha, beta, rc). You only need to create a CD or a USB stick, boot from it and you can right away test the current state of affairs from the CD/stick in a live session. This is probably the easiest choice as it does not change your running system at all, yet it is a very good start to find large-scale issues, like broken sound driver, or broken graphics driver or overall brokenness. More engaging are installations in a VirtualBox (still not touching your data), or very brave people can also install it on their actual system (which gives the best testing, but one really should not do this on a production system, since it is going to break at least 2 times ;)).

Now that I prepared you for making sure the grave changes do not eat bunnies, let me tell you about the changes 😀 Please note that they are not necessarily appearing in Kubuntu 11.04 for real if they cause unsolvable problems (so, this is mostly just planned things, they are however partially already applied).

Phonon GStreamer

Phonon is the abstraction layer used by KDE and Qt for multimedia magic – Amarok and Dragon Player for example use it to play their media. The wonderful thing about Phonon is, that it is designed to not be dependent on one single multimedia framework (GStreamer, Xine, VLC), but supports multiple of those via so-called “backends”. Those backends make it incredibly easy to switch from one multimedia framework to another.

QtWebKit is changing to a less sophisticated solution that hard-depends on the GStreamer framework, consequently we will have to provide GStreamer on the Kubuntu CD to support HTML5 audio/video in our current default browser Rekonq. Additionally OpenOffice.org/LibreOffice on Ubuntu also depends on GStreamer, so it only seems a logical option to switch all of Kubuntu to GStreamer (previously we were using Xine).

This is however a bit of a brave move, to my knowledge no distribution used GStreamer by default before (I might be mistaken here). In any case I would call the backend a less favored choice of backend, although I am not entirely sure why that is, because GStreamer is a decent enough multimedia framework.

Now, since I am a very practical person I do not like changing things around just to accommodate some random dependency change in one (actually rather small) part of the system. Therefore there are of course more reasons that make me believe changing to GStreamer is a good thing. Let me just highlight 3 here.

GStreamer supports more advanced missing-code-installation features than any of the other frameworks. GStreamer can actually notify the application that is using it, that it cannot play, say a MP3, and that application can then use a special functionality of GStreamer to launch a codec installation application that helps the user obtain the necessary codec to play the file. I was really referring to Phonon, when I said “application” there ;). Lets use a real example here. Kubuntu does not include MP3 support by default for various reasons. Now, currently when the user tries to play a MOV file in Dragon Player, a notification comes up telling the user that some stuff might not work and that he shall be so kind as to allow installation of additional stuff. With GStreamer the whole notification is gone and a window comes up explaining the situation. If all goes well the user can then install the appropriate GStreamer package to play the file at hand. The beauty of this is that KPackageKit and the PackageKit aptcc backend handle this in a very amazing manner so that the user experience goes up 300%.

The advantage for Phonon at large is that the GStreamer backend gets more testing and thus we will very likely see a big quality push there. This is also good for Qt, because Qt’s Phonon uses GStreamer by default.

Finally the awesome people of Linaro included special hardware optimizations for ARM in GStreamer, making it (at least for now) the preferred framework on ARM devices using an Ubuntu distribution.

I am using Phonon GStreamer for about a month now and also fixed some issues here and there, and I think this has potential for awesome.

Raster Rendering

Those of you who follow my ramblings regularly might know about Qt raster rendering already, as I made a KCM to manipulate the rendering system a while ago.

At least for the first alpha of Kubuntu 11.04 we will have this magical raster rendering turned on.

— If you care about superficial tech blah blah —

Qt widget rendering can happen by various means, basically the rendering is done by a pluggable rendering system. On Linux this by default means that rendering is conducted by the X11 server, the graphical layer of the Linux operating system. Alternatively Qt also supports rendering using the so called “raster” and “opengl” (note: Qt actually supports more, but those are currently most interesting in a desktop context).

The raster engine, is a custom made software rendering solution, which is basically doing the same as X11 would be doing with the X11 engine, but in the case of raster, the rendering is actually done internally. Also this implementation works on all supported platforms.

— End of blah blah —

We are trying raster for mainly 2 reasons:

Firstly we are interested in seeing how well it really works 😉

Secondly the raster engine seems to perform a lot better than the default rendering for a lot of applications, especially those with a lot of graphics manipulation. Those of you who have used Kubuntu Netbook on an actual netbook with Intel chip will probably know that it actually is quite a drag and not much fun to use under some load (which one gets pretty easy on a puny netbook). However, with raster rendering this is about as snappy as one can expect. So, the netbook experience plays a lot into the decision to try raster, because it really makes an enormous difference on some setups. Additionally it of course also helps on more powerful systems that still (for some odd reason) suffer from this slowness.

If your system is feeling sluggish, please try the newly released Alpha of Kubuntu 11.04 and tell us your experience.

Of course there is a down side to all this. For one raster is not as widely tested as native rendering using X11, for another some applications do simply not work with raster at all.

The second problem comes from when applications use X11 specific features (such as overlay painting), which is however easy enough to fix by just enforcing native rendering for those applications (KWin does this for example). I do not think that this is going to cause a lot of problems, and if there should be too many problems of greater impact we can easy enough switch back to native rendering.

Summary

Of course those 2 changes are only a minor fraction of what goodness you can expect from Kubuntu 11.04, but I feel that those 2 are the biggest changes and thus worth mentioning explicitly.  Also they are the ones that everyone who helps with Kubuntu testing the following couple of months should keep in mind.

That is it for now, I am sure you will hear about the smaller changes throughout the development cycle. Kubuntu 11.04 is going to rock, of that I am sure!
If you want to help ensuring this, please join us in #kubuntu-devel on irc.freenode.net, where you can have a nice cup of tea and a discussion about the meaning of life 🙂

Stay friendly!