Obviously, there’s not much to see here, but you’re welcome to consume every single bit of information anyway. There is, though, some stuff that accumulated over time.

About me

I graduated from TU Berlin with a B.Sc. in Physics and subsequently from Hughes Hall with a MASt in Applied Maths. At the moment, I’m working towards a PhD (or so I think…).

I’ve been involved in Nightfall, a MUD, from about 2005 and contributed a fair bit of code from summer 2006 through 2013. A more recent project of mine is Concattan, a command-line application designed to sync contacts from org-contacts to the Nokia N9. Various tidbits in the same vein (IM log importers, calendar exporters etc.) can be found somewhere in my git repos.

I carry an organ donor card with me and don’t see any problems with (i.e. consent to) donating any of my organs after my death.

If you are by any chance interested in getting to know me or have a specific question I might be able to answer or are just trying to contact me for reasons unknown to mankind, feel free to do so.

Contact details

Please find my contact details on a separate page, namely here. There is also a page about my GPG usage and a signed message regarding my OTR keys.

Have a nice day,


April 12th, 2014

StartCom of StartSSL fame are refusing to revoke compromised certificates and instead lie to the whole internet about how they ensured that only the owners of domains can hold valid certificates for these domains from them. It might be sensible to disable their certificates on your devices (note that browsers are apparently too good to use the OS’ CA store, so one has to do the work twice…) – this, of course, should involve all their CAs, given their abysmal security record.

March 22nd, 2014

Dear Dropbox, for a few years now, I have been receiving countless of spam emails addressed at the email address I gave you – and only you. Just curious, for how much did you sell this address?

March 19th, 2014

Given that security support is generally a good thing to have in a webbrowser, I decided to switch from Opera 12.16 to Iceweasel. As much as I would have liked to stay with a browser that doesn’t need an add-on to configure keyboard shortcuts (?!), 12.16 did grow old :|. Thankfully, Iceweasel is at least somewhat acceptable nowadays, and likely better than the weird Opera 14+ (which isn’t available for Linux anyhow).

So long, and thanks for nearly nine amazing years :)

December 9th, 2013

The Internet is leaking again.

October 20th, 2013

Based on my earlier waz2pid script to import OpenWhatsapp messages from the N9 into Pidgin, I built skype2pid to do the very same from Skype.

July 21st, 2013

So I apparently graduated (in absence) yesterday. Yay! ☺

July 7th, 2013

harcal is a small utility for the N9 that deletes all calendars matching a specific naming scheme, then creates a new one and reads an .ics file into it. I use it with the files in /contrib to sync my org-mode calendar to the phone. A ready-made .deb also exists.

July 6th, 2013

Windows 8 has arrived at my doorstep. And so it begins…

July 5th, 2013

After managing to install Open WhatsApp on my phone (thanks Coderus!), I wrote a small script to sync the messages to Pidgin’s logs.

June 13th, 2013

I made a PDF file with the rendering of the lower and upper case Roman letters in my LaTeX maths enviroment using the default rendering, \mathrm, \mathsf, \mathbb, \mathcal and \mathfrak. The type used is URW Garamond, IIRC I used sx to script the rendering.

May 25th, 2013

As we all know, a#\ b.\@c@[IPv6:2001:4dd0:fc8c::1] is a perfectly valid email address and my local Postfix(es?) don’t fail to deliver email to this address. Outlook.com, on the other hand, thinks differently:

[10:22:28] SMTP> RCPT TO:<a#\ b.\@c@[IPv6:2001:4dd0:fc8c::1]>
[10:22:28] SMTP< 501 5.5.4 Invalid Email address

In comparison, Google happily accepts that:

[10:27:30] SMTP> RCPT TO:<a#\ b.\@c@[IPv6:2001:4dd0:fc8c::1]>
[10:27:30] SMTP< 250 2.1.5 Ok

yet fails later and informs me thereof:

Subject: Delivery Status Notification (Failure)
From: Mail Delivery Subsystem <mailer-daemon@googlemail.com>
To: mygooglemailaddress@example.com
Date: Sat, 25 May 2013 09:23:11 +0000
Message-ID: <001a11c1afceda73f004dd8776d2@google.com>

Delivery to the following recipient failed permanently:

     a# b.@c@[ipv6:2001:4dd0:fc8c::1]

