Ende des 23C3, Besuch in der WDR2-Arena

Heute (ja, ich rede vom 30., “morgen” ist immer erst nach dem Aufwachen) musste ich bereits um 14:00 Uhr den Congress verlassen, um gegen 20:00 Uhr zuhause zu sein. Holger hatte meinen WebKit-Wrapper für den OLPC bis dorthin ans Laufen bekommen, mit einigen Einschränkungen allerdings. Das Thema verdient aber einen ausführlicheren Blog-Eintrag, weshalb ich es dabei belassen werde.

Nun aber erstmal der Grund, weshalb ich schon so früh zu Hause sein wollte: Andi, ehemaliger Arbeitskollege und großer WDR2-Fan hatte zwei Karten für eine Livesendung der WDR2 Zugabe gewonnen und mich eingeladen. Nach gefühlten 20 Minuten Umweg durch Bauarbeiten in der Kölner Innenstadt fanden wir uns dann gegen 21:30 in der Lobby des WDR-Funkhauses am Wallrafplatz ein. Von dort aus führte uns ein Mitarbeiter in die WDR2-Arena, ein nettes offenes Studio im Herzen der WDR2-Senderäume, das über viel Platz sowie eine Reihe von Tischen und Stühlen verfügt. Bevor Moderator Axel Naumer anmoderierte, gab es noch ein kurzes Warmup, welches aber, wie vieles andere in der Sendung auch, zumindest für die Gäste viel entspannter ablief als bei TV-Aufzeichnungen. Ab 22:05 Uhr gabs dann 90 Minuten lang “den Jahresrückblick, den man aber heute nicht mehr so nennt” mit Ullala, Angie, Oma Podolski und Co. Dazu wurden Bier, alkoholfreie Getränke und Häppchen gereicht — auch ein Weg der GEZ-Gebühren-Rückerstattung.

Die zweite Hälfte der Sendung kam dann aus der Konserve — die moderne Sendeablaufplanung machts möglich. Und wie die genau funktioniert und warum das Morgen- und Mittagsmagazin für einen Moderator die größte Herausforderung im Sendeplan ist, erfuhr der Radiobegeisterte in mir, als Katrin Schmick (aka Ullala) anschließend einem exklusiven Dreiergrüppchen eines der Sendestudios zeigte (wusstet ihr, dass beim WDR eine leicht angestaubte Motif-Applikation die Verkehrsmeldungen anzeigt und dass ein “Studio zum selbstfahren” nichts mit einer Fahrschule zu tun hat?). Irgendwann gegen Mitternacht gings dann heimwärts und für mich ist sicher: Ab sofort bin ich Zugabe-Fan — weil anders wär nämlich schlecht.

Busy Days At 23C3, OLPC, WebKit

After visiting the family over christmas, I headed to Berlin on Wednesday to attend 23C3. Together with Holger Freyther I am representing KDE at this event and our friends from Wikimedia have given us a place to hack at their corner of the Conference building. Yesterday I used the opportunity to get contact to some of the mediawiki hackers to pass on some itching bug reports. Some of the problems are already resolved, others will be approached on tomorrows (or todays, depending on your timezone) Developer Wiki Friday.

On another note, I had the chance to get my hands on one of the OLPCs, as the laptop.org developers also seeked the productive and friendly atmosphere of the Wikipedia Corner. I can only agree with Sebastian: This is a device to actually care about and take care of: it’s both cute and powerful. The software (Sugar) still has some rough edges though and gecko-based browser app is really slow and unoptimized for the screen, which is a real pity.

That was motivation enough for us to go a small experiment: Can we run WebKit/Qt4 on the Sugar and have it use less memory footprint than gecko? Since Zack is on holidays, I fixed the Qt port based on a patch from Fredrik and filed the patch in the WebKit Bugzilla. Meanwhile Holger is busy to make Qt widgets work in GTK/Sugar. Let’s see if this will work out :).

Developer Wiki Friday

One week has quickly passed. And for the second last time in this year we are celebrating the Developer Wiki Friday.

A lot of stuff already happend today. Todays top contributor so far is CuCullin. If you want to be part of the crew or just add a smart hint: Create an account and simply start contributing. If you already have an account within the KDE subversion repository, please make sure you are using the same user name. This will make it easier for us to introduce a unified login in the future.

Oh, and if you want to stay updated: simply add The RecentChanges RSS feed to Akregator.

Needing CSS help

For the new developer site, we got a nice proposal for a box from our artist Nuno. It looks like the following:

The header was simple, but I have no idea how to create a prototype for the box. Unfortunaly, I am not an expert with CSS, but I don’t think tables are the way to go here. I’ve put together a package with the cut down PNGs for the borders and the edges and a test HTML file from the approach I have so far. If you know a solution, please leave a comment. The new developer page will thank you 🙂

Update: I got a lot of replies via PM, since the comments seem to be broken atm. I will look into both the submissions and the commenting problem. Thanks to all of you!

