Hackathon: Difference between revisions

From
Jump to navigation Jump to search
 
(21 intermediate revisions by 6 users not shown)
Line 2: Line 2:


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.
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.

== Next Hackathon ==

* Packet::clone() kopiert nicht (!!!) den Inhalt. Die Kopie erhält eine Referenz auf den Inhalt des Original. Das muss in BRN gecheckt werden. uniqueify() kopiert auch den inhalt. Deshalb: Packet::clone() -> Packet::clone()->uniqueify()


== Dritter Hackathon ==
== Dritter Hackathon ==


Der 3. Hackathon findet am xx.1y. ab 18 Uhr statt.
Der 3. Hackathon findet am 01.11. ab 18 Uhr statt.
Doodle: http://doodle.com/wvnrtwisxnkcbw3t
Doodle: http://doodle.com/wvnrtwisxnkcbw3t


=== Themenvorschläge ===
=== Themenvorschläge ===


'''Jeder einzelne Vorschlag sollte schaffbar sein oder ist entsprechen vorzubereiten!!'''
'''Jeder einzelne Vorschlag sollte schaffbar sein oder ist entsprechen vorzubereiten!! Es sollte zudem ein Verantwortlicher genannt sein. Wenn möglich auch ein Co-Pilot!'''


* Seismo-olsrnodes: check md5 of Click (during nodeinfo); pack click only if click new and if reboot
* Alles was vom ersten und zweiten Hackathon noch übrig ist:
* TMPLOG: LOGDIR auf /tmp setzen (bei bedarf oder Schalter) und dateien zurückkopieren
** test.sh für testbed ausbauen (Beispielmessung)
* Alles was vom ersten und zweiten Hackathon noch übrig ist
** Device-Macros ausbauen (Controlfile, Testbedmessung, Auswertung,...)
* test.sh für testbed ausbauen (Beispielmessung) (Robert,Chris)
** Verringerung der Kopplung der einzelnen brn Elemente untereinander durch Entwicklung und Umsetzung eines strikteren Schichtenmodells (Chris); [[erste Visualisierungsversuche]]
* Device-Macros ausbauen (Controlfile, Testbedmessung, Auswertung,...) (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)
* Verringerung der Kopplung der einzelnen brn Elemente untereinander durch Entwicklung und Umsetzung eines strikteren Schichtenmodells (Chris); [[erste Visualisierungsversuche]]
** 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.
* 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) (Alle, kurzes Brainstorming!)
** Fix Hawk (Robert)
* 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. (Robert)
* Fix Hawk (Robert)
* Change right (execution) of scripts during params measurement
* Skripte für git pull/push und neubauen der Quellen nach Update (Robert, Frank, Chris)
* Maintenance KnotenDB: Welche Knoten sind ausgefallen? Welche aus Haus 4 müssen überarbeitet werden wegen Umzug? Und hübsche Koordinaten für alle!
* 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
* (maybe) Software-Updates: (leider sehr problematisch für wgts, trotzdem Björns Wunschliste):
* (maybe) Software-Updates: (leider sehr problematisch für wgts, trotzdem Björns Wunschliste):
** ath5k / ath9k für alle
** ath5k / ath9k für alle
Line 38: Line 45:
=== Erledigte Aufgaben ===
=== Erledigte Aufgaben ===


* Infrastruktur: Backup für gitsar einrichten: Es werden tägliche und wöchentliche Backups von /home/git und /var/lib/jenkins nach /mnt/backup/rsnapshot mittles rsnapshot angefertigt (Dominik)
* Dokumentation zusammenführen: Infrastruktur Doku verschoben nach https://sarwiki.informatik.hu-berlin.de/Services und dort obsolete Dienste gelöscht (Dominik)
* run_sim.sh depends on bc: abhängigkeit wird jetzt in brn-tools.sh geprüft (Dominik)
* test.sh: valgrind shouldn't be used if not inststalled (Robert)
* package config check auf libX11, libXt, libXmu (Dominik, Robert, Frank)
* Beliebige Quellen (git, svn, urls (tar,..),...) für Click und ns3 beim Bauen (Robert)


