On Icons and Labels

To be frank: I think that the Kubuntu’s switch to “Text aside icons” (as discussed by Seele) was a mistake. The reasons for that are best explained by an example:

Here, only one of three actions are visible in the tool bar, rendering it pretty useless. But let’s revisit what we had as the default in KDE 3 before we used “Text below icons”:

Now, “Text below icons” is a bad idea, because it wastes vertical space, which we are already short of (Plasma panels, menu bar, window decoration). Given the emerging 16:9 ratio monitors, this sounds like a call for “Text aside icons”, the new Kubuntu default:

During the quite vivid and productive discussions on Seele’s blog, some people proposed to show the text only for special actions (mockup as posted there). This does not only allow to easily spot the most important of the actions (keep in mind that all actions in the toolbar should be kind of important, otherwise they shouldn’t be there), but also eases hitting the actions tool button.

Actually, this idea has gone through my mind quite often and our friends over at the competition used this for ages, albeit for Evolution only. Instead of going for such a solution, KDE has struggled for years searching for the right defaults and discussed about screen resolutions.

The actual reason for this was mostly of technical nature: QToolBar couldn’t change the tool button style property for specific actions in Qt 3.x, and the almighty XMLGUI layer used by KDE thus had no such option either. Instead, one everyone got to pick his poison (no description, or space wasting ones).

Attentive readers will have noticed my deliberate use of the past tense in the paragraphs above. This is because with Qt 4, it is possible to do just what I said was missing: Adding actions with an individual Qt::ToolBarStyle. So without further ado, here is my (code-backed) mockup:

The secret is to add those actions that should get a text aside the icon like this:

    QToolBar *bar = mw.addToolBar(QObject::tr("Actions"));
    bar->setIconSize(QSize(22, 22));

    QToolButton *tb = new QToolButton;
    tb->setDefaultAction(new QAction(QIcon(":/icons/mail-message-new.png"),
                                     QObject::tr("New Message"), tb));

This is officially documented behavior. Quoting the Qt docs on QToolBar::addWidget():

If you add a QToolButton with this method, the tools bar’s Qt::ToolButtonStyle will not be respected.

Now it shouldn’t be too hard to add suppport this idiom to XMLGUI, by adding a flag for “important” actions. That said, XMLGUI is a quite complicated and fragile matter. However, I will take a look at this soon to see if it can be implemented in a clean way without patching Qt.

PS: I think this is one example where less could actually be more in KDE. If we get this right, there is no need for choosing an icon label alignment at all.

Time To Become a Qt Engineer!

Or should I say: “time to become a real Troll”? Yepp, the deadline for my thesis, which I’m currently doing at Qt Software (formally known as Trolltech) is rapidly approaching. So I will now apply for “full membership”. That is, for a job at Qt Software Berlin. And so can you! Nokia’s Qt Software division is looking for even more developers in Berlin, Germany. This is especially good news for those who hesitated to join because Oslo was too far in the north. Berlin is a great city to live in. Take the opportunity to work with these fine people!1)

And if Berlin really isn’t for you, try PSO in Brisbane, Australia or simply search for “Qt” at the Nokia Career Portal to find a lot more Qt-related job opportunities at Nokia around the world. Apply now and send in your resume! Nokia is waiting for you.

1) Not actual people, just photographic representation. Expect even better fidelity when meeting them during your interview.

KOVpn: A helpful little tool returns

Disclaimer: No KDE 4.1 hype here. This is for the real retro folks (aka KDE 3.x users).

KOVpn is a simple, yet helpful tool to connect to private networks using the OpenVPN software. It was nice, but needed some more improvements (indicated by its version number). Unfortunately, the last maintainer vanished along with the project page and the download files. However, I was able to get hold of the latest stable release via our University sysadmin (and KDE veteran!) Chris Neerfeld. Since OpenVPN is used in my uni to gain WiFi access, I moved the tool into a trac environment at our labs project hosting service.

With the help of another lab member, Jochen Wierum, I also managed to get out packages for OpenSUSE, Debian and Kubuntu via the (excellent!) OpenSUSE Build Service. Also, thanks to a fix Jochen contributed, the latest release also works on 64 bit distros.

So what now? This is a KDE 3 app, so its days are clearly counted. Yet it will hopefully help, since KDE 3.5 will probably be around for quite some time. Currently I am considering a Qt 4 port, if my time permits. But actually, it is really NetworkManager who should become smart enough to handle all kinds of OpenVPN setup, instead of the rather limited options it offers nowadays. Let’s see what the future brings. In the meanwhile, enjoy KOVpn!

PS: Be warned The setup currently involves manual setup of OpenVPN, but using it afterwards is a real joy, compared to using the commandline or weired custom scripts

PPS: Dear Lazyweb: Do you know how work on NetworkManager is progressing wrt OpenVPN integration?

Exploring Berlin Mitte

So yesterday was the first evening/night for me to look at some things in Berlin. Even though I’ve been here for a couple of times I never really took the time to explore Mitte, so Sven Guckes was kind enough to give me and a guest from Denmark, a tour through the city.

While I usually take the S-Bahn or the Underground, we were using the DB call-a-bike service, as I don’t have a bike on my own here yet. It’s really cool if you need a bike just occasionally, and the bikes had surprisingly good quality. Sven took us through the city, brought us to a good and cheap pizza place and ultimately we ended up iat Dussmann, a big book/cd/cultural stuff store in the famous Friedrichsstra├če.

Also, Sven was kind enough to introduce me to the location where our new collegues from Nokia Gate 5 reside:

Photo © 2008 by Sven Guckes

PS: If you happen to get weird crashes with Amarok or any KDE 4 application where the app don’t actually crash, but seem to properly shut down unexpectedly, then don’t use the distributors Qt 4.4.0 packages. I lost almost an entire hour on that, because I was too lazy to compile my own Qt version at home ­čÖü .

