TortoiseSVN Rename Feature – Erkenntnis des Tages – 2010-08-20

Ein nettes Feature ist mir die Tage bei der Arbeit mit TortoiseSVN aufgefallen:
Wenn man eine Datei mit Tortoise umbennen möchte und es befindet sich noch eine Datei mit gleichem Namen aber anderer Endung
im Ordner (bspw. Tabelle.doc und Tabelle.pdf) fragt Tortoise netterweise nach, ob es auch diese Datei umbenennen soll.
Nice!

Mac OS X und Java – Erkenntnis des Tages 2010-08-15

Apple und Java ist wohl so ein Thema für sich. Während man bei Windows ja brav sein SDK selber runterladen und installieren muss, bringt Mac OS X schon eine Java-Version mit.

Doch das Gegenteil von gut ist gut gemeint.
Kommt ein Update von Java heraus, (z.B. von 5 auf 6) findet man es nicht über die Softwareaktualisierung 🙁

Was nun folgt, ist leider aufwendiger als unter Windows:
1. Herausfinden, welches Update ich brauche
2. Runterladen des Updates von Apple
3. Ändern der default Java-Version

zu 1.
Bei muchsoft
findet man eine Übersicht der passenden Java-Versionen. Ich benutze 10.5.8 (Leopard) und hätte gerne die aktuellste Version von Java 6: das ist in diesem Fall dann 1.6.0_20

zu 2.
Apple bezeichnet das als Java for Mac OS X 10.5 Update 7
Also fix herunterladen und installieren.

zu 3.
Nun muss man nur noch unter Programme/Dienstprogramme die App Java-Einstellungen öffnen unter durch ziehen des Listeneintrags die Version 6 nach oben bringen.
Dann zeigt auch ein java -version auf der Konsole die aktuelle Version 1.6.0_20 an.
Voila!

XPath: local-name() – Erkenntnis des Tages 2010-08-11)

Wer viel mit XML und XPath arbeitet, wir sicher früher oder später nach einer Möglichkeit suchen ein Element unabhängig von seinem namespace suchen zu können.

XPath definiert dafür die Funktion local-name()
Sucht man besiepielsweise ein Element mit dem Namen bla in einem XML-Dokument. das einen namespace besitzt (auch default namespace!) kann man in Java folgenden Ausdruck verwenden
XPathExpression expr = xpath.compile("//*[local-name()=''bla'']");

Apache Commons IO (Erkenntnis des Tages 2010-08-09)

Wie oft steht man vor der Aufgabe, schnell mal ein Textfile in einen String einzulesen, um ein paar Überprüfungen bzgl. des Inhalts durchzuführen? Nichts leichter als das. Dank content assist tippt man sehr schnell:

StringBuilder fileContent = "";
FileReader fileIn = null;
BufferedReader buff = null;
try {
fileIn = new FileReader(fileName);

Halt!
Muss ich das wirklich selber machen???
Nö, denn dafür gibt es die apache commons-io lib.
Einfach ins Projekt integrieren und man kann sich viele lästige Dinge sparen.
Statt obigem Code schreibe ich jetzt nur noch

String str = FileUtils.readFileToString(filename);

Vorteil:
-sauber implementierter und getester Code für Routineaufgaben

Nachteil:
-zusätzliche Dependency 🙂

Neues Feature in testNG (Erkenntnis des Tages 2010-08-06)

Wer mit testNG arbeitet wird sicher ab und an auch testen, ob Exceptions korrekt geworfen werden.
Dies geht bekannterweise so:

@Test(expectedExceptions = SAXParseException.class)
public void testMyCodeWhichThrowsException{
...
}

Seit Version 5.10 gibt es zudem die Möglichkeit auch den Text der Excpetion per RegEx zu überprüfen:

@Test(expectedExceptions = SAXParseException.class, expectedExceptionsMessageRegExp = ".*Invalid content was found*"))
public void testMyCodeWhichThrowsException{
...
}

Ich bin nur durch Zufall auf diese Annotation gestoßen, da sie nur in javadoc jedoch nicht in der Hauptdokumentation aufgeführt ist. Der Entwickler ist aber bereits per Jira-Vorgang informiert.

Yoxos OnDemand (Erkenntnis des Tages 2010-08-05)

Yoxos OnDemand bietet die Möglichkeit sich online eine Eclipse-Distribution mit allen benötigten Plugins zusammenzustellen und dann herunterzuladen.
Zudem kann man einmal konfigurierte Distros als Template speichern und diese anderen zur Verfügung stellen.

Vorteile:
-spart das nervige Finden und Hinzufügen von Plugins über den Update-Mechanismus
-sinnvolle Konfigurationen können weitergegeben werden

Nachteil:
-für templates muss man sich (kostenfrei) anmelden
-derzeit noch nicht für Eclipse 3.6 Helios

Frage Deinen Chef öfter um Rat! – (Erkenntnis des Tages 2010-08-04)

Auch wenn es komisch klingen mag: Oftmals ist ein Chef auch und gerade deshalb Chef geworden, weil er mehr Erfahrung und Wissen auf einigen Gebieten hat, als seine Mitarbeiter. Was ist also falsch daran, in verzwickten Situationen auf dieses Wissen zurückzugreifen?
Eigentlich nichts! die einzige Hürde, die man überspringen muss, ist die, zuzugeben, dass man etwas nicht weiß. Deshlab sollte man den Rat vom Chef auch nur dosiert einholen 🙂

Vorteile:
-geht schneller, als eigene Lösung zu finden
-bessere Lösung / neue Aspekte
-vielleicht muss das Problem überhaupt nicht gelöst werden

Nachteil:
-kann eigene Problemlösungskompetenz in frage stellen, wenn zu häufig angefragt wird

Long Time, no Talk

Was mich derzeit bewegt (in aller Kürze)

  • Excess Pressure in neuer Besetzung: neuer Schlagzeuger & drei feste Gitarristen á la Iron Maiden
  • Vorbereitungen für das neue Album laufen!
  • Neue Engl Box am Start (e412VS) -> Killer!
  • Nextstep auf Maven2 portiert
  • Integrationsserver eingerichtet (Hudson inkl. findbugs, cobertura, etc.)

Demnächst wieder mehr und ausführlicher!