KDE 4: some reasons for design decisions

some reasons for design decisions
The first KDE 4 release will come along with several major changes compared to KDE 3.x. While explanations for these changes have been posted at several places before there is a central list missing which explains the reasons to normal users. This post lists some hot topics and tries to shed some light on the reasons behind certain decisions..

KDE 4 will be a large step away from KDE 3 in several regards. I already posted a short list of programs and services which will be replaced by something new. However, that list didn’t say much about the reasons behind these decisions. But with the ever closer coming release date of KDE 4.0 and new and easy ways of testing the newest builds many people in the last days asked questions at different places and occasions and wondered why beloved KDE 3 technologies will not appear in KDE 4 anymore, or why certain services have been exchanged against something new. Even a friend of mine a normal users who do not follow the development of KDE 4 closely, raised some concerns. Last but not least there are active discussions going on at the KDE planet about this topic atm. This post sheds some light on the reasons behind some of the design decisions for the user point of view.

arts vs Phonon

That one is easy, and therefore it is good for a start: aRts, the KDE 3 soundserver was powerful, but simply unmaintained. Despite its superior technology when it was introduced for the first time it was out-dated when KDE 4 development started – video support was for example missing, to begin with. So arts would have required a major rewrite in almost every regard with many new features to add to get into a future-ready shape. And there was no one really willing to do that. At the same time other very capable and promising multimedia frameworks were available (Xine, Mplayer) or in heavy development and almost available (Gstreamer).

Also, having a fixed dependency on arts only hurt KDE 3 to the end of its life time very much. The KDE developers felt like that this should never happen again. So it was decided that the best would be to write a wrapper. And someone stepped up and did exactly this. Phonon was born.

The question is of course if it turned out to be the right thing. Time will tell, but the fact that Trolltech already decided to include Phonon in Qt 4.4 in some bits is very promising.

kcontrol vs systemsettings

That one is not that easy at all: kcontrol will be replaced by systemsettings, and several people don’t like the new systemsettings. Having said that, these people should have a second look at the moduls themselves: systemsettings just loads the modules of kcontrol. So the frontend which offers the modules is different, while the modules stay the same (but are of course also improved for KDE 4). The reason behind this move has to do with development power and also wishes from the users: systemsettings was introduced with Kubuntu for their modified KDE version. Many users indeed liked it since – for them – it was more polished, usable and easier to understand. kcontrol, on the other hand, didn’t have a maintainer.

Of course, long time KDE users had mixed feelings – people like me, who never really got the hang with kcontrol like systemsettings, others are more used to kcontrol. But in the end the mass of the users of the system tool will be users. Normal users, not power users or developers. And after all I’ve read about both configuration tools it looks like that most normal users don’t really care since the functionality is basically the same and the modules are the same. So, they don’t really care, plus there is no maintainer for one of two solutions, leaves us with the other solution.

Oxygen

This one is tricky: Oxygen is most visible by the used iconset and the theme, and the above mentioned friend mentioned that he didn’t like the new theme. In contrast, I prefer to have a very bright, almost milky theme and I don’t need much contrast (what for anyway?). But we are both power users, and we do know that switching to another theme is done in just a few seconds. And the new theme engine is very powerful! But for the average user it has to be pretty – and for these people a milky theme with not too much contrast seems to be equivalent to the term “good design”. Additionally, some of the top KDE designers have a similar feeling and also wanted to test there abilities in that field (I guess). So the decision was there. And why not? Every power user shouldn’t bother with any theme or icon dislikes because he/she also knows kde-look.org.

So the only thing which has to be made sure is that KDE 4.0 comes along with a set of different icon sets and themes to please more than just one user base. Or maybe just with GetHotNewStuff buttons.

And as a personal note, because I was asked this quite often: the big icons inside Dolphin which can be seen on several screenshots are there because it looks better on a screenshot. Of course I would never use such big icons, and of course Dolphin does not force such big icons, and of course it is not part of the look of KDE 4 to have big icons!

Kicker vs Plasma