Developing KDE 4 Inside a KDE 3 Session

When I started to get a full blown KDE 4 environment running, I found it very inconvenient to constantly switch screens. On the other hand, Xnest was not bearable, because it cannot handle extensions like Xrender. Lucky enough, there is Xephyr, a Xnest replacement that I have briefly blogged about before.

If you want to get a minimal KDE session up and running, just launch Xephyr (available in Kubuntu as xserver-xephyr):

# Xephyr :1&

You can now launch KDE:

export DISPLAY=:1
/path/to/kde4/bin/startkde-modified &

startkde-modified is a copy of the startkde-script which includes the following lines on the top:

export LD_LIBRARY_PATH=/opt/kde4/lib
export KDEDIR=/opt/kde-trunk
export PATH=$KDEDIR/bin/:$PATH
export KDEHOME=~/.kde4

You can also use Xephyr with KDM via the Xdmcp protocol and simply a new KDE 4 session to Kubuntu as indicated on Kubuntu.org

On Kubuntu, you can enable it by changing

# Whether KDM should listen to incoming XDMCP requests.
# Default is true

in /etc/kde3/kdm/kdmrc to

# Whether KDM should listen to incoming XDMCP requests.
# Default is true

and adjust your /etc/kde3/kdm/Xaccess to allow your local machine access. Additionally you should make sure to set up a port blocking policy on all external interfaces for the Xdmcp port if you are doing this on a laptop or a PC in an untrusted environment.

If you are done, simply launch Xephyr:

Xephyr -query localhost :1 -host-cursor -screen 800x600&

where -host-cursor tries to reuse the host’s cursor and -screen sets the screen dimensions.

(click to enlarge)

Password-Input-Patch FAQ

Instead of individual replys to mails and other blogs, just a quick summary of answers to questions I received:

Q: You claimed QStyle::SH_LineEdit_PasswordCharacter didn’t exist Qt 3, but it does!
A: Yes, I didn’t really consider that to be honest. Mea cupla. Read this blog entry for an explaination.

Q: Can I add this to my style?
A: Sure you can, if you want users with older KDE versions to profit from it. Of course the nicer version would be to put it into KStyle and let everyone have it. But it’s simple and cheap enough to add, maybe with a KDE-Version #ifdef once KDE 3.5.6 is released with that patch.

It seems like the authors of Serenity and Polyester are already hooked. 🙂

Q: Will this be in KDE 3.5.x?
A: Maybe. I will use a patched KDE for a while. If no problems occur, I will ask for inclusion for KDE 3.5.6. Of course Maxim, the current KStyle maintainer, has the last word about it. In general it’s a fairly simple patch that adds less than 20 lines of fairly simple code. Also, the Kubuntu guys already added the patch to the kdelibs package of Feisty.

Update: I just committed the patch to SVN, so it will be part of KDE 3.5.6.

KStyle Pimped

When I wrote my entry on password characters. I thought it was a Qt 4 only thing. I didn’t even bother checking with Qt 3.3. Fortunately, Marco Martin, the author of Polyester asked me if he could use the code in his style. I checked QStyle in Qt 3 and indeed, QStyle::SH_LineEdit_PasswordCharacter is part of the QStyle API since Qt 3.2. My guess is that the Trolls introduced it in order to implement the XP- and/or OS X-styles.

That motivated me to patch KStyle, the base class for all KDE-styles, and look how pretty it is:

(click to enlarge)

PS: thanks go out to the folks who wrote Xephyr, a Xnest replacement capable of Xrender & friends. You guys made nested sessions on X a lot more bearable.

PPS: For all that keep asking: Yes, that means that with this patch, all KDE styles instantly show the new behaviour. Isn’t KDE great? 🙂

Password shadowing: Pimp My Plastique

I was wondering why KDE still uses asterisks for substition in password fields. Look at this example:

Well, in Qt 4 it’s really easy to change it. This is the QPlastique style using Unicode character 0x25CF, a bullet point. If that one doesn’t exiss in the current font it falls back to 0x2022, a slightly smaller bullet point. Only if the current font doesn’t provide either (which is fairly rare according to my tests), it will fall back to an asterisk. This algorithme is actually stol^Wborrowed from the Windows XP style, so why does Plastique still use asterisks by default? The reason is probably that it was supposed to resemble the Plastik style from KDE 3, which had to use asterisks since the


style hint was not part of the QStyle API. in Qt 4 this style hint allows for specifying any other unicode character:

You might wonder why I think that this change, started by Apple in OS X and Microsoft in Windows XP is a good idea: Well first the character looks odd enough so that people will understand that this character is really supposed to shadow the password input. I know from personal experience that using asterisks, which can actually be part of a password tend to confuse some people. And secondly… well, it looks a lot better. It’s more centered in most fonts while asterisks are usually displayed upwards in the line edit.

(For the technically inclined, i have uploaded the sources for this small example, including a QPlastiqueStyle subclass that implements the change.)