Hackathon

From
Jump to navigation Jump to search

HWL/BRN Hackathon

Beim HWL/BRN Hackathon setzen sich interessierte Studenten und Doktoranden zusammen, um innerhalb einer Nacht konkrete Verbesserungen am Testbed, der eingesetzten Software und Infrastruktur umzusetzen.

Zweiter Hackathon

Der 2. Hackathon findet am 16.10. ab 18 Uhr statt.

Themenvorschläge

  • Alles was vom ersten Hackathon noch übrig ist:
    • Verringerung der Kopplung der einzelnen brn2 Elemente untereinander durch Entwicklung und Umsetzung eines strikteren Schichtenmodells (Chris); erste Visualisierungsversuche
    • Tests für Treiber in jenkins (Robert, Dominik)
    • Simulation: Verbesserung der run_sim; wenn bestehendes Verzeichnis angegeben wird, dann Simulationsskript noch einmal ausführen mit einem Info-Disclaimer (Chris, Robert)
    • Konzept entwerfen für zuverlässigeres HWL (z. B. Absicherung der Knoten gegen Kernel-Panic bei Server-Ausfall, um händisches Neustarten von über 100 Knoten zu vermeiden – this really sucks)
    • BRN-Testbed-Basis-Script: läuft immer, wenn keine Messungen stattfinden und soll anderen Internet zur Verfügung stellen. Ein solches Script kann zum Testen vieler Elemente und zum Messen verwendet werden.
    • Fix Hawk (Robert)
  • Maintenance KnotenDB: Welche Knoten sind ausgefallen? Welche aus Haus 4 müssen überarbeitet werden wegen Umzug? Und hübsche Koordinaten für alle!
  • Infrastruktur: Backup für gitsar einrichten, insbesondere für jenkins
  • Revisions-String in Click-Binaries, müsste jemand mit Autotools-Erfahrung machen, von der Theorie her reicht ein phony Makefile-Target, dass ungefähr so einen Befehl ausführt: (date;uname -a;git log -1 --decorate=short) | awk 'BEGIN {printf "const char *build_info = \"\\\n"} { printf "%s \\n\\\n", $0 } END { printf "\";\n" } ' > build_info.c (wenn das drin ist natürlich noch einen Befehl in die Handler-Infrastruktur zum abfragen)
  • (maybe) Software-Updates: (leider sehr problematisch für wgts, trotzdem Björns Wunschliste):
    • ath5k / ath9k für alle
    • OpenWRT Versionen aktueller Kernel
    • Kernel: Segmentation Fault -> Syslog und Core Dumps enablen (try "ulimit -c unlimited" for core dumps)
    • ntpclient fehlt auf wndrs
    • libnl-3 (OpenWRTs libnl-tiny segfaults!)

Zeitplan

  • 17:30 Uhr Einkaufstour zum Kaufland
  • 18:15 Uhr Essen bestellen
  • 18:30 Uhr Planung der Arbeitsaufteilung, evtl. Gruppenbildung
  • 18:35 Uhr Hackathon
  • ...

Erledigte Aufgaben

  • Alten brn-Code entfernen (elements/brn)
  • Ausbau des automatisierten Testings (test.sh aus brn-scripts automatisch laufen lassen und auswerten, evtl. in brn-tools) (Dominik)

Erster Hackathon

Der Hackathon findet zum ersten Mal am 30 Juli 2012 ab 19 Uhr im SAR Poolraum statt.

Themenvorschläge

Folgende Themenvorschlägefür Projekte existieren zur Zeit:

  • Verringerung der Kopplung der einzelnen brn2 Elemente untereinander durch Entwicklung und Umsetzung eines strikteren Schichtenmodells (Chris); erste Visualisierungsversuche
  • Tests für Treiber in jenkins (Robert, Dominik)
  • Ausbau des automatisierten Testings (Skripte + Auswertungen für verschiedene Elemente) (Dominik)
  • Ausbau der Dokumentation (siehe Dokumentation mit Sphinx weiter unten; Dominik, Chris)
  • Simulation: Verbesserung der run_sim; wenn bestehendes Verzeichnis angegeben wird, dann Simulationsskript noch einmal ausführen mit einem Info-Disclaimer (Chris, Robert)
  • Konzept entwerfen für zuverlässigeres HWL (z. B. Absicherung der Knoten gegen Kernel-Panic bei Server-Ausfall, um händisches Neustarten von über 100 Knoten zu vermeiden – this really sucks)
  • Web-Gui wieder an den Start bringen
  • BRN-Testbed-Basis-Script: läuft immer, wenn keine Messungen stattfinden und soll anderen Internet zur Verfügung stellen. Ein solchen Script kann zum Testen vieler Elemente und zum Messen verwendet werden.
  • Fix Hawk (Robert)


Zeitplan

  • vor 19.00 Kurzer Besuch beim Kaufland (Getränke)
  • 19:00 Kurze Einführung in die neue Infrastruktur (gitolite und Jenkins, evtl. sphinx) (Dominik)
  • 19:20 Besprechung der Themen, Planung (Dominik, Robert, Chris)
  • 19:45 Essen
  • 20:30 Hackathon
  • ...

Dokumentation mit Sphinx

  1. Unter Ubuntu Sphinx installieren: apt-get install python-sphinx
  2. In "helper/docs/sphinx/" befindet sich zum Generieren der Dokumentation ein Makefile ("make help" liefert alle Varianten)
    1. Die HTML-Dokumentation ("make html") befindet sich nach der Generierung in "helper/docs/sphinx/_build/html/index.html"
    2. Die PDF-Dokumentation ("make latexpdf") befindet sich nach der Generierung in "helper/docs/sphinx/_build/latex/HWL.pdf"
  3. Die Dokumentation selber wird in reStructured Text geschrieben

Erledigte Aufgabe

  • click-brn bug squashing: Zur Zeit gibts 230 Warnings in Jenkins, nach dem Hackaton gibt es keine mehr (Alle)
  • E-Mail Notification in Jenkins (Dominik)
  • Treiber ins git bringen (Robert, Dominik)
  • JIST Integration (Robert)
  • Jist: Scheduler-Bug (Click) fixen (Robert)
  • NS3 Integration inkl. NS3 Simulation via run_sim.sh (Robert)
  • Bessere Abstraktion der verschiedenen Knotentypen bei Experimenten im Testbed (Robert)