KDE 4’s panel is a hot topic which was also discussed between several KDE developers the last days. The problem is that the current Plasma replacement for kicker is not on pair with kicker feature wise. So why was kicker dropped and something new created instead of just improving kicker?
The reason is that kicker was already broken years ago: the code was hardly readable, and new introduced features often introduced bugs and problems at other places. Also, kicker was as flexible as a mountain: several projects which aimed at adding a cool new feature to kicker in the end copied the code base and started to rework it on their own – they forked kicker. And that would not have been necessary when kicker would have a better design for such improvements. But kicker was created for KDE 2.0 (!), at a time when no one would have thought that some years later applets would be embedded in the panel as well as in the desktop. Or that there are indeed several ways to provide panel functions and not just the 90s like static attempt (think of MacOS like approaches, etc.).
In contrast, KDE 4 will have a long life cycle, and therefore all code must be maintainable for a long time – and for other developers.

So the options were to either totally rework kicker from the basic design through the entire code base up to the applet part to check if parts can be shared with Superkaramba. Or a replacement could have been provided. But, and that is important: there was no way to simply keep kicker, because it was not in a maintainable state for KDE 4.
The decision was as usual done by the people who provide the code: people decided to merge the desktop with the panel and provide everything from one point. That was quite a bold decision, and a lesson to learn: while Plasma makes great improvements every day, it was and probably still is one of the most criticized features of KDE 4. There are still some bits missing until it is ready for release.

From a user point of view it will be something new to get used to – some features of KDE 3’s kicker will most certainly be missing. Of course, all the basic panel stuff will be there, but it will still be an entirely new panel. Nothing more, nothing less. You must get used to it, and it will take time – at least a bit time, even a Plasma panel is still a panel. However, one of the advantages of the new technology is that it was designed to be much more flexible than the old one. So in the long term you can expect various of customization feature coming up. And even if there will be new ideas to implement the basic panel functions these will not require you to replace the current panel but will (well, hopefully) simply build upon it – unlike KDE 3’s kicker replacements. So even revolutionary new ideas might integrate into the original system without much work.

And in case you worry about the current design: it is not final. Plasma is themable and it is not yet said how the final version will look like. Maybe it will even be significant different from the current design to distinguish itself from the Beta/RC design.

KMenu vs Kickoff

Another source of hot emotions: The problem here is that KDE 3’s classical menu (90s style) will be replaced by a Kickoff port which was originally developed by OpenSuse/Novell and used in recent OpenSuse distributions. People who are used to the classical menu style either by older Windows releases or by KDE 3’s menu will be at least confused when they first use Kickoff. Many of them got annoyed since it does not behave like other menus.

So, why the change at all? Again, one part of the answer is the code base of the old solution: it was, according to the developers, ugly. Additionally, Novell spent quite some money and time on the question how a menu actually should look like usability wise. They checked back with users (like, real people, not computer people ;) ) and tried to figure out what actually is usable. Most people like the classical menu because they are used to – that has nothing to do how well this type of menu is actually suitable to the task. And usability wise it is totally nuts to navigate such menus with a mouse! (Do I have to add that I don’t use menus at all as long as I can avoid it? Long live Alt+F2!) So they started developing Kickoff – with average or new users in their mind.

In the end the situation was that usability wise Kickoff was a strong improvement to the old menu. It doesn’t matter if you disagree with that personally, because that has nothing to do with the figures gathered in a scientific test. Also, there was developer power there to port Kickoff. And they did.
Originally, there was even another menu planed, but that was delayed.

So the situation is quite nice for new users. It sucks a bit for power users, but for them Plasma will maybe save the day: with Plasma it should be fairly easy to replace the menu by another one. Indeed, there is already another menu/application launcher in development, Lancelot. Also, it was mentioned that it should not be too difficult to implement an old-style menu, for the people who love the stone age (90s) but want to distinguish themselves from apes (command line or Alt+F2).

Konqueror and Dolphin (“and”, not “vs”)