KDE TechBase in Need of Admins

KDE TechBase is the top resource for KDE development specific content. It is an effort originally started by Dominik and me. Since then, we (well, mostly it’s him, while I am in charge of causing all the annoying URL changesupgrades and maintenance) regulary monitor the at TechBase, moving pages into the correct place, hinting people to merge pages with similar content, etc. Even though the TechBase is a Wiki, it needs people that take responsiblity on the overall Layout.

However, Since he will be gone for 3 months and I can’t manage it all on my own, we are in need of more TechBase admins. So if you drew knowledge from TechBase, this is your chance to contribute back.

PS: we also need a fancy name for TechBase admins. Something along the lines of the KDE bug squad. “Techsters” was my first idea but that sounds a bit dull. Anyone?

Flatforty Survey

Dear Dot-Lovers,

reports about the death of the flatforty feature on the dot are greatly exaggerated . In fact it seems to be working again, I have no idea why it was gone. Probably some maintenance lead to problems. Anyway, I have always wondered why that feature is so pupular with people, especially since it’s hard to see what thread this posting belongs to at first sight. So I have some questions:

1. Do you like/use the flatforty function? If so, why? if not, why not?
2. Would you like to be able to subscribe to Flatfourty as an RSS feed rather than reading it online?

Please feel free to submit your answers in the comments.

Some Dot Stats

After successfully exporting all stories and comments from the dot from its launch until the day before yesterday to xml (to have a basis for test-imports on other machines), I can give you a few interesting statistics:

Since the dot started, 2815 stories were submitted. 586 never made it to the front list (because they were spam, double posts or reposts). On those remaining stories, a total of 95562 comments have been posted, an average of about 43 comments per post. Pretty impressive numbers, huh?

Better RSS on the Dot, Travel

So my last rant basically made me the dot maintainer. Oh well. Now, as the first official act I added a description tag to the RSS feed of the dot. That means that everyone can now read stories with his RSS reader, and without being disturbed by the comments. It also means that the dot can now be aggregated on the planet (hello clee *hint,hint*!).

The second good news is that throughout this day, I finally got an understanding on how Squishdot stores its articles and it should be rather easy to import all stories and even all the comments into a new system, for which we currently prefer WordPress, although no final decision has been made.

From tomorrow on, I’ll be in Espoo, Finland to attend a european exchange programme at EVTEK university for two weeks. In case of emergencies, please refer to dhaumann for any techbase issues, while sebas is your main for technical issues with the dot. I should however be well in touch with the world during the next two weeks, but who knows.

Comments Considered Harmful or "The Halo Effect"

It’s terrible: Every idiot has an opinion on everything. I think people got it all wrong on the whole democracy thing: In democracies, one may have an opinion, but one doesn’t have to. If you have no idea what you are talking about, just shut the f*ck up. — Dieter Nuhr, German comedian.

[Warning: Bitter words ahead]

There used to be a time when I was a happy KDE contributor. Why? Because it was fun. Everyones work was appreciated by both, fellow developers and the community. I could see that from both being an blogging developer and a KDE dot news editor. Especially with my blog, I found the comments to be helpful to collect feedback. At least that’s how I want to remember it.

I don’t want to go all the way down the “times seem to have changed” road, but the tunes certainly have changed. I’ve gotten fed up by the attitude of a lot of commentors. That is, being totally destructive about work that people do. Often it’s people commenting stories on something that appears to be vaguely related, but in fact they just hijack the story to nudge around, sometimes giving clear evidence that they haven’t even bothered to read the story/blog post.

It’s remarkable that the worst comments are always first posts or grow to become a prominent “discussion” thread, because everybody likes to state his support or say how wrong the original poster is. This gives the whole post even more siginificance. Like a halo, it outshines the other comments, and sometimes even the article (and before you propose it, a slashdot style moderation system is not the answer. For the reason why I suggest reading slashdot).

Let me give you some examples:

Story:“Wikimedia and KDE share offices”.
Content: KDE gets a professional secretary. Developers can get back to their actual work.
Reaction: Pseudo disclaimer, followed by weired stuff about implementation of Wikipedia support (wtf?) and blaming Wikipedia editors of being “elitists”
Halo effect caused by: First post, long thread
Relevance to story: None

Story: openSUSE Packaging Days II Tomorrow
Content: openSUSE announces efforts to package (cross distro)
Reaction: Useless question
Halo effect caused by: First post, long thread
Relevance to story: Little to None

Story: KDE 4.0.3 Released With Extragear Applications
Content: Another bug fix release out
Reaction: only bug fixes for plasma ?
Halo effect caused by: very long thread
Relevance to story: Little

The same applies for many proposals made in blogs. Instead of discussing features the way the author intended it, people prefer to get into bikeshedding or talk about how stupid the author is for developing this particular feature instead of something supposedly more important. That said, I’ve never seen a patch or any contributions from those people.

I have spend quite some time thinking why I lost contact with KDE development. Sure, there’s the time factor: There are exams, exams, exams and now I am starting my thesis that will probably comsume me until summer. But let us be serious: That was never the only reason. Another part of the truth it that I’m feeling more and more disillusioned about the whole community thing, and if it wasn’t for a lot of great people within the actually contributing KDE community, I wouldn’t be part of the project, in fact any open source project anymore.

If getting back into the mood means deleting comments (nowadays we have a quite strict “don’t delete” policy) or disallowing comments even on the dot, I am now totally fine with that. And that’s not only me, I know that a couple of other people in the open source community and KDE in particular feel exact the same way.

If things continue to be this way I can just stop contributing to KDE (in fact to any free software project) entirely in my spare time and make sure I get paid for the pain. It’s called “consulting”.