erdgeist is a Berlin based freelance and open source developer and political activist. Feel free to stroll around in the public parts of his brain.


Write an email to preferredly PGP encrypted, the key, fingerprint: F7BE F9DA 9349 6A28 6EDB 12FD F2F6 132B C32F B29F. Reach me via Jabber at, where my OTR fingerprint is 7A4BC16B 479D4D10 EAC30B3B B52FD269 ADF818E3.

Follow @erdgeist on Twitter. Listen to the OHM podcast with monoxyd and CCC's monthly radio show Chaosradio. Look out for contributions to Die Datenschleuder and, sporadically also on Frühstücksblog. Get the book 1984.exe.

Software projects

opentracker is a highly scalable tracker software for the bittorrent protocol, currently in use on the largest bulk trackers around.

ezjail is a jail management framework for the FreeBSD operating system, aiming to aid in setting up und updating virtual FreeBSD instances.

jaildaemon is a tool for the FreeBSD operating system to allow flexible and secure communication from jail environments to the host system.

minimunin is a tiny munin-node implementation for FreeBSD written in pure bourne shell providing basic plugin support.

elektropost is an ongoing mail server and webmail frontend project, documented to be set up on a FreeBSD jail and instanced on

el is a unix tool aiding the Telefonbuch project for export and search queries.

anonbox is a web service to generate and maintain throw away email addresses, instanced on, including a javascript implementation of a unicode capable mbox-to-html renderer.

Telefonbuch is a project to quickly dump a certain kind of digital phone books.

vchat-client is a curses based chat client for the arcane vchat protocol.

briefkasten is a web service to anonymously submit messages via the web generating PGP mails and is instanced on the zeit-online briefkasten.

etherpad is a documentation project on how to setup the classic etherpad software in a FreeBSD jail.

timestretch is a fast implementation for SOLA, a sample time stretching algorithm.