cf. RFC 3696 Section 3 regarding valid local parts and RFC 2821 Section 4.1.2 - 4.1.3 regarding IPv6 literals as domain parts. Why do I have the sudden urge to use this email address everywhere? (Also cf. the discussion on validation of addresses on HN.)

March 17th, 2013

buildbuilddep takes the name of packages on the command line and uses equivs-build to create meta packages depending on the build dependencies of the command line arguments. This way, it is possible to conveniently install such dependencies and mark them as automatically installed to have them removed upon removal of the meta package. Usage as follows:

$ buildbuilddep gmrun
Built package gmrun-build-dep_0.9.2-2.1_amd64.deb available in current directory.
# dpkg -i gmrun-build-dep_0.9.2-2.1_amd64.deb 
-- installs, but lacks dependencies --
# apt-get install -f
-- installs dependencies --
# do_stuff()
# apt-get --auto-remove remove gmrun-build-dep
-- removes everything again

This script also motivated me to fix up syntax highlighting in gitweb – at the moment, my shell scripts aren’t really recognised because they don’t end in .sh. However, the following adjustment to /usr/lib/cgi-bin/gitweb.cgi (or whatever else you copied wherever else) helps:

--- index.cgi	2013-03-17 18:40:51.263713028 +0100
+++ /usr/lib/cgi-bin/gitweb.cgi	2011-09-21 19:36:04.000000000 +0200
@@ -3354,3 +3354,3 @@
      $basename =~ /\.([^.]*)$/;
-	my $ext = $1 or return 'sh' unless basename($file_name, 'in') eq 'README';
+	my $ext = $1 or return undef;
      return $highlight_ext{$ext}

Update March 21st, 2013: Florian Ernst helpfully pointed out that this already exists in the form of mk-build-deps in the devscripts package. You would likely rather use that.

March 8th, 2013

The package libqt-facebook, normally distributed with the Nokia N9, contains a postrm script that calls ldconfig but normally fails because it cannot write to /etc/ld.so.cache~ (for whatever reason, this phone is weird anyways…). So in order to remove it, you have to manually remove said postrm script. In order not to brick your phone at the next reboot, you should also call ldconfig manually :)

March 5th, 2013

A while ago, I asked on debian-user how to display the reason why a given GPG key was revoked. A certain Christopher Head submitted a comment to an otherwise low-quality site called distrofaqs hinting at the use of --export and --list-packets, which I combined in the following abomination:

$ gpg --export DEADBEEF | gpg --list-packets | grep -Pzao ':signature packet:.*\n\t.*sigclass 0x20(\n\t.*)*'
:signature packet: algo 1, keyid DEADBEEFDEADBEEF
	version 4, created 1361391004, md5len 0, sigclass 0x20
	digest algo 8, begin of digest ef ce
	hashed subpkt 2 len 4 (sig created 2013-02-20)
	hashed subpkt 26 len 21 (policy: http://example.net/policy)
	hashed subpkt 29 len 23 (revocation reason 0x01 (I felt funny and wanted to revoke this key))
	subpkt 16 len 8 (issuer key ID DEADBEEFDEADBEEF)
	data: [4093 bits]

Sample output is obviously sample output. Section of RFC 4880 documents the binary values in subpacket 29.

February 16th, 2013

cryptdisks_{start,stop} are command-line utilities reading /etc/crypttab and setting up the appropriate LUKS devices (basically nice frontends to cryptsetup luksOpen). Unfortunately, no Bash completion snippet is shipped in the cryptsetup package in Debian. You can get an appropriate file for /etc/bash_completion.d here, however. Enjoy.

February 13th, 2013

There is a good summary why Claws Mail is a great e-mail client here. Admittedly, the author seems to have a different opinion, but I have yet to find something with such an easy-to-use and yet extremely powerful interface; apart from Emacs, maybe.

February 7th, 2013

xfce4-genmon-plugin allows the display of arbitrary text in the Xfce panel, Pango markup optional. ‘Arbitrary text’ includes U+1F600 through U+1F64F and ‘Pango markup’ implies nice colours. Two examples, based on the RTT to the endpoint of my VPN tunnel. And the rather horrible Bash script continuously updating a file whose first line is then read by xfce4-genmon-plugin. No VCS for that, uh, thing.

February 3rd, 2013

I spent a little while playing with Inkscape and building a new ‘logo’ which can be seen as a favicon (linked to using proper <link>-tags) and is also visible in the upper-right corner. No idea how this renders in Firefox or IE, but it looks good in Opera and Chromium on my notebook and Opera Mobile and the default webkit-based browser on my phone, so who cares? :-) (Also a picture of great notebooks I just found.)

