Set up KDE to send X11 Bell Events

KDE System Settings, use system bell instead of system notification

If you are connecting to a remote Linux box and are using KDE applications over X11, you can set up KDE to use X11 keyboard notifications. If you are using xkbgrowl, this means errors will display as growl notifications. If you set the volume to zero, you won’t get a beep, but instead a low priority notification. To set the preferences, launch systemsettings, select the notification item / icon and then the System Bell item and check the Use system bell instead of system notification item.


The Fall

I had never heard of the movie The Fall from Tarsem Singh, but once I saw the trailer on Youtube I knew I wanted to see it. So the following time I went to Mediamarkt, I bought the DVD. The movie tells the story of two patients of an hospital in California in the early 20th century, a stuntman and a little girl. He tells her a story to get her to steal some drugs for him. The movie mixes the narration of this fairy tale with the young girl’s discoveries of the hospital and the people within in. As the story unfolds, fiction and the story of both characters increasingly mingle. The visuals are simply breathtakingly gorgeous, the soundtrack powerful (Beethoven’s 7th symphony), and the theme is one of my favorites: stories about stories and how they take a life of their own. The movie is full of cute elements, one of the heroes is a Charles Darwin, and both protagonists have some misunderstanding about the word “Indian”. In short a movie I recommend to all that love stories…

Sony TDM-iP50

Sony TDM-iP50

Cela fait des années qu’on nous parle de convergence multi-media et tout ce genre de choses, finalement cette convergence voit le jour. J’ai reçu avec un peu d’avance mon premier cadeau d’anniversaire, un dock qui permet de connecter mon téléphone à ma télévision. En termes plus techniques le dock connecte un iPhone ou un iPod au port Digital Media de mon moniteur Sony Bravia. Cela me permet de faire deux choses: recharger le téléphone et jouer le contenu sur le moniteur. Toute l’interface se fait par le biais du moniteur. Le point positif c’est que toutes les fonctionnalités sont accessibles via la télécommande du moniteur, donc on peut paisiblement contrôler le tout depuis son canapé, ou un pouf confortable.

