Planet Entropia (CCC Karlsruhe)



This planet is made of fresh clean feeds by members of the Entropia bunch

The software

The Harvester is made of fresh flesh, clean design by Tigion, hacked-together Ruby scripts by Astro and Atom support by Neingeist

To Be Fed

wget the RSS-1.0 feed!


Missing something?
Contact Neingeist via Mail or Jabber:







nomeata’s mind shares

01.11.2014 14:52:28

Can one recommend Debian stable to Desktop users?

My significant other is running Debian stable on her laptop, and it has worked fine for quite a while. But since a week or two, she could not access her University IMAP account via Evolution. Obviously quite a showstopper!

Today I had a closer look, and my suspicion was that the University changed their SSL configuration due to the recent POODLE attack and that Evolution was incompatible with that. After some more searching, I found that Ubuntu had applied a patch, originally from Fedora, two weeks ago. For Debian, there is a bug report but no sign of action.

So I fetched the sources, applied the patch, built the package, installed it and things were working again. Yay for that! But this is obviously not the best way to handle such issues.

I know that Debian is volunteer driven and we often lack the manpower for certain things, so I don’t want to rant about this particular issue. I also continue to be a happy user of Debian unstable on my laptop, and Debian stable on my servers. But I seriously wonder: Can I really recommend Debian stable to users, for their laptops and desktops? If not, what are the alternatives? Ubuntu obviously comes to mind, having some full-time staff for such issues... But that would be giving up on promoting Debian as the universal operating system.

Update (2010-11-3): Laney just uploaded a fixed package. Thanks!


nomeata’s mind shares

14.10.2014 20:26:13

Switching to systemd-networkd

Ever since I read about systemd-networkd being in the making I was looking forward to try it out. I kept watching for the package to appear in Debian, or at least ITP bugs. A few days ago, by accident, I noticed that I already have systemd-networkd on my machine: It is simply shipped with the systemd package!

My previous setup was a combination of ifplugd to detect when I plug or unplug the ethernet cable with a plain DHCP entry in /etc/network/interface. A while ago I was using guessnet to do a static setup depending on where I am, but I don’t need this flexibility any more, so the very simple approach with systemd-networkd is just fine with me. So after stopping ifplugd and

$ cat > /etc/systemd/network/ <<__END__
$ systemctl enable systemd-networkd
$ systemctl start systemd-networkd

I was ready to go. Indeed, systemd-networkd, probably due to the integrated dhcp client, felt quite a bit faster than the old setup. And what’s more important (and my main motivation for the switch): It did the right thing when I put it to sleep in my office, unplug it there, go home, plug it in and wake it up. ifplugd failed to detect this change and I often had to manually run ifdown eth0 && ifup eth0; this now works.

But then I was bitten by what I guess some people call the viral nature of systemd: systemd-networkd would not update /etc/resolve.conf, but rather relies on systemd-resolved. And that requires me to change /etc/resolve.conf to be a symlink to /run/systemd/resolve/resolv.conf. But of course I also use my wireless adapter, which, at that point, was still managed using ifupdown, which would use dhclient which updates /etc/resolve.conf directly.

So I investigated if I can use systemd-networkd also for my wireless account. I am not using NetworkManager or the like, but rather keep wpa_supplicant running in roaming mode, controlled from ifupdown (not sure how that exactly works and what controls what, but it worked). I found out that this setup works just fine with systemd-networkd: I start wpa_supplicant with this service file (which I found in the wpasupplicant repo, but not yet in the Debian package):

Description=WPA supplicant daemon (interface-specific version)

ExecStart=/sbin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -i%I


Then wpa_supplicant will get the interface up and down as it goes, while systemd-networkd, equipped with


does the rest.

So suddenly I have a system without /etc/init.d/networking and without ifup. Feels a bit strange, but also makes sense. I still need to migrate how I manage my UMTS modem device to that model.

The only thing that I’m missing so far is a way to trigger actions when the network configuration has changes, like I could with /etc/network/if-up.d/ etc. I want to run things like killall -ALRM tincd and exim -qf. If you know how to do that, please tell me, or answer over at Stack Exchange.


nomeata’s mind shares

07.10.2014 15:40:54

New website layout

After 10 years I finally got around to re-decorating my website. One reason was ICFP, where just too many people told me that I don’t look like on my old website any more (which is very true). Another reason was that I was visting my brother, who is very good at web design (check out his portfolio), who could help me a bit.

I wanted something practical and maybe a bit staid, so I drew inspiration from typical Latex typography, and also from Edward Z. Yang’s blog: A serif font (Utopia) for the main body, justified and hyphenated text. Large section headers in a knobbly bold sans-serif font (Latin Modern Sans, which reasonably resembles Computer Modern). To intensify that impression, I put the main text on a white box that lies – like a paper – on the background. As a special gimmic the per-page navigation (or, in the case of the blog, the list of categories) is marked up like a figure in a paper.

Of course this would be very dire without a suitable background. I really like the procedural art by Jared Tarbell, espcially substrate and interAggregate. Both have been turned into screensavers shipped with xscreensaver, so I hacked the substrate code to generate a seamless tile and took a screenshot of the result. I could not make up my mind yet how dense it has to be to look good, so I for every page I randomly pick one of six variants randomly for now.

I simplified the navigation a bit. The old News section has been removed recently already. The Links section is gone – I guess link lists on homepages are so 90s. The section Contact and About me are merged and awaiting some cleanup. The link to the satire news Heisse News is demoted to a mention on the Contents section.

This hopefully helps to make the site navigatable on mobile devices (the old homepage was unusable). CSS media queries adjust the layout slightly on narrow screens, and separately for print devices.

Being the nostaltic I am, I still keep the old design, as well as the two designs before that, around and commented their history.


nomeata’s mind shares

07.10.2014 13:55:05

ghc-heap-view for GHC 7.8

Since the last release of ghc-heap-view, which was compatible with GHC-7.6, I got 8 requests for a GHC-7.8 compatible version. I started working on it in January, but got stuck and then kept putting it off.

Today, I got the ninths request, and I did not want to wait for the tenth, so I finally finished the work and you can use the new ghc-heap-view-0.5.2 with GHC-7.8.

I used this chance to migrate its source repository from Darcs to git (mirrored on GitHub), so maybe this means that when 7.10 comes out, the requests to update it come with working patches :-). I also added a small test script so that travis can check it: ghc-heap-view

I did not test it very thoroughly yet. In particular, I did not test whether ghc-vis works as expected.

I still think that the low-level interface that ghc-heap-view creates using custom Cmm code should move into GHC itself, so that it does not break that easily, but I still did not get around to propose a patch for that.


nomeata’s mind shares

02.10.2014 13:47:49

11 ways to write your last Haskell program

At my university, we recently held an exam that covered a bit of Haskell, and a simple warm-up question at the beginning asked the students to implement last :: [a] -> a. We did not demand a specific behaviour for last [].

This is a survey of various solutions, only covering those that are actually correct. I elided some variation in syntax (e.g. guards vs. if-then-else).

Most wrote the naive and straightforward code:

last [x] = x
last (x:xs) = last xs

Then quite a few seemed to be uncomfortable with pattern-matching and used conditional expressions. There was some variety in finding out whether a list is empty:

last (x:xs)
  | null xs == True = x
  | otherwise       = last xs

last (x:xs)
  | length (x:xs) == 1 = x
  | otherwise          = last xs

last (x:xs)
  | length xs == 0 = x
  | otherwise      = last xs

last xs
  | lenght xs > 1 = last (tail xs)
  | otherwise     = head xs

last xs
  | lenght xs == 1 = head xs
  | otherwise      = last (tail xs)

last (x:xs)
  | xs == []  = x
  | otherwise = last xs

The last one is not really correct, as it has the stricter type Eq a => [a] -> a. Also we did not expect our students to avoid the quadratic runtime caused by using length in every step.

The next class of answers used length to pick out the right elemet, either using (!!) directly, or simulating it with head and drop:

last xs = xs !! (length xs - 1)

last xs = head (drop (length xs - 1) xs)

There were two submissions that spelled out an explicit left folding recursion:

last (x:xs) = lastHelper x xs
    lastHelper z [] = z
    lastHelper z (y:ys) = lastHelper y ys

And finally there are a few code-golfers that just plugged together some other functions:

last x = head (reverse x)

Quite a lot of ways to write last!


nomeata’s mind shares

21.09.2014 20:11:07

Using my Kobo eBook reader as an external eInk monitor

I have an office with a nice large window, but more often than not I have to close the shades to be able to see something on my screen. Even worse: There were so many nice and sunny days where I would have loved to take my laptop outside and work there, but it (a Thinkpad T430s) is simply not usable in bright sun. I have seen those nice eInk based eBook readers, who are clearer the brighter they are. That’s what I want for my laptop, and I am willing to sacrifice color and a bit of usability due to latency for being able to work in the bright daylight!

So while I was in Portland for DebConf14 (where I guess I felt a bit more like tinkering than otherwise) I bought a Kobo Aura HD. I chose this device because it has a resolution similar to my laptop (1440×1080) and I have seen reports from people running their own software on it, including completely separate systems such as Debian or Android.

This week, I was able to play around with it. It was indeed simple to tinker with: You can simply copy a tarball to it which is then extracted over the root file system. There are plenty of instructions online, but I found it easier to take them as inspiration and do it my way – with basic Linux knowledge that’s possible. This way, I extended the system boot script with a hook to a file on the internal SD card, and this file then runs the telnetd daemon that comes with the device’s busybox installation. Then I just have to make the device go online and telnet onto it. From there it is a pretty normal Linux system, albeit without an X server, using the framebuffer directly.

I even found an existing project providing a VNC client implementation for this and other devices, and pretty soon I could see my laptop screen on the Kobo. Black and white worked fine, but colors and greyscales, including all anti-aliased fonts, were quite broken. After some analysis I concluded that it was confusing the bit pattern of the pixels. Luckily kvncclient shares that code with koreader, which worked fine on my device, so I could copy some files and settings from there et voilá: I now have an eInk monitor for my laptop. As a matter of fact, I am writing this text with my Kobo sitting on top of the folded-back laptop screen!

I did some minor adjustments to my laptop:

