FrOSCon 2009: Call for Papers About to Close

The Call for Papers for this years’ Free and Open Source Conference (FrOSCon) will close in three days. Hot topics are Cloud Computing, Open Hardware, Free Software and SaaS (Software as a Service) as well as mobile Gadgets (Netbooks, Phones, …).

Traditionally, FrOSCon has always hosted a sub conference. After hosting the Python and PHP community, this years programming language du jour is Java. Does anyone feel like giving a Jambi talk? 🙂

Btw: Qt Software supports FrOSCon as a Gold Sponsor and both Qt Software and the KDE team will of course be present during the conference. Visit us from 22.- 23. August 2009 in the premises of the University of Applied Technology in St. Augustin near Bonn!

Qt Kinetic: Declarative UI

Today, we (Qt Software) released a new user interface technology, called Declarative UI on Qt Labs. Declarative UI is part of the Qt Kinetic research project and is a completely new approach to programming with Qt: In contrast to imperative programming, declarative programming is a more natural and expressive way of creating software. The program logic is expressed in terms of what something should be, what it should look like and how it should behave, rather than described through control flow statements of creating, modifying and connecting objects.

So everything is totally new and leaves the old Qt behind? No! The Declarative UI builds on the core concepts in Qt and applies the ideas of declarative programming to user interface design. More information, including download links can be found in the announcement. This is also the place for feedback. Here is a video to make you drool a bit:

(YouTube link, Ogg Theora version)

Not convinced? The look at this:

(YouTube link, Ogg Theora version)

This dial example is implemented in 45 (!) lines of QML!

Note: No Fingers were harmed in making these screen casts</p.

Qt Creator 1.1 Out in The Wild!

Fresh from the Qt Software site in Berlin, a crowd dubbed “the Berlin trolls” brings you: Qt Creator 1.1! The summary can be read in Eike’s release blog entry. But what are the highlights that you, the average ambitious amazing KDE developer should care about? The much improved CMake support for instance, or the support for Makefile-based projects that allow to use Creator as a code editor and code navigator on non-{qmake,cmake} projects. We also improved the gdb debugger integration and the window splitting behavior. The full ist of changes is available in the official changelog.

Meanwhile, Creator’s post 1.1 development is full steam ahead: If you are developing Qt or KDE on Windows, you will be pleased to find support for the Microsoft CDB debugger, which does not only work with MSVC binaries, but is also significantly faster than GDB (which you can only use on GCC-generated code anyway). Grab a new binary snapshot or even better, check out from the git repository. And if you are fed up with nmake only using one CPU on your multicore machine, speed up compilation with jom.

No matter if you are hacking on or with Creator: Enjoy!

Qt for S60: Get Garden!

Some news from my colleges of the Qt for S60 team: After the Qt 4.4 based Temple release only a few weeks ago, they busily hacked away to surprise us with Garden, the Qt 4.5 based release featuring native S60 styles, input method support and overall better integration and performance. Get details over at Jason Barrons blog at Qt labs, along with some hands-on video casts!

Qt Creator RC 1 Out For Your Testing Pleasures


With the awesome Qt Software guys in Oslo shipping a Release Candidate for Qt 4.5, we here at Qt Software Berlin couldn’t help but release a RC on our own. Presenting Qt Creator RC 1, a.k.a. 0.9.2 (Don’t ask, we just like the number). This version has seen quite some polishing, e.g.

  • Improved user interface with feedback option for your feedback
  • “Fake Vim” mode for VIM lovers
  • Improved Version Control Support (Perforce, Git and Subversion)

If you got curious you can get more details from our lovely team-member-in-Norwegian-exile Kavindra and the binaries from the Qt Creator page.

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));
    tb->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
    bar->addWidget(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.

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 🙁 .