Der 15. Thank You Award geht an Colin Günther für seine kontinuierliche Arbeit an Haikus WLAN Stack. Herzlichen Glückwunsch, Colin, und vielen Dank auch an alle anderen Kandidaten, die diesmal leer ausgingen.
An dieser Stelle sei auch noch mal auf die WLAN Verschlüsselungs-Bounty hingewiesen, die helfen könnte dieses wichtige Feature für den Alltagseinsatz schneller zu verwirklichen.
UPDATE:
...und jetzt ist auch schon das Mini-Interview mit Colin online:
-
Wie alt bist Du und womit verdienst Du Dein Geld?
Ich bin 27 und habe eine super Familie, die mich unterstützt damit ich mich voll aufs Studium konzentrieren kann. -
In der Nominierung heißt es, Du hättest Haiku Wifi-Unterstützung gebracht. Wie schwer (oder einfach) war das?
Schwer, würde ich sagen. Um den FreeBSD Wifi Stack zu portieren, musste ich mehrere Systeme wirklich verstehen. Wie das FreeBSD Netzwerk Subsystem funktioniert und wie Haikus vorhandene Kompatibilätsschicht das Verhalten seines Vorbilds emuliert. Außerdem musste ich die Funktionsweise des FreeBSD Wifi Stacks verstehen und wie dieser mit seinem Subsystem zusammenspielt. Und natürlich musste ich mir Haikus Netzwerk Subsystem ebenfalls einverleiben.
Und schließlich waren da auch noch die 1000 Seiten des IEEE Std 802.11 Dokuments, in dem ich mich zurecht finden musste, um die benötigten Informationen zu finden. Sprich, ich musste es von vorn bis hinten durchlesen.Nachdem der Port auf meinem System endlich lief, begann die Testphase. Sie diente vornehmlich der weiteren Stabilisierung des Ports. Glücklicherweise gab es viele Tester, die mir Bugs meldeten. Um diese Bugs zu verstehen und zu beseitigen, musste ich mich in mehrere weitere Subsysteme (PCI, Interrupts) und Bereiche (PCI-Express, PCMCIA/CardBus) vertiefen. Dazu fällt mir eine intensive Debugging-Woche mit Joe Prostko ein, in der wir immer neue mögliche Lösungen und Syslogs austauschten, um einem Problem auf den Grund zu gehen. Seine Atheros Karte konnte Daten weder empfangen noch senden. Erst sah es nach Haikus fehlender PCI Express Unterstützung aus. Nachdem das aber ausgeschlossen werden konnte, kam ein sog. "Interrupt-Sturm" in Frage, so dass ich ein Interrupt Routing Problem mit seinem Netbook vermutete.
Am Ende stellten wir fest, dass die Ursache von allem ein doppelt ausgelesenes Interrupt Register war: der Haiku Treiber benutzte die zweite Abfrage, der original FreeBSD Code die erste... Die zweite Abfrage war immer "0" bei seiner Hardware, was soviel bedeutet wie: "Ich habe diesen Interrupt nicht ausgelöst, probiers mit dem nächsten Gerät in der Interrupt-Kette." Wegen dieser Erfahrung habe ich zwei Zeilen im Atheros Treiber Glue Code einen entsprechend ausführlichen Kommentar verpasst.
Diese Testphase war auf Atheros Chipsätze beschränkt, da damals noch einige Komponenten in Haikus FreeBSD Kompatibilitätsschicht fehlten, um die restlichen WiFi Treiber portieren zu können. Hauptsächlich war das das Einladen der Firmware, Condition-Variablen und einige höhere Synchronisationsfunktionen.
Zu diesen sehr Wifi-spezifischen Hürden kam noch die Einarbeitung in das Jam Buildsystem, die Codestil Vorgaben, Fragen zum Copyright, gcc und g++ Kompileroptionen usw. Alles Dinge die jeder neue Haiku Entwickler erstmal erlernen muss.
-
Was würde Dir die Arbeit an Haiku erleichtern?
Eine IDE mit Sourcecode Navigation und Unterstützung zum Refactoring, wie ich das von der Eclipse IDE kenne. Die Qt Creator IDE sieht gerade sehr vielversprechend aus und funktioniert durch den Qt Port auch unter Haiku :). Jetzt muss ich nur noch rausfinden wie man den Qt Creator so konfiguriert, dass er nicht immer den gesamten Haiku Sourcecode re-indiziert wenn man ihn neu startet. -
Welches interessante Buch, Band, Serie etc. würdest Du gern empfehlen?
Als Entwickler liebe ich das Buch "Design Patterns" von Erich Gamma et. al.. Es hat mir sehr dabei geholfen den objektorientierten Teil der C++ Welt zu verstehen und ich liebe die darin vorgestellten Designideen. Besonders die "Strategy Pattern", die ich immer gern benutze wenn Speed angesagt ist, wie z. B. in meiner Bachelor Arbeit.Als Kampfsportler hat mir "Tao Te King" von Laotse Einsichten in die Natur des Kampfes beschert. Kurz gesagt lehrte es mich dass es nur eine Sache gibt die ich beeinflussen kann: meine Einstellung.
