This weekend was quite a social razzmatazz. On Saturday night myself and two of the other interns I share an office with went to see the Laugh Olympics (they don’t appear to have a website) an English speaking improvisation show. In which the “Eastside” compete against their “Westside” counterparts in a series of improvisation sketches. The referee seeks various suggestions from the audience that are then incorporated into the act, all vaguely reminiscent of Radio 4 panel games. It was a fantastic experience (and very good value too, just €5), I intend to insist on taking everyone who comes to visit me to see it. It is on every Saturday, 9pm just off Rosenthaler Str. Full details can be found in the July edition of New Berlin Magazine.
On Sunday we went to see Pirates of the Carribean at the Sony Center at Potsdamer Platz. It was rubbish. Don’t bother. It was just a setup for the third movie, very Matrixesque. After the film I cheered myself up by eating a Teutonic Döner, much much nicer than the British variety. And much much cheaper too (€1.30-€2.80).
Since Vincent Untz cornered me at GUADEC and asked me to co-maintain Pessulus i’ve spent most of my (GNOME) time trying to get new lockdown keys added to various parts of the GNOME desktop. So far this includes the theme switcher (#346041) and the background capplet (#348435).
I’m still undecided whether we should use the writability of a gconf key to determine its lockdown ability or use explicit lockdown keys (this is what we do now). I personally prefer the latter since most of the features we currently offer the ability to lockdown are pretty general and can cover several keys (e.g. one lockdown key for the theme whereas it is actually controlled by three).
At some point in the near future I will be branching the CVS tree to work on my patch that adds support for plugins. This should make the maintenance of the code easier and allow packages/distributors to drop in 3rd party modules.
Another aim that I have is to work out how to remove Sabayon’s embedded copy of Pessulus and instead have it invoke a generic version instead.
Today I wrote the following code:
def _query_helper(x,y):
return lambda(v): x(v) and not v.startswith(y)
query = reduce(_query_helper,['http://','mailto:'],lambda(v):v!=None)
I’m using this with the Beautiful Soup XML/HTML parser to filter the list of link targets found in a document:
soup = BeautifulSoup.BeautifulSoup(urllib.urlopen(url).read())
dests = soup.findAll('a',href=query)
I couldn’t really think of a way to do this neatly without using a functional style. I’m pretty pleased with this. When learning this kind of thing at University I was somewhat sceptical how useful it would be. I was wrong. Thank you Larry!

Kaffee und Kuchen. Yummy!
It’s my second full day in Berlin and i’m enjoying some wonderful “Kaffee und Kuchen” at a cafe called Sankt Oberholz right outside Rosenthaler Platz U-bahn. Which as well as having wonderful coffee and food also has free (and not too laggy) wireless!
Apart from being plagued with an annoying cold for entireity of the conference I still had a whale of a time. Attending this conference really motivated me to increase my contributions to the GNOME project. I made my first contributions in 2001 by writing the documentation for Gnotravex. It’s an awesome game, but you will need to read the manual to figure out to play it :). Apart from some other GDP contributions and bugsquad duties my spare cycles have been donated towards Debian. Unfortunately i’ve become increasingly disillusioned with Debian and all its political arguments. GUADEC has shown me a project in which I truly want to participate and get involved in. As Luis said “GNOME is people”. I want to be one of those people.
Oh and Raphael, I prefer GUADEC.