Was im Dezember geschah

Nun ist eine Weile nichts passiert auf meinem Blog. Also werde ich mal den Dezember zusammenfassen.

  1. Ich habe ein neues Notebook – ein HP Compaq 8510w. Natürlich läuft wieder Gentoo Linux auf der Kiste und ich bin sehr sehr zufrieden. Die Installation klappte ohne Probleme. WLAN habe ich noch nicht in Betrieb genommen, weil ich auf den neuen Linux-Kernel warte der die Treiber schon integriert haben wird und WLAN für mich nicht so wichtig ist. Sound, Netzwerkkarte, Grafik… alles läuft wunderbar. Die Kiste ist doppelt so schnell – im Vergleich mit meinem “alten” Dell Inspirion 9400 – bei den täglichen Aufgaben als Java Entwickler.
  2. In einem für unsere Verhältnisse grossen Java-Projekt bin ich von Eclipse auf Netbeans 6.0 umgestiegen. Die Gelegenheit war günstig, da das Projekt auch vollständig mit Ant gebaut wird und somit einfach als Freeform-Project in Netbeans integrierbar war. Alle anderen Entwickler benutzen weiterhin Eclipse und ich eben Netbeans. Ich bin neu in das Projekt reingekommen und konnte schnell vom UML-Plugin profitieren, um mir ein wenig Übersicht via Reverse Engineering zu verschaffen. Unserem Kunden habe ich schnell mit dem wirklich guten GUI-Builder “Matisse” Vorschläge für das Oberflächen-Design machen können und das Bauen der einzelnen Teil-Projekte via Kontextmenues ist sehr bequem. Ich finde Netbeans ein wenig aufgeräumter und übersichtlicher als Eclipse, auch wenn es noch die eine oder andere Sache gibt die noch nicht so recht funktioniert. Z.B. bleibt ab und zu ein Errormarker stehen, obwohl das Projekt ohne Fehler mit Ant baut oder die Header (z.B. für die Lizenzinformationen, Siehe Issue 121608) der Java-Dateien können bei einem Freeform-Projekt noch nicht eingestellt werden.
  3. Implementiert habe ich diesen Monat vor allen Dingen eine kleine Streaming-Lösung für unsere Remote-Kommunikationsinfrastruktur. Im Prinzip machen wir so etwas ähnliches wie RMI. Auf der Clientseite hat man ein Proxy-Objekt auf welchen Methoden definiert sind, welche den Aufruf auf die Serverseite delegieren. Das Ganze läuft über HTTP/HTTPS und es gibt auch die Möglichkeit eine Punkt zu Punkt Verschlüsselung mit einem Diffie-Hellman-Schlüsselaustausch.
    Das Problem war, dass wir Services haben, die z.B. einen Array von sehr grossen Objekten (z.B. PDF-Dokumente) zurückliefern. Da wir den Java-Serialisierungsmechanismus verwenden, um unsere Objekte über die Leitung zu schicken, musste der Client immer warten bis der ganze Array übertragen war. Das hat viel Speicher gebraucht und war langsam, da es schon mal ein Weilchen dauern konnte, bis alles über das Netz geschickt war. Mit der neuen Lösung wird jedes Object einzeln geschickt und der Client kann nach Erhalt des ersten Objektes schon was mit diesem Objekt machen (anzeigen, speichern…). Es bleibt aber ein Methodenaufruf mit einem Rückgabeparameter! Dies zu implementieren hat richtig Spass gemacht.
  4. Gelesen habe ich u.a. diesen Monat “Implementation Patterns” von Kent Beck. Die Kernaussage das man mehr Zeit mit dem Lesen von Code als mit dem Schreiben verbringt und man daraus seinen Programmierstil ableiten soll, finde ich sehr treffend. Leider wird vieles mit weniger Engagement programmiert als ich mir es wünsche. Meist ist es immer die gleiche Ausrede: “Zu wenig Zeit.” Für die Softwareentwickler die guten Code schreiben möchten, an dem auch andere Spass haben, sei dieses Buch ans Herz gelegt. Ich werde versuchen aus jedem Stück Code ein Gedicht zu machen, wie dieses (oh das mag ich):

    Der Zauberlehrling. Hat der alte Hexenmeister
    Sich doch einmal wegbegeben!
    Und nun sollen seine Geister
    Auch nach meinem Willen leben….

So genug für heute. Ich wünsche allen ein gutes, glückliches und erfülltes 2008.