Unless state otherwise, the software is released under beerware license. Some project's documentation is not yet migrated. You can also browse around my gitweb.


  • Just add water

    Since letsencrypt has made it easy to actually get the little green lock icon in all the browser, I've deployed it nearly everwhere, where reloading keys every three months is not an issue (looking at you, dovecot and ejabberd). When using FreeBSD, the security/dehydrated port has made things smooth enough for me not to be to afraid to execute it from a periodic script: It only requires bash and curl and can be executed as non-privileged user.

    So here's a step by step instruction how to properly set it up:

    1. Install the port/package:

      pkg install dehydrated
    2. Create the letsencrypt user, for example:

      echo letsencrypt::::::::/bin/sh: | adduser -w random -f -
    3. Create your config copy /usr/local/etc/dehydrated/config by duplicating the example:

      cp /usr/local/etc/dehydrated/config.example /usr/local/etc/dehydrated/config
    4. Edit /usr/local/etc/dehydrated/config so it reads (Don't forget to remove the # at the line's start.)

    5. By default, dehydrated's work dir is /usr/local/etc/dehydrated. I do not like that, because the letsencrypt user needs write access to that directory for its housekeeping files and could modify things like the config and – worse – the script. So I create a different work dir:

      mkdir /var/dehydrated
      chown -R letsencrypt /var/dehydrated
    6. And then I change /usr/local/etc/dehydrated/config to read BASEDIR=/var/dehydrated. (Again, don't forget to un-comment the line.)

    7. The web directory for challenge replies defaults to /usr/local/www/dehydrated. It needs to be writable by letsencrypt user:

      chown -R letsencrypt /usr/local/www/dehydrated
    8. Configure domains.txt:

      echo '' > /var/dehydrated/domains.txt
    9. I want dehydrated to be run weekly by periodic, I also setup the deploy script (see below). I put those lines in /etc/periodic.conf:

    10. The script needs to be setup, it will tell all frontends to reload certs. For my nginx installations, it is enough to put this into /usr/local/etc/dehydrated/

      /usr/sbin/service nginx reload
    11. Don't forget execute permissions:

      chmod +x /usr/local/etc/dehydrated/
    12. Finally, for nginx to correctly route requests to the web dir, add this to your server block. Don't forget to enable listen 80:

      location /.well-known/acme-challenge/ {
          alias /usr/local/www/dehydrated/;
    13. Before running dehydrated for the first time, you should reload your nginx config. This also is an implicit check for correct permissions on ;):

    14. Run dehydrated to set up and agree to terms and conditions:

      su letsencrypt -c 'dehydrated --register --accept-terms'
    15. Then run it again to actually do a challenge/response and generate certs:

      su letsencrypt -c 'dehydrated -c'
    16. If everything went fine, tell nginx to use the new certs in your server block. Don't forget to enable listen 443 ssl:

      ssl_certificate /var/dehydrated/certs/;
      ssl_certificate_key /var/dehydrated/certs/;
    17. Make nginx use your new certs:


    You should be able to see your web site with a little green lock icon now, carrying a letsencrypt cert.

    In order to verify that all your setups have been setup correctly, I wrote a script that checks them all:

    for host in $HOSTS; do
      unset starttls
      [ ${host%:*} = ${host} ] && host=${host}.:443
      if [ ${host%*:*:*} != ${host} ]; then
        starttls="-starttls ${host#*:*:} "
      echo $host ${starttls}
      notafter=$( yes q | openssl s_client -servername ${host} -connect ${host} ${starttls} 2>/dev/null | openssl x509 -noout -enddate | grep ^notAfter= | cut -d = -f 2- )
      secs=$( date -j -f "%b %d %T %Y %Z" "${notafter}" +%s )
      now=$( date +%s )
      printf "% 4d days .. until %s\n" $(( (secs - now) / 86400 )) "${notafter}"
  • Running poudriere in ezjail

    Ever since poudriere was published, I felt the obligation to run a public repository with packages tuned to my needs (i.e. without X11, without Java, with a certain TLS library as default, etc). But considering this tool's complexity, I never felt comfortable running it on a production system's host. So naturally I've been looking for a way to jail it away and only 2 years after this tutorial outlined how that works, I managed to acutally try it out. Long story short: This guide kinda works and I got poudriere running in a jail. But I want the jail to automatically start up, get the correct dataset attached and receive all permissions needed to do zfs stuff and creating its own builder jails, in other words: I wanted to embed it as an ezjail.

    Now, turns out, that's actually not so hard: If you're running ezjail with zfs enabled, you first create the dataset for poudriere to work on:

    zfs create -o jailed=on tank/poudriere

    then you just create your poudriere jail, making sure to pass it an ::1 IP address:

    ezjail-admin create -c zfs poudriere,lo0|::1

    and then manually edit the two config lines in /usr/local/etc/ezjail/poudriere to read:

    export jail_poudriere_parameters="children.max=10 allow.mount=1 allow.mount.devfs=1 allow.mount.procfs=1 allow.mount.zfs=1 allow.mount.nullfs=1 allow.raw_sockets=1 allow.socket_af=1 allow.sysvipc=1 allow.chflags=1 enforce_statfs=1"
    export jail_poudriere_zfs_datasets="tank/poudriere"

    dont forget that this jail needs a resolv.conf, too and now you can just:

    ezjail-admin console -f poudriere

    and follow the FreeBSD handbook section on poudriere to get your poudriere jobs running. Since I wanted the web server jail to serve the packages, I exposed them in /etc/ by adding a line:

    /usr/jails/poudriere/tank/poudriere/data/packages /usr/jails/ nullfs ro 0 0

    and after an ezjail-admin restart, you should be able to use the packages built by adding a /usr/local/etc/pkg/repos/www.conf of:

    www: {
      url: "file:///packages/103amd64-local-workstation/",
      enabled: yes

    Update: Should you be missing the file systems inside your poudriere jail, make sure to mount them in your periodic script that runs poudriere (using zfs mount -a, before running poudriere), or take a look at the thread on the ezjail mailing list regarding rc.d/zfs not finding the dataset when it's run.

  • Sonne im Tank

    Seit September bin ich e-mobil. Ich bin mein ganzes Führerschein tragendes Leben lang auf Mopeds durch Berlin geheizt, beginnend bei einer Schwalbe, seitdem immer mit lauten und müffelnden Zweitaktern – bei entsprechendem Verschleiß. Ich wollte vermeiden, mehrere Tonnen Stahl durch die Gegend zu hieven, wenn ich doch nur meinen Hintern von A nach B bewegen wollte, und habe daher trotz mehrerer Autos auch immer noch als primäres Fortbewegungsmittel ein Moped beibehalten. [1] Trotzdem ist der wohlige Geruch von Zweitaktabgasen, der harmonische und weit wahrnehmbare Klang nicht unbedingt das Omen, das man seiner Ankunft voraussenden möchte – und die Wartungsanfälligkeit dieses fragilen Haufens beweglicher Teile ließ mich schon vor einer Weile die Fühler in Richtung Elektroroller ausstrecken.

    Zwar gab der Markt seit sechs, sieben Jahren auch welche her – allerdings schreckten die Preise im Bereich einer Kleinwagenneuanschaffung ab und meine guten Vorsätze verschwanden schnell wieder in der Schublade. Und die frühen Reichweiten-Angebote von so 25 bis 30 Kilometern haben nichts mit den Strecken zu tun, die ich an einem terminlich gut befüllten Tag in Berlin so in die Reifen schrubbe. Mein Reichweiten-Maßstab ist die Sommerresidenz von Freunden nahe Berlin, für die ich rund 80 Kilometer runterreißen muss – jaja, kein Spaß auf einem geschwindigkeitsbegrenzten Kraftfahrzeug, und auch auf meinen Verbrennern hatte ich unterwegs schon eine Stammtankstelle auserkoren. [2] Aber zumindest kann ich mal eben ranfahren, "Kaffee" kaufen und weiterfahren. "Mal eben" Akkus aufladen kannste hingegen knicken.

    Schon vor ein paar Jahren [3] startete die Firma Gogoro in Taipei einen Dienst, bei dem man sich um das Laden nicht mehr kümmern muss, sondern die Akkus an Straßenecken im Späti leer gegen voll tauschen kann. Die sind nun als Mietmobile nach Berlin expandiert [4], jedoch finde ich die weder gutaussehend noch gutklingend. Aber hohe Absatzzahlen ziehen ja auch immer sinkende Preise nach sich und richtig:

    In den letzten Jahren hat sich da so richtig was getan: Die Preise für Elektromotoren und Batterien sind gepurzelt – nicht zuletzt durch die krassen E-Mobilisierungsprogramme in China und Indien [5], Ladezeiten und Energiedichten kommen in erträgliche Größenordnungen und ein Berliner Unternehmen bietet Hipster-geeignete Scooter zum Kampfpreis an. [6] In der Rechts-Unten-Vollausstattung mit zwei Akkus ist man schon mit 3,5 k€ [7] dabei – das ist nur marginal mehr, als ich in meine alten Benziner investiert habe. Und das liegt vor allem daran, dass an so einem E-Roller nix mehr dran ist:

    Nabenmotor im Hinterrad nebst Motorsteuerung, einigermaßen stabiler leichtgewichtiger Rahmen, quasi ein besseres Fahrrad, Akkufach und Sattel. Also habe ich zugeschlagen und fahre seit September quasi durchgängig E-Roller im Berufsverkehr. Und ja, es rockt: Kaum bewegliche Teile, so ein Elektromotor ist im Vergleich zu einem Verbrenner trivial und hält gern mal zig Jahre. Gut, bisschen Bremskram, Tacho und Verkleidung, aber im Prinzip war's das. Und als mir das Akkufach wegen eines unglücklichen Steinschlags an einer Ecke rausgebrochen ist, gab's vom Hersteller ein Paket mit einem tiefgezogenen Plasteteil, das ich mit einem Schraubendreher in 10 Minuten selber tauschen konnte. Ich kann im Prinzip für die nächsten zwanzig Jahre mit dem Gerät fahren, ohne nennenswerte Wartungskosten zu haben.

    Und dann der Verbrauch: Aufladen geht mit 220 V, Netzteil ist bei und lädt in rund vier Stunden voll. Die Hersteller-Angaben von "70 % aufgeladen in einer Stunde" sind doch ein bisschen optimistisch, aber eine komplette Ladung bekomme ich zuhause für rund 30 Cent. Da ich nicht erst tanke, wenn die Akkus leer sind, ist der genaue Preis schwer zu schätzen, aber meine monatlichen Ausgaben für's Tanken sind von 60 Euro auf 6 Euro gesunken. Und das noch in den ersten Monaten, wo mich der Fahrspaß das Moped noch deutlich häufiger benutzen lässt. Und Fahrspaß it is!

    Das Moped, was ich mir ausgesucht habe, ist im Vergleich zu den Leihrollern von eMio und Coup rund 20 % kleiner und deutlich leichter – und jedes am Roller gesparte Kilo muss ich nicht abnehmen, um an der Ampel schneller wegzukommen. Entsprechend saust es sich an der Kreuzung auch los. Danach gleitet man quasi durch den Straßenverkehr und viel toller: durch Parks und über Fahrradwege und Bürgersteige, ohne negativ aufzufallen. Um das Moped am Café abzustellen, bin ich auch schon durch die Stuhlreihen auf dem Gehweh gerollt und niemand hat auch nur geguckt – mit dem 2-Takter undenkbar. Und wenn man einen Sozius an Board hat [8], ist sogar ein entspanntes Gespräch möglich.

    Tzschja, und der Pferdefuß? Die Reichweiten-Experimente sind nicht vollständig geglückt: Vollständig leer kann (und sollte man) das Akku nicht realistisch fahren, da auf den letzten 15 % Ladestand ein bequemes Fußgängertempo rauskommt [9]. Und auch dann landet man nicht bei den 50 Kilometern Distanz, sondern eher so bei 45, von denen man nur die ersten 40 vorankommt. Selbst mit den beiden Akkus sind die 80 Kilometer zur Datsche [10] des Kumpels also nicht (oder nur ohne Bremsen und mit viel Bangen) ohne Zwischenstopp zu erreichen. [11] Das heißt, dass ich mir jetzt ein Restaurant suchen muss, wo ich auf dem Weg kurz zum Schnitzel Essen anhalten und währenddessen zwei Akkus kurz-betanken muss. Hmm.

    Auch ansonsten ist die Kapazität noch nicht da, wo man überhaupt nicht mehr drüber nachdenken muss: Die Akkus selber wiegen so acht Kilogramm und kommen mit Henkel: Mit Erdgeschoss-Büro ist das Tauschen schon in die tägliche Routine übergegangen, weil der Motorcontroller auf den ersten 25 % Akku noch einmal spürbar schneller anzieht und daher ein volles Akku spaßsteigernd ist. [12] Allerdings ist es nicht so, dass ich ernstlich leide, wenn ich mal zwei Tage das Tauschen vergessen habe, also kein nervöses Hetzen wie beim Smartphone. Was die Kapazität angeht, bin ich verdammt nah am Wohlfühlbereich dran, und wenn von den wöchentlichen Presseberichten über eine Verdopplung und Verdreifachung der Energiedichte in Akkus im Labor [13] auch nur eins die Serienreife erreicht, erreiche ich die Auftank-Frequenz des Benziners.

    Da ich auch stolzer Winterfahrer bin, habe ich ein paar Erfahrungen mit den Akkus in der Kälte gemacht. Grundsätzlich gilt: Akkus nicht nachts draußen parken. Und wenn man sie tagsüber ein paar Stunden in der Kälte lässt, zieht das Moped nochmal deutlich schlechter an und man verliert bei Frost rund 10 % Reichweite. Kein Showstopper, aber sollte man beachten.

    Das einzige, was mich beim Unu ein bisschen ankekst, ist die Helmsituation. Das Akkufach ist riesig, und wenn man nur einen Akku mitnimmt, hat man echt viel Stauraum für einen mittleren Einkauf. [14] Jedoch ist das Akku quaderförmig hoch (es passen also zwei nebeneinander), was keinen Platz mehr für einen normalen Helm lässt. Sinnigerweise passt der Helm prima rein, wenn kein Akku drin ist: Aber ganz ehrlich schleppe ich lieber Helm statt Akku mit. [15]

    Nun kann ich also mit gutem Beispiel voran Energie sparend durch die Stadt heizen und meine Gesamtökobilanz wieder massieren. Beim Recherchieren bin ich noch auf das offensichtlich weit verbreitete Vorurteil gestoßen, Elektro-Mobile würden ja viel dreckiger betrieben werden, als Benziner, da der Strom aus Kohlekraftwerken käme. Gilt für mich zwar nicht, aber noch krasser ist, dass die meisten Raffinerien Benzin mittels Kohlestrom herstellen [16], der die Bilanz pro Kilometer sofort wieder Richtung Elektro-Mobil korrigiert. Und Meldungen wie die hier [17] machen mir Mut, wirklich Sonnenkraft unterm Hintern zu spüren – Proctoheliose FTW!


    [1] Als ich mal den Verbrauch meines letzten Mopeds auf 100 km hochgerechnet habe, schlackerten mir aber auch die Ohren. Zweitakter sind wirklich ineffizient.
    [2] Präteritum und Perfektform von erkiesen.
    [7] Dabei kostet der zweite Akku 700 Euro und das Upgrade von der noch erträglichen 2kW-Motor-Version auf die 3kW-Vollausstattung 500 Euro. Den 1-kW-Motor zum Starterpreis von 1600 Euro will man sich nicht wirklich antun.
    [8] Für einen Beifahrer muss man sich ob des geringeren Platzangebots sehr lieb haben oder zwei schmale Personen anordnen, sonst heißt es Gepäckträgerberührung.
    [9] Jaja, ich weiß das daher, dass ich das Akku auch tatsächlich leergefahren habe.
    [10] Für Wessis: Ferienlaube.
    [11] Ob das mit einem der beiden Motoren geringerer Leistung möglich gewesen wäre, weiß ich dabei aber nicht.
    [12] Es kann daher sein, dass die Anzugsfreudigkeit auf den ersten Kilometern in die Reichweite frisst.
    [13] Citation needed.
    [14] Der Rest vom Großeinkauf passt bequem zwischen die Füße und in den Rucksack.
    [15] Obwohl das im Winter vielleicht doch die bessere Wahl wäre.
  • Don't piss in my beer

    Twelve years ago I started a little project called ezjail, an opinionated tool that helps FreeBSD admins to make compartmentalization a lot easier. Long before real virtualisation was a real thing for the rest of us, it helped me scratch my itches maintaining virtual servers I could give out to my more or less technically savvy friends without too much headaches regarding the safety of my files. Of course, this project has been released under my favorite licence.

    Keep in mind, that this licence actually doesn't ask for much. Basically it only says not to steal it and run around claiming it's yours. Now, you'll never guess, what happened in 2013. ;)

    That's right: After apparently not reacting quickly enough to some man page rewrites submitted to me by an author from the philippines, I seem to have made an enemy for life! I've encountered an interesting version of a hostile fork named qjail: my project was copied, the fork renamed and most (but not all) of the references to the ezjail project name replaced by the fork's name.

    When I reported my astonishment to the adults running the FreeBSD project, they quickly took action and blocked the port until qjail acknowledged me being the author. Others noticed as well and decided to move away from the copy cat.

    The open source philosophy and some licence law details must have been lost on the guy, as becomes obvious by some later quite funny follow-ups. To quote from emails later in that thread (you have to start reading from the bottom).

    One does not have to be a lawyer to know the lack of any license verbiage embedded in computer programs released to the public becomes property of public domain forever. Putting license verbiage on your next port version is unenforceable because it's already property of public domain.

    And even more hilarious

    This outburst only confirms my suspicion that your suffering from dementia caused by advancing age. I tried to give you a way to save face as I purposed in my private email to you.

    I understand what you are going through and forgive you for your actions. I pray you are under medical care for this condition. There are drugs which reduce these effects and prolong the periods of normalness.

    While I usually try not to stand in the way of others doing stuff, I found the process annoying enough to act. In turn, ezjail became a constant target of FUD and suggestions to switch in all kinds of forums I never had the time to check and correct.

    What made things worse is that the guy just started learning the very language ezjail was written in. Considering jails being a security mechanism, that's a very bold move.

    In the end, the differences in qjail became so distinct that he could not rip off later developments like the whole zfs sub system, contributed by a friend of mine.

    Time went by and things changed in the FreeBSD world that were a little unfortunate to my project: FreeBSD jails were reorganized and the official jail management tool moved from reading a simple config language to a structured one (making it impossible to edit and parse in the rather simple scripting language sh). A legacy wrapper was added which showed a depreciation message every time ezjail would start a virtual system:

    WARNING: Per-jail configuration via jail_* variables is obsolete. Please consider to migrate to /etc/jail.conf

    Of course, this only was grist to the FUD mill, claiming ezjail was outdated. For technical reasons, while it is easy to get rid of this warning (qjail did), but unfortunately not when doing it properly. (Tl;dr: you can reproduce the original functionality of the wrapper, but you're doomed to chase changes in the system's implementation forever. Also you keep several, possibly diverging states of your config files without a way to parse the ones that the OS considers official.)

    If you zoom out on the thread I just linked to, you'll notice that the very guy who stole my code now lobbies to have the wrapper code removed, which would essentially break ezjail.

    And to make things even more absurd: when called out on his proposal, he approached me with a "fix" to the carnage he tries to bring upon me. You'll never guess if he wrote the code he asks me to copy into my project himself. ;)

    In summary: I can't really lurk around in all the forums and honestly I don't have the time for fighting an unsuspected arch enemy. But if you want to understand how frustrating open source development can become, once you're up against someone with more time than ability, feel free to join me over a beer!


    As an impressive turd seasoning, I just found that qjail's current licence header reads:

    As per the international "Berne Convention" this work is protected and all rights reserved.

    Before qjail may be forked, written permission must be obtained from the author.

    No worries mate. Not gonna fork it. Promise!

  • Von Besuchern und Teilnehmern

    Das Boot ist voll! Die Hackerszene wird überlaufen von lauter „Möchtegernhackern“. Im Hackcenter leuchten angebissene Äpfel statt Pinguinen. Und jetzt nehmen uns diese ganzen Hipster noch die Arbeits^WKonferenzplätze weg – und die können noch nicht mal Assembler! Wer nicht mal unsere Sprache lernen will und sich selber einen Vorverkaufs-Bot hacken kann, was will der überhaupt auf dem 33C3!??! Wo sind die goldenen Zeiten geblieben, als man noch wer war, noch unter sich? Und im Hackcenter gab's Pornos zum Tauschen! Und dann hält eine Frau die Keynote?! Und noch eine aus Afrika? Und programmieren kann die auch nicht! Der CCC war mal Club und Veranstaltung, da ging es um Computer!


    Ich kann das Gemaule abgehängter und abgehalfterter Möchtegern-„Hacker“, die in ihrem Leben außer dem regelmäßigen Installieren ihrer Lieblings-Linux-Distribution wenig Nerdiges hinbekommen haben, nicht mehr hören. Wer meint, der CCC definiere sich hauptsächlich über Computer, Hard- und Software, hat die Historie des Vereins nicht verfolgt. Beim ersten öffentlichen Hack, dem HaSpa-Hack, ging es nicht primär darum, dass die Nerds super programmieren konnten. Es ging immer darum, über den Tellerrand hinauszublicken, Wissen in Erfahrung umzusetzen und Transferleistungen aus anderen und in andere Wissensgebiete zu erbringen. Nicht umsonst heißen die CCC-Dezentralen „Erfahrungsaustauschkreise“. Die Arroganz, Nerds gäbe es quasi nur durch und mit Keyboard, die sich da durch Twitter und Heise-Foren wabert, ist erschütternd. Ich glaube ja, erst der Zuzug von und die Öffnung hin zu den wahrhaft Begabten aus anderen Disziplinen hat den Computer-Hackern die gesellschaftliche Relevanz eingebracht, derer wir uns jetzt rühmen. Und der Austausch ist auch für uns Keyboard-Nerds fruchtbar: Gestalter machen unsere Software nutzbar und ansehnlich. Das Wissen von Generationen von Projektplanern macht unsere Software überhaupt erst fertig. Und erst der Bedarf der Welt an diverser Software FÜR alle Fachbereiche ermöglicht es uns, aus unserem Hobby ein Auskommen nach Hause zu tragen.

    Historisch betrachtet hat sich das Internet zum mächtigsten Werkzeug der Nerds aller Wissensgebiete gemausert: Denn um vor zwanzig Jahren Gleichgesinnte in seinem Orchideenfach zu finden, musste man entweder zu teuren jährlichen Fachkonferenzen fahren oder sich mit den vom Munde abgesparten Fitzelchen an Fachliteratur Zugang mühsam selber erschließen. Und ja, anfangs war dabei schlicht das Medium die Nachricht. Damals war man eben was Besonderes, wenn man „was mit Computern macht“. Heutzutage ist man eben was Besonderes, wenn man nix mit Computern macht. Deal with it. (Und wenn wir ehrlich sind, drehte sich auch damals die Hälfte dieses Internets um die Soap-Operas mit James T. und Jean-Luc.)

    Wer wirklich Hardcore-Security-Nerds beim Blackhatten begaffen will, für den sind da draußen dutzende Kommerzkonferenzen gewachsen. Das ist aber nicht der Grund für das Wachstum des Congress. Wir haben – ganz im Gegenteil und als Realwelt-Spiegel des Internets – eine nichtkommerzielle Vision unserer Zukunft aufgebaut, in der man auch und gerade als Orchidee willkommen ist, solange man teilnehmen und nicht nur besuchen will. Wir finden uns als Teilnehmer mit einem Hacker-Mindset zusammen, die sich in allen Fachgebieten wiedererkennen. Man sehe nur in den Track „Science“: Sogar aus der drittmittelverseuchten und publikationsnormierten Academia können wir freudig Agrar-Nerds gewinnen, die sich ihre Meriten buchstäblich durch Arbeit verdient haben und diese auf dem Congress mit anderen teilen wollen.

    Statt laut pöbelnd einen Altnerd-Brexit zu fordern, müssen wir die Arme weiter aufhalten und unseren Hacker-Kultur-Raum arroganzfrei allen anderen Nerds zum Kopieren vorleben.

  • Fleischroboter

    Ab wann wird aus einer Masse von selbstbestimmten Menschen, die sich durch das Verteilen ihrer Sensorik ins Netz und dem Optimieren ihrer Routen und Handlungen mit Hilfe eines Algorithmus Reibungsverluste im täglichen Leben ersparen wollen, eine Masse von fremdbestimmten Menschen?

    Momentan fluten Hunderttausende die Straßen auf der Suche nach Poke-Stops, die teilweise von Betreibern nahe liegender Shops gefüttert werden und teilweise findige Bauchladenverkäufer anlocken. Doch zuweilen führen Fehler in der Datenbasis dazu, dass nachts Gestalten vor ehemaligen Kirchen rumlungern und die Cops den neuen Besitzer des Hauses für einen Dealer halten.

    Dieses Problem des unfreiwilligen Fleshmobs ist nicht unbedingt neu: Begabte Trolls haben schon verabredungswillige Männer auf einen Haufen zusammengelockt und andere wiederum folgen freiwillig Weganweisungen, deren Ziel sie nicht kennen, aber deren Ziele sie unterstützen. Daniel Suarez hat in “Daemon” eindrucksvoll beschrieben, wie sich weiterhin selbstbestimmt fühlende Menschen zu den fleischgewordenen Ausführenden eines Algorithmus werden können, wenn man ihre Anreize mit den ürsprünglichen Zielen des System-Betreibers in Übereinklang bringt.

    Längst lassen wir uns in weiten Teilen unsere Lebens trotz besseren Bauchgefühls von Navigationsalgorithmen entlang für uns maßgeschneiderter Routen führen. Der Algorithmus wird sich schon etwas dabei gedacht haben: Eine eventuell längere Strecke kann überhaupt erst dazu führen, dass die kürzere nicht verstopft ist. Warum man ihm trotzdem folgen sollte? Aus dem selben Grund, warum man nachts an der roten Ampel stehen bleibt: Das Vertrauen darauf, dass alle anderen den Anweisungen genauso folgen und man nicht extra an jeder Kreuzung mühsam gucken muss.

    Wenn man gleich dabei ist, könnte man doch die Route für alle anderen dynamisch neu gewichten, wenn ein Krankenwagen ansagt, wo er entlangfahren muss. Und wenn die Protokollstrecke für Staatsbesuche schon im Vorfeld aus dem Routing fällt, müssten Motorradpolizisten viel weniger Fahrzeuge anhalten? Und wieso nur staatliche Stellen? Können nicht Fremdenverkehrsvereine verschiedener Kurorte Navi-Herstellern in einer Auktion Anreize geben, alle Fahrten (außer den Patienten natürlich) um den eigenen Ort herumzuleiten? Andere Orte freuen sich eventuell über zahlende Durchgangsreisende.

    In der Realität folgen schon heute viele Menschen in ihrem Beruf den Anweisungen der zentralen IT. Für die Befüllungskräfte in Amazon-Warenhäusern entscheidet der Algorithmus die kompletten Arbeitsabfolgen während der Schicht. In Banken sind Kundenbetreuer längst zu Computer-Vorlese-Mannequins verkommen, die Ergebnisse des Kreditbewertungsalgorithmus vortragen. Und selbst, wenn wir in unserem Berufsleben nicht direkt von Entscheidungen eines Computers abhängig sind, so begegnen uns die Auswirkungen in der Behördeninteraktion.

    Prinzipiell ist die Idee des Vorschußvertrauens Staat => Bürger mit einer randomisierten oder gesteuerten Nachprüfung mit hohen Strafandrohungen keine schlechte. Aber wer z. B. eine Steuer-Tiefenprüfung zu erdulden hat, wird anhand einiger, für die in Bewegung gesetzten Steuerprüfer nicht direkt ersichtlicher Parameter bestimmt. Die holländische Polizei rühmt sich dabei gar, bei Verdächtigen, denen sie nicht direkt etwas nachweisen kann, durch diese “Systemlotterie“ Reibungsverluste zu erzeugen, um sie auf Spur zu halten. Die dabei dann aus allen möglichen Institutionen einreitenden Bediensteten wissen dabei nicht zwangsläufig, dass sie ein kleines Rädchen in einer zielgerichteten Kampagne sind.

    Doch während hier noch ein Mensch die Entscheidung trifft, gibt die automatisierte Auswahl “interessanter” Ziele für eine tiefere Untersuchung mehr Anlass zur Sorge. Wenn man das soziale Wirken von Personen in der Gesellschaft statistisch betrachtet, ergibt sich in den meisten Modellen eine Gaußverteilung. Und an den Rändern der Glockenkurven wird es für den Algorithmus interessant: Wer von der Norm abweicht, gibt mehr Anlass zur genaueren Überprüfung. Wenn alle Behörden die selben Kriterien zur Zielpersonenfindung ansetzen, sieht sich der Betroffene auf der Empfängerseite einer Flut eigentlich komplett unabhängiger Entscheidungen unterschiedlichster Institutionen. Wie sich das anfühlt, können Opfer von "racial profiling" eindrucksvoll berichten.

    Nun, was für den Einen Hort von Kriminalität und Niedertracht, ist historisch gesehen Keimzelle gesellschaftlichen Fortschritts, Widerstand gegen ungerechte staatliche Repression, Quelle von Kunst, Kultur und neuer politischer Ideen. Gewiss gibt es Teile der Bevölkerung, die so ein automatisiertes Rundlutschen des Verhaltensspektrums im Rest der Gesellschaft guthieße. Doch wenn uns an einer selbstbestimmten kulturellen Entwicklung etwas liegt, sollten wir der Dienstanweisungen aus dem Algorithmus mit gesundem Menschenverstand und einer gehörigen Portion Skepsis begegnen.

    Und bis dahin sollte man weiter die Frischluft-Dusche beim Pokémon-Go-Spielen mitnehmen.

  • Hilfreicher Einreicher

    In den letzten Jahren habe ich mich an den Planungen der Congresse des CCC beteiligt und dabei einige wiederkehrende Probleme mit den Einreichungen erlebt. Folgende Hinweise sollen dabei helfen, zukünftig Frustrationen zu vermeiden, wenn gute Vorträge wegen schlechter Beschreibungen nicht angenommen werden.

    Geh immer davon aus, dass Dich keine Sau kennt.

    Die vielen Einreichungen werden von vielen Freiwilligen reviewed, die eventuell nicht seit 20 Jahren dabei sind und wirklich schlicht nicht wissen, wer Du bist.

    Wenn Deine Bio nicht erklärt, warum DU derjenige sein solltest, der den Vortrag hält, müssen Leute nach Aufzeichnungen Deiner Vorträge googlen. Nicht auf allen ist man da von der Schokoseite zu sehen.

    Das selbe gilt für den Abstract der Einreichung. Gehe davon aus, dass die Reviewer schon ungefähr das Fingerspitzengefühl haben, wie später die potentiellen Besucher: Wenn Titel und Abstract nicht einladen, kommt keiner. Wieso also überhaupt erst ins Programm nehmen?

    Such Dir den Track sehr genau aus.

    Zwar korrigieren wir zuweilen den Track, wenn er offensichtlich nicht passt, aber im Zweifel dauert das und die falschen Review-Teams bekommen ihn zu sehen, die dann nichts damit anfangen können.

    Die Konkurrenz innerhalb eines Tracks ist knochenhart, die zu verteilenden Stunden sind knapp. Im Zweifel kommt er in anderen Tracks besser weg.

    Zuletzt gilt natürlich: Auch das Publikum selektiert seine Vorträge nach Tracks grob vor.

    Mit welchen Reaktionszeiten muss ich rechnen?

    Einreichungen werden ab Beginn der CfP-Periode reviewt und es kann sein, dass es sofort Feedback gibt.

    Einige Teams arbeiten kontinuierlich, andere in Wellen. Die kommunizierten Deadlines sind Deine Handreichung. Versuche, zu den Acceptance-Deadlines erreichbar zu sein, da wir auf Deine confirmation angewiesen sind, bevor wir Deinen akzeptierten Vortrag in den Fahrplan aufnehmen können.

    Je später Du confirmst, desto später wirst Du auch im halfnarp sichtbar. Das ist unser Werkzeug, Kollisionen bei den Teilnahmewünschen zu vermeiden.

    Wenn Du etwas Vertrauliches präsentieren willst, wende Dich am besten verschlüsselt an einen Betreuer eines Track-Teams oder an Einreichungen im Konferenzplanungssystem können von vielen Reviewern gesehen werden.

    Gib wirklich IMMER Deine Verfügbarkeit rechtzeitig an.

    Das Fahrplanschieben ist eine unfassbar komplexe Angelegenheit, bei der uns zwar Software hilft, aber am Ende müssen sehr viele Constraints beachtet werden. Wer nicht sagt, wann er kann, findet auch nicht statt.

    Wer wirklich nur zu den Prime-Time-Slots verfügbar ist, oder nur an einem Tag oder nur ein paar Stunden, muss damit rechnen, dass wir den Vortrag dann nicht annehmen können, oder ihn hintenan schieben.

    Bereite Dich auf Verkürzung der gewünschten Vortrags-Länge vor.

    Halbstünder sind keine Vorträge zweiter Klasse. Sieh ein Angebot einer Verkürzung auf 30 Minuten als Rettung vor der Ablehnung aus Zeitknappheit. Oft hilft es dem Vortrag sogar, ihn knackiger zu gestalten.

    Es ist total okay, ein "nein, geht nicht" zu antworten. Wir sind dann nicht böse, sondern müssen dann halt gucken. Im Zweifel kommen wir dann leider nicht zusammen.

    Gib die Voraussetzungen ans Publikum an.

    Einreichungen mit dem Fokus "For bloody beginners" sind gewiss kein No-Go, aber wir versuchen, die Balance zwischen anspruchsvollen und Einsteiger-Talks zu finden.

    "Schonmal gehalten" ist kein K.O.-Kriterium, nicht alle Teilnehmer sind auf allen Sec- und Sozialwissenschaftskonferenzen, nudele trotzdem bitte nicht "Deinen einen 08/15"-Talk.

    Reiche in einer Sprache ein, in der Du Dich wohlfühlst.

    Der beste Vortrag ist verschwendet, wenn die Art der Präsentation unmöglich macht, zu folgen.

    Wenn eine Einreichung mit schlimmen Grammatikfehlern in englisch daherkommt, oder halb nach google translate riecht, müssen wir befürchten, der Vortrag erfährt in Sachen Präsentation genausowenig Liebe.

    Wir wissen, dass man sich trotzdem sehr gut vorbereiten kann, auch wenn man in der Fremdsprache nicht sattelfest ist. Das zeigt man unter anderem mit einer gut übersetzten Einreichung oder einem Link zu Aufzeichnungen eigener englischer Vorträge.

    Kein Grund, sauer zu sein. Der Deutsche Nerd ist sehr stolz auf seine Englisch-Kenntnisse und wir haben viele schroffe Reaktionen auf vorsichtige Sprache-Ändern-Fragen erlebt. Aber Star Trek auf Englisch zu gucken ist eine andere Nummer, als vor 3000 Leuten verzweifelt nach Vokabeln zu stammeln. Glaubt mir: Been there, done that.

    Im Zweifel für Deutsch-Muttersprachler: Auf deutsch vortragen, jeder Vortrag wird gut live übersetzt.

    Für Speaker aus dem Rest der Welt: Holt Euch einen Co-Speaker dazu, der Euch hilft. Das habe ich in meiner Opening letztes Jahr auch gemacht, um alle mir wichtigen Punkte sicher zu kommunizieren.

    Mache Dich mit dem Congress wenigstens grob vertraut.

    Mit Geheimdienst- und Militärvergangenheit anzugeben, stößt bei Teilnehmern und in den Review-Teams auf Unverständnis.

    Auch wenn "viele Congress-Teilnehmer" nach "viel Kohle" aussieht, fahren wir das Event wirklich hart an der schwarzen Null. Jeder Euro, den Du uns nicht an Anreisezuschuß kostest, kann in Deko oder billigeren Eintritt fließen. Bitte sei maßvoll.

    Der Congress ist eine riesengroße werbefreie Zone. Zumindest geben wir uns die größte Mühe. Wenn Dein Firmenlogo zu groß auf Folien oder Deinem Shirt prangt, mach Dich darauf gefasst, ausgebuht zu werden. Bitte sei maßvoll.

    Niemand in der Contentorga oder der Koordinatoren vor Ort wird bezahlt. Viele haben Dayjobs, Kinder und noch lauter anderen Kram für den Congress zu tun. Bitte sei höflich, vor allem zu den Engeln vor Ort.

    Wie umgehen mit Ablehnung?

    Wenn wir schreiben "ist leider proppevoll", ist das keine Ausrede. In einigen Tracks werden nur eine von fünf Einreichung angenommen. Bevor Du "aber dieser und jener langweilige Talk wurde genommen und ich nicht" schreibst: Andere Teilnehmer = andere Interessen, daher gibt es unterschiedliche Tracks mit unabhängigen Kuratoren, die eben Dinge ins Programm nehmen, die Dich nicht interessieren.

    Wir müssen wirklich viele gute Einreichungen rejecten. Reflektiere vor dem doll Ärgern nochmal über Deine Einreichung, ob es nicht doch den einen oder anderen validen Grund für die Ablehnung geben könnte.

    Wenn Du Dich wirklich mißverstanden fühlst und meinst, der Abstract sei nur mißglückt, kannst Du eventuell noch nachbessern und auf die rejection-E-Mail antworten. In den meisten Fällen weiß das Content-Team aber schon, was sie tun.

    Die Track-Teams entscheiden (trotz anderslautender Gerüchte) nicht nach Nase, sondern wirklich nach Qualität der Einreichung und nachrangig nach rotem Faden und ausgewogener Fahrplanplanung. Trotzdem sind wir auch nur Menschen und die Veröffentlichung zu schroffer Reaktionen auf eine Ablehnung – gerade in sozialen Medien – kann im nächsten Jahr zur Begegnung mit einem gekränkten Reviewer führen.


    Ich weiß, ich weiß. Für den 32C3 ist der Guide ein wenig spät. Ich werde ihn nächstes Jahr wieder hervorkramen.


See the lecture about opentracker on 24C3 (slides), Wahlcomputer in Erlangen, Format String Exploits, see the interviews and TV show contributions (todo).

Skypixels are helium balloons lit by independent LED boards remote controlled by a NFR2401 controller.

GodMachine was an installation in the Dresden Museum of hygiene, allowing visitors to control the weather by gestures.

Laserharfe is a music instrument built together with friends. It converts hands moving in laser beams to MIDI signals and works on off the shelf electronics.

Some rather personal content, songs I wrote or recorded, some in my former band, Pumpanickle. Poetry I wrote. Recently into selecting or writing intros for podcasts alternativlos, turing galaxis, Frühstücksblog podcast, Neusprech, Fnord News Show and OHM podcast.