January 23rd, 2013

Clearly, Charles de Gaulle was right and someone should have listened to his ‘non’ ¬.¬. So go vote for UKIP in 2015, please (or any time before that) :D!

January 12th, 2013

It feels strange if what feels like the whole internet mourns the loss of someone whose name you first read in the various obituaries. Sorry.

January 11th, 2013

Bash continues to fascinate me, within a few hours, I was able to build a really nice script collecting my various scripts (/usr/local/bin, /usr/local/sbin/, ~/bin, some remote hosts…) in a single place including sensibly help, option parsing, reverse syncing (no more editing of this website using tramp!) and various other gimmicks. Oh, and Emacs surprised me when it automatically detected me using << and inserted appropriate EOF tags.

January 2nd, 2013

Not only does the Tate Britain still sport a really nice exhibition on the PRB (cf. this entry), but also does the Tate Modern offers some overly fabulous permanent exhibitions. Especially the ‘Poetry and Dream’ displays (mostly surrealism) are worth seeing. ‘Structure and Clarity’ is nice if you still have time, but there are definitely better/more interesting Bauhaus collections.

December 22nd, 2012

I made a new 404 error page. ☺ (Also, where would one sensibly put the full stop and smilie in relation to each other?)

December 21st, 2012

Even though running the current Steam on proper Debian Wheezy turned out to be quite messy (and extremely unstable) yesterday, by the powers of Schroot, Debootstrap and startx -- :1 vt08, it is actually quite easily possible to install Ubuntu 12.04 LTS (the officially supported variant) in a chroot and then run Steam there. Caveats: Install the latest X drivers as advised here, if necessary, remove the postinst and preinst scripts for udev that want to restart it inside the chroot, take care to generate locale files, don’t try using SLiM inside the chroot, as it appears to connect to :0 solely, disable the Steam in-game community to run And Yet It Moves, prepare to wait ages as games apparently got really big™ during the last few years, generally have a look at stdout when a game crashes to check for missing libraries.

December 16th, 2012

I just stumbled over tc-play, which appears to be a sensibly-licensed reimplementation of TrueCrypt. Currently available in Debian Sid (and tested by me for a simple vfat volume in read-only mode).

December 12th, 2012

The exhibition on the Pre-Raphaelite ‘avant garde’ in the Tate Britain is definitely worth seeing. If travelling by National Express, it is advisable to wear a second pair of socks, as the coaches are not necessarily heated (also 40min late, but that wasn’t a problem, surprisingly).

November 8th, 2012

Due to some bugs in the recently released Opera version 12.10 (problems with HTML5 playback and literal IPv6 addresses), I thought it might be a good idea to have a look at another browser. One that actually supports modern web standards and such ☺. A friend suggested Chromium, which is currently even in the Debian repositories (version 22 versus 23 currently distributed by Google). I even tried using this ‘browser’ for at least a few hours. I looked for extensions to get a sensibly-working speed dial (they either want all my data, or need a second extension to fix memory leaks, or are unable to reload thumbnails?!), I tried to find a way to avoid the window closing when I close the last tab (some extensions run a small JavaScript code in each tab, another one was just restarts the browser…) and I even managed to install sufficient ad blocking.

Unfortunately, it appears that my concept of a ‘good’ browser is modeled far too much after the one I’ve been using for more than eight years now: I want it to stay open even if I close all tabs, I want a nice speed dial (or none at all), I want the ‘new tab’ button at the far left of the tab bar (far right might be more intuitive, but it makes the button move around, which doesn’t facilitate quickly opening new tabs), I want a working password manager, I want some sort of settings window etc. In short, Chrom(e|ium) very much feels like MacOS X – perfectly usable if you have no idea what you want or can adapt sufficiently quickly to new usage patterns, but apparently not optimised for heavy users 😒.

November 3rd, 2012

For some reason, people are interested in reading my Bachelor thesis, I hence put it online.

October 25th, 2012

After recently acquiring a Nokia N9 (Black, 16 GB), I felt the need to get sensible contact synchronisation running between the N9 and org-contacts. The result thereof is Concattan, which, aside from other things, is able to read a org-contacts org-mode file, update the phone’s database with the read information and merge any updates found on the phone in the stream it prints on stdout. (BSD 2-clause license)