All this is still very manual (going online with the kobo, finding its IP address, logging in via telnet, killing the Kobo's normal main program, starting x11vnc, finding my ip address, starting the vnc client, doing the adjustments mentioned above), so I need to automate it a bit. Unfortunately, there is no canonical way to extend the Kobo by your own application: The Kobo developers made their device quite open, but stopped short from actually encouraging extensions, so people have created many weird ways to start programs on the Kobo – dedicated start menus, background programs observing when the regular Kobo app opens a specific file, complete replacements for the system. I am considering to simply run an SSH server on the device and drive the whole process from the laptop. I’ll keep you up-to-date.

A dream for the future would be to turn the kobo into a USB monitor and simply connect it to any computer, where it then shows up as a new external monitor. I wonder if there is a standard for USB monitors, and if it is simple enough (but I doubt it).

A word about the kobo development scene: It seems to be quite active and healthy, and a number of interesting applications are provided for it. But unfortunately it all happens on a web forum, and they use it not only for discussion, but also as a wiki, a release page, a bug tracker, a feature request list and as a support line – often on one single thread with dozens of posts. This makes it quite hard to find relevant information and decide whether it is still up-to-date. Unfortunately, you cannot really do without it. The PDF viewer that comes with the kobo is barely okish (e.g. no crop functionality), so installing, say, koreader is a must if you read more PDFs than actual ebooks. And then you have to deal with the how-to-start-it problem.

That reminds me: I need to find a decent RSS reader for the kobo, or possibly a good RSS-to-epub converter that I can run automatically. Any suggestions?

PS and related to this project: Thanks to Kathey!



14.09.2014 16:37:00


Es gibt Referenden, für die ist es einfach, eine Meinung zu bilden ("Nein zur Seilbahn auf St.Pauli"), es gibt solche, da ist es ein wenig komplexer ("Rückkauf des Stromnetzes") und dann gibt es Schottland. Ich versuche mich einmal an einigen, viel zu kurz gegriffenen Gedanken.

Ein wahres Feuerwerk der Argumente hüben wie drüben. Das Öl! Die Banken! Die selbstbestimmung! Das Öl! Die Wirtschaft! Die Atom-Flotte! Und dazwischen die subtileren Töne: Es sei eine Entscheidung Arm gegen Reich, sagt man. Eine des linkeren Nordens gegen das Establishment, eine Pro Europa. Es sei eine gegen ein eigentlich funktionierendes System, für einen Weg in die Armut. Und überhaupt ist ja noch gar nichts geklärt, bis auf dass die Queen wohl Queen bleibt. Was ist eigentlich mit der Währung? Und der Staatsbürgerschaft? Grenzkontrollen? Sofortige Aufnahme in die EU? Und was ist mit dem Domino-Effekt, den Schottland auslösen könnte auf Nordirland, Katalonien, Flamen, das Baskenland, Wales, ja Bayern gar? Und ist das alles am Ende nicht eigentlich eine furchtbar nationalistische Sache?
Nun, es geht um Nationalstaaten. Natürlich ist das erstmal eine irgendwie nationalistische Sache. Die einen wollen den Nationalstaat "Vereinigtes Königreich von Großbritannien und Nordirland", die anderen den Nationalstaat "Schottland". Und die, die den Nationalstaat "Schottland" wollen, scheinen gar kein Problem damit zu haben mit der Tatsache, dass nationalstaatliche Kompetenzen in Richtung Brüssel abwandern. Es ist ja auch nicht so, als sei diese Entscheidung etwas singulär neues, immerhin ist Jugoslawien vor einigen Jahren auseinander gebrochen und nun bemühen sich die einzelnen Staaten durchaus um eine Aufnahme in die EU. Wichtig ist also erstmal, dass daraus nicht noch mehr Kleinstaaterei entsteht. (Ganz im Gegensatz zu den Bemühungen vieler Engländer, die EU verlassen zu wollen).

Gut, nehmen wir an, das ist eigentlich eine gute Sache. Ein starkes Europa, in dem einzelne, sich näher fühlende Gruppierungen (aka Staaten) eine gewisse Autonomie erhalten, in den wirklich wichtigen Entscheidungen, diese aber an ein großes Ganzes delegieren.

Bleiben solche Fragen wie Wirtschaft und Atom-U-Boote. Letzteres erst einmal vorweg: Atomwaffen abschaffen. Danke.
Die Wirtschaft ist schon komplexer. Da gibt es Banken, die kurz vor dem Kollaps stehen und solche, die damit drohen, ihre Geschäfte nach London zu verlagern, fürchten die Gegner. Da gibt es das Öl, sagen die Befürworter, das reicht aber nicht mehr allzu lange und ausserdem wird sich darum gestritten, wieviel Geld es wirklich für das Land abwerfen kann. Aber "nicht mehr lange" heißt ja auch, dass Schottland direkt den Auftrag bekäme, ökologischer zu werden, unabhängig vom Öl, die Highlands zum Beispiel zur Energieproduktion qua Staudamm zu nutzen. Und ökonomische Probleme gibt es allerorten. Ob und wie nachhaltig diese allerdings sind, ist ja eine ganz andere Frage. Wir reden hier von einer Entscheidung, die vollkommen einzigartig ist. Schottland ist seit 307 Jahren nicht mehr unabhängig und bei einem "Nein" wird es auch für mindestens 307 Jahre lang so bleiben. (Oder bis sich Nationalstaaten eh auflösen, weil EU oder die Welt sich dank größerer Krisen eh ganz anders entwickelt). Klar dürfte sein: Wirtschaftlich wird es Schottland dadurch erstmal nicht besser gehen, die Frage ist nur, wie sehr alles den Loch hinuntergeht. Aber Wirtschaft ist eben nur ein Faktor.

Bleibt das grundlegende Misstrauen gegenüber London (nicht der Stadt, dem Symbol). Gegenüber einem Land, einer Regierung, einer Gesellschaft, deren mentale Einstellung immer noch vermuten lässt, ihr gehöre halb Afrika, Asien und womöglich auch noch Amerika. Gegenüber einem Bild von Royals mit komischen Hüten, Cricket und Teatime, das für die allermeisten Menschen in Highlands, Lowlands und auf den Inseln tatsächlich vorkommt, als würde man von einer Macht regiert, mit denen man gerade einmal den Sprachstamm teile. Vor einigen Jahren las ich ein Buch, das auf Stornoway, der Hauptstadt von Lewis, äußere Hebriden spielt. Im Gedächtnis blieb dieses Zitat: "Fuck everyone from Holden Caulfield to Bridget Jones, fuck all the American and English phoney fictions that claim to speak for us; they don’t know the likes of us exist and they never did. We are who we are because we grew up the Stornoway way. We do not live in the back of beyond, we live in the very heart of beyond …"

Und dann wären da wieder die wirtschaftlichen Realitäten. Irgendwie bin ich ganz froh, dass ich nicht mit abstimmen darf.

Ein paar weitere Stimmen, Pro und Contra, die auch bei meiner Meinungsbildung ein bisschen geholfen haben, finden sich hier:

The Economist

Eher Pro:
Fintan O'Toole im Guardian

Alan Trench

Eher neutral


10.09.2014 13:02:00

Job gesucht!

Ich suche einen Job und DU kannst mir helfen.

Meinen Lebenslauf findest du hier.,
My english CV can be found here.,

aber kurz zusammengefasst: Ich bin von Haus aus Informatiker, habe Erfahrung in Text, PR und Projektleitung, meine letzte Position war "Verlagsleiter Digital" bei der intosite GmbH, wo ich unter Anderem Produktverantwortung für, und das Kochportal Küchengö getragen habe.

Produkt- und Teamverantwortung ist auch das, was ich wieder suche.

Ich möchte Digitalprodukte gestalten, Räder drehen und Berge versetzen. Am liebsten möchte ich das dort tun, wo in flachen Hierarchien neue Strukturen geschaffen werden können oder sollen.

Ich habe die Kulturen und Strukturen von Startups und großen Unternehmen kennen gelernt. In beiden konnte ich meine Fähigkeiten bei der Schaffung neuer Produkte erfolgreich einsetzen, denn da, wo Veränderung zum Alltag gehört, fühle ich mich wohl. Meine Ziele erreiche ich durch die Arbeit mit permanentem Feedback von Nutzern und durch ständige Analyse relevanter Daten. Nur so lässt sich in agilen Prozessen stetige Verbesserung erreichen. Das kann ich managen und dafür Verantwortung übernehmen. Auch bei der Teamführung habe ich es bisher immer geschafft, auf die individuellen Stärken und Schwächen meiner Mitarbeiter einzugehen und Menschen aus unterschiedlichen Disziplinen zusammen zu bringen, um gemeinsam Neues zu schaffen.

Am liebsten und besten arbeite ich dort, wo sowohl meine Kreativität als auch mein strategischer Weitblick gefordert sind. Ich kann dabei den Blick eines Technikers genauso annehmen wie den eines Kreativen. Am wichtigsten ist mir aber die Perspektive des Nutzers, denn ich möchte Produkte erschaffen, die man gerne verwendet und für die man gerne Geld ausgibt.

Ich bin nicht ortsgebunden, aber am liebsten würde ich in Hamburg oder Berlin arbeiten.

Kurzum: Wenn Du glaubst, dass ich bei deinem Arbeitgeber gut aufgehoben wäre, oder wenn dir ein Job einfällt, um den ich mich bewerben sollte, dann sag mir doch bitte Bescheid. Meine Adresse ist julian [at], weitere Kontaktdaten findest du auch im Lebenslauf.

nomeata’s mind shares

08.09.2014 23:04:54

Die ersten hausgemachten Tip-Toi-Bücher

Das letzte halbe Jahr war es sehr ruhig um unser Tip-Toi-Projekt. Das erste Ziel war damals erreicht: Ich konnte existierende Bücher mit neuen Texten versehen, und meinem Neffen eine Freude machen. Und so passierte erstmal lange nichts.

Bis sich vor ein paar Tagen plötzlich ein gewisser „Pronwan“ meldete und erzählte, dass er erfolgreich komplette Tip-Toi-Bücher (naja, Seiten) für seine Kinder gestaltet, gedruckt und mit eigenen Audio-Dateien versehen hat. Er hat das ganze in einem Video-Tutorial beschrieben. Fazit ist: Selber Drucken geht, wenn man die Bilder etwas blasser macht (schwarze Punkte auf schwarzem Grund geht schlecht) und gegebenenfalls erst das Bild mit einem Farb-Laserdrucker druckt und dann die die Punkt-Matrix mit einem Schwarz-Weiß-Drucker drüberlegt.

In dem Video kommt auch mein tttool zum Einsatz, das – obwohl eigentlich eher für mich und für Leute, die das GME-Dateiformat besser verstehen wollen, gedacht – dabei ganz gut wegkommt. Aus ist erwähnenswert dass „Pronwan“ Windows verwendet und vermutlich die von mir unter Wine vorkompilierte exe-Datei verwendet – die Platformunabhängigkeit von Haskell zahlt sich aus.

Das ganze ist wohl für einen interessierten Hobbisten wirklich recht gut zu machen. Ich bin gespannt was da noch alles kommt. Vielleicht gibts ja bald eine Webseite wo man hausgemachte Tip-Toi-Bücher sammeln und tauschen kann! Im Microcontroller-Forum gibts stets die neusten Infos.


nomeata’s mind shares

06.09.2014 22:46:22

ICFP 2014

Another on-my-the-journey-back blog post; this time from the Frankfurt Airport Train Station – my flight was delayed (if I knew that I could have watched the remaining Lightning Talks), and so was my train, but despite 5min of running through the Airport just not enough. And now that the free 30 Minutes of Railway Station Internet are used up, I have nothing else to do but blog...

Last week I was attending ICFP 2014 in Gothenburg, followed by the Haskell Symposium and the Haskell Implementors Workshop. The justification to attend was the paper on Safe Coercions (joint work with Richard Eisenberg, Simon Peyton Jones and Stephanie Weirich), although Richard got to hold the talk, and did so quite well. So I got to leisurely attend the talks, while fighting the jet-lag that I brought from Portland.

There were – as expected – quite a few interesting talks. Among them the first keynote, Kathleen Fisher on the need for formal methods in cars and toy-quadcopters and unmanned battle helicopters, which made me conclude that my Isabelle skills might eventually become relevant in practical applications. And did you know that if someone gains access to your car’s electronics, they can make the seat belt pull you back hard?

Stefanie Weirich’s keynote (and the subsequent related talks by Jan Stolarek and Richard Eisenberg) on what a dependently typed Haskell would look like and what we could use it for was mouth-watering. I am a bit worried that Haskell will be become a bit obscure for newcomers and people that simply don’t want to think about types too much, on the other hand it seems that Haskell as we know it will always stay there, just as a subset of the language.

Similarly interesting were refinement types for Haskell (talks by Niki Vazou and by Eric Seidel), in the form of LiquidTypes, something that I have not paid attention to yet. It seems to be a good way for more high assurance in Haskell code.

Finally, the Haskell Implementors Workshop had a truckload of exciting developments in and around Haskell: More on GHCJS, Partial type signatures, interactive type-driven development like we know it from Agda, the new Haskell module system and amazing user-defined error messages – the latter unfortunately only in Helium, at least for now.

But it’s not the case that I only sat and listened. During the Haskell Implementors Workshop I held a talk “Contributing to GHC” with a live demo of me fixing a (tiny) bug in GHC, with the aim of getting more people to hack on GHC (slides, video). The main message here is that it is not that big of deal. And despite me not actually saying much interesting in the talk, I got good feedback afterwards. So if it now actually motivates someone to contribute to GHC, I’m even more happier.

And then there is of course the Hallway Track. I discussed the issues with fusing a left fold (unfortunately, without a great solution). In order to tackle this problem more systematically, John Wiegley and I created the beginning of a “List Fusion Lab”, i.e. a bunch of list benchmark and the possibility to compare various implementations (e.g. with different RULES) and various compilers. With that we can hopefully better assess the effect of a change to the list functions.

PS: The next train is now also delayed, so I’ll likely miss my tram and arrive home even later...

PPS: I really have to update my 10 year old picture on my homepage (or redesign it completely). Quite a few people knew my name, but expected someone with shoulder-long hair...

PPPS: Haskell is really becoming mainstream: I just talked to a randomly chosen person (the boy sitting next to me in the train), and he is a Haskell enthusiast, building a structured editor for Haskell together with his brother. And all that as a 12th-grader...


nomeata’s mind shares

30.08.2014 15:10:58

DebConf 14

I’m writing this blog post on the plane from Portland towards Europe (which I now can!), using the remaining battery live after having watched one of the DebConf talks that I missed. (It was the systemd talk, which was good and interesting, but maybe I should have watched one of the power management talks, as my battery is running down faster than it should be, I believe.)

I mostly enjoyed this year’s DebConf. I must admit that I did not come very prepared: I had neither something urgent to hack on, nor important things to discuss with the other attendees, so in a way I had a slow start. I also felt a bit out of touch with the project, both personally and technically: In previous DebConfs, I had more interest in many different corners of the project, and also came with more naive enthusiasm. After more than 10 years in the project, I see a few things more realistic and also more relaxed, and don’t react on “Wouldn’t it be cool to have crazy idea” very easily any more. And then I mostly focus on Haskell packaging (and related tooling, which sometimes is also relevant and useful to others) these days, which is not very interesting to most others.

But in the end I did get to do some useful hacking, heard a few interesting talks and even got a bit excited: I created a new tool to schedule binNMUs for Haskell packages which is quite generic (configured by just a regular expression), so that it can and will be used by the OCaml team as well, and who knows who else will start using hash-based virtual ABI packages in the future... It runs via a cron job on to produce output for Haskell and for OCaml, based on data pulled via HTTP. If you are a Debian developer and want up-to-date results, log into and run ~nomeata/binNMUs --sql; it then uses the projectb and wanna-build databases directly. Thanks to the ftp team for opening up, by the way!

Unsurprisingly, I also held a talk on Haskell and Debian (slides available). I talked a bit too long and we had too little time for discussion, but in any case not all discussion would have fitted in 45 minutes. The question of which packages from Hackage should be added to Debian and which not is still undecided (which means we carry on packaging what we happen to want in Debian for whatever reason). I guess the better our tooling gets (see the next section), the more easily we can support more and more packages.

I am quite excited by and supportive of Enrico’s agenda to remove boilerplate data from the debian/ directories and relying on autodebianization tools. We have such a tool for Haskell package, cabal-debian, but it is unofficial, i.e. neither created by us nor fully endorsed. I want to change that, so I got in touch with the upstream maintainer and we want to get it into shape for producing perfect Debian packages, if the upstream provided meta data is perfect. I’d like to see the Debian Haskell Group to follows Enrico’s plan to its extreme conclusion, and this way drive innovation in Debian in general. We’ll see how that goes.

Besides all the technical program I enjoyed the obligatory games of Mao and Werewolves. I also got to dance! On Saturday night, I found a small but welcoming Swing-In-The-Park event where I could dance a few steps of Lindy Hop. And on Tuesday night, Vagrant Cascadian took us (well, three of us) to a blues dancing night, which I greatly enjoyed: The style was so improvisation-friendly that despite having missed the introduction and never having danced Blues before I could jump right in. And in contrast to social dances in Germany, where it is often announced that the girls are also invited to ask the boys, but then it is still mostly the boys who have to ask, here I took only half a minute of standing at the side until I got asked to dance. In retrospect I should have skipped the HP reception and went there directly...

I’m not heading home at the moment, but will travel directly to Göteborg to attend ICFP 2014. I hope the (usually worse) west-to-east jet lag will not prevent me from enjoying that as much as I could.


nomeata’s mind shares

23.08.2014 15:54:43

This blog goes static

After a bit more than 9 years, I am replacing Serendipity, which as been hosting my blog, by a self-made static solution. This means that when you are reading this, my server no longer has to execute some rather large body of untyped code to produce the bytes sent to you. Instead, that happens once in a while on my laptop, and they are stored as static files on the server.

I hope to get a little performance boost from this, so that my site can more easily hold up to being mentioned on hackernews. I also do not want to worry about security issues in Serendipity – static files are not hacked.

Of course there are down-sides to having a static blog. The editing is a bit more annoying: I need to use my laptop (previously I could post from anywhere) and I edit text files instead of using a JavaScript-based WYSIWYG editor (but I was slightly annoyed by that as well). But most importantly your readers cannot comment on static pages. There are cloud-based solutions that integrate commenting via JavaScript on your static pages, but I decided to go for something even more low-level: You can comment by writing an e-mail to me, and I’ll put your comment on the page. This has the nice benefit of solving the blog comment spam problem.

The actual implementation of the blog is rather masochistic, as my web page runs on one of these weird obfuscated languages (XSLT). Previously, it contained of XSLT stylesheets producing makefiles calling XSLT sheets. Now it is a bit more-self-contained, with one XSLT stylesheet writing out all the various html and rss files.

I managed to import all my old posts and comments thanks to this script by Michael Hamann (I had played around with this some months ago and just spend what seemed to be an hour to me to find this script again) and a small Haskell script. Old URLs are rewritten (using mod_rewrite) to the new paths, but feed readers might still be confused by this.

This opens the door to a long due re-design of my webpage. But not today...


nomeata’s mind shares

19.07.2014 17:13:06

Good bye GNOME

When I was young...

I have been a user of GNOME for a long time. I must have started using it in either 2000 or 2001, when LinuxTag was in Stuttgart. For some reason I wanted to start using one of the two Desktop Environments available (having used fvwm95 and/or IceWM before, I believe). I approached one of the guys at the GNOME booth and asked the question “Why should I use GNOME over KDE?”, knowing that it is quite a silly question, but unable to come up with a better one. He replied something along the lines of “Because it is part of GNU”, and that was good enough for me. Not that it matters a lot whether I use one or the other, but it was a way to decide it.

Back then GNOME was still version 1.2, with detachable menus and lots of very colorful themes – I first had something with thick yellow borders and then a brushed metal look. Back then, sawfish was the window manager of choice.

I used GNOME for many years. People complained when GNOME 2.0 came out, but I liked the approach they were taking: Simplicity and good defaults are a time saver! I did my bit of customization, such has having my panel vertically on the left edge, and even had a tool running that would react on certain events and make the window manager do stuff, such as removing the title bar and the borders from my terminals – naked terminals are very geeky (I forgot the name of the tool, but surely some will recognize and remember it).

Leaving the path of conformance

In 2009 I got more and more involved in Haskell and stumbled over xmonad, a tiling window manager implemented and configured in Haskell. I found this a user interface that like a lot, so I started using it. This was no problem: GNOME happily let me replace the default window manager (metacity) with xmonad, and continue working. I even implemented the necessary support in xmonad so that it would spare out the gnome-panel, and that the pager (which displays the workspaces and windows) would work, and even interact with xmonad.

I was happy with this setup for a few more years, until GNOME3 came out. Since then, it has become harder and harder to maintain the setup. The main reason is gnome-shell, which replaces both gnome-panel and doesn’t work with any window manager but the new default, mutter. I want to use GNOME’s panel, but not its window manager, so I was stuck with a hardly maintained gnome-panel. I fixed what I could (with some patches applied upstream two years after submission, and some not at all) and lived with the remaining warts.

The end (for now)

But a few days ago, GNOME 3.12 was pushed to Debian and I couldn’t even logout our shut down the computer any more, as gnome-session tries to talk to gnome-shell now to do that. Also, monitor configuration (e.g. remembering what setup to use when which monitors are attached) has been moved to gnome-shell. I tried to work around it a bit, but I quickly realized that it was time to make a decision: Either do it the GNOME way all the way, including using gnome-shell, or ditch GNOME:

Now as I said: I like the design and the philosophy of GNOME, including GNOME3, and I have told people who were complaining about it first to give it a try, and succeeded. I also tried it, but after years using a tiling window manager, I just couldn’t adjust to not having that any more. If xmonad could be changed to remotely control gnome-shell, I this might actually work for me! I think one of the biggest problems I had was to adjust to how gnome-shell handles multiple monitors. In xmonad, my workspaces are independent of the monitors, and I can move any workspace to any monitor.

So I had to ditch GNOME. My session now consists of a shell script making some adjustments (blank black background, loading the xmodmap), starts a few tools (taffybar, mail-notification, nagstamon, xscreensaver and dunst) and executes xmonad. So far it works good. It boots faster, it suspends faster.

I still use some GNOME components. I login using gdm (but it is auto-login, I guess I could try something faster), and gnome-keyring-daemon is also started. And I still use evolution (which has its own set of very disappointing problems in the current version).

Compared to my old setup, I’m still missing my beloved link-monitor-applet, but I guess I can implement an approximation to that in taffybar. The same for some other statistics like cpu temperature. I don’t have the GNOME menu any more, which I did not use regularly, but was useful occasionally.

The biggest problem so far is the lack of session management: I yet have to find a good way to logout and shutdown, while still giving Firefox time to finish without believing it crashed. Dear lazyweb: What is the best solution for that problem? Can systemd help me here somehow?

All in all I want to thank the GNOME guys for providing me with a great desktop environment for over a decade, and I hope I’ll be able to use it again one day (and hopefully not out of necessity and lack of viable alternatives).


nomeata’s mind shares

19.06.2014 20:00:29

Another instance of Haskell Bytes

When I gave my “Haskell Bytes” talk on the runtime representation of Haskell values the first time, I wrote here “It is in German, so [..] if you want me to translate it, then (convince your professor or employer to) invite me to hold the talk again“. This has just happened: I got to hold the talk as a Tech Talk at Galois in Portland, so now you can fetch the text also in English. Thanks to Jason for inviting me!

This was on my way to the Oregon Summer School on Programming Languages in Eugene, where I’m right now enjoying the shade of a tree next to the campus. We’ve got a relatively packed program with lectures on dependent types, categorical logic and other stuff, and more student talks in the evening (which unfortunately always collide with the open board game evenings at the local board game store). So at least we started to have a round of diplomacy, where I am about to be crushed from four sides at once. (And no, I don’t think that this has triggered the “illegal download warning” that the University of Oregon received about our internet use and threatens our internet connectivity.)



09.06.2014 17:35:00

Warum die Krautreporter scheitern müssen

Man kann über die Krautreporter sagen, was man will: mangelnde Ambition ist der falsche Vorwurf. Und doch, oder auch gerade deshalb, bin ich mittlerweile der Meinung, dass das Projekt scheitern muss. Nicht, dass ich von der Idee nichts halte, im Gegenteil. Aber jetzt nochmal Abstand, in ruhe Nachdenken, dann Reboot.
Aber von vorne: Die Krauterporter sind eine Gruppe von journalistsch arbeitenden Menschen, die gerne hätten, dass 15000 Menschen jeweils 60 Euro im Jahr bezahlen, um unabhängigen Journalismus zu fördern. Doch schon der Start war ungemein holprig und so ging es eigentlich auch immer weiter. Zu viele weiße Männer, die alles andere als Diversität vermuten ließen am Anfang, halbgare bis lahme Reportageideen in der Mitte, eine sehr seltsame Episode über Unklarheiten zur Rechtsform zwischendurch und nun ein Endspurt, der bisweilen (wenn auch nicht unbedingt von den Protagonisten) in einer Penetranz propagiert wird, die nur schwer zu ertragen ist.
Und darin liegt auch das Problem: Es reicht nicht, das Herz am richtigen Fleck zu haben und dem Verlagsestablishment etwas beweisen zu wollen. Es genügt auch nicht, erstmal ein bisschen Kohle einzusammeln und dann zu gucken, was man damit denn schönes an Journalismus machen kann. Es geht eben nicht nur darum zu zeigen "Hier, wenn wir ein paar Leuten die gut schreiben und recherchieren können Geld geben, dann kommt etwas dabei rum". Es geht darum zu sagen "wir können das auch ohne Verleger, Chefredaktionsapparat und tote Menschen als Herausgeber". Niemand braucht ein Produkt, was so ungefähr an die Zeit oder die FAZ heranreicht, das muss auf Augenhöhe sein, mit Qualität überflügeln, mit neuen Ideen inspirieren. Und das alles tun die Krautreporter nicht einmal ansatzweise, zumindest sehe ich keinen Willen zur Exzellenz.
Genau deshalb muss das Projekt scheitern. Weil sonst all jene, die der "Netzgemeinde" selbstreferenzialität und Belanglosigkeit vorwerfen in genau all ihren Argumenten bestätigt werden können. Niemand möchte, dass es heisst "Die Netzgemeinde fundet halt jeden Scheiss, solang er aus der eigenen Suppe kommt". Also Reboot bitte.

Anmerkung: Ich arbeite zwar für ein Verlagshaus, dessen Angebot steht aber in keinerlei Konkurrenzverhältnis zu den Krautreportern.

nomeata’s mind shares

08.06.2014 19:34:14

ZuriHac 2014

I’m writing this on the train back from the ZuriHac Haskell Hackathon in Zürich, generously sponsored by Better and Google. My goal for this event was to attract new people to work on GHC, the Haskell compiler, so I announced a „GHC bugsquashing project“. I collected a few seemingly simple ticket that have a good effort/reward ratio for beginners and encouraged those who showed up to pick one to work on.

Roughly six people started, and four actually worked on GHC on all three days. The biggest hurdle for them was to get GHC built for the first time, especially those using a Mac or Windows. They also had to learn to avoid recompilation of the whole compiler, which takes an annoying amount of time (~30 minutes for most people). But once such hurdles weren taken all of them managed to find their way around the source code to the place they need to touch and were able to produce a patch, some of which are already merged into GHC master. When I wasn’t giving tips and hints I was working on various small tickets myself, but nothing of great impact. I very much hope that this event will pay off and one or two of the newcomers end up being regular contributors to GHC.

We took breaks from our respective projects to listen to interesting talks by Edward Kmett and Simon Marlow, and on Saturday evening we all went to the shores of the Zurisee and had a nice Barbecue. It was a good opportunity to get into contact with more of the attendees (the hacking itself was separated in multiple smaller office rooms) and I was happy to hear about people having read my recent Call Arity paper, and even found it valuable.

Thanks to the organizers and sponsors for this nice opportunity!



01.06.2014 19:55:00


Vor etwa einem Jahr habe ich mich für den Kickstarter des "Orp Smart Horn" begeistert, ihn unterstützt, eine Fahrradklingel bestellt. Nun ist das "Orp Smart Horn" keine normale Fahrradklingel, schließlich trägt es den Namen "Smart". Und ist das Ding elektronisch getrieben, lässt sich per USB laden, hat eine Lampe und zwei Klingelmodi. Die Lampe hat viele Lumen aber keine Fokussierung, sie schafft es also nicht den Weg auszuleuchten sondern eignet sich lediglich zur Positionsbestimmung, aber der eigentliche Clou sind ja die Klingelmodi. Drückt man den flexiblen Hebel leicht, so bimmelt das Smart Horn nur ganz sachte, um Fußgänger darauf aufmerksam zu machen, dass sie gerade den Radweg bevölkern zum Beispiel. Droht Gefahr, kann man den Hebel stark drücken. Dann trötet das Smart Horn in 95 Dezibel und blinkt wild herum, so dass auch Autofahrer mitbekommen, dass etwas nicht stimmt. Soweit so cool, so überzeugend, so die Theorie.
In Wirklichkeit haben wir uns über Jahre hinweg an ein typisches Bimmeln gewöhnt. Das kann ein "Ping" sein wie bei eher modernen Fahrradklingeln oder ein "Drrring!" wie bei den alten. Auf keinen Fall aber ist es elektronisch erzeugt und klingt nach einem wildgewordenen SMS-Ton oder etwas, woraufhin man sein Mobiltelefon snoozen lassen möchte.
Oder anders gesagt: Niemand auf der Straße bewegt sich auch nur einen Zentimeter, wenn man das Orp Smart Horn erschallen lässt. Da könnte auch ein Vogel krähen, ein Kind schreien, ein Schuss fallen. Und das ist eben das Problem mit Usability, die sich an mehrere Seiten richtet. Ich finde das Teil cool. Ich kann es einfach bedienen, installieren, nutzen. Aber mein Gegenüber, also die Fußgängerin, die Autofahrerin, die hat davon nichts.
Ob das in diesem Fall vermeidbar gewesen wäre? Immerhin musste das Horn erstmal gebaut werden, um einen solchen Fehler festzustellen. In vielen Produkten ist aber genau das schon vorprogrammiert. Es wird gebaut, was die Entwickler und Designer toll finden, es wird getestet an Gruppen ihresgleichen, mit features vollgeladen, die längst nicht alle verstehen und generell so getan, als sei das was man selbst gut findet der Maßstab für die Welt. Und das ist, warum es Diversität braucht, allenorten. Aber das ist eine andere Geschichte und hat nur bedingt mit dieser Fahrradklingel zu tun.

nomeata’s mind shares

28.05.2014 21:43:42

Predicting the livetime of a Hackage package

The Debian Haskell Group has no proper policy about when to update a certain package to a new version from Hackage. So far, we upgrade when one of us personally needs something, when someone nudges us, if its required as a dependency or just when we feel like it. I was thinking about ways to improve that.

One thing that we should definitely do is to upgrade to new versions that differ only in the forth version number, e.g. from to – these are most likely bug fix uploads and have little risk of breaking things. (Unless they are only changes to the .cabal file, then they might not be an improvement for our users or us.) I plan to code that soon.

But what else can we do? Ideally we’d package versions that will be the newest version for a long time, and not versions that are going to be replaced the next day. Unfortunately, deciding that requires visionary powers. But maybe there is a correlation between the upload history and the lifetime of a new package? Maybe there are patterns, e.g. the first upload after a long time tends to be replaced fast, but the third package in a short succession has a high chance to live long? Can we predict the livetime of a freshly uploaded package? So after a bit of hacking I got this graphic:

It needs a bit explanation: Both axis are time differences, the picture is one year by one year. For every release of which we know the lifetime (i.e. there has been an upload later), we draw its history on a vertical line. The horizontal position of the line corresponds to the lifetime of the release: A package that was superseded immediately later (which I sometimes do after spotting annoying typos) would appear on the far left, a package that is stable for one year on the far right.

The history itself is a series of dots, representing the previous uploads of that package, with their distance from the lower edge indicating the time that has passed since then. So if a package had two updates half a year ago, and then no update for another half year, it would contribute two dots right above each other in the middle of the picture.

Unfortunately, the picture does not yield any insight, besides that short-lived packages are more frequent than long-lived packages.

So I tried another view:

I grouped uploads by the livetime of their two preceding uploads. For each such groups, the circle indicates the average livetime. The darkness indicates the absolute number in the sample. So we see a correlation between the packages livetime and the livetime of its predecessor, which is also not very surprising. We can state some hypothesis, like: “A package replacing a very old package is likely to be long-lived if its pre-predecessor lived very long or very shortly, but less so if that lived for a few months.“ But I’m not sure of the significance of these.

I could have also taken into account which uploads are major and which are minor, by looking at the version number, but I didn’t.

What’s the conclusion? Nothing much. I got some funny looking graphs. And there needs to be a way to render pictures like the first within the axes of a Chart diagram. I put the (somewhat hackish) code online – feel free to play with it.



28.05.2014 06:15:42

Mercurial vs. Git vs. Bazaar: The aftermath

Over the last years, the version control system community has fought, what some people would call the “VCS war”. People were arguing on IRC, conferences, mailinglists, they wrote blog posts and upvoted HN articles about which was the best version control system out there. The term “VCS war” is borrowed from the “Editor wars”. A constant fight which people argue which of the major editors VIM, or Emacs and later TextMate or Sublime, or again Vim and Emacs is the best editor. It is similar to programming language discussions, shell environments, window manager and so on and so forth. What they all have in common is that they are tools that are used daily by software engineers, and therefore a lot of people have an opinion on it.

When in 2005 both Git and Mercurial were released and Bazaar followed shortly after, the fight who is the best system of the three started. While early Mercurial versions seemed to be much easier to use than Git, Git was already used in the Linux kernel and built up a strong opinion. Things were even till 2008 Github launched and changed the OpenSource world and is what people would consider Git’s “killer app”. Mercurial’s equivalent Bitbucket never reached the popularity of Github. But people were still writing articles, arguing about merging and rebasing, arguing about performance and abilities to rewrite history, wrote long blog posts about confusing branching strategies. Those were complicated enough that they had to write helper tools, about which they could write articles again….and so on and so forth.

Recently things have become quiet. But why is that? What happend to Git, Mercurial and Bazaar?


I haven’t followed bazaars history much. It’s most notable users were MySQL and Ubuntu. In the early development bazaar lacked performance and couldn’t keep up with Git and Mercurial. It tried to solve this by changing the on-disk format a few times, requiring their users to upgrade their servers and clients. The development was mostly driven by Canonical and they had a hard time reaching out for more active developers. In the end there isn’t much to say about Bazaar. It development slowly deceased and it’s been widely considered the big looser of the VCS wars. Bazaar is dead.


Mercurial started out for the very same reason Git was created and was developed at the same time Linux wrote Git. They both had a fast growing active development group and were equally used in the first years. While Git was the “faster” decentralized version control system, Mercurial was widely considered the more user-friendly system. Nevertheless with the rise of Github, Mercurial lost traction. However the development continued and while more and more people used Git and Github, the Mercurial community worked on some new ideas. Python picked it as it’s version control system in 2012 and Facebook made moved to Mercurial in 2013. So what’s so interesting about Mercurial?

  1. Mercurial is extensible: It’s written mostly in Python and has a powerful extension API. Writing a proof of concept of a new backend or adding additional data that is transferred on cloned is fairly easy. This is a big win for the Python or the Mozilla community that makes it easy for them to adapt Mercurial to their needs.
  2. Mercurial caught up on Git features and performance: Mercurial added “bookmarks”, “rebase” and various other commands to it’s core functionality and constantly improved performance.
  3. Mercurial has new ideas: Mercurial came up with three brilliant ideas in the last 3 years. They first introduced a query language called “revsets” which helps you to easily query the commit graph. Second, they introduced “phases”. A barrier that prevents user from accidentally changing or rebsaing already published changesets – a common mistake for Git users. And last, but not least Evolution Changeset, a experimental feature that helps you to safely modify history and keep track of the history of a changing commit.

So while Mercurial is certainly not the winner, it found a niche with a healthy and enthusiastic community. It’s worth a shot trying it if you are not 100% happy with Git.


The big winner obviously is Git. With the introduction of Github pushed Git usage. Github’s easy to approach fork&merge mechanism revolutionized OpenSource development to a point where most younger projects don’t use mailinglists anymore but rather rely on pull-requests and discussion on Github issues. Github’s feature and community is attractive enough for people to learn git. In addition, Git had a healthy and vocal community creating blog posts, introduction videos and detailed technical explanations. Noways Git market share is big enough that companies move from Subversion to Git because a new hire will more likely know Git than any other version control system (maybe SVN). As an open source developer, there is no way around Git anymore. Moreover the development is going on in rapid pace and the community constantly improves performance and is slowly reaching the v2.0 milestone. It’s yet to be seen if they are going to port some of the ideas from Git. A major challenge for Git however, still, is to deal with large repositories, something that at least the Mercurial community has partly solved. If you haven’t learned it, learn it, there isn’t going to be a way around it anyway – deal with it.

A conclusion

The war is over, and we are all back on working on interesting features with our favorite Version Control System. Nobody needs to write blog posts anymore which system is better and you certainly won’t be able to circumvent Git entirely.

flattr this!


nomeata’s mind shares

26.05.2014 12:10:46

Does list fusion work?

I’m writing this in the lunch break of TFP in Soesterberg. The invited talk this morning was by Geoffrey Mainland, and he talked about the difficulties of (informal) reasoning about performance in high-level languages like Haskell, especially with fancy stuff in the compiler like fusion. So I couldn’t help but think about a (very small) help here.

Consider the the two very similar expressions foldl (+) 0 [0..1000] and foldr (+) 0 [0..1000]. Which of these fuse away the list? Hopefully both, but hard to predict.

So with my list-fusion-probe library, you can write

import Data.List.Fusion.Probe (fuseThis)
main = print $ foldr (+) 0 (fuseThis [0..1001])

and find out. If you compile this (with -O!), it will print


If you change the foldr to foldl, it will print

Test: fuseThis: List did not fuse

So you can see that the function fuseThis :: [a] -> [a] does nothing if the list gets fused away, but causes a run-time error if not. It allows you to annotate your code with your assumptions of list fusion, and get shouted at if your assumptions are wrong.

It wouldn’t be hard to have the compiler give a warning or error message at compile time; we’d just need to introduce a special function abortCompilation that, when found in the code during compilation, does just that.

Note that you’ll have trouble reproducing the above in GHC HEAD, where foldl does fuse (which is what I’m going to talk about tomorrow here).



18.05.2014 13:29:00


Und dann hörte ich diesen wundervollen Podcast, in dem es um die Deutsch-Französischen Beziehungen ging. Und machte mir so ein bisschen Gedanken. Tags darauf traf ich meinen ältesten Freund L. mit dem ich bereits in der Schule war. Wir sprachen über Städte und er sagte mir "Ich war kürzlich in Straßburg. Was für eine coole und wunderbare Stadt? Früher ist uns das nie aufgefallen, da sind wir halt mal in ein Konzert in die Laiterie, aber das war's."
Und tatsächlich: Wir sind eine Radtour weit weg von Straßburg aufgewachsen. An guten Tagen konnte man vom Schlafzimmer meiner Eltern aus die Spitze des Münsters sehen. Und doch war Frankreich abstrakt, weit weg, vor allem aber "nicht erstrebenswert".
Es ist nicht so, dass mir das Französische nicht permanent nahe gebracht wurde: Wir hatten französische Nachbarn, es gab schon in der Grundschule ersten Unterricht. Ausflüge ins Elsass, überall Flammkuchen, Einkaufstouren zu Carrefour oder Super-U. Es gab das Feuerwerk auf der Europabrücke in Kehl, Lampionfahrten mit Kanus durch die Kanäle der Stadt, Städte- und Dorfpartnerschaften. Nirgends konnte, wurde, musste die Deutsch-Französische Freundschaft so gelebt werden, wie am Oberrhein.
Und doch, da stimmte etwas nicht. Schon ganz von anfang an. Frankreich, das war nah aber niemals cool. Klar hat man uns in der Grundschule die Sprache beigebracht, aber schon die Einstellung des Lehrers vermittelte das Gegenteil von Begeisterung. Im Gymnasium ging ich dann in die Lateinklasse. Die war übrigens genauso groß wie jene, in der man Französisch als erste Fremdsprache lernte. Insgesamt 50 Leute. Englisch? 130.
Das System sah dann in der neunten Klasse eine dritte Sprache vor. Ein viertel meiner Klassenkameradinnen wählte Griechisch. Der Rest hatte eher gemäßigte lust. Cool war es, seine schlechten Noten nach außen zu tragen. Als wir in einem Vokabeltest unsere allererste Sechs ever bekamen, gab es eine Klassenkonferenz, weil wir es gefeiert hatten wie so ein paar dämliche Weltkriegssoldaten die alles tun, sich aber bloß nicht ergeben wollten.
Klar: Es gab auch die offenen Ressentiments. Wackes wurden sie genannt, die Elsässer, ein altes Wort das in deren Dialekt "Strolch" oder "Lump" bedeutet und deren Benutzung auf den Deutsch-Französischen Krieg zurück geht.
Nun kam ich gar nicht aus Baden, sondern bin dort aufgewachsen. Ich hatte auch nie etwas gegen Frankreich, Franzosen, Elsässer oder ähnliches (bis auf das Elsässische. Was für ein grausliger Dialekt!). Aber es war einfacher, sich anzupassen und das alles ebenfalls uncool zu finden. Richtig gut französisch zu lernen, einen Schüleraustausch zu machen, über ein Studium dort nachzudenken, das hätte Rebellion bedeutet. Rebellion gegen ein Umfeld, das sich auch 35 Jahre nach De Gaulles Rede an die Deutsche Jugendimmer noch zu fein war, Interesse zu zeigen.
Und so kam es, dass wir zwar zu Konzerten fuhren, aber nie in die Ausgehviertel. Dass wir uns des Wochenends in den Zug nach Karlsruhe setzten, statt mal zu schauen, wie die Leute in den alternativen Vierteln Straßburgs so drauf sind.
In meinem Abi-Jahrgang waren 220 Menschen. Niemand davon hat sich an der Universität Straßburg eingeschrieben. Und irgend etwas sagt mir: auch anderthalb Dekaden später wird es nicht anders sein, in fernen Bundesländern finden junge Menschen Frankreich viel toller, als in der direkten Nachbarschaft. Im Rheingraben ist noch viel zu tun.

Update: Eine ehemalige Mitschülerin weist mich darauf hin, dass es zwei Französischklassen gab und sehr wohl einige Menschen (unter anderem sie), die eine Affinität zu Frankreich und der Sprache hatten. Den Post in seiner Absolutheit muss ich also zurücknehmen, was bleibt ist aber der Eindruck, dass es bei der überwiegenden Mehrheit genauso war wie von mir wahrgenommen (und von anderen bestätigt)


09.05.2014 10:24:00


Da stehst du rum, mitten im Hof, im Foyer, vielleicht sitzt du auch, allein bei diesem Vortrag. Dir ist schon seit vorhin alles zu viel und es ist ja eigentlich noch nicht mal Tag 1 rum. Die anderen, die haben Spaß, finden neue Freunde, aber du bist nicht dabei. Die drei, mit denen du vorhin dieses lustige Gespräch hattest sind jetzt ohne dich Essen gegangen. Auf Twitter läuft dieser running Gag, von dem du nur erahnen kannst, wie er zustande kommt. Du bist einsam. Mitten auf einer Konferenz mit vielen tausend Menschen?

Vermutlich geht es allen so. Auf dem Chaos Communication Congress, auf der Re:Publica, auf all den anderen tollen Konferenzen mit Community-Charakter. Und wem es nicht so geht, der hat entweder einen wahnsinnig tollen Selfcare-Mechanismus, eine ungesunde Ignoranz gegenüber sozialen Interaktionen oder kein Interesse an den Leuten. Oder aber Überforderung, dann kommt der Blues erst später. Man kann durchaus drei Tage im sozialen Vollrausch über eine Konferenz rennen, sich selbst komplett ignorieren und dann nach dem letzten Besäufnis im Kater danach hart crashen. Ist aber auch ungesund.

Konferenzen, das ist drei Tage vollkommener Alarmzustand. Drölfzig Leute, von denen vorher nur der Nickname bekannt war, wenn überhaupt. Alkohol, wenig schlaf, ein bisschen Input und dazu "tolle Gespräche". Aber viel zu oft sind genau diese eben getränkt mit guter Laune und fragen mehr "Was machst du so" Statt "wie geht es dir". Und dann machen die einen einen Vortrag und du hattest dieses Jahr wieder keine Idee, oder deiner lief nicht so gut, war schlechter besucht und überhaupt: eigentlich fandest du deine Inhalte viel zu wenig auf den Punkt, ausserdem hast du jetzt schon X mal Leute von anderen Vorträgen reden hören und nur so selten von deinem.

Und dann gibt's da eine Presseanfrage aber nicht an dich, die beiden Leute mit denen du vorhin noch rumgehangen bist knutschen jetzt miteinander. Du stehst in dieser Gruppe von Leuten, die du im Internet total klasse findest und fragst dich, ob du genauso dazu gehörst wie die anderen. Langsam wirst du immer betrunkener, lachst und machst Sprüche aber innerlich fragst du dich, warum du immer noch nichts gegessen hast, während bei Foursquare gerade Leute in einem Restaurant einchecken, ohne dich gefragt zu haben. Warum eigentlich nicht? Hast du was falsch gemacht? Kam der Witz den du vorhin versucht hast zu reissen vielleicht nicht so gut an? Bist du nervig? Langweilig?

Nichts davon. Du bist damit garantiert nicht alleine und alle sind überlastet. Soziale Strukturen entstehen und gehen spontan. Egal wie beliebt du bist, wie eng du mit deinen Freunden rumhängst: im Zweifelsfall wirst du auch mal vergessen werden. Und im zweifelsfall ist das Okay, weil eine viertelstunde später bist du mit anderen Leuten zum Essen und der oder die nächste fragt sich: "und was ist mit mir?" Nur das kriegst du nicht mit. Du hast ja ja nicht gefragt, wie es geht. Dich hat ja auch niemand gefragt. Aber Gratulation zum neuen Job!


04.05.2014 20:24:00

Das Wochenende

Wie das Wochenende gewesen sei, wird man oft gefragt. Nun, da gibt es ja verschiedene Betrachtungsweisen. Finanziell zum Beispiel war das Wochenende mit Gewinnen und Verlusten: Zum einen habe ich ein iPhone-Kabel und eine sehr teure Regenjacke im Zug liegen lassen, also minus 400 Euro. Zum anderen habe ich für eine Kostümparty eine Jeans angezogen, die seit vier Jahren im Schrank lag. Darin: zehn Euro. Gewinn! Neutral fallen da Einkäufe ins Gewicht. Klar, Geld losgeworden aber eben auch was dafür bekommen.

Was die Erlebnisse angeht auch so eine Gewinn/Verlustsache: Donnerstag Gewinn, weil lustige Mai-Parade mit anschließender Hausbesetzung, der ich zwar nicht Teilgenommen habe aber immerhin aktiver Zeuge war. (So mit Twitter-Berichterstattung). Freitag dann auch ganz OK mit Höhen und Tiefen (vor allem der Jackentiefe) der Samstag dann ein ganzes Stück vergeudet weil entschieden, doch nochmal zuhause nach zu gucken ob die Jacke nicht da liegt, anschließend dann Berlin. Da wiederum: Klamotten einkaufen (sehr positiv), anschließend Kostümparty (ebenfalls toll). Heute dann Kater, vom Erlebnisfaktor also nicht ganz so prima.

Dann: Menschen. Tolle Menschen bei der Parade, tolle Menschen bei den Parties, tolle Einkaufshelferin, toller Zugführer der mich im vollen Zug erste Klasse fahren ließ, tolle Gespräche bei Burger und Pommes. Andererseits andere Party verpasst, wo auch tolle Menschen waren. Und Sonntag zu viel Kater gehabt, um weitere Menschen zu sehen.

Insgesamt also gut. Egal bei welcher Betrachtungsweise.


27.04.2014 18:36:00


Zweierlei Kochexperimente habe ich kürzlich getrieben, mit großem Erfolg und viel Verwunderung. Zudem: Wahnsinnig schnell und trotzdem sehr sehr gut.

Das eine ist Popcorn. Nein, Kein Experiment. Aber wenn man Popcorn in Milch oder Sahne einlegt, dann gibt es Geschmack ab. Wenn man es danach rausfiltert, hat man Popcornmilch. Oder Sahne. Damit kann man dann zum Beispiel Panna Cotta machen. Oder Mousse au Popcorn. Beides sensationell. Das Panna Cotta kommt dabei übrigens komplett ohne Zucker aus.

Das zweite: Mousse au Chocolat. Der Lebensmittelchemiker Hervé This-Benckhard hat sich mit Heston Blumenthal zusammen gesetzt und überlegt, wie Mousse eigentlich gehen könnte. Heraus kam folgendes: 100g dunkle Schokolade (75% oder so, die sollte richtig hochwertig sein sonst schmeckt das alles zu säuerlich), dazu 80ml Wasser. Warmmachen so dass es flüssig ist. Dann in eine Metallschüssel kippen und die über ein Eiswasserbad. Das Zeug aufschlagen, mit Rührbesen oder besser noch mit Handmixer. Nach ca 3-5 Minuten wird es hart und flockig. Voila, Mousse-Au-Chocolat. Ohne Eier, ohne Sahne, ohne viel Zucker, ohne lang dran basteln, ohne noch länger kühlen.
Guten Appetit. Weitere Experimente werden folgen, vor allem in Sachen Popcorn. Dazu brauche ich aber erstmal einen Sahnesiphon.


20.04.2014 14:56:00

Fünf neue Alben (für den Frühling und zwischendurch)

2014 wird ein sehr gutes Jahr, was Musik angeht. Zumindest hat mich das, was ich dieses Jahr bislang so hören konnte schon ziemlich begeistert.
Ich will einfach mal kurz fünf Alben (und jeweils einen Song daraus) vorstellen, die zum Frühling passsen und gehört werden sollten.

Future Islands - Singles
Synth-Pop ist wieder in. Ob's an M83 lag oder an was anderem? Gute Frage. Future Islands machen auf jeden fall sehr sehr viel richtig. So gaanz leichte 80er-Anleihen die aber ganz kurz vor "pathetisch" aufhören und ein Sänger, den ich unbedingt mal live erleben will.

Young Fathers - Dead
Hiphop. Aus Edinburgh. Auf dem feinen Anticon-Label. Eigentlich eher eine Mischung aus Avantgarde-Rap und Pop. Alleine schon wegen dem absolut sensationellen zweiten Track "Low" sollte man sich das anhören. Musik, um die Sonne reinzulassen und durch die Wohnung zu hüpfen. Oder um im Park auszuticken.

Todd Terje - It's Album Time
Producergott, liest man überall. Hat tolle Remixe gemacht. Jetzt eben ein eigenes Album, das sich vor allem in den 70ern und 80ern allerhand Einflüsse nimmt. Ein bisschen italo disco hier, ein Synthie-Solo dort, alles wird in eine ganz eigene, soundtrackige Klangwelt überführt. Erinnert so ein ganz kleines Bisschen an das letzte Daft Punk Album und dessen Retro-Ambitionen, macht das alles aber meines Erachtens nach deutlich weniger langweilig. Und dann auch noch dieses fantastische Cover von Robert Palmers "Johnny and Mary" mit Brian Ferry am Gesang!

Fatima Al Qadiri - Asiatisch
Bestimmt die sperrigste Empfehlung in dieser Liste, aber dafür auch jene, die in Sachen Sound am meisten durcheinander bringt. Fatima Al Qadiri klingt so, wie man sich einen Trip in die chinesischen Megastädte der nächsten Dekade vorstellt. Grell und künstlich und doch auf den fundamenten der dortigen Kultur aufbauend. Ich bin fasziniert und begeistert, nicht nur von dem chinesischen "Nothing compares 2 u"-Cover.

Fennesz - Bécs
2001 brachte Christian Fennesz mit "Endless Summer" ein Album heraus, das mich bis heute immer wieder aufs neue begeistern kann. Sanfte Gitarrenklänge, die hier und da ins verzerrte abschweifen und zu nicht minderschönen drone-klängen mutieren. Bécs ist quasi die Fortsetzung, 13 Jahre später. Nicht ohne anzuerkennen, dass eben über eine Dekade vergangen ist, aber ganz klar mit dem vergangenen Meisterwerk im Blick. Wundervoll!


Uploads from neingeist

17.04.2014 08:10:32

barcode detection for the visually impaired

neingeist posted a video:

barcode detection for the visually impaired

work in progress



30.03.2014 21:38:00


Dass am Wochenende rausgegangen werden muss ist ja eigentlich auch ein schlechter Mythos. Andererseits aber ist es viel einfacher zuhause zu bleiben und nichts zu tun, wenn die Möglichkeiten da sind. Willst du selbst unbedingt noch in nen Club aber niemand kommt mit ist es auch unschön. Dafür sind dann Wochenenden an denen man sich einschließt und nichts tut auch ganz entspannt. Und auch interessant dass putzen eigentlich spaß macht, wenn man es nämlich gar nicht muss. Durch Putzen kann man auch prima Dinge prokrastinieren, die man eigentlich tun wollte. Zum Beispiel für die Woche vorkochen.
Überhaupt muss ich mal kurz dem ereignislosen Wochenende huldigen, denn es kommt in dieser Form bei mir maximal quartalsweise vor. Meist stopfe ich es bis oben hin voll, fahre nach Berlin oder woanders hin, komme Sonntag abends wieder und fange schon im Zug an, wild Leute anzuschreiben ob denn noch ein Bierchen drin wäre, als seien meine eigenen vier Wände ein Luftschutzbunker in den man nur im Notfall einzieht. Dabei ist meine Aussicht nun deutlich besser, seit ich die Fenster gereinigt habe. Nun fehlen nur ganz wenige Dinge. Eine Bohrmaschine zum Beispiel, damit ich endlich diese Gardinenstange anbringen kann, die ich mir hektisch im Oktober kaufte bevor die Blätter fielen, weil es danach immer so hell im Schlafzimmer wird. Und größere Dübel weil die, die ich gestern käuflich erwarb (im übrigens letzten innenstadtnahen Baumarkt der Stadt nachdem Max Bahr in die Pleite ging) wieder aus der Wand rutschen. Oder gleich so neumodisches Zeug was man in Löcher tut, um dann die Schrauben hinterher zu schieben. Das härtet dann aus und dann ist alles fest. Fantastisch, kostet auch nur ungefähr 60 mal so viel wie ein Dübel.
Ausserdem brauche ich PU-Dämmplatten. Also eine, um meine Boxen drauf zu stellen, weil der Nachbar nervt. Überhaupt der Nachbar, das ist eine andere Geschichte. Wie dem auch sei: PU-Dämmplatten gibts nur im Baustoffhandel und da eher nicht einzeln. Also von ner Baustelle klauen oder Hersteller nach Muster fragen.
Ansonsten kann man an einem solchen Wochenende auch viele neue Musik hören. Und dann? Zehn mal das gleiche Album und vier mal ein anderes. Es ist schon ein Kreuz. Solch verschwendete Zeit. Aber gut fühlt sich's an.


23.03.2014 20:32:00

Gedanken zur neuen Ästhetik

Ein Graffiti machte in den letzten Tagen die Runde durch das Internet. Darauf eine IP-Adresse:, der DNS von Google. - In der Türkei war Twitter verboten worden, die Sperre ging auf DNS-Ebene und das Graffiti war eine handfeste Anleitung, um diesen Filter zu umgehen.
Das alleine ist schon eine ziemlich tolle Sache, aber was mich daran so fasziniert hat ist, das es ein Ausdruck eines Begriffes ist, über den in den letzten Jahren als "New Aesthetic" geredet wird. Die Ästhetik der Vermengung von "Internet-Kultur" und "Realwelt". Im gleichnamigen Tumblr sammelt James Bridle seit fast drei Jahren entsprechende Beispiele.
Das ist aber nicht alles. Auch in der Science Fiction ist das Mem, die Hochtechnologie mittels teils Archaischer Methoden zu besiegen nichts neues. Steinschleudern gegen Drohnen, Dialup-Modems gegen Internetabschaltung, Graffitis gegen Überwachung, ja sogar der Einsatz der Navajo, um im zweiten Weltkrieg abhörsichere Kommunikation zu ermöglichen fällt da irgendwie darunter.
Vermutlich ist es auch mehr das Narrativ ansich, also die Ästhetik, denn die eigentliche Wirkung. Vielleicht auch der Überraschungsmoment, denn es kann ja keineswegs Verlass darauf sein, dass eine Hochtechnologie mit einer niederen besiegbar ist. So wurden schon bald die entsprechenden IP-Adressen der DNS-Server gesperrt.
Die "New Aesthetic" zeigt, wie wir uns immer mehr in der Ästhetik von Science Fiction und dem, was einst "Zukunft" genannt wurde befinden. Sie geht aber nicht nur auf Kunst oder andere Objekte ein, die mit der Absicht kreiert wurden, die reale mit der vernetzten Welt zu verbinden. Sie beschreibt auch die zufälligen Zusammenhänge, die Nebenprodukte dieser immer stärkeren Durchdringung unseres Lebens durch das Netz.
Letztenendes beweist das Graffiti vor allem eines: Je mehr sich auf eine Technologie verlassen wird, desto verwundbarer wird sie. Und das ist schön, zumindest es der guten Sache dient.


22.03.2014 16:58:07

Short update…

$ curl -I | grep X-Powered-By
X-Powered-By: HPHP


flattr this!



16.03.2014 21:31:00

Buchkritik Daniel Suarez: Influx

Daniel Suarez war ja in den letzten Jahren so ein bisschen Hacker-Netzpolitiker-Liebling, weil er mit "Daemon" und "Freedom" erst so etwas wie eine positive Techno-Utopie entworfen hat und dann in "Kill Decision" die Problematik autonomer Drohnen aufgebracht. Sci-Fi, Politik, Gesellschaft, "Wo wollen wir hin" und "Wie kann es weitergehen", alles ziemlich super.
Mit Influx bricht Suarez mit einer recht entscheidenden Sache: er springt nicht mehr 3,5 oder 10 Jahre in die Zukunft sondern deutlich länger. Gleichzeitig bleibt er im Zeitraum von 2016-2019. Die Geschichte: ein Team von Forschern entwickelt eine Möglichkeit, Gravitation zu manipulieren und wird daraufhin entführt. Das geheime "Bureau of Technology Control" hat die Aufgabe, disruptive Technologien von der Menschheit fernzuhalten, da diese einer zu starken Veränderung nicht gewachsen wäre. Selbst kann es schon seit Jahrzehnten Fusionsenergie erzeugen, hat Krebs besiegt und verfügt über Quantencomputer. Der Protagonist wird vor die Wahl gestellt, entweder zu kooperieren oder in ein Gefängnis gesperrt zu werden. Er leistet Widerstand und so beginnt ein Science-Fiction-Thriller.
Und das ist auch das Problem an dem Buch, das gut konstruiert ist, eine saubere Spannung abliefert und nur ganz wenige Plotholes mit sich bringt, die aber in der Science-Fiction nicht ganz unnormal sind. Suarez hätte eine hervorragende Abhandlung darüber schreiben können, wo die Grenzen des technologischen Fortschritt, die Gefahren der Disruption, die Verheißungen und Fallen der Singularität sind. Stattdessen ist es ein guter, aber eben doch recht substanzloser Thriller geworden. Ausser es passiert auf den letzten 30 Seiten noch ein Wunder, das ich aber bezweifle.
Im übrigen möchte ich anmerken, dass Suarez ständig die gleichen Worte verwendet und sein Schreibstil bisweilen unbeholfen ist.


02.03.2014 20:05:00

The Moth

1997 hatte George Dawes Green die Idee, mitten in New York eine alte Tradition wieder aufleben zu lassen. Er dachte an die Nächte, in denen man in Georgia auf der Veranda saß und sich umgeben von den Motten, die das Licht anzog, Geschichten erzählte. Und so gründete er eine Veranstaltungsreihe mit dem schönen Namen "The Moth". Daraus ist inzwischen eine Veranstaltungsreihe geworden, die ihre Tour durch die gesamten USA macht und bei der mitunter sogar Menschen auftreten, die einen gewissen Bekanntheitsgrad haben. Die Regeln sind denkbar einfach: Die Geschichte muss wahr sein und es gibt beim Erzählen keine Hilfsmittel. Keine Soufleusen, keine Zettel, nichts.
Warum ich das aber alles hier aufschreibe ist, um den ganz großartigen "The Moth"-Podcast zu empfehlen. Bis vor kurzem waren das einmal pro Woche ca 15 Minuten, was wundervoll zum "mal eben ohne Anstrengung konsumieren" geeignet ist, inzwischen kommen gelegentlich ganzstündige Radioproduktionen hinzu, die aber ebenfalls aus Geschichten bestehen, die jeweils maximal 15 Minuten lang sind. Und das ist schlicht und ergreifend grandios. Geschichten aus dem alltäglichen Leben genauso wie solche aus dem Krieg, aus der weiten Welt und sogar dem Weltraum (es gab da diese Folge, in der Richard Garriott von seiner Reise zur ISS erzählte). Manche zum Lachen, andere zum Weinen. Aussetzer? Nur, wenn ganz ganz selten mal diese amerikanische Prüderie zum Vorschein kommt und das Publikum über nackte Menschen in der Sauna lacht. Das kommt aber so sehr vor, dass ich den Podcast wirklich uneingeschränkt empfehlen möchte. Nein, noch mehr, ich lege ihn euch wirklich dringend ans Herz.


16.01.2014 15:26:00

Memo an mich selbst: praktische Programme

Da ich letztens das Arch Linux auf meinem Laptop neu installiert habe und bis heute noch Programme finde, die ich bisher vergessen habe zu installieren, die ich aber total praktisch sind, hier mal meine Liste der Programme, die für mich auf keinem System fehlen dürfen.

Dieser Artikel ist also eher ein Zusammenschrieb für mich selbst, aber vielleicht findet hier ja jemand noch das ein oder andere nützliche Programm oder auch nur  eine Gedankenstütze bei einer Neuinstallation.Mit einem “*” markierte Einträge sind Programme, von denen ich denke, dass sie besonders praktisch und trotzdem eher unbekannt sind. Diese sind also vielleicht mal einen Blick wert.

Disclaimer: ich verwende hier die Paketnamen aus den Arch-Repositories, manche Pakete sind auch aus dem AUR (Arch User Repository). Auf anderen Systemen können die Pakete eventuell etwas anders heißen, oder garnicht gepackt vorliegen.

zsh # Eine Alternative zu bash. Besonders mächtig mit der oh-my-zsh, oder der grml-zsh-config (im Repo)

zsh-syntax-highlighting # Syntax-Highlighting in der Shell (inspiriert von der fish-Shell), muss noch nach der Installation in der zshrc eingetragen werden

gvim # enthält v.A. auch das vim-binary mit Mausunterstützung fürs Terminal

vim-pathogen # kümmert sich um das Laden vom Vim-Plugins

* servefile # Ermöglicht Dateien und Ordner über einen einfachen HTTP-Server freizugeben (ähnlich dem SimpleHTTPServer von Python). Kann auch Upload und Autentifizierung.

* htop # Wie top, nur schöner

mplayer # Spielt eigentlich alle Mediendateien.

libreoffice # vim kann leider keine .docx-Dateien öffnen ;)

dwb # Ein webkit-basierter Browser mit vim-like Tastenkombinationen

i3-wm # Tiling window manager. Mag ich besonders wegen dem Stacking-Modus (Fenster in Tabs), der gut für kleine Bildschirme (Laptop) ist.

i3lock # Der passende Lockscreen zu i3. Sehr minimalistisch.

dmenu # Baut Menüs aus stdin und gibt die Auswahl nach stdout. Wird von i3 als Standard-Programmstarter benutzt.

xautolock # Um mit i3lock nach gewisser Zeit automatisch den Bildschirm zu sperren.

dunst # Notification Daemon. Aussehen ist sehr gut anpassbar.

compton # Compositor. Ermöglicht echte Transparenz und dezente Überblendungseffekte zwischen Workspaces und Fenstern.

rxvt-unicode # Mein Terminalemulator der Wahl. Anpassbar, schnell.

cellwriter # Virtuelle Tastatur mit zeichenbasierter Schrifterkennung (mein Laptop hat Touch- und Stifteingabe).

think-rotate # für das Drehen von Display und Touch-Eingabe (für den Tablet-Modus meines x230t). Praktisch dazu auch libwacom und xf86-input-wacom

xournal # Tool zum auf PDFs rummalen, alternativ jarnal

* mypaint # Einfaches Malprogramm mit Unterstützung für Stifteingabe

* ranger # ein Dateimanager für die Kommandozeile. In Farbe und mit vim-like Tastenkombinationen

* moreutils # Eine Sammlung kleiner, praktischer Programme im Sinne der coreutils. Mehr Infos.

pulseaudio-ctl # Für Lautstärke-Tastenkombinationen

pnmixer # Tray-Applet für Pulseaudio

tmux # Terminalmultiplexer, alternativ screen

conky # Ein leichtgewichtiges Tool um Systeminformationen auf dem Desktop anzuzeigen. Benutze ich momentan um die i3bar mit Informationen zu füllen.

screen-message # Zeigt beliebigen Text im Vollbild auf dem Monitor an. Gut um z.B. URLs zu kommunizieren

Irgendwas Wichtiges habe ich jetzt bestimmt auch noch vergessen, aber das wird mir dann schon irgendwann wieder einfallen. Ich versuche diese Liste regelmäßig zu aktualisieren, wenn ich neue must-have Programme finde.

Falls noch jemandem spontan etwas für diese Liste einfällt, immer her damit. :)