Dolphin will be KDE 4’s new file manager. And many people raised concerns about that. Especially the power users fear that Konqueror might get neglected now, which would be horrible. And I agree, btw., that such a thing would be horrible: Konqueror is the swiss army knife for everything file management related. It is *the* tool for power users.

So, first of all, why was Dolphin introduced at all? The first reason is that Dolphin, formally a third party development, got quite some attention and was very popular especially when KDE 4 development started. The second reason, and the developers realized it when Dolphin became that popular, is that many users just want to have a simple file manager and not a swiss army knife for file management. Also, there was a chance to improve Konqueror’s file management by inviting Dolphin’s developers: Konqueror will use Dolphin’s file management engine to manage files. This will improve Konqueror’s abilities in this regard – and will make sure that Konqueror will not fall behind (that is the mighty technology of KDE :) ).

Of course it is not bad to keep an eye on Konqueror’s development to make sure that no one forgets it due to the excitement for Dolphin. But recent news show that there Konqueror is polished and equipped with new features.

Closing thoughts

This list covers the most important topics. There are of course more things which are occasionally discussed, but this list is a good first start I guess. Also, the list is already quite long ;)
I do however want to add that most of the information here are the impression I got from reading blogs, commit digests, comments, etc. Remember, I’m not a KDE developer. So if I forgot an important reason or mixed something up, please leave a comment and I will alter the text here. Also, some of the reasons depend on interpretation and personal point of view of the developers, so some people might disagree with the point of view and the reasons offered here. In such cases you are also welcomed to highlight your point of view in the comment section.

Wuala: store data online, and share them if you want

store data online, and share them if you want
Wuala is a mixture of a classical online storage solution and a file sharing application: you can share your data with logged in users or entire groups while all your data are uploaded to a p2p net – even when you’re not connected. The program was now released as a Linux version.

Technical Background

The interesting advantage of Wuala compared to usual file sharing applications is the fact that every user can first define which user or group is allowed to see which content, and that you don’t have to be connected to the net to offer your friends the option to download your stuff. When you mark your data for upload they are splitt into small parts, encrypted and afterwards uploaded to the other clients of the network (including some big servers of the company behind the project). All data is saved redundant so that you most likely always have the possibility to download your data from everywhere else as long as the Wuala network has no major breakdown.

Currently the amount of data you are allowed to upload is 1 GB. However, if you provide some space for other people’s files on your hard disk you also get more space on the network – given that your network connection allows incoming connections and that your computer is online most of the day. In this regard the approach reminds a bit of Freenet which also defines your upload space by the space you provide to the network afaik. You can also “earn” additional space by inviting other users, and I guess in future you might be able to buy additional storage.

According to the web page, your data are encrypted locally and therefore cannot be viewed by other clients as long as you don’t allow it:

All files you store are encrypted such that only you and those authorized by you can access them. All encryption and decryption is performed locally and your password is never sent to us – so not even we can access your files.

Unfortunately, the program is closed source (also see below) and there are no further details on that matter. Therefore it is hard to say how strong the encryption really is. I would really prefer especially such a program to be open source, or at least open source in all important bits like encryption.

The graphical interface

Wuala itself comes along with a graphical Java client interface for Linux, MacOS and Windows. The Linux client is provided as a tar.bz package and at the moment still has to be copied to a local folder. There is no package or installation routine, but the Linux client is in an Alpha stage anyway.

The main window shows all shared files and directories and marks them with different colours for different restrictions: yellow ones are the folders which are not shared with anyone, red are the ones shared with friends and/or groups and blue ones are accessible by everyone of the network.

Wuala - Main screen

The folders themselves can be removed, downloaded, recommended, marked as favourite, etc.:

Wuala - Right Click

You can of course also alter the access rights everytime. And the rights are quite fine grained: they allow you to choose specific users and/or groups to see content and therefore remind me even a bit of ACLs.

Wuala - Access Rights

As mentioned above there is also the option to make content available for everyone. As a user of Wuala you can of course also allow others to search that content:

Wuala - Search

