Thursday, 14. February 2008
Wie man tote Dokumente zum Leben erweckt!
Dokumentation ist nicht Teil der Lösung, sondern Teil des Problems. (Tom DeMarco, Timothy Lister)
Dokumente sind oft die erste Anlaufstelle, um sich in fremde Systeme einzuarbeiten. Leider sieht es in der Praxis aber oft so aus, dass Dokumente widerwillig erstellt, nur oberflächlich geprüft und danach nie wieder angefasst werden. Entsprechend nehmen die Qualität und die Übereinstimmung mit der Realität immer mehr ab.

Mit dem FIT-Framework von Ward Cunningham besteht die Möglichkeit, Dokumente als Eingabe für Integrations-Tests heranzuziehen und damit auch die Dokumentation aufzuwerten und abzugleichen.

Auf dem iX CeBIT Forum 2008 bietet sich am 4. März ab 16:00 die Gelegenheit, Näheres über FIT zu erfahren oder/und sich auszutauschen.

It's CeBIT time!

... link (0 Kommentare)   ... comment


Tuesday, 29. January 2008
PatternTesting 0.5.0 released
Logo for PatternTestingToday release 0.5.0 of PatternTesting is released on Sourceforge. There is also a maven repository available under http://patterntesting.sf.net/m2/. There is an upload request on codehaus.org so I hope the patterntesting repository is synced the next days or weeks so that you can find it also on ibiblio.org.

This is my first release since I reanimated patterntesting (see PatternTesting Reloaded). One goal of this release was to become familiarized with the release process for Maven and Sourceforge.net. If you plan to do it for your project here 2 links which helps me: The changes report and other project reports you can find on the PatternTesting home page.

Happy (Pattern)Testing!

... link (0 Kommentare)   ... comment


Thursday, 10. January 2008
Prosit Neujahr
Was wird uns dieses Jahr bringen? Vielleicht endlich das Internet für's Handy, das schon so lange angekündigt wurde und erst durch das iPhone auch tatsächlich zu gebrauchen sein wird? Bis jetzt war es eher noch eine Krücke, was da so als Webbrowser seinen Dienst tut und trotz WAP (stimmt, da gab's ja noch was neben HTML) zum Surfen kaum geeignet ist. Interessant dürfte in diesem Zusammenhang auch die Heise-Glaskugel (köstlich zu lesen) sein.

Vielleicht wird auch 2008 das Jahr des Linux-Desktops, wie so schon oft angekündigt wurde. Oder Linux bekommt den blauen Engel, weil es so schonend mit den Resourcen umgeht. Apropos Resourcen bzw. Umwelt - Green IT heißt jetzt bekanntlich das Schlagwort. Wie das aussehen wird? Vielleicht wird jetzt für jedes Programm bestimmt, wieviel CO2-Ausstoß es verursacht? So entspricht eine Google-Suche eine Stunde Licht. Oder ein Avatar im Second Life kommt auf knapp 1800 Kilowattstunden Strom pro Jahr, wie der SWR zu berichten weiß . Vielleicht wird es auch die erste Wärmekraftkopplung für Prozessoren geben - dann heißt es im Winter: fahr doch mal den Rechner hoch, mir ist kalt.

Ein weiteres Thema ist die Virtualisierung, die uns mit Second Life inzwischen auch bis ins tägliche Leben vordringt. Für das "Real Life" wünsche ich allen Lesern dieses Blogs ein frohes und erfolgreiches Jahr!

... link (0 Kommentare)   ... comment


Thursday, 20. December 2007
UML-Editor für Eclipse
Modelle sind eigentlich nur was für Müsli-Programmer und Spanner, aber manchmal kommt man auch als "Real Programmer" nicht herum, Abläufe und Beziehungs-Probleme aufzumalen (nicht nur, weil es der Vorgesetzter so will, sondern weil es (über)lebenswichtige Diagramme gibt). Was man eigentlich immer braucht, ist ein Übersichtsbild über die gesamte Architektur (und das sollte möglichst aktuell gehalten werden!!!).

