Webdesign und Medien
comments 24

Datenvisualisierung von Fefes Blogzeiten

Ja, ich lese Fefe. Manche Themen sind gut recherchiert, über andere kann ich nur den Kopf schütteln, aber darum soll es hier nicht gehen. Auffällig an dem Blog ist, das er keine Uhrzeiten enthält. Auch im RSS-Feed fehlt jede Angabe. Allerdings haben die Beiträge eine Identifikationsnummer der Art b308810e. Ich wollte wissen, was diese Zeichenketten bedeuten.

Man sieht die Pausen, wenn Fefe keine Zeit hat.

Liest man sie als hexadezimale Zahl, ergibt sich für die Posts eines Tages eine absteigende Nummerierung. Über die Jahre fällt die Zahl sogar sehr stark. Es muss also einen Zusammenhang mit der Uhrzeit geben, auch wenn etliche Sprünge enthalten sind. Wer möchte, kann sich das mal ansehen. Nach rechts geht die Zeit von 2005 bis 2011, nach oben sinken die IDs. Jeder Punkt steht für einen der 21’786 Posts. Deutlich zu sehen sind die Sprünge alle 0x80000000 Sekunden. Fefe hat nämlich neun Bits der ID invertiert. Dreht man sie mit XOR 0x81013f00 wieder richtig, sind die IDs stetig absteigend. Da er anscheinend ein Fan von binären Operationen ist, beträgt die Differenz zwischen ID und Unix-Zeitstempel genau 0x80000000.

// Good old PHP:
$id = hexdec($id);
$id = $id ^ hexdec("81013f00");
$id = hexdec("80000000") - $id;

Zum Schluss baute ich eine Visualisierung der Blogzeiten (HTML4-Retro-Version), in der deutlich zu sehen ist, wann Fefe nicht bloggen konnte. Für mich ist es immer wieder erstaunlich, was man mit einer Idee und öffentlich verfügbaren Daten zeigen kann.

Update

Ich habe nicht bedacht, dass man durch Invertieren aller Bits aus absteigenden Zahlen aufsteigende machen kann. Es reicht also zum Wiederherstellen der Zeiten:

# ID = ID XOR 0xfefec0de
# Diesmal in SQL:
FROM_UNIXTIME(CONV(UPPER(`id`), 16, 10) ^ 0xFEFEC0DE)

Ich ging schon davon aus, dass die Zahl fefe enthalten sein wird, fand sie aber nicht. Für euch noch ein kleines Script zum Umrechnen, gebt einfach die ID ein oder eine ganze URL:

<input id="fefets" />
<span id="fefets2"></span>

<!-- Und noch etwas jQuery: -->
<script type="application/javascript">
jQuery(function() {
  jQuery('#fefets').change(function() {
    var fefets = new Date((parseInt(jQuery('#fefets').val().
         replace(/[^a-f0-9]/gi, ''),16)^0xfefec0de)*1000);
    jQuery('#fefets2').html(' wurde erstellt am '+ 
         '<em>'+fefets.toLocaleString()+'</em>.');
  });
});
</script>

Update 2

Fefes Blog mit Uhrzeiten gibt es auf rerefefe.netaction.de. Die Seite steht unter GPL2, die Kommentare kommen von refefe.

Update 3

Gerade sehe ich, dass Datenjournalismus eine lange Tradition hat. Im Oktober 1941 zählte der Justizbeamte Friedrich Kellner die insgesamt 281 Todesanzeigen seiner Tageszeitung. Mithilfe weiterer Daten kam er auf 30’000 gefallene Soldaten pro Monat plus Dunkelziffer. Aus heutiger Sicht klingt das banal, aber damals wollten die meisten Deutschen glauben, es gäbe kaum Todesfälle in den eigenen Reihen.