== Zweiter Hackathon ==
== Zweiter Hackathon ==
Line 89: Line 102:
* Ausbau des automatisierten Testings (Skripte + Auswertungen für verschiedene Elemente) (Dominik)
* Ausbau des automatisierten Testings (Skripte + Auswertungen für verschiedene Elemente) (Dominik)
* Ausbau der Dokumentation (siehe ''Dokumentation mit Sphinx'' weiter unten; Dominik, Chris)
* 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)
* 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
* Web-Gui wieder an den Start bringen
Line 120: Line 132:
* NS3 Integration inkl. NS3 Simulation via run_sim.sh (Robert)
* NS3 Integration inkl. NS3 Simulation via run_sim.sh (Robert)
* Bessere Abstraktion der verschiedenen Knotentypen bei Experimenten im Testbed (Robert)
* Bessere Abstraktion der verschiedenen Knotentypen bei Experimenten im Testbed (Robert)
* Simulation: Verbesserung der run_sim; wenn bestehendes Verzeichnis angegeben wird, dann Simulationsskript noch einmal ausführen mit einem Info-Disclaimer (Chris, Robert)

Latest revision as of 16:41, 30 October 2013

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.

Next Hackathon

  • Packet::clone() kopiert nicht (!!!) den Inhalt. Die Kopie erhält eine Referenz auf den Inhalt des Original. Das muss in BRN gecheckt werden. uniqueify() kopiert auch den inhalt. Deshalb: Packet::clone() -> Packet::clone()->uniqueify()

Dritter Hackathon

Der 3. Hackathon findet am 01.11. ab 18 Uhr statt. Doodle: http://doodle.com/wvnrtwisxnkcbw3t

Themenvorschläge

Jeder einzelne Vorschlag sollte schaffbar sein oder ist entsprechen vorzubereiten!! Es sollte zudem ein Verantwortlicher genannt sein. Wenn möglich auch ein Co-Pilot!

  • Seismo-olsrnodes: check md5 of Click (during nodeinfo); pack click only if click new and if reboot
  • TMPLOG: LOGDIR auf /tmp setzen (bei bedarf oder Schalter) und dateien zurückkopieren
  • Alles was vom ersten und zweiten Hackathon noch übrig ist
  • test.sh für testbed ausbauen (Beispielmessung) (Robert,Chris)
  • Device-Macros ausbauen (Controlfile, Testbedmessung, Auswertung,...) (Robert)
  • Verringerung der Kopplung der einzelnen brn Elemente untereinander durch Entwicklung und Umsetzung eines strikteren Schichtenmodells (Chris); erste Visualisierungsversuche
  • 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) (Alle, kurzes Brainstorming!)
  • 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. (Robert)
  • Fix Hawk (Robert)
  • Change right (execution) of scripts during params measurement
  • Skripte für git pull/push und neubauen der Quellen nach Update (Robert, Frank, Chris)
  • Maintenance KnotenDB: Welche Knoten sind ausgefallen? Welche aus Haus 4 müssen überarbeitet werden wegen Umzug? Und hübsche Koordinaten für alle!
  • (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

  • Infrastruktur: Backup für gitsar einrichten: Es werden tägliche und wöchentliche Backups von /home/git und /var/lib/jenkins nach /mnt/backup/rsnapshot mittles rsnapshot angefertigt (Dominik)
  • Dokumentation zusammenführen: Infrastruktur Doku verschoben nach https://sarwiki.informatik.hu-berlin.de/Services und dort obsolete Dienste gelöscht (Dominik)
  • run_sim.sh depends on bc: abhängigkeit wird jetzt in brn-tools.sh geprüft (Dominik)
  • test.sh: valgrind shouldn't be used if not inststalled (Robert)
  • package config check auf libX11, libXt, libXmu (Dominik, Robert, Frank)
  • Beliebige Quellen (git, svn, urls (tar,..),...) für Click und ns3 beim Bauen (Robert)

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 brn Elemente untereinander durch Entwicklung und Umsetzung eines strikteren Schichtenmodells (Chris); erste Visualisierungsversuche
    • 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
  • (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)
  • Revisions-String in Click-Binaries: ist jetzt über elements/brn/version.h gelöst
  • Tests für Treiber in jenkins (Robert, Dominik):
    • Madwifi Treiber wird bei commits automatisch gebaut
  • brn-tools.sh: test ob alle für das Übersetzen unserer tools benötigten Programme vorhanden sind (Michael)
  • Simulation: Verbesserung der run_sim; wenn bestehendes Verzeichnis angegeben wird und flag gesetzt wird (FORCE_DIR=1), dann Simulationsskript noch einmal ausführen (Chris, Robert)

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)
  • 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)
  • Simulation: Verbesserung der run_sim; wenn bestehendes Verzeichnis angegeben wird, dann Simulationsskript noch einmal ausführen mit einem Info-Disclaimer (Chris, Robert)