Of course it is debatable how useful it is to provide data on Wuala which are readable by everyone – there are similar services on the web where you don’t need the extra client, and Wuala is not the place to provide illegal content worldwide. But some people indeed seem to use the function, and I could imagine that CC content could find a place there.
Anyway, if you pay closer attention to the bottom right you see “Related Products”. This is a link to Amazon products. I guess this helps Wuala to keep the business running. In the current version you can turn off that function, the question remains if that option will still be there in the future.

Besides the main window and the world/search window there are also windows for your groups and users. There you can also start a chat with other users – however, that failed for me due to a Java error. I’m not sure if that is a problem of the Linux client, IcedTea or something else. On the other side, the project is still in Alpha/Beta testing and maybe the function is not tested enough yet or simply not implemented right now.

Another feature I dind’t test at all yet is the possibility to use portmap to have a look at for example video files while they are still not fully downloaded:

Wuala creates a network drive to which your operating system can connect. [...] Wuala has a built-in NFS server and tries to mount a NFS share in the folder named ‘direct’. For this to succeed, portmap and nfs-common must be installed.

Besides the graphical interface there is also a command line application which can be used to set up storage nodes. Since Wuala depends on computers which are online most of the time such a command line client makes a lot of sense for example for 24/7 servers without X.

Closing thoughts

Wuala is an interesting approach to provide online storage for everyone. It has nothing revolutionary new but combines several known techniques to an interesting, nice looking and working product. Still, as already said I would feel much, much better if at least the encryption part would be Open Source and documented so that users could verify that their content is really safe. In this regard the FAQ has an interesting point:

Do you plan to open the source code?
We are considering to open the source code in future. However, this is a decision that has to be thought out well as it cannot be undone. It also takes some effort to successfully implement a good open-source strategy.

I’m looking forward to the future development of Wuala – especially plans like Web access and of course to Open Source the code are very interesting.

As a last note: currently Wuala is in an early stage and does not allow new users. However, existing users have a set of invitations, so in case you would like to have an invitation, send me a short private note.

Howto: Transform a qemu image to a VirtualBox image [2. Update]

Transform a qemu image to a VirtualBox image
Virtual Machines are an easy way to provide new applications or even entire operating systems without the need to install or alter anything in an existing system. However, often they are provided as a qemu image while VirtualBox is much more userfriendly.

A good example for an important qemu image is KDE’s KDE 4 daily builds virtual machine. I wanted to use it, but in contrast to qemu, VirtualBox comes along with a well designed GUI and is simply much more userfriendly (and of course also exists in a free version).

To use the qemu image in VirtualBox, first of all qemu must be installed on the computer. In Fedora this can be done by yum install qemu, for example. Also, later on a tool called “vditool” is needed. This can be downloaded at VirtualBox’ homepage: save the following link by right click to some place on your hard disk: www.virtualbox.org/download/testcase/vditool. VirtualBox should be installed already as well.

Afterwards, the image can be converted via qemu to a raw format. This raw format can be transformed to the VirtualBox compatible “vdi” type. Last but not least the image can be shrinked down a bit to only take the space it really needs:

$ qemu-img convert kde4daily-0_0_1_r734472-qcow.img kde4daily.bin

$ ./vditool DD kde4daily.vdi kde4daily.bin
vditool    Copyright (c) 2004-2005 InnoTek Systemberatung GmbH.

Converting VDI: from DD image file="kde4daily.bin" to file="kde4daily.vdi"...
Creating fixed image with size 3758096384 Bytes...
The operation completed successfully!
Writing data...
The operation completed successfully!

$ ./vditool SHRINK kde4daily.vdi
vditool    Copyright (c) 2004-2005 InnoTek Systemberatung GmbH.
Shrinking VDI image file="kde4daily.vdi"...
progress: 0%Log created: 2007-11-23T20:56:29.959543000Z
[...]
..........10%..........20%..........30%..........40%..........50%..........60%..........70%..........80%..........90%..........100%Dumping VDI image "kde4daily.vdi" mode=r/w fOpen=0 File=00000004
[...]
The operation completed successfully!