Le point négatif c’est que l’interface est relativement sommaire, et n’est pas sans rappeler le télétexte de mon enfance, j’aurais bien aimé que le système utilise l’interface en crossbar qui est devenu le classique de Sony ou affiche les couvertures de disques, mais ce n’est pas réellement un drame. Le support Unicode est aussi partiel, il y a une certaine ironie à avoir un appareil d’une marque nippone incapable d’afficher des caractères japonais. Mais ce sont des détails somme toutes mineurs surtout que l’interface honore au moins l’ordre de tri défini dans les chansons (ce qui évite de retrouves «The Beatles» sous la lettre «T». Le contrôle se fait au moyen des touches du contrôleur de menu et des touches classiques (▶,◼, ▶ ▶, ◀ ◀) et l’écran affiche les informations sur les morceaux joués. La vidéo est aussi supportée, mais je n’ai pas pu juger de la qualité vu que je n’ai pas de fichiers en HD dans mon téléphone. Une capacité important que je n’ai pas pu tester encore est la gestion des appels téléphoniques. L’avantage d’avoir la musique jouée depuis le téléphone c’est qu’en cas d’appel la musique est interrompue. La gestion de mise en veille est par contre bien supportée, avec un économiseur d’écran qui se met en route (je soupçonne que cette fonctionnalité vient de la télévision, pas du dock).

En conclusion ce dock est un petit gadget qui pourrait être plus perfectionné, mais qui rempli bien son rôle.

Lost Property

Red Flowers


In my neighborhood, there is a shop selling lost properties. It sells things forgotten in public transport. I bought this beautiful painting.

À côté de chez moi, il y a un magasin qui vend des objets trouvés. On y vend des objets oubliés dans les transports public. J’y ai acheté cette magnifique peinture.

In der Nähe meiner Wohnung gibt es einen Fundsachen Laden. Dort
werden Gegenstände verkauft, die in den öffentlichen Verkehrsmittel
vergessen worden waren. Ich habe dort ein sehr schönes Gemälde gekauft.


A few weeks back, I posted about a way to setup Growl to display X11 keyboard notifications. While the technique I described works, it was not really satisfying. So I decided to write a small program that would offer the same functionality (and a few others), the result is xkbgrowl.


How to I trigger a notification?
Type xkbbell "message" in a shell.
Why did you write this?
Because I wanted to
Why not use Growl network notifications?
Sending Growl network from a generic unix box requires two things: to know the address of the target Mac and that said Mac has an open network port. The first is a configuration problem, the second is a security issue. I could setup an additional ssh tunnel, but this is done automatically for the X11 connection…
Why not use XXX
There are many open source frameworks to do notifications. At a low level, Dbus seems to be the standard, at a higher level there are frameworks like Mumbles. My solution does not require to install a single thing on any Unix box, it uses software that has been there since 1995, and it uses the standard.

This small program basically connects to the X11 server and listens to X11 keyboard bell events and translates them to growl notifications. Compared to the script version, there are a few additional features:

  • No dependencies besides growl.
  • No text escaping or buffer issues
  • The volume value is translated into a Growl priority.
  • If an X11 window is associated with the event: the window name is prefixed to the notification text and the window’s icon is used as the notification icon.
  • Simple to use, just enter xkbgrowl &. The program will exit when the X11 servers quits.

The code is now hosted on google code, please go there for more information

As usual, if your computer catches fire, or any bad thing happens on your machine because you used this software, its your own fault. This code happens to work on my machine, but was not really tested on any other settings.

Post Unix OS

The most interesting technical read of last week was undoubtedly . While for consumers the new feature set is very modest, having a software company release a new version of an operation system with mostly bug fixes and performance improvements is something very interesting. I wish others would follow this example. Most engineer know that I you give them enough time, they can improve the code tremendously, most very often this time is not given.

Besides optimizations, Snow Leopard introduces a set of new technologies related to performance. As single core performance is not improving much anymore, this means more parallelism. is a operating system level work-queue management framework. The C language and its variants have been extended to support closures. Those closures can then dispatched to various work-queues. Instead of using a lock to protect a given resource, a serial work queue is created and associated with the resource. Where this gets interesting is that the closures might not run on the CPU: closures are compiled to LLVM code, which might be dispatched on the GPU using Open CL.

Taken separately, none of these technologies is really innovative – there have been numerous projects and language that implemented them. The caveat is that they only solved part of the problem and never managed to gain much traction outside of specialized markets. Here we have an operating system that lets the programmer handle the machine as if it were a small cluster. Code is compiled into some virtual machine code and sent to various processing queues. The number of processors, and their precise instruction sets are irrelevant. While on OS X, the code is only dispatched on the CPU and the GPU, this architecture can be used for sending processing to other machines or add-on processing cards. The grand plan of the Cell processor, where processing could be sent from your mobile phone could sent processing tasks to your TV set might still be relevant. The coolest bit is that most of those technologies are free: Apple open-sourced GCD, LLVM is open source, Open CL is a standard handled by the same group as Open GL.

What is also interesting is that Apple is incrementally replacing traditional part of the operating system with more modern versions. In previous versions Launchd replaced the traditional dæmons, DTrace was used to replaced various system probes. Now Apple has started to replace the tool-chain: clang is a new C-compiler that generates LLVM code, it currently only support C and objective-C, but C++ is in the works. While gcc is the traditional compiler it has many problems, its error handling is horrible, the generated code is far from optimal, more importantly its code base is monolithic and old, this means it is difficult to improve it in any way. Finally gcc is not designed in part as a library (say for integration into an IDE), the GPL license is also a deterrent for such adoption. My hope is that clang will have the same effect on the compiler world that Webkit had on web browser: make things move forward.

Mylène Farmer – Concert at the Geneva Stadium

Mylène Farmer 2009

A recurring figure of japanese animation shows is the panicked teenager in command of giant destroyer. While the two concerts of Mylène Farmer in the Geneva Stadium were described with many superlatives, the image of a terrified person barely controlling something huge stayed in my mind. This concert was probably the largest I ever went to. The Stade de Genève is large, three time larger than the Hallenstadion in Zürich. The stage was gigantic, with two huge screens, one of them mobile, three screens for the public, including one that was backwards. There was also an auxiliary stage in the middle of the public.

The first part was not really one: a group of Brazilian dancers that is going to do shows in Geneva did a presentation, but it felt more like trailers at the movies than a real concert. The weather was nice, but as I was just coming back from California, I felt a chilly breeze. My brother had bought tickets for the front left area, for which I’m thankful as we were able to see the show from close.

The musical style was adapted to the taste of the day (more electronic), the fact that this was a Mylène Farmer concert was obvious nonetheless. The back of the stage was decorated with mannequins, and two large statues of skinned humans were kneeling on both sides of the central staircase, on which Mylène was lifted down in a chrome rib-cage. Having nearly naked dancers is nowadays common, but in this case the costumes went beyond that: the dancers and the singer were wearing costumes imitating skinned humans.

The titles played were a mix of old hits and newer song. There were dance songs supported by the very powerful acoustic system and softer and gentler songs. Those were sung on a small stage in the middle of the crowd, along with a piano that was hidden under the stage. Those songs were the most moving, as Mylène still can’t control her emotions and started crying while the crowd just sang for her. The last title was of course “Désenchantée“, during which Mylène and the dancers were wearing stitched Xs in the back, in case people were had any doubt what it was about…

The production of the show was a stark contrast to the singer: an imposing and well oiled machinery: very good dancers that were clearly enjoying the show, incredible costumes (the Diva wore five different sets), many very good special effects, and a very good VJ. The two statues on the side of the stage even stood up at one point.

In conclusion, a really great concert, and certainly worth the wait.