24.12.2013 19:18:50

Mercurial Bundle Reorder

A short reminder to myself. There is a small undocumented feature. It will try to linearize a changegroup by doing a deep first walk of revs and store them in that order. This creates long lines of revisions, in which each revision is stored after it’s parent. This assumes that changes are minimal between a child and a parent east Inflatables. To reorder an existing repository use:

$ hg --config bundle.reorder=True clone --pull repo.hg repo-reordered.hg

Note that you have to use –pull when you pull locally otherwise Mercurial will only use hardlinks or copy and don’t create changegroups for the wireprotocol.

flattr this!


Wenger Online#Blog

01.11.2013 23:20:35

Ferien in Pianta Monda

Wie in den letzten Herbstferien waren wir auch dieses Jahr wieder in Pianta Monda zu Gast. Trotz oder sogar wegen dem vielen Bergsteigen hat es besonders den Kleinen sehr viel Spaß gemacht.

P1040712 P1040704 P1040699-P1040700 P1040685 P1040682 P1040666 P1040667 P1040645-P1040652 P1040633 P1040634-P1040636



16.09.2013 04:21:10

Play around: BGP and the DN42

As far as I am concerned, networking is one of the most fascinating aspects of computing. Connecting people and systems sounds like an easy problem to solve, but looking into the details and the scale of something like the internet, shows that networking is far from easy. While most developers and administrators understand the basics of local IP routing and maybe even OSPF, not many understand how global scale, carrier focused networking works. To understand how the internet works one has to understand routing. To understanding routing on a global, internet scale level, one has to understand the exterior Border Gateway Protocol (eBGP).