July 12th, 2012

Just passed the last exam for my degree in physics. Wooo! ☺

July 1st, 2012

I forgot to post my improved tinyfugue macro to see the output in visual mode:

/def -p1 -w'nf-claudius' -mregexp -h'PROMPT (?=== SMore .*)|(^Mail command .* -> $)|(^Claudius@[0-9:]* [^ ]* > $)|(^[0-9.]*\\].?$)|(^[A-Za-z0-9,.]*:?$)|(^.*[0-9F]\\] \\*\\*\\*.?$)' prompt_nfclaudius = /test prompt({P0})%;/set cur_prompt_nfclaudius=%P0
/def -p1 -w'nf-claudius' -mregexp -h'SEND ^(.+)$' print_input_claudius = /test echo(ftime(strcat("\%Y-\%m-\%d \%H:\%M",{cur_prompt_nfclaudius},{P0}),time()),"",0,"wnf-claudius")%;/send %P0

It basically stores the prompt in a variable and outputs it when new input is added. The main problem is the prompt detection, which obviously strongly depends on your particular MUD.

April 7th, 2012

using a macro/hook such as

/def -p1 -w'nf-claudius' -mregexp -h'SEND ^(.+)$' print_input_claudius = /test echo(ftime(strcat("\%Y-\%m-\%d \%H:\%M Claudius > ",{P0}),time()),"",0,"wnf-claudius")%;/send %P0

you can use TinyFugue’s visual mode and have the input corresponding to the output properly logged. I didn’t figure out how to query the currently set prompt to use that instead of the time (in the first argument of ftime()), but OTOH, printing date and time is probably quite useful, too. Happy mudding & happy Easter! ☺

March 10th, 2012

I should probably watch fewer horror/fantasy/whatever films but there are now ‘wencewolves’ in Nightfall (Yes, they infect other NPC/players).

March 9th, 2012

Apparently, the BIOS version 1.48 available for my T410s from Lenovo’s website causes some problems for X.org – redrawing large areas of the screen occasionally hangs for one or two seconds. Downgrading to 1.05 proved easily possible and solves the problem.

March 6th, 2012

