Software bauen, Internet und das Militär

Letzten Donnerstag hat Patrick (ehemaliger Arbeitskollege von mir) einen Blogeintrag geschrieben in dem er deutlich macht, dass er nie Software fürs Militär entwickeln würde. Am gleichen Donnerstag Abend war ich auf einem Vortrag bei Google hier in Zürich: “Tracking the Internet into the 21st Century”. Referent war Vint Cerf, einer der “Väter des Internet”.

Ich würde keine Software für militärische Zwecke entwickeln. Aber wärend des Vortrages ist mir wieder bewusst geworden, wie schmal der Grad ist. Das Internet, oder zumindest die Verbingungsprotokolle TCP und IP, wurden schlussendlich von Militär finanziert.

Roy T. Fielding hat in einem Interview (Java Spektrum, Dezember/Januar’08, Seite 62ff.) auf die Frage: “Hast du eine Vision für die Zukunft?” mit “Ausser dem Weltfrieden? …” geantwortet. Das ist doch eine gute Antwort. In diesem Sinne: “Make software – not war”

1127 Zeilen Code für eine Methode

Vor einigen Tagen habe ich mich mit einem Upgrade von Castor in einem unserer Projekte auseinandergesetzt. Ein paar Leute in unserer Firma hatten schon Erfahrungen mit einem Upgrade von Castor und habe nur gemeint, dass sie viele Probleme gehabt hätten und mich gefragt ob ich mir das wirklich antun will.

Nachdem ich alles umgestellt hatte, bekam ich dann einen Validierungs-Fehler beim Einlesen einer XML-Nachricht, die ich selber mit Castor erzeugt hatte. Der Fehler war recht schnell im Bugtrackingtool von codehaus.org gefunden. Es war aber über zwei Monate nichts mehr mit dem Bug passiert. Die Alternativen waren nun:

  • alles wieder zurück auf die alte Version von Castor
  • oder den Bug in Castor flicken (es ist ja Open Source).

Ich habe schlussendlich alles wieder auf die alte Version von Castor umgestellt. Der Grund ist recht einfach. Die entsprechende Methode marshal in der Klasse org.exolab.castor.xml.Marshaller ist per heute 1127 Zeilen lang. Mir ist nun auch klar, warum meine Kollegen bei der Umstellung so viel Probleme hatten und warum mit dem Bug nichts mehr passiert. An so einem grossen Codeblock Änderungen zu machen ist einfach schwierig. Eigentlich wäre ein Refactoring dieser Methode notwendig, damit man überschaubare kleinere Methoden bekommt, die auch vernünftig mit Unit-Tests testbar sind. Leider habe ich keine Zeit dafür.

Positives Denken 1 – oder: Wie schreibe ich eine Thunderbirdextension?

Aua. Nun sitze ich schon mindestens 10 Stunden an einer Thunderbirdextension und bin eigentlich noch nirgendwo. Die Aufgabenstellung ist ganz einfach. Es sollen alle Attachments der eingehenden Mails in einem separatem Folder gespeichert werden. Für jeden Dateityp soll ein eigenenes Verzeichnis angegeben werden können. Natürlich sollen auch bestimmte Dateien via einer regular Expression vom Speichern ausgeschlossen werden. Continue reading “Positives Denken 1 – oder: Wie schreibe ich eine Thunderbirdextension?”

Neuer Router (WRT54GL)

wir haben jetzt zu Hause einen neuen Router: einen WRT54GL (das L am Ende finde ich wichtig). Gestern habe ich auf der Kiste dd-wrt installiert.

Ich kann jedem diese Kombination nur wärmstens ans Herz legen – ich bin jedenfalls begeistert. Das Gerät läuft leise (kein Pfeifen – gell Beat 😉 ) und die Software ist top. Kann gar nicht verstehen, dass nicht jeder Routerhersteller seine Geräte so offen hält, dass jeder das installieren kann, was er will. Für mich jedenfalls war die Offenheit dieser Hardware das Kaufargument für den Router von Linksys.