Now with our local setup’s, BGP isn’t really something that we use on a daily base (unless you work on the DE-CIX, ASM-IX or at Level3). We need to a bigger network to learn about the details. While we are obviously not being able to learn about BGP on the real internet, we want to build something similiar to the internet to help us learn and hack on this stuff.

welcome to the dn42

The dn42 is a darknet build by members of the German Chaos Computer Club. It connects people on a ISP level and somewhat replicate common internet services like a registry, anycast DNS, whois, etc. The project aims to facilitate understanding how the internet works and build up a darknet at the same time.

The dn42 uses the address range out of IANAs reserved, non-publicly routed subnets. A participant of the dn42 usually allocates a /24 from this pool by entering the necessary information into the registry. The registry is build similar to the RIPE/ANIC registry. Once a subnet is allocated, a participant has to start peering and announcing the network. The participant has a role similar to a e.g. an ISP in the internet, who announces his allocated subnet to the internet. Just like ISPs and Tier3 up to Tier1 carriers, participants in the DN42 talk eBGP with each other over a secured line.

how the internet works (for dummies and simple..blabla)

So how does your computer know how to get to Your PC got a gateway address from your ISP, so your computer is simply sending everything he doesn’t know how to route to the gateway. But how does the ISP know where the computer is? The internet folks thought about this for a very long time before they came up with “BGP”. In BGP, an internet router advertises which routes he can handle himself to his neighbors. For example the German Telekom asks the European Internet Registry for a subnet. Once it got his subnet allocated, their routers start to announce to their peering partners (e.g. French Telecom, Austrian Telecom, Google, etc) that they are now capable of routing the subnet. The neighbors itself announce this new route to their neighbors and so on. Routes are handled by autonomous systems (AS). The German Telekom owns an autonomous system and within the autonomous system, they do whatever routing necessary to get to the right computer. For other autonomous systems like French Telecoms all that matters is that subnet W.X.Y.Z/NN is handled by the German Telekom AS, so they know to sent a package designated for that subnet to the German Telecom AS and don’t have to deal with it any further.. So if the French Telecom sees a package in their network that they know the German Telekom can handle, they are just forwarding it to it, and be done with it.

