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.
I recently completed my Bachelor degree in physics at the Technical University of Berlin (Bachelor thesis). While my main focus is obviously on physics (and/or maths), I also take some interest in history as well as computer science.
I’ve been involved in Nightfall, a MUD since about 2005 and contributed a fair bit of code since summer 2006. A more recent project of mine is Concattan, a command-line application designed to sync contacts from org-contacts to the Nokia N9.
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.
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,
Claudius
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.
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 :)
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 5.2.3.23 of RFC 4880 documents the binary values in subpacket 29.
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.
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.
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.
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.)
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!
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.
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.
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.
I made a new 404 error page. ☺ (Also, where would one sensibly put the full stop and smilie in relation to each other?)
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.
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).
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).
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 😒.
For some reason, people are interested in reading my Bachelor thesis, I hence put it online.
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)
Just passed the last exam for my degree in physics. Wooo! ☺
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.
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! ☺
I should probably watch fewer horror/fantasy/whatever films but there are now ‘wencewolves’ in Nightfall (Yes, they infect other NPC/players).
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.
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 :(.
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 😕)
A small gnuplot cheat sheet can be found here (PDF).
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).
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.
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.
Since I had to reboot anyways due to the ‘new’ kernel (2.6.38.3, 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.)
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).
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.
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.
There now exists a version of my keymap for the Linux console. It is accessible here with more information to be found here.
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?
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! ☺
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”).
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)
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).
I changed my keyboard layout and documented the process of doing so. I now have a 100%-custom layout ☺
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)