24 Comments

      • erdgeist says

        Den Source gibts bei Fefe im CVS, ich hab da einzig ein webcvs rangebammelt. Da hättest Du bei einer echten Rechereche vorbeikommen müssen.

        • Dann hätte ich wohlwollend eingestehen müssen, dass der fefec0de alles andere als geheim ist und nie einen Artikel darüber geschrieben. Wäre doch schade.

  1. Florian says

    Und ich hatte ihn mal gebeten, in den RSS Feed wenigstens das Datum rein zu tun, er meinte, er hinterlässt kein Onlineprofil von sich. Und die Funktion Timestamp → URL sei auch ganz geheim 🙂

    Danke 😉

    • Ahja. Die unschlagbare Fefe-Logik. Ich habe eigentlich nur eine Möglichkeit gesucht, aus den Informationen Datum, ID, Text die Reihenfolge der Posts innerhalb der Tage zu ermitteln. Das brachte mich erst dazu, die ID zu entschlüsseln.

      Man kann auch sagen: Obskuritäten ziehen Hacker an, das müsste er doch eigentlich wissen.

  2. erdgeist says

    ts ^= 0xfefec0de; /* hehe */

    So als Hinweis, wonach du suchen solltest.

  3. fewbar says

    m.A. falsch interpretiert…die Lücken sind eher die Zeiten, zu denen er schläft und ergo nichts schreiben kann.

    • Dann fiel er jeden Morgen um 17-18 Uhr mit einem Haufen neuer Posts aus dem Bett. Ich denke eher, dass die Posts in der Offline-Zeit vorbereitet wurden und dann auf einen Schlag ins Netz kamen.

      Normalerweise bloggt er zwischen vier und neun Uhr nicht, da wird er er wohl schlafen. Nur in den Monaten mit den Lücken schrieb er auch nachts. Das spricht für deine Theorie.

      • erdgeist says

        Hint: Fefe war für ein größeres amerikanisches Softwarehaus auch mal etappenweise vor Ort tätig…

        • Verwirr uns nicht mit Fakten. Wenn du möchtest, kannst du aber gerne an die auffälligen Muster Ereignisse schreiben.

  4. Pingback: @spackeria: Wessen Blogverhalten wurde durchvisualisiert? DA KOMMT IHR NIE DRAUF! http://bit.ly/jkCnkr #postprivacy (via @MichaelKreil)

  5. Pingback: @infolust: RT:spackeria: Wessen Blogverhalten wurde durchvisualisiert? DA KOMMT IHR NIE DRAUF! #postprivacy (via @MichaelKreil http://bit.ly/jkCnkr

  6. Pingback: @PlanetDerDeppen: @fefesblog Wir wissen, wann du aufs Klo gehst: https://www.netaction.de/datenvisualisierung-von-fefes-blogzeiten/ Hammer!

  7. Pingback: @tazjin: Episch, hier hat jemand mal @fefesblog visualisiert: http://t.co/coJaHE5

  8. Pingback: @MichaelKreil: @fefe_blog "Fefe, we are watching you!" :) bit.ly/jkCnkr #postprivacy

  9. Cool, wir wissen jetzt, wann Fefe schläft… Hält bitte da dann jemand die Welt an, damit der Arme nichts verpasst? Ich finde 4 Stunden Schlaf eh schon beeindruckend, und teilweise scheint er ja auch gar nicht zu schlafen… Mysteriös… 🙂

    • Das kann ich nicht nachvollziehen:

      $ wget netaction.de
      --2011-11-23 18:48:40--  http://netaction.de/
      Auflösen des Hostnamen netaction.de... 213.239.202.144
      Verbindungsaufbau zu netaction.de|213.239.202.144|:80... verbunden.
      HTTP-Anforderung gesendet, warte auf Antwort... 302 Found
      Platz: http://www.netaction.de/ [folge]
      --2011-11-23 18:48:40--  http://www.netaction.de/
      Auflösen des Hostnamen www.netaction.de... 213.239.202.144
      Wiederverwendung der bestehenden Verbindung zu netaction.de:80.
      HTTP-Anforderung gesendet, warte auf Antwort... 302 Found
      Platz: https://www.netaction.de:443/ [folge]
      --2011-11-23 18:48:40--  https://www.netaction.de/
      Verbindungsaufbau zu www.netaction.de|213.239.202.144|:443... verbunden.
      HTTP-Anforderung gesendet, warte auf Antwort... 200 OK

      Ebenso für rerefefe.netaction.de.

      • bestreite ich garnicht, sieht hier genauso aus
        allerdings kommt mit dem Status 200 nur eine Datei deren vollständiger Inhalt “Hallo Welt!” darstellt.

        Zu rerefefe: Das tut wieder, gestern und vorgestern waren da keine aktuellen Posts vorhanden.

Leave a Reply

Your email address will not be published. Required fields are marked *