In DN42 this the network works just like that, just in small scale. You are a big ISP. You have an AS number, a number of peering AS and you announce the subnet that you can route. All autonomous systems will deliver packages for that subnet to you. It’s your responsibility to route them properly. In addition if you can reach an AS faster (in less hops) than another, your peers will start sending your packages to forward to the appropriate AS. So as an ISP you handle traffic designated for you, but also forward packages to others AS if necessary.

your first subnet

So you allocated your new /24 subnet. As an owner of the fresh subnet, one has to start announcing the subnet within the dn42 by telling all other participants in the network that your router is responsible for routing the whole subnet, therefore “announcing” the particular route to the network. Like in the internet, this is done using the exterior Border Gateway Protocol (eBGP). Common software implementations for small scale purposes like the DN42 are Bird and Quagga. To establish a first connection the network, a participant will need a trusted peer that is willing to start peering with him. The connection to the peer is established using a VPN tunnel, usually OpenVPN or IPsec. Once the tunnel is established the participant configures his BIRD to start announcing the his subnet (

# Configure logging
log syslog { debug, trace, info, remote, warning, error, auth, fatal, bug };

# Override router ID
router id;

# This pseudo-protocol performs synchronization between BIRD's routing
# tables and the kernel. If your kernel supports multiple routing tables
# (as Linux 2.2.x does), you can run multiple instances of the kernel
# protocol and synchronize different kernel tables with different BIRD tables.
protocol kernel {
	scan time 20;		# Scan kernel routing table every 20 seconds
	import all;
	export where source != RTS_STATIC;

# This pseudo-protocol watches all interface up/down events.
protocol device {
	scan time 10;		# Scan interfaces every 10 seconds

flattr this!



23.08.2013 22:14:02

Moving again

It’s been a long time since we moved to a new server, but now it’s finally moving time again. This means, no longer we are running Solaris but now we are back on Linux with KVM virtualisation.

There isn’t much to say about it, we are running standard KVM hosts with virtio for both network and block device access. Disks are mapped to LVM partitions on the host and we use Kernel Samepage Merging to overcommit memory. That being said, Solaris served us very well over the years and we are going to miss some of the Solaris capabilities. Zones + ZFS + Crossbow really worked well for us and it was really fun to work with a system that create bootenviroments and snapshots before upading.

It was easy to manage, easy get reallocate memory, space and create complex virtual networks. In the end we moved away not because we think Linux is better, but because there is much more software available for Linux (particularly some experimental stuff I want to get my hands on) and because Solaris went closed source again. It was too hard to get updates and up-to-date software in the end.

Anyway..this is just a short heads up that I am still blogging. More stuff coming up soon.

flattr this!


Wenger Online#Blog

22.08.2013 23:57:36

Schlafen wie auf Wolken

Unser nicht mehr ganz so kleiner Pirat braucht ein neues Bett. Da wie immer alle Besuche in diversen Möbelhäusern umsonst waren, weil die Modelle entweder nicht gefallen, aus Spanplatten gebaut sind oder nicht in den gesteckten Preisrahmen fallen, haben wir das kurzerhand selber gebaut.


Liste der Teile:

Als erstes habe ich die beiden Füße für den Fußteil gebaut. Dazu werden die beiden 9cm breiten Bretter exakt in der mitte durchgesägt. Dazu eignet sich am besten ein Japansäge, viel genauer als die Stichsäge und so schnell das es sich nicht lohnt extra die Kreissäge zu holen.
Jetzt werden immer zwei davon rechtwinklig mit Leim und jeweils 3 Schrauben zu einem Winkel zusammengefügt. Die oberen Ecken mit einem Zirkel rund anzeichnen und mit der Stichsäge rundsägen. Zuerst sehen diese Rundungen etwas grob aus, aber nach der Behandlung aller Kanten mit dem Viertelstabfräser in der Oberfräse ist es schon fast perfekt. Der Rest erledigt später das Schmirgelpapier. Als Verbindung der beiden Füße kommt jetzt ein 90cm (Breite der Matratze) + 2×2,8cm (Dicke der Bettwangen) Brett dazu. Das darf ruhig geleimt und geschraubt werden, der Fußteil ist klein und leicht genug zum Transport und muss nicht auseinandernehmbar sein.

Aus dem 30cm breiten Brett werden dann die beiden Regalseitenwände für das Kopfteil. Durch das senkrechte Bettabschlußbrett was genau zwischen zwei Regalbrettern eingeschraubt wird ist das Kopfteil ziemlich stabil. Aus das Kopfteil wird geleimt ung geschraubt.


Die Bettwangen müssen demontierbar und trotzdem stabil mit dem Kopf- und Fußteil verbunden werden. Ich habe dafür Rampamuffen verwendet. Dazu das Brett mit einer Schraubzwinge am Zielort befestigen und mit einem 8er Bohrer beide Bretter durchbohren. Im sichtbaren Brett mit einem Senkbohrer eine zur Schraube passende Senkung anbringen und die Bohrung im anderen Brett mit einem 11er Bohrer aufbohren (Lt. Baumarktmitarbeiter sollte ein 10er passen, ich habe da die Rampamuffen aber nicht eingedreht bekommen. Gefühlt wäre sogar ein 12 noch besser gewesen. Nur wer hat schon so einen großen Bohrer im Haus) und die Rampamuffe vorsichtig eindrehen. Dabei muß man tierisch aufpassen das diese auch exakt grade wird. Am besten geht das wenn man die spätere Schraube von hinten ein wenig eindreht, dann kann man damit gegenhalten.




Jetzt muss das ganze Holz noch geschmirgelt und 2x geölt werden und fertig ist das neue Bett.




Wenger Online#Blog

04.08.2013 20:20:56


Beim geschätzten zweihundertsten mal stolpern über die Kiste mit den Einzelteilen meiner fürs Wohnzimmer geplanten Lautsprecher habe ich das schöne Wetter genutzt und diese endlich fertig gebaut. Es handelt sich um Sippos, ein Lautsprecher enwickelt von Alexander Gresler der trotz seines günstigen Teilepreises von unter 30€/Seite einen erstaunlichen Klang entwickelt.

Als Material habe ich schlichtes MDF verwendet. Die Kanten habe ich mit einem Viertelstabfräser abgerundet, nach dem Schleifen habe ich das Gehäuse dann mit schwarzer Beize eingelassen. Bis auf ein paar Stellen, wo ich den ausgetretenen Weißleim nicht sofort entfernt habe, sieht die Oberfläche damit schön schwarz, fast wie mit Samt überzogen aus. Beim nächstenmal werde ich da wohl etwas mehr drauf achten.

Eine etwas schwierige Stelle waren die Ausfräsungen für die Bass Chassis. Diese sind leider so geformt das man sie von hinten hinter eine Plastik Frontplatte oder ähnlich schraubt. Würde man diese hinter eine 12mm MDF Platte schrauben so würde der dicke Rand den Klang nicht unerheblich beeinflussen, außerdem würde man auch diesen Rand ja dann sehen, er müsste also sehr gleichmässig gefräst sein. Um die Chassis denoch von vorne anschrauben zu können braucht man eine zweistuffige kreisförmige Fräsung, mit einem Fräszirkel wäre das eine einfache Sache. In Ermangelung dieses Werkzeugs habe ich die Löcher einfach frei Hand gefräst. Wenn man langsam schön dem Strich entlangfräst geht das zur not.

Einpassen der Chassis und des Bassreflexrohrs, anlöten der Kabel.


Alles ist an seinem Platz, fertig zum testen.


Und so sehen sie fertig aus.


Zuerst hatte ich Zweifel ob alles stimmt da sie die Bässe ziemlich überbetont haben und gelegentlich ein starkes Resonieren zu hören war, es lag aber aber am schrottigen Verstärker den ich zum testen verwendet habe. Im Wohnzimmer klingen sie richtig gut, ich werde gleich mal ein paar längere Musikhörsession machen…

mehr... v4

10.07.2013 12:08:00

Your favourite ideology is shit, and why you should be angry at political parties.

Capitalism has failed. I don’t mean this in the revolutionary, lets socialize All The Things way - all I mean is something that should really be obvious right away. Much as there has never been a communist nation (insofar as you can refer to a communist society as a “nation”), there really hasn’t ever been a proper anarcho-capitalist state. None of the various forms of revolutionary socialism have ever managed to transition over to anything but famine and opressive dictatorships, to the point where we’re pretty sure that even trying is a horrible idea, and none of the various attempts at removing as much regulation as possible ever go anywhere before the inevitable huge consolidated organizations pop up, go under, and enough people get hurt that thigs are rolled back very quickly (and lets not even talk about the half a dozen failed attempts at swimming libertopias).

So, if communism isn’t the silver bullet, and capitalism doesn’t work either, what does? Well, look around - what do you see? What is the economic philosophy nearly every nation on earth subscribes to? It goes by many names, depending on whatever seemed like a good idea at the time. Roughly, it can be described as “something somewhere in the middle between the two extremist ideas of no-government-at-all anarcho-capitalism and government-runs-everything centralized-socialism”.

It’s obvious that, while that covers just about everythig everyone does, that different nations still do thigs differently. Some nations have socialized medicine, some don’t. Some have huge economic safety nets, some don’t. Some are libertarian enough to make almost anyone who doesn’t post on the forums happy, some are still so socialist that socialist academia would rather pretend they somehow aren’t. As it turns out, while it is obvious that “some government - but not too much” is a generally sound principle, how much is “too much” is a matter that isn’t settled and might never be. And that is perfectly fine!

Society is a messy, complex thing, and a moving target. There usually is more than one side to any issue and no solution that is great for everybody, and what was perfectly fine yesterday might need reevaluation today, since the world and the people that live in it constantly change. That is why it is good that there are people who have various oftentimes diametrically opposite points of views about issues, so that these people can then get together and figure out how to solve the problems they have in some way that everyone can live with, after considering all the sides of the issue that there are. That way, whatever happens will usually be better than if any one group had just gone ahead and done whatever. Maybe it is a terrible idea to deregulate banking, maybe it isn’t. Maybe it is a terrible idea to regulate what people can and cannot say, maybe it’s fine to allow people to sue for personal insults. Maybe the state should have a monopoly on the exploitation of natural ressources, or maybe not. The wrongest possible thing is blindly following your own ideology without first checking if maybe, just maybe, the other guys have the right idea this time.

As long as we are at the neighbourhood association level, it’s perfectly possible for everyone to participate personally in political decision-making. As soon as a significantly greater number of people get involved, this becomes impractical. A good - not perfect, but pretty good - system for this is political parties. They are instruments of political decision-finding - they stand for various different sets of values and positions, and when voting, people delegate the actual process of talking things through thoroughly to them, so that things can get done. There’s obvious problems with that (lack of granularity, long time between elections, …), which can be offset in various ways, but as time goes on, there is one less-obvious problem that has become quite a bit more problematic recently.

To actually figure out what a good way to handle things is, you usually need discussion. If everyone already agrees, that seems great at the time, but when everyone pretty much agrees on everything, that starts leading to short-sighted, sub-optimal decisions.

But that is exactly what is happening right now.

Political parties should not be like a corporation trying to maximize shareholder value, always trying to get the maximum number of votes. A party should, of course, aim to get the greatest number of votes it can - but it should do that by convincing as many people as possible that its ideas are the way forward, not by constantly shifting their core values around until they aren’t considered inelectable by anyone anymore and then going for the “we are the lesser evil!” vote. Parties should not jump at any opportunity to shift closer to their political opponents in an effort to skim off some votes. Parties should not succumb to populism and do a complete one-eighty every time public opinion seems to shift. All this slow, unstoppable slide to the center leaves is parties with no real positions of their own who cannot possibly effectively represent the spectrum of opinions that there is.

But that is exactly what is happening right now.

Every time you hear a politician say “Some Other Party had this idea first, but we saw it was a good idea so we’re doing it as well!”, you should get angry. Every time you see a party abandon yet another long-held position to move further towards the center, you should get angry. You should tell these people “No! Have some fucking backbone! Risk being in the wrong! Debate with the opposition! If you must, compromise, but not right away!”, or, in other words, “Do your fucking job!” - which is the representation of the electorate, and not the conservation of personal political power. However, inevitably, that seems to be where things end up going, if left unchecked.

What can be done about this? Well, I certainly don’t claim to know. There are some ideas that I find neat - systems like the Pirate Parties “Liquid Democracy” tools, where votes can be delegated on a per-issue basis and the delegation can be changed at any time, or election systems that encourage smaller, more diverse parties - but these probably have terrible problems of their own. A good way to figure out what might work would be to get together and talk and maybe disagree about some things so that we can learn from each other. Lets disagree. Lets talk.


The Turkey Curse

28.06.2013 11:06:00

Abgeordnete mit eigener Whistleblower-Plattform

Ich will hier und jetzt nicht diskutieren, ob es sinnvoll ist, Geheimnisse innerhalb von staatlichen Institutionen und Unternehmen zu haben oder nicht. Es bedarf keiner hellseherischen Fähigkeiten um zu der Überlegung zu kommen, dass der Schutz von Geheimnissen in Zukunft immer aufwändiger wird, und wenn es um Geheimnisse aus Regierung, Verwaltung, Sicherheitsbehörden usw. geht auch um einen Preis, der sehr hoch sein könnte, der dafür zu bezahlen ist - und dabei gilt: Umso schmutziger das Thema, desto eher wird es negativen Fallout geben. Zu dem, was in den USA dazu passiert und meines Erachtens auch hier irgendwann auf die eine oder andere Art zu erwarten sein könnte, siehe den Artikel bei McClatchys. Deswegen gehe ich für die Überlegungen in diesem Text davon aus, dass es Dinge gibt, die nicht an die Öffentlichkeit sollen (z.B. aus Gründen “nationaler Sicherheit” oder wenn Betroffene ganz besonders geschützt werden müssen) aber es trotzdem möglich sein muss, Probleme entsprechend zu adressieren.

Grade wenn am Rande der Verfassung agiert wird, ist funktionierende Kontrolle ganz besonders wichtig. Was es aber zumindest geben muss ist eine Möglichkeit, Verstösse anonym melden zu können - und zwar nicht bei dem direkten Vorgesetzten, sondern entweder “weiter oben” oder an einer Stelle, die der Person, die die Informationen loswerden will, besonders vertrauenswürdig erscheint und Möglichkeiten hat, das entsprechend vertraulich zu thematisieren.

Binney und Drake, zwei NSA-Whistleblower, die auf dem 29C3 (siehe Aufzeichung des Vortrages) gesprochen haben, meinten beispielsweise, sie wären niemals an die Öffentlichkeit gegegangen um auf Mißstände aufmerksam zu machen, wenn es diese Möglichkeit gegeben hätte und sie die Probleme hätten melden können und so abgestellt worden wären. Aber natürlich gibt nicht nur Verfehlungen durch Mitarbeiter von Sicherheitsbehörden, auch in anderen Bereichen von Politik, Behörden und Unternehmen gibt es dieses Problem. Inwieweit Betriebsräte, Journalisten oder andere Strukturen helfen und was es sonst noch gibt, lasse ich aber mal aussen vor.

Eine dieser Stellen sind die Abgeordneten des Bundes und der Länder, und das aus mehreren Gründen: Sie sind die gewählten Vertreter des Volkes, sie besitzen eine verfassungsmässig garantierte Immunität und sind in der Lage, in nicht-öffentlichen Beratungen Dinge zur Sprache zu bringen. Ausserdem sind sie die, die ohnehin verfassungsmässig Kontrollfunktionen wahrnehmen sollen, speziell, wenn es um die Arbeit der Exekutive geht.

Nathan hat mich durch sein Posting auf der Liberationtech-Liste und in Gesprächen in den letzten Tagen noch mal auf das Projekt DeadDrop hingewiesen, das von Aaron Swartz entwickelt wurde und z.B. beim New Yorker unter dem Namen Strongbox seit Mai im Einsatz ist. Eigentlich ist das System für Newssites konzipiert, kann aber prinziell natürlich auch von völlig anderen Entitäten in derselben Art genutzt werden. Ziel dabei ist es einfach, dem Empfänger über Tor. Nachrichten und Daten zukommen lassen zu können.

Die Überlegung wäre also, so eine Strongbox für die Abgeordneten zu haben - und zwar für jeden einzelnen und unabhängig von der Fraktion. So kann also auch, überspitzt gesagt, ein Schlapphut, der Probleme der Auslegung einer Maßnahme hat, sich an Leute wie Uhl und Konsorten wenden, wenn er glaubt, er wäre die Person, die das angehen kann statt dem Parlamentarier einer anderen Fraktion.

Bereitsteller der Infrastruktur könnte der Bundestag (oder der entsprechende Landtag) sein oder die Fraktionen oder auch die Abgeordneten das selbst machen - was für letztere vor allem dann recht einfach gehen könnte, wenn man ihnen ein entsprechendes Device zur Verfügung stellt (vielleicht sowas wie einen Rasberry Pi mit Strongbox). Dazu gehört natürlich auch noch, dass die Abgeordneten alle in der Lage sind, mit einer für Bürger einfach zu benutzender und nicht zentral kontrollierter Crypto ausgestattet werden (also GnuPG/PGP/OpenPGP) und ihre Schlüssel entsprechend hinterlegen.

Da wir grade beim Thema sind: Die Zwiebelfreunde haben auf Indigogo eine Crowdfunding-Kampagne für mehr Tor Exit Nodes und Bridges gestartet, die ihr unbedingt mit ein paar Euro unterstützen solltet, wenn euch etwas an Anonymität und Zensurumgehung gelegen ist!


The Turkey Curse

24.06.2013 13:30:00

Ich gehe nicht zum Reden in den Wald

Ludwig Greven hat bei der Zeit einen Artikel mit dem Titel Wer nicht belauscht werden will, sollte nicht überall reden geschrieben, der mich doch mehr als nur ein wenig irritiert. Er schreibt u.a. folgendes:

Zu glauben, dass die öffentlichen Proteste an der Kontroll- und Datensammelwut der Sicherheitsbehörden daran grundlegend etwas ändern werden, ist weltfremd.

Meint der Autor etwa, es sei besser die Klappe zu halten und diesem gespenstischen Treiben nicht entschlossen entgegen zu treten - und zwar auf allen Ebenen, die in einer demokratischen Gesellschaft zur Verfügung stehen? Wenn es eins gibt, das immer noch wirkt, ist es eine laute und fordernde Öffentlichkeit, die sich nicht von Geheimdiensten, der Polizei, Kriminellen oder Terroristen einschüchtern lässt. Denn wenn das passiert, haben wir ohnehin schon verloren.

Weiter unten schreibt er etwas, was mir schlicht die Sprache verschlägt:

In der DDR gingen Menschen, die sich unbeobachtet von der Stasi unterhalten wollten, in den Wald oder in einen Park und sprachen unter vier Augen miteinander. Wer heute unbeobachtet bleiben möchte, sollte vielleicht nicht im Internet miteinander reden.

Wie bitte? Ich soll zum Reden in den Wald gehen? Wo bin ich denn? Ich habe nicht vor, diesen Staat zu stürzen, sondern mich an demokratischen Diskursen zu beteiligen oder auch gerne mal vertraulich mit meiner Frau, meinen Freunden, meinen Kollegen, meinen Kunden oder meinem Anwalt oder Arzt zu kommunizieren. Kann auch vorkommen, dass ich mal eine Demo mitplane oder ein vertrauensvolles Gespräch oder Mailwechsel mit einem Abgeordneten oder Journalisten habe. Und soviel Wald gibt es auch gar nicht mehr, damit jeder, der das braucht, vertraulich kommunizieren kann.

Es zeugt doch schon von einem echten Problem, wenn ich normale Kommunikation (und das ist so ziemlich alles was ich mache) verschlüsseln muss wie ein Geheimnisträger, nur damit nicht irgend so ein Freak aus VS, BND oder BKA auf den schmalen Trichter kommt, er müsse auf Grund irgendeiner diffusen Bedrohung und falsch interpretierten Zusammenhängen heraus meine intimsten Details kennen. Da macht es auch keinen Unterschied, ob diese Details per Brief, E-Mail, Telefon oder meinen privaten vier Wänden ausgetauscht werden. Diese Kommunikation ist tabu und darf, wenn überhaupt, nur kurzzeitig abgeschnorchelt werden, wenn es dazu einen hinreichenden, strafrechtlich relevanten Anfangsverdacht gibt oder meine Kommunikation ein Problem der nationalen Sicherheit sein sollte.

Wenn ich mal plane, diesen Staat zu stürzen, komme ich vielleicht gerne auf die Idee mit dem Wald zurück. Aber ich bin da sehr weit von entfernt und werde versuchen, mein Recht auf Vertraulichkeit und Intregrität meiner informationstechnischen Systeme durch alle meine bescheidenen Mittel einzufordern.

Ich weiss nicht, wie es anderen geht: Ich werde jedenfalls auch in Zukunft nur in den Wald gehen, um mich zu erholen oder Pilze zu sammeln, aber ganz sicher nicht, um ganz normal privat zu kommunizieren.


The Turkey Curse

23.06.2013 20:15:00

Und er hilft doch!

Niko Härting stellt in seinem Blogeintrag unter dem Titel Prism und Tempora: Konsequenzen für Deutschland einige Betrachungen auf, denen man durchaus folgen kann. Allerdings stellt er eine Sache fest, der ich klar widersprechen muss. Er schreibt unter 5.:

Wer meint, mit Datenschutzgesetzen, einer richterlichen Kontrolle oder sogar einem Informationsfreiheitsgesetz Bürgerrechte gegen die Dienste schützen können, argumentiert naiv.

Naiv ist diese Ansicht keinesfalls, denn Härting scheint nicht zu verstehen, dass Datenschutz wesentlich mehr ist als ein paar bedruckte Zettel, auf denen steht, dass eine Meldung bei einem Einbruch auf Server stattfinden muss. Datenschutz richtig verstanden ist nämlich nicht zuletzt die Frage, wie man Datenabfluss und Mitlesen von Verbindungen verhindert (also genau das, worum es im Kern geht).

Systeme, die ein datenschutztechnisches Design haben, das den Begriff auch verdient, sind gegen Tempora weit besser gefeit als es Härting glauben machen will. Denn was den Diensten in die Hände spielt ist ja nicht nur die fehlende Kontrolle über sie, sondern vor allem, dass sich die wenigsten Betreiber von Internetangeboten Gedanken darum machen, wie man Daten und Kommunikation ordentlich schützt. Denn der Schutz gegen kriminelle Angreifer ist erst einmal derselbe wie der gegen andere, also z.B. staatliche Angreifer. Aus Anwendungs- und Anwendersicht ist da keinerlei Unterschied.

Ich sehe praktisch jeden Tag Verstöße gegen Datenschutz und Einbrüche, die hätten verhindert werden können, wenn sich die Betreiber die Sachen zu Herzen genommen hätten, die im BDSG stehen oder, etwas verklausuliert, dahinter stecken. Und damit meine ich nicht nur Datensparsamkeit oder die Sicherung von Passwörtern als Hashes. Ein einfaches und gleichzeitig überaus effektives Beispiel ist Zertifikats-Pinning bei SSL, bei dem eine Interception zumindest solange ins Leere läuft, wie die Schlapphüte keinen Zugriff auf die Zertifikate haben. Ein anderes Beispiel aus derselben Kategorie ist die Nutzung von sogenannter Perfect Forward Secrecy. Das hilft zwar nicht gegen die Speicherung, aber es hilft ganz hervorragend gegen das Mitlesen und gegen die Auswertung (Härting kann mir ja gerne mal erklären, wie das funktionieren soll). Sogar einen recht großen Teil der Metadaten kann damit abgesichert werden.

Und speziell im Zusammenhang mit Tempora und Prism müssen übrigens zwei andere Dinge gemacht werden, die damit in Zusammenhang stehen: Safe Harbour abzuschaffen oder zumindest ordentlich zu härten sowie ein Vertragsverletzungsverfahren gegen Großbritannien auf EU-Ebene. Damit gibt es noch keine bessere Kontrolle der deutschen Geheimdienste. Aber gegen die hilft, wie schon angedeutet, in weiten Teilen konsequente und vernünftige Krypto. Denn die Zugriffe auf und die Ermächtigung, die der NSA und die GCHQ haben jeweils durch die Geheimgerichtsbarkeit haben, gibt es hier nicht. Ohne die sind aber auch keine vergleichbaren Maßnahmen machbar wie die, die durch die Leaks ganz am Anfang offenbar wurden.

Ein starker Datenschutz ist der elementare Kern einer Gesellschaft, die auf funktionierende Software und sichere Datenverarbeitung angewiesen ist. Das ausser Acht zu lassen ist, mit Verlaub, grob bösartig.