Following a complaint from Yod that he couldn’t edit files in Nightfall using Emacs anymore after the FTP server was shut down some years ago, I put together a little PHP API to be served via HTTP and building upon an existing web-interface to edit files and a small Python script which acts as a client to said API and presents the data using FUSE. Sadly, there appear to be some race conditions when excessive renaming takes place, barring git from working properly on the exported directory hierarchy. However, Emacs (and grep, find, etc…) work just fine. ☺ Update April 9th: After fixing a few bugs, it now also ‘works’ with Git, although it is terribly slow :(.

February 7th, 2012

I did a bit of tidying up my website and its organisation, respectively. Filenames are now more sensible, there are a few more directories and I decided to do a little bit of rewriting with mod_rewrite. Please tell me if any links are still broken ☻ (black smilie because it’s already dark outside at 17:53 😕)

December 6th, 2011

A small gnuplot cheat sheet can be found here (PDF).

August 21st, 2011

The Fantec MR-35DUS2 which sports a Silicon Image 5744 chip works fine in the RAID1 modus using eSATA if you disable PMP (more details).

July 25th, 2011

I used a little C++ program and some magic with Gnumeric to count my keypresses during a more-or-less typical afternoon of mine, the result can be found here (PDF). Roughly 100k keypresses in 10.5 hours yield 2.65 Hz, which is, given that I was only coding a small fraction of the time (for example around 18:30, resulting in 4.3 Hz over a period of 15 minutes), quite surprising ☺ – I obviously still use the trackpoint far too much.

June 20th, 2011

You probably know sm, a. k. a. screen-message: It gives you a small input field and prints everything you write in big letters on your monitor. I wanted to do the same for LaTeX, i. e. a script or something that queries you for input and then puts that input on your screen. Sadly, I don’t know Python (nor Perl, gtk or anything alike), therefor, Bash had to come to the rescue. You can find the script here.

April 24th, 2011

Since I had to reboot anyways due to the ‘new’ kernel (, I’ve been running 2.6.37 before), I decided that I might give AppArmor another try, compiled it and also applied these patches (currently not available) to get the compability layer for the userspace tools. I then went on and installed the AMD64 packages for Ubuntu Natty. Although I had to adjust a dependency in libapparmor-perl, these packages seem to work perfectly on Debian Squeeze/Wheezy. I decided to clean up /etc/apparmor.d/ after the installation as I only wanted to confine my web browser Opera. So far, everything seems to work quite well. (Profiles no longer publicly available due to lack of interest in maintenance. Mail me if you want them.)

March 29th, 2011

I just returned from a trip to the UK where I visited friends in Bristol and spent a day in London as well. Bristol is a lovely small city (its aquarium has IMAX™ 3D Sharks ;D). At the same time I fail to understand how traffic in London is supposed to work – the tube is helplessly crowded and most of the streets are blocked nearly 24/7. Compared to my visit to London in 2008 I nearly didn’t use the public transport system but walked a lot, i. e. from Victoria to Russel Sq. and from Russel Sq. to Hide Park. While these routes are arguably not the nicest ones I think I saw a fair bit of London and like the city even more now ☺
If you’re looking for a a reasonably good hostel, I can suggest Bristol Backpackers and Generator London, both of which offer free wifi, clean and nice showers, are both located close to the city centre and seem to have good prices. Both of these are also quite loud, esp. in the early (or late?) evening (8pm till about 12pm).

Februar 12th, 2011

Sebastian and I ordered our new dedicated server at 1&1 a while ago and I can happily say that it is all set up now. The tunneling VPN now also provides IPv6, there is a little bit more redundancy due to a small virtual server which acts as a fallback for mail, web and the various VPNs. There’s also a redundant jabber server based on ejabberd running and of course a mail and pop3-server ☺
All in all, I’m pretty happy with the new setup, with the service level 1&1 provided us with so far and there’s just one minor glitch: Directly after I transferred a domain to them, they took over the domain’s MX records and, even worse, added ._xmpp-server_-records which practically blocked the jabber server from running for about a day. I’m still not sure what to make of this, esp. since there is no warning whatsoever that something like this could happen.

November 30th, 2010

I inserted a little bit of PHP, making this website unavailable between 6am and 8pm. There is no real reason to do so, I just like to make fun of stupid German laws. In the process of doing so, I discovered a forgotten file ed (removed by now, sorry), which gives a short introduction to „ed“, the standard editor, used – for example – in Nightfall.

September 18th, 2010

There now exists a version of my keymap for the Linux console. It is accessible here with more information to be found here.

September 13th, 2010

I thought about translating this website to German. It would have been all-cool with nice shiny icons depicting the german flag, maybe a seperate subdomain, maybe just seperate HTML files. I even opened a file called index.de.html in Emacs and translated the navigation “bar” you can see up there. Then I decided it wasn’t worth the work – who doesn’t speak English nowadays and isn’t even able to translate the texts here if he absolutely has to?

August 29th, 2010

Sebastian Sester finalized my backup “solution” by writing a script in PHP that decides which directories (i. e. snapshots) are to be kept. My three computers (Ares, Hermes & Zeus) now hourly backup themselves if they can establish a connection to Zeus in my home network. I’m using rsync with --link-destination, which means that unchanged files will be hardlinked to the previous version, saving semi-precious space. Sebastian’s script is run daily inside a small wrapper script and deletes the dispensable backups (every backup is kept for the last two days, one per day for the last two months and five per month for the months before that). Kudos to Sebastian! ☺

August 22nd, 2010

A small glitch in my keyboard configuration was found – the “middle dot” mapped to AltGr+, was U22C5 (“dot operator”) instead of the usually used U00B7 (“middle dot”).

August 2nd, 2010

New insight regarding /etc/network/interfaces allowed me to clean up my network setup on my router – mainly consisting of /etc/rc.local containing the commands needed to set up networking at the time – which resulted in a more stable network. (cf. more notes on said update)

June 16th, 2010

I got really bored again and decided to copy XKCD and AbstruseGoose by making my own webcomic. Three lines into a PHP source file I decided to only remember header() and echo, so I did the backend in C++ instead ☺. Go there (not available anymore).

May 17th, 2010

I changed my keyboard layout and documented the process of doing so. I now have a 100%-custom layout ☺

April 3rd, 2010

I set up some basic documentation on doc.chubig.net where you have access to some basic hints I collected within the last few years. (not available anymore)