Wochenberichte
Die wöchentlichen Berichte sollen folgendes protokollieren:
- Welche Tätigkeiten habe ich in der Woche ausgeübt?
- Gab es dabei irgendwelche Probleme? Verzögerungen?
- Welche Literatur habe ich gelesen?
Woche 0 (Freizeit)
- Überblick über den XMMP Standard verschafft
- Tests mit Ruby mit dem Modul xmmp4r
- ein paar XEP (XMMP Extension Protocols) gelesen
Woche 1 (3 Tage)
Tätigkeiten:
- Arbeitsplatz eingerichtet und andere organisatorische Dinge
- Entwicklungsumgebung (Eclipse 3.4 mit Plugin-dev) inklusive Saros und Mylyn eingerichtet
- Online-Literatur zu Dependency Injection gelesen
- Online-Literatur zu ValueObject gelesen
- Online-Literatur zu verschiedenen XEPs quer gelesen
- Wenig Überblick in das verwendete Java XMPP Framework Smack verschafft
- Erste Einblicke in die Codebasis
- wenig Überblick verschafft
- Aktivitäten und ActivitySequencer genauer angeschaut
- Marc hat mir und Sebastian einen Überblick über den Code gegeben.
- Nach Anweisung von Christopher offene bugs in den bugtracker von sourcefore eingetragen.
Probleme/Verzögerungen:
- vorinstalliert hatte ich Eclipse 3.4 ohne Plugin-dev
Literatur:
Woche 2 (1 Tag)
Tätigkeiten:
- SF-Bugtracker: Defekte aus der E-Mail von ChristopherOezbek eingetragen
- OSX Kompatabilität: Probleme beim Laden der P2P Komponente (limewire) lösen
- Das grundlegende Problem war, dass das DPP Projekt Saros in einigen Teilen nicht Java15 kompatibel ist.
- Entwicklung wurde von allen beteiligten bisher mit Java 1.6 gemacht, deshalb ist der Fehler bisher nicht aufgetreten.
Probleme/Verzögerungen:
- Heapgröße Fehler beim bauen: Unkenntnis über GUI Komponenten in Java, da ein Textfeld für die Einstellungen der JVM Parameter für größere Heap Vergabe durch die Fenstergröße versteckt wurden. Die Lösung war das Fenster groß zu ziehen.
Literatur
Woche 3 (3 Tage)
Tätigkeiten:
- SF-Bugtracker:
- Defekte eingetragen
- Statusänderung bei einem behobenen Defekt (Bug-ID 2727884)
- Behebung von Bug-ID 2727884.
- E-Mail an das Limewire-Entwicklerteam geschrieben, wegen des Patches zur Behebung des Defektes beim Bauen der internen Bibliotheken (u.a. RUDP).
- E-Mail und Jabber Kontakte auf der Webseite unter "Contacts" hinzugefügt.
- Patch entwickelt für ITransmitter#sendActivities(), die XMPP Implementierung der Methode und die Benutzung in ActivitySequencer.
- Patches zur Behebung von deprecated Warnungen in Actions und Handlern.
- Tests mit Edna für die Audio-Aufnahme, inklusive VPN Einrichtung und Softwareinstallation.
- Test der TLS Verbindung beim Verbindungsaufbau mit Jabber-Servern.
- Angefangen Zustände und Zustandsübergänge von ConnectionSessionListener und Implementierung zu verstehen. Ziel ist es Lösungen für AP 4-6 entwickeln zu können.
Probleme/Verzögerungen:
- zu wenig Kenntnis über Ant und den Ant-Eclipseview
- Unkonzentriertheit beim Versand von Patches → unnötige Wiederholungen waren nötig
- Für mich unklare Absprache zur Möglichkeit der Signaturänderung von ITransmitter#sendActivites(), dadurch Ablehnung des Patches.
Literatur
Woche 4 (2 Tage)
Tätigkeiten:
- P: neue Defekte ins Testdokument übertragen
- Test: Mit Hilfe einer lokalen Firewall TCP blockiert, um Jingle/UDP zu testen. Leider ging die Verbindung über IBB.
- P: Durchführung der Tests
- P: Testergebnisse per E-Mail an Christopher gesendet.
Was nicht so gut lief war
Woche 5 (2 Tage)
Tätigkeiten:
- Test der Jingle/UDP Verbindung Smack. Test durch auskommentieren der Codezeilen in JingleFileTransferSession, hat funktioniert. Als Resultat wurde ein Refaktoring der Klasse durchgeführt. Ein Patch steht noch aus. Testmethoden für Jingle Verbindungen wurden geschrieben. Ein Patch steht noch aus.
- Tests mit SASL Auth. führten zum Ergebnis das Smack ein Defekt im DIGEST-MD5 Modus zu haben scheint.
- ServiceDiscovery-Tests mit der Smack Library, um mehr Verständnis dafür zu bekommen.
- Saros Version als Tooltipinformation für die Awareness hinzugefügt.
Was nicht so gut lief war
Literatur
Woche 6 (2 Tage)
Tätigkeiten:
- F: Awareness im RosterView (abgelehnt mit Hinweis auf ServiceDiscovery)
- Tests mit ServiceDiscoveryManager, um verschiedene Features erfüllen zu können, z.B. filtern der Kontakte im InvitationDialog (#1609227)
- F/R: JingleDiscoveryManager() generalisiert, um Saros als Feature abrufen zu können.
- B: Race Condition in connect() in Saros.java begrenzt. Für #2764773 fehlen noch die Zustandsübergänge der Listener
- P: Seite auf eclipseplugins.com erstellt und überarbeitet (dafür Sarosicon in 110x80 erzeugt und ins Wiki attached)
- P: Community Outreach im Wiki erweitert
- P: release erstellt mit Lisa
Was nicht so gut lief war
Literatur
Woche 7 (3 Tage)
Tätigkeiten:
- F: awareness im InvitationDialog
- B: #1609227 Can invite peers that don't use Saros
Was nicht so gut lief war
Literatur
Woche 8 (1 Tag)
Tätigkeiten:
Was nicht so gut lief war
- Patch zu groß, Folge: zu wenig Überblick
Literatur
Woche 9 (3 Tage)
Tätigkeiten:
- B: #1609227 Can invite peers that don't use Saros follow up
- P: Testmanager
- P: eclipsepluginscentral Versions Update und kleinere Änderungen
Woche 10 (2 Tage)
Tätigkeiten:
- B: #1609227 Can invite peers that don't use Saros follow up
- B: #2794435 Saros cannot work with multiple IM clients
- Patch Review und Unittest erweitert zu FileList
Woche 11 (3 Tage)
Tätigkeiten:
beendet:
- B: #1609227 Can invite peers that don't use Saros follow up
- B: #2794435 Saros cannot work with multiple IM clients
- Util#inflate(byte[])
- Util#deflate(byte[])
angefangen:
- Networkview
- Performanceverbesserung bei Dateisynchronisation
- OpenVPN konfiguriert auf suessapfel und brazzaville
- erste Messungen durchgeführt
Woche 12 (2 Tage)
Tätigkeiten:
- Netzgeschwindigkeitsmessungen : Projekt 79 MB, Saros Version 9.5.29
- Eduroam 87.70.0.0 und FU-Netz 160.45.0.0
- Teles OpenVPN mit Jingle
- Teles OpenVPN mit IBB
- erste Tests komprimieren des Datenstroms mit Inflate/Deflate auf localhost
Woche 13 (3 Tage)
Tätigkeiten:
- P: eclipseplugincentral.com Version aktualisieren
- B: tempfile creation
- B: #2707190 receiver thread crashed if Saros-Session is closed by remote peer
- B: #2808850 Disabling Jingle in Preference, still causes long delay
- B: #2800616 Compress P2P-Traffic, use sendArchive() instead of sendFiles() with Jingle, too.
- B: invite Button enable/disable InvitationDialog
- P: Rekrutierung von Experiment Teilnehmern
- E-Mail und Direktkontakt mit Miao und Bennjamin Bortfeld (Tutor), um Werbung für das Experiment in Vorlesung und Tutorium zu machen.
- Test: Jingle/UDP
Woche 14 (2 Tage)
Tätigkeiten:
- Implementierung und Test von Saros über Proxyserver. Smack stellt leider nur die Möglichkeit von Socks4-/-5- und HTTP-Proxyverbindungen zur Verfügung, während Eclipse die Unterscheidung Socks, HTTP und HTTPS kennt.
Was nicht so gut lief war
- Auswahl des Frameworks für den Bau der Proxyunterstützung.
Literatur
- Virtual Teaming: Experiments and Experiences with Distributed Pair Programming
- ssh Manpage für Socksverbindung
Woche 15 (4 Tage)
Tätigkeiten:
- Implementierung und Test von Saros über Proxyserver. Als Basis dafür kam das Eclipse Framework zum Einsatz. Zu Testzwecken der Sarosverbindungen wurde ein Dante Proxyserver mit Authentifizierung aufgesetzt.
- Loganalyse zur Feststellung der Probleme von Teles-Sitzungen. Es wrude eine Entscheidungsmatrix an Hand der Logdaten aufgestellt mit dem Ziel welches Arbeitspaket als nächstes angegangen werden sollte. Die Entscheidung ist: AP2 (Dateisynchronisation optimieren), danach AP6 (robuster Jingle Verbindungsaufbau), dabei wird auch an den geänderten Stellen auf AP5 (Progress & Cancelation) Wert gelegt.
- Bugfixes in den Komponenten InviteAction und SarosRosterListener, die zum Abbruch des Sarosverbindungsaufabus führten.
Literatur
- Dante Proxyserver Dokumentation
Woche 16 (2 Tage)
Tätigkeiten:
- Transparentes ein- und auspacken (AP2) von Daten, die keine interne Kompression nutzen, wie z.B. eine Datei vom Typ 'jpg'. Neu komprimiert wird jetzt die FileList. Das Versenden eines Archivs ermöglicht eine bessere Kompression, als die von Sun implementierte DEFLATED Methode.
- Die Feature Anfrage #2814014, "Add possibility to configure port of XMPP server", wurde bearbeitet und im Tracker geschlossen.
- Community Outreach (AP7):
- Es wurde über die saros-devel Liste eine E-Mail an Marco gesendet, dass Saros via Proxy-Verbindungen in der nächsten release Version funktionieren sollte.
- Die Version auf eclipseplugins.com wurde auf die letzte release Version geändert.
Was nicht so gut lief war
- Vor einiger Zeit wurde Util::deflate() mit einer noch nicht unterstützten Kompressionmethode implementiert. Leider war das nur in der entsprechenden Kompressionmethode der Java Dokumentation ersichtlich.
Literatur
Woche 17 (0 Tage)
Urlaub
Woche 18 (0 Tage)
Urlaub
Woche 19 (3 Tage)
Tätigkeiten:
- Die Saros Version und unterstützte Eclipseversionen auf eclipspluginscentral aktualisiert.
- Durch den Urlaub verpasste E-Mails gelesen. Folgende aus E-Mails enstandene Aufgaben wurden von mir durchgeführt:
- Test: "2825223 IBB fails on jabber.no" hat funktioniert. (Aufgabe aus einer E-Mail)
- Patch review: "Send Activities via P2P" von Christopher
- offene Patches von vor dem Urlaub mußten noch integriert werden:
- Port konfigurierbar machen und bei Fehlern den Benutzer informieren
- Die veraltete (deprecated markierte) Methode #getProxyDataForHost(String) nach #select(URI) aktualisieren, war leider nicht möglich, da Eclipse 3.4 (ganymede) diese nicht unterstützt. Die Entscheidung, bis wir ganymede nicht mehr unterstützen wollen getProxyDataForHost() zu benutzen, wurde mit Christopher zusammen getroffen.
- Text verfaßt über XMPP für ein Poster über Saros
- Progress und Cancelation im DTM: Bei Dateitransfer soll der Benutzer gefragt werden, ob die Datei angenommen werden soll (u.a. #2808854). Es ist mir dabei noch unklar wann man fragen sollte: bei jedem eingehenden Dateitransfer? , nur beim Anfang eines eingehenden Dateitransfers? oder nur das erste Mal?
- Refactoring des XMPPChatTransmitter mit Christopher und Tas in Trippleprogramming.
Woche 20 (3 Tage)
Tätigkeiten:
- ATM
- Überlegungen zur Kommunikation zwischen Revceiver-Thread und Einladungsprozess, um Progress des Datentransfers beim Empfänger azeigen zu können.
- bug-hunting:
Woche 21 (4 Tage)
Woche 22 (4 Tage)
Woche 23 (4 Tage)
Woche 24 (4 Tage)
Woche 25 (4 Tage)
Woche 26 (4 Tage)
Tätigkeiten:
- Releasemanager
- Das Release mußte wegen zu vieler Defekte auf die nächste Woche verschoben werden.
- Recherche für die Netz-Test-Komponente
- jtrunner ist ein Testframework, das u.a. mehrere Instanzen eines 'Dings' laden kann. Leider ist der User Guide ziemlich langatmig und kommt meiner Meinung nach nicht auf den Punkt.
- Netzwerkemulationen oder -simulationen :
- Remote SWT ermöglicht evtl. entfernte Steuerung von SWT, leider ist das Projekt seit Juli 2003 nicht mehr aktiv.
- Zotero für die Verwaltung von Quellen und generieren von Bibtex getestet.
- Durchsichten für Patches
Woche 27 (4 Tage)
Tätigkeiten:
- Releasemanager
- Teilnahme am Testtag
- Durchsichten für Patches
- Dokument zur Planung der Netz-Test-Komponente erstellt
- VMware Server auf ibadan installiert
- FreeBSD 6.4 VM geladen und in VMware Server integriert
- Netzinterface eingestellt in VMware Server und FreeBSD VM eingestellt
- Auf ibadan die Firewall und VMware Server so eingestellt, dass man per SSH auf ibadan direkt zum FreeBSD Gateway geroutet wird. Extrem nervig war vorher die VMware Server Konsole, die andauern einzelne Tastaturanschläge mehrfach bewertet hat.
- VM und Netzplanung
- Die FreeBSD VM wird ein virtuelles Gateway mit Netzsimulation
- Debian stable mit ejabberd werden die XMPP Server
- aktuelle Ubuntu werden die Saros Klienten
Literatur
Woche 28 (4 Tage)
Tätigkeiten:
- 2 openfire xmpp server installiert und konfiguriert auf socks5 aktiviert und deaktiviert
- 1 virtuelles Netzinterface für einen Ubuntu VM eingerichtet.
- Host routing für eine Ubuntu VM eingerichtet, um 2 Saros auf einem Rechner über verschiedene Netzschnittstellen routen zu können. Das Ziel war ein Testszenario auf einem Rechner durchführen zu können.
- Startskript des Sparkclients mußte gefixed werden, weil Festeinkodierte Pfade ein lib/windows/ Verzeichnis suchten.
- djbdns DNS Server eingerichtet, um DNS SRV für XMPP auflösen zu können. (http://tinydns.org/)
- XMPP Szenario wurde mit dem Spark Client und später mit Saros erfolgreich getestet.
Literatur
Woche 29 (4 Tage)
Tätigkeiten:
- Recherchieren und evaluieren von Testframeworks.
- jtrunner ist ein Framework, das Tests verteilt ablaufen läßt, um schneller durch die Testsuite zu kommen. Es ist fraglich, ob ein synchronisiertes Szenario leichter durch das Framework machbar ist.
- SWTBot ist ein Framework, mit dem sich SWT fernsteuern läßt. Es ist möglich SWTBot per Ant zu starten. Getestet wurde von mir Konfiguration von Saros, XMPP Account registrieren und XMPP login. Das Framework sieht für mich erfolgversprechend aus. Das Framework wird von Ketan entwickelt.
- BDD mit Cucumber, Rspec und SWTBot für Glimmer. Evtl. lassen sich damit Tests sehr viel schneller schreiben, als direkt mit SWTBot. Siehe auch Ketans Artikel "Cucumber On JRuby inside Eclipse".
- GUI testen mit jruby, der Vorteil wäre in der JVM zu laufen, aber dennoch eine flexiblere Syntax zu haben, um Tests verständlicher schreiben zu können.
- visualvm ist für monitoring von java Applikationen gedacht (auch remote möglich, d.h. Saros monitoren während Tests laufen wäre machbar).
- Marathon ist ein Framework zum Testen von Swing GUI und deshalb unbrauchbar für uns.
- buildr4eclipse ist ein Werkzeug für leichtgewichtigeres continous integration, leider ist das Projekt noch nicht reif genug für den Einsatz.
Literatur
Woche 30 (4 Tage)
Tätigkeiten:
- SWTBot test so refactored, dass der @BeforeClass Hook die kompletten Einstellungen, Account Registrierung, Saros Views und den ersten XMPP connect/disconnect übernimmt. Der JingleFiletransferManager ist dann geladen. @Before Hook übernimmt XMPP connect, @After Hook den XMPP disconnect.
- Test: JUnit Test von der Kommadozeile starten, $? ist 0 bei Erfolg und = 0 bei Mißerfolg
- JUnit Test kann also erfolgreich von der Kommandozeile und damit geskriptet angewendet werden.
- Test: Java RMI
- Erstellen und Dokumentation des Testkonzepts
- RMI Interface für den SWTBot schreiben
- Orchestrierer benutzt zum Testen die RMI Schnittstelle des SWTBot
- Teilnahme am Testtag
- Teilnahme am Bugfixing
Literatur
Woche 31 (4 Tage)
Tätigkeiten:
- Präsentation des Test-Konzepts
- Idee zum automatischn updaten und patchen des Test-Projekts erdacht:
- Git-SVN bridge auf dem Gateway erzeugen. Git zur Verteilung im Testnetz verwenden, weil es schneller umsetzbar ist als svn und normale Patchfiles unterstützt.
- Patchfiles können auf Dateien im lokalen Repository angewendet und über das Repository verteilt werden.
- Test: Updaten eines Projektes und anwenden eines Patchfiles, um einen Patch vor dem Commit testbar zu machen.
- → Es reicht ein update auf ein Eclipse-Projekt "Saros" + patch anwenden, um SWTbot gegen die gepatchte Version laufen zu lassen.
- SWTBot per Ant starten unter OSX
- SWTBot per Kommandozeile starten unter OSX
- SWTBot per Ant starten unter Windows
- SWTBot per Kommandozeile starten unter Windows
Was nicht so gut lief war
Literatur
Woche 32 (4 Tage)
Tätigkeiten:
- Über einen Workaround zum Starten nachgedacht, laden einer Sarosinstanz aus einem Hilfsplugin.
- Einarbeitung in RCP Eclipseplugin Entwicklung
- Der Workaround verschiebt das Problem des Ladens einer Sarosinstanz in ein Plugin.
- Entscheidung SWTBottests müssen auf eine Art und Weise von der CLI gestartet werden können. Es soll ein Fehler der Plattform Mac OS X ausgeschlossen werden, falls es fehlschlägt muss ich Hilfe suchen.
- Fehlgeschlagener Test: SWTBot per Kommandozeile starten unter Windows
- IRC: irc.freenode.org #eclipse, Anfrage zum Starten:
14:42 < me> hi! Any idea to generate/export/.. an eclipse run configuration to an Ant/shell/.. script?
14:54 < someone> me: there isn't, AFAIK. You can go to the debug view and pick your process
properties. That will give you the full command line of the last launch
14:56 < me> someone: ty that's enough for my use case.
-
- Starten aus Eclipse heraus → in den DebugView wechseln → Prozess auswählen → rechtslick → Properties
- Erfolgreicher Test: SWTBot per Kommandozeile starten unter OSX
Was nicht so gut lief war
- Ich sollte schneller nach Hilfe fragen.
Woche 33 (4 Tage)
Tätigkeiten:
- Di u. Fr Präsentationen des Testframeworks.
- SWTBot auf github geforkt, um die RMISchnittstelle zur entfernten Steuerung für Tests zu schreiben.
- Testweise RMISchnittstelle per Vererbung implementiert (e-mail vom Entwickler hatte dazu geraten), hat nicht funktioniert da SWT-Widgets plattformabhängig sind.
- Teile der RMISchnittstelle per Delegation implementiert. Beim Starten gibt es ClassLoader Fehler.
- Outreach: mit Eike im #adempire auf irc.freenode.org den Leuten fragen beantwortet. Scheint bei denen gut angekommen zu sein.
- E-Mail Korrespondenz mit SWTBot-Entwickler
- Netz-Architektur von Distributed OSGi Services with ECF angeschaut. Abstrahieren "Services" und "Discovery", eine Implementierung ist u.a. XMPP. Ein Test hat bei mir nur Fehler produziert.
- JRuby workaround über DRB (distributed Ruby), für RMI Schnittstelle, vom SWTBot Entwickler getestet, ohne Erfolg.
Was nicht so gut lief war
- Es geht mir zu langsam voran, weil andauernd irgendwelche Start-/Lade-/Whatever-$Eclipse-Probleme auftauchen. Meine Motivation leidet darunter.
Literatur
Woche 34 (4 Tage)
Tätigkeiten:
- RMISWTWorkbenchbot (Musician) written with a low-level and a high-level interface. Low-level methods are basicly SWTWorkbenchbot methods without fluentinterface and the high-level interface are mostly Saros specific.
- Test class written called "Foo" for testing and writing the RMISWTWorkbenchbot.
- Saros integration:
- Start RMISWTWorkbenchbot during Saros startup, but only if Saros is a development or a test version, in StartupSaros().
- Button and MenuItem added for test to share a project (fast hack to show nice actions on tuesday).
- [FIX] progressbar was out of sync on the sender site.
- added Testcases in TestLink
Woche 35 (4 Tage)
Tätigkeiten:
- POC: Streaminterface above the DTM by using Pipes (PipeInputStream/PipeOutputStream) for streaming services like audio/video streamin or sending the project archiv without reading the whole file into memory
- RMISwtbot integration into Saros
- During the startup RMISwtbot is loaded if eclipse was started with the parameter "--test", because customers don't need/want this kind of feature.
- Refactored DTM to have a more general receive interface.
Was nicht so gut lief war
- A test running a RMISwtbot test from home on the VM network at ibadan was very,very slow, so that I could not test it.
Literatur
Woche 36 (4 Tage)
Tätigkeiten:
Was nicht so gut lief war
Literatur
Wochenziele
Woche |
Ziel |
Status |
21 |
Progress/Cancelation beim Empfangen von Daten im Einladungsprozess |
Behandlung von IBB ist Test-Fertig für Tas |
21 |
Bugfix Encoding Problem in FileZipper/FileList |
verschoben bis Zeit dafür ist |
22-24 |
Progress/Cancelation im Einladungsprozess: Binary Protocol für Jingle neuschreiben |
|
28 |
AP4 alles über P2P Verbindung senden |
abgelehnt |
28 |
Debian VM laden, einrichten und XMPP Server instalieren |
|
28 |
Ubuntu VM laden, einrichten und Softwarekomponenten instalieren |
|
29 |
Fertige VMs duplizieren und in VMware Server integrieren |
|
29 |
alle VMs über das FreeBSD GW routen |
|
30 |
Testframeworks testen: The Grinder, SWTBot per Ant |
%W% |
30 |
Dokumentation auf englisch |
|
30 |
Steuerung der Tests |
|
32 |
Start des SWTBots mit Eclipse (Workaround zum Starten) |
|
33 |
RMI Interface für SWTBot |
%W% |