Wenn man seine Architekturen nicht immer mit Papier und Bleistift zeichnen will (auch das hat seinen Reiz und ist nicht immer der schlechteste Ansatz), kommt schnell der Wunsch nach einem UML-Tool auf. Zwei Eclipse-Plugins habe ich mir dazu näher angeschaut: Violet UML Editor und eUML2 (Free Edition).

Violet UML Editor

Mein früherer Kunstlehrer meinte zwar immer, Lila ist die Farbe des Schwachsinns, aber dies gilt nicht für den lila Editor unter den UML-Tools. Auch wenn er ein Eclipse-Plugin ist, kann man ihn auch als Webstart-Anwendung starten - ideal für das kleine Diagramm zwischendurch.

Vorteile:
  • einfach zu bedienen
  • auch als Webstart-Anwendung verfügbar
Nachteile:
  • kann leider nur Graphiken als PNG exportieren
  • binäres Ablageformat (mag ich nicht so)

eUML2 (Free Edition)

Das eUML2-Plugin von Soyatec ist zwar ein kommerzielles Plugin, aber es gibt es auch in einer eingeschränkten "Free Edition", die für viele Fälle ausreichend sein dürfte. Was mir besonders gut gefallen hat, ist die Ablage direkt als XMI (Version 2.0) und die vielfältigen Export-Möglichkeiten der Diagramme (u.a. XVG und WMF, letzteres aber nicht in der Free Edition).

Vorteile:
  • direkte Ablage als XMI
  • verschiedene Export-Möglichkeiten der Diagramme

Fazit

Beide UML-Tools eignen sich dafür, wenn man z.B. schnell mal ein Sequenz-Diagramm malen will. Inwieweit sie auch für größere Aufgaben geeignet sind, kann ich (noch) nicht beurteilen...

... link (0 Kommentare)   ... comment


Friday, 7. December 2007
10 Jahre JUGS
Gestern feierten wir von der Java User Group Stuttgart unser 10-jähriges Bestehen. Ich war zwar nicht von Anfang an dabei, aber doch schon ziemlich lange. Interessant war vor allem der Rückblick auf die "gute alte Zeit"; und die Erkenntis, dass die Probleme immer noch (fast) die gleichen sind wie damals.
2007-12-JugsJubiläum

Mal seh'n, was die nächsten 10 Jahre so bringen werden...

... link (0 Kommentare)   ... comment


