Crow’s Nest

Aus Piratenwiki
Wechseln zu: Navigation, Suche

Bei Crow’s Nest (engl. für Krähennest, der „Ausguck“ am Mast eines Schiffes) handelt es sich um eine Sammlung von Daten und Scripts, um zur Transparenzförderung maschinenlesbare Informationen über die Piratenpartei sowie andere deutsche und internationale Parteien zu sammeln.

Grundsätze

  • Die Daten müssen in einem leicht lesbaren, offenen Format zur Verfügung stehen.
  • Die Daten müssen leicht zu kopieren und zu spiegeln sein, um keine ausfallgefährdete zentrale Stelle einzurichten.
  • Änderungen an den Daten sind zu protokollieren; die Geschichte der Daten (Änderungen sowie frühere Messwerte) muss leicht zugänglich und spiegelbar sein.
  • Die Daten sollen so weit wie möglich automatisiert abgefragt werden, um Verzögerungen durch menschlichen Zeitmangel zu minimieren.
  • Sind automatisierte Abfragen nicht möglich, so sollen die Daten von Menschen eintragbar sein, um wenigstens unregelmäßig Richtwerte zu besitzen.
  • Es soll per Konvention eine „Master-Version“ der Daten geben, die aber bei Ausfall oder Unzuverlässigkeit leicht ersetzbar ist.

Aus diesen Punkten folgt fast zwangsläufig, dass ein verteiltes Versionskontrollsystem wie Git die optimale Lösung darstellt. Als Datenformate kommen z.B. CSV, Plaintext und XML in Betracht.

Repository

Das Git-Repository zu Crow’s Nest findet sich bei GitHub: http://github.com/scy/crowsnest/ Weitere Dokumentation zur Verzeichnisstruktur und zur Funktionsweise liegt direkt im Repository bzw. wird bald dort liegen.

Patches und Erweiterungen sind gern gesehen, Ansprechpartner ist Scytale. Direkten Schreibzugriff wird es vorerst nicht geben, da der Code direkt auf seinem Rechner ausgeführt wird. Was so alles noch kommen soll, liest man unter Maschinenlesbare Daten.

Frühere Messwerte

Im Repository wird jeweils nur der aktuelle „Messwert“ (z.B. die aktuelle Mitgliederzahl) angezeigt. Die Speicherung der „geschichtlichen“ Daten (also z.B. die Mitgliederzahl am 3. Februar 2009) wird Git überlassen, denn dafür ist es ja ein Versionskontrolltool. Die älteren Dateiversionen sind also jederzeit abrufbar und werden auch beim Clonen des Repositories mit übertragen. Um auf ältere Versionen zurückzugreifen, lässt man sich via Git einfach die ältere Version anzeigen. Wie das genau funktioniert, sprengt hier allerdings den Rahmen.

Jetzige Architektur

Auf einem Rechner von Scytale wird jeden Tag um 12 Uhr mittags das Script bin/cron.sh ausgeführt, das den aktuellen Stand pullt, bin/update.sh ausführt, die Änderungen committet und wieder pusht.