Of course the file names must be altered according to particular needs.

Afterwards, move the image to an appropriate place, create a new virtual machine instance with VirtualBox and choose the new vdi image as the hard disk of the new vm instance. Now the virtual machine can be configured and started just like any other one.

In case of the example above there was some attention still necessary to bring up the network: it wasn’t activated by default somehow, but a simple

$ sudo su
Password:
$ ifconfig eth1 up
$ dhclient eth1

fixed the problem.

Update
Naveed Hasan mentioned that vditool is obsolete and that VBoxManage can be used for it. VBoxManage is part of the VirtualBox standard installation and offers quite a lot of options – among others the possibility to convert one format to another: VBoxManage convertdd kde4daily.bin kde4daily.vdi and VBoxManage modifyvdi kde4daily.vdi compact.

2. Update
The image contains a hard-coded MAC-address for the internet connection. Simply remove the MAC address from the /etc/iftab file, and the network problem mentioned above should be gone. Thanks to Martin for the tip.

KDE 4 daily builds in a virtual machine

KDE 4 daily builds in a virtual machine
SSJ created a virtual machine containing a KDE 4 build an equipped with scripts to update the machine on a daily rhythm. Equipped with that virtual machine everyone can now easily follow the development of KDE 4 without modifying a real system.

The virtual machine project was announced today on the dot and was warmly welcomed. With the help of the virtual machine many more people will be able to test and try KDE 4 with the result that KDE will get many more bug tests and reports. Also, since the virtual machine can be updated on a daily base it is also a handy tool for normal users without a local installation of KDE to take part in the bug krush Saturdays. It is built upon Kubuntu can be downloaded via bittorrent. The image format is a bz2 packed qemu image. The login is the same as the password kde4daily.

The virtual machine is a great idea and will be of great benefit to KDE 4 and with a bit of luck also to the bug krush days. It is something I have been waiting for since the first screenshots of KDE 4 appeared, and SSJ has done a great job. Thanks for that!

Btw., since this is a virtual machine there are of course two shortcomings: speed and OpenGL. The first one will damp the experience of KDE 4 a bit since everything will be significant slower and will feel sluggier. The second part, missing OpenGL, will result in a not-compositing KWin 4.
To get rid of these limitations KDE 4 has to be installed. There is also a LiveCD which is still slower than native but at least least provides OpenGL support.

OpenOffice’s presentation view

OpenOffice's presentation view
Currently OpenOffice’s presentation program Impress lacks a presentation view with notes and so on for a second monitor during presentations. But the feature is in active development, and first results are visible.

Microsoft’s PowerPoint and Apple’s Keynote both feature a presentation mode where the projector shows the current slide while the computer monitor shows the current slide, the next slide, the time and important notes. Such a feature is very useful and the lack of it is a serious reason to not consider OpenOffice as an alternative to Apple’s or Microsoft’s solution.

SUN recognized that as a problem and dedicated developer time to it. As a result, the first big problem was already solved in the past: since OOo 2.1 OpenOffice is capable of directing the output of the presentation to specific screens. However, this is only half of it: the presentation view also needs a dedicated interface on the computer screen and also needs to sync both of them with each other. This is addressed in bug 18486. There you can also find the note that SUN actively supports the development of that feature:

I’m happy to announce that sun provides a full time developer to add this issue to OpenOffice.org. AF will develop this feature as a plugin, so it will be either available in 2.3 or you will be able to install it on your 2.3 shortly after it is released.

In contrast to that announcement the feature didn’t appear in OOo 2.3, and no add-on is released yet. But the project wiki page mentions that there is already a working version:

OpenOffice.Org - Presenter-View

Due to the fact that the feature is already working it is likely that the next OOo version contains it. I do however wonder how the tool is implemented using Linux, and if it will work well together with the new RandR. After all, RandR 1.2 was designed – among other things – for such purposes.

Anyway, great to see that this feature will be provided by OpenOffice.org finally.