Tuesday, 27. November 2007
Umstieg von OpenSUSE 10.2 auf Ubuntu 7.10
Schon länger hatte ich den Umstieg von OpenSUSE auf Ubuntu geliebäugelt. Dabei war ich mit OpenSUSE nicht generell unzufrieden, aber manche Pakete (wie z.B. der Tomcat oder die JDK's) waren etwas undurchschaubar installiert. Und der Schmusekurs mit Microsoft birgt für die zukünftige Weiterentwicklung einige Risiken, sodass es schwer einzuschätzen ist, wie es mit Novell weitergehen wird.

Als dann im November vom Heise-Verlag ein Sonderheft Linux mit Ubuntu 7.10 ("Gutsy Gibbon") herauskam, habe ich den Umstieg gewagt. Ich war überrascht, wie problemlos die Installation auf meinem Notebook (IBM T41) geklappt hat. Auch die 3D-Unterstützung der ATI-Radeon-Karte wurde standardmäßig aktiviert.

Ubuntu bedeutete aber auch, weg von meinem geliebten KDE-Desktop hin zur Gnome-Oberfläche. Trotz guter Vorsätze bin ich aber doch wieder zurück zu KDE (und Kubuntu) gewechselt, da ich es nicht geschafft habe, dass ein Fenster die obere und untere Task-Leiste überlappen darf. Da ich nur eine Auflösung von 1024x768 habe, möchte ich aber mein Eclipse auf dem vollen Bildschirm sehen.

Etwas ungewöhnlich ist, dass seit Gutsy die vga=xxx-Einstellungen beim Booten ignoriert werden, wie ich jetzt im Ubuntu-Forum erfahren habe. Appropo Forum: für Fragen alller Art ist ubuntuusers.de eine gute Anlaufsstelle - mit einem gut gepflegten Wiki und aktivem Forum.

... link (0 Kommentare)   ... comment


Wednesday, 21. November 2007
Groovy begeistert
Durch die vielen Zugfahrten bin ich endlich mal dazu gekommen, mich etwas intensiver mit Groovy zu beschäftigen, und es begeistert mich immer mehr. Kürzlich hatte ich das Problem, einen einfachen Test-Client zu schreiben, der das Ergebnis einer Webseite zurückliefert (sozusagen ein einfaches 'wget'). In Groovy ist das ein Zwei-Zeiler:
def url = new URL("https://oli.blogger.de/");
def httpConnection = url.openConnection();
println "received: " + httpConnection.inputStream.getText();
Na ja, eigentlich ein Dreizeiler, aber die ersten beiden Zeilen könnte man noch zu einer Zeile zusammenfassen.

Dies ist nur ein Beispiel unter vielen, wie sich einfache (und auch komplexere) Aufgaben mit wesentlich weniger Zeilen als mit "Pure Java" lösen lassen und man dennoch die gewohnten Java-Bibliotheken zur Verfügung hat. Und das Schöne daran ist, dass man es mit der Groovy-Console interaktiv ausprobieren kann und so sehr kurze Turnaround-Zeite hat.

Mein Fazit: Groovy rocks!

... link (0 Kommentare)   ... comment


Wednesday, 14. November 2007
Maven und JSF
Wer für den täglichen Build Maven einsetzt, kann zu MyFaces greifen, wenn er mit Java Server Faces (JSF) arbeiten will. Diese Bibliothek befindet sich unter ibiblio.org und lässt sich damit problemlos in das pom.xml einbinden.

Allerdings hat MyFaces 1.2.0 noch einige kleine Macken (z.B. bei der <h:dataTable>, so dass man vielleicht auf die Referenz-Implementierung (RI) der Java Server Faces von Sun zurückgreifen möchte. Aber wo bekomme ich diese Bibliothek für Maven her?

Die Lösung: für java.net gibt es ein eigenes Repository, das man unter dem Abschnitt <repositories> in sein pom.xml aufnehmen kann:
<repositories>
  <repository>
    <id>java.net</id>
    <url>http://download.java.net/maven/1</url>
    <layout>legacy</layout>
  </repository>
</repositories>
Damit kann man die Artifact-Ids jsf-api und jsf-impl unter der Group-Id javax.faces in sein pom.xml mit aufnehmen.

... link (0 Kommentare)   ... comment


Friday, 9. November 2007
Performance-Abend
Gestern leitete ich den Performance-Abend, der im Rahmen der SIG-AspectJ in der Alten Scheuer in Degerloch stattfand. Schon im Vorfeld hatten sich erstaunlich viele Teilnehmer angemeldet, und so war der Saal gut gefüllt.
2007-11-PerformanceAbend

Drei wichtige Erkenntnisse habe ich aus den Vorträgen mitgenommen:
  1. es gibt keinen Grund, noch an JDK 1.4 festzuhalten (auch wenn das Management das manchmal anders sieht),
  2. vor Tuning-Maßnahmen muss erst mal gemessen werden,
  3. Performance-Engpässe ohne Tools zu suchen ist wie Bytecode schreiben mit vi -- mühsam!

... link (0 Kommentare)   ... comment


Wednesday, 24. October 2007
Error initializing MyFaces
Beim Umstieg von JSF auf MyFaces 1.2.0 trat beim Hochfahren von Tomcat6 folgende Fehlermeldung auf:
INFO: Reading standard config META-INF/standard-faces-config.xml
24.10.2007 12:24:28 org.apache.myfaces.config.FacesConfigurator feedWebAppConfig
INFO: Reading config /WEB-INF/faces-config.xml
24.10.2007 12:24:31 org.apache.myfaces.webapp.DefaultFacesInitializer initFaces
SCHWERWIEGEND: Error initializing MyFaces: java.net.UnknownHostException: java.sun.com
javax.faces.FacesException: java.net.UnknownHostException: java.sun.com
	at org.apache.myfaces.config.FacesConfigurator.configure(FacesConfigurator.java:182)
	at org.apache.myfaces.webapp.DefaultFacesInitializer.initFaces(DefaultFacesInitializer.java:112)
Offensichtlich wurde beim Einlesen der faces-config.xml diese XML-Datei validiert. Schuld daran ist der folgende Eintrag:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
"http://java.sun.com/dtd/web-facesconfig_1_1.dtd" >
<faces-config>
...

Schuld daran ist die web-facesconfig_1_1.dtd, die nicht mehr mit MyFaces 1.2.0 ausgeliefert wird. Daher sollte man bei Verwendung von JSF 1.2 nicht mehr die DTD, sondern die entsprechende XSD angeben:

<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">;

Damit sollte dann Tomcat (oder andere Servlet-Container) ohne diese Exception starten.
Wer allerdings zum Editieren der faces-config.xml die Faces-Console von James Holmes verwendet, wird feststellen, dass sich damit diese Datei nicht mehr grafisch editieren lässt. Abhilfe: auf eine anderen Editor umsteigen - allerdings habe ich bis jetzt noch keine wirkliche Alternative für die Faces-Console gefunden.

... link (0 Kommentare)   ... comment


Tuesday, 23. October 2007
Linux Mini
Nachdem ich seit 3 Jahren begeisterter Mac-Mini-Besitzer bin und das Konzept für zukunftsweisend halte (wer will denn schon wirklich einen Heizlüfter als PC), gibt es auch eine schicken Linux Mini bei Manufactum - da könnte man direkt schwach werden...

... link (0 Kommentare)   ... comment


Monday, 22. October 2007
OpenOffice-Folien als Video aufnehmen
Wie kann man OpenOffice-Folien auch auf anderen Rechnern oder gar auf DVD-Playern abspielen? Eine Möglichkeit: Folien abspielen und mit Screen-Capture-Tools aufnehmen. Hier eine Kurz-Anleitung für Linux:
  • OpenOffice starten. Für ein Video ist eine Auflösung für 640x480 ausreichend. Deshalb empfiehlt es sich, unter dem Menüpunkt "Bildschirmpräsentationseinstellungen..." "Fenster" als Darstellungsart auszuwählen.
  • Screen-Capture starten: xvidcap --cap_geometry 640x480
  • Aufnahme starten
  • Folien-Präsentation starten
xvidcap ist bei den meisten Distributoren (z.B. openSUSE 10.2) mit dabei. Wer mehr zu Screen-Capture-Tools für Linux wissen will, wird bei linux.com oder linuxdevcenter.com fündig.

... link (0 Kommentare)   ... comment


Saturday, 13. October 2007
AOP-Schulung bei Witt-Weiden
Am Dienstag begann meine erste Schulung von AOP und AspectJ innerhalb einer Firma, und zwar bei Witt in Weiden. Es war eine recht nette Atmosphäre und vieles an dieser Firma hat mich an meine Anfangszeit bei RWG erinnert: es gab eine eigene Systemabteilung, ein Architektur-Team und einen Verantwortlichen für die Tool-Kette.

Anfangs hatte ich zwar noch Bedenken, ob ich mit dem anvisierten Stoff durchkommen würde, aber diese Bedenken waren zum Glück unbegründet. Zum Abschluss blieb noch genügend Zeit, die einzelnen Schulungsteilnehmer im Team bei Robocode gegeneinander antreten zu lassen, was allen Beteiligten sichtlich Spaß bereitet hat.

... link (0 Kommentare)   ... comment


Saturday, 15. September 2007
Korrektur zum AspectJ5-Buch
Durch eine Frage in der AspectJ-Mailingliste bin ich heute darauf aufmerksam geworden, dass ein around-Advice immer mit Typ des Rückgabewerts angegeben werden muss, also z.B.
void meinKleinerAdvice() : meinPointcut() {
    System.out.println("Halli hallo!");
}
Dummerweise kommt es in meinem AspectJ5-Buch nicht so klar hervor. Daher habe ich diesen Hinweis in den Korrekturen zum Buch mit aufgenommen.

... link (0 Kommentare)   ... comment