Mittwoch, 15. August 2012

Java 7 konfigurieren unter Mac OS X und Eclipse

Java 7 ist endlich für Mac OS X fertig geworden.


Aber wie konfiguriert man Eclipse bzw. STS, dass es das neue Java 7 verwendet. Dazu muss man zuerst das neue Java finden (/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/). Leider kann man diesen Ordner nicht im Eclipse Filechooser auswählen, man muss den Pfad direkt in die Zeile JRE home rein kopieren (siehe Bild unten).


Jetzt muss nur noch ein guter JRE name gesetzt werden. Leider funktioniert dieser Trick bei Open Office nicht.

Damit Maven auch das neue Java 7 benutzt muss die Variable Java_Home gesetzt werden. Am besten editiert man dazu die ~/.profile. Dort fügt man folgende Zeile ein:
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home"

Dann benutzt Maven auch das aktuelle Java:

mvn -version
Apache Maven 3.0.4 (r1232337; 2012-01-17 09:44:56+0100)
Maven home: /usr/share/maven
Java version: 1.7.0_11, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home/jre
Default locale: de_DE, platform encoding: UTF-8
OS name: "mac os x", version: "10.8.3", arch: "x86_64", family: "mac"

Donnerstag, 9. August 2012

Hudson 3 Home

Wer nach dem Home Verzeichnis von Hudson 3 sucht muss eine Weile Suchen. Unter Ubuntu mit einem Tomcat, der aus dem Repository installiert wurde liegt das Home Verzeichnis von Hudson 3 unter: /usr/share/tomcat7/.hudson

Mittwoch, 20. Juni 2012

Hudson 3 M3

Nach den Aufräumarbeiten der letzten Releases ist jetzt der Hudson 3 Milestone 3 erschienen. Beim Start des Hudson wird man jetzt von einem Login begrüßt. Leider funktioniert der nicht mit den alten Hudson 3 M2 Daten. Das Disablen der Sicherheitseinstellungen true
ändert nichts daran. Also lösche ich die Daten im HUDSON_HOME. Jetzt geht. Übrigens ist mein HUDSON_HOME zu finden unter: /usr/share/tomcat7/.hudson/

Mehr Informationen:
http://hudsoncentral.wordpress.com/2012/06/19/duck-here-comes-m3/

Freitag, 15. Juni 2012

XSL CDATA Hack

Eigentlich habe ich XSL schon lange für tot gehalten wegen der schlechten Wartbarkeit und Toolunterstützung. Doch ich probierte mich mal wieder und war erstaunt, wie gut es ging, bis ich auf folgenden Problem stiess: kopieren eines Textknotens von einer XML Datei in eine andere XML Datei, das ist einfach: xsl:copy-of die HTML Formatierungen blieben erhalten, sehr schön. Leider hat das Importprogramm (OpenCMS), welches die neue XML verarbeiten soll ein Problem mit HTML Tags, es möchte dringend alles durch CDATA umschlossen haben, auch das ist einfach: <xsl:output method="xml" indent="yes" cdata-section-elements="content"/>. Jetzt die beiden Sachen kombinieren, fertig. Doch das funktioniert nicht! Bug oder Feature? Das kann ich schwer entscheiden. Da hilft ein alten HTML/JS Hack weiter. Das CDATA wird in Teilstrichs, hier zerlegt xsl:variable und danach zusammengesetzt. Das ganze sieht dann so aus:




Auf diese Weise kann man XSL COPY-OF mit CDATA kombinieren. Auf das CDATA-SECTION-Element kann verzichtet werden.

Mittwoch, 4. April 2012

Testen mit Grails

Grails ist ein nettes Web Framework. Leider ist das Testen und das Test Driven Development nicht mehr ganz so einfach wie bei der blanken Java Entwicklung. zum Testen in Grails muss man definieren, dass es sich um ein Objekt handelt, dass im Test benötigt wird. Dies geschieht mit Hilfe von mockDomain. Dadurch wird der Grails Kontext dieses Objekts für den Test bereitgestellt. Methoden wie save funktionieren dann. Der zweite Haken ist das Mocken von Services. Mann kann einen z.B. abhängigen Service durch die entsprechende Mock Variante ersetzen, mockFor und createMock sind hierfür notwendig.
Weil diese Beschreibung nicht vollständig ist, hier ein Link auf eine gute Beschreibung:
http://www.ibm.com/developerworks/java/library/j-grails10209/

Montag, 26. März 2012

Polyglote Programmierung

Als ich die Überschrift das erste Mal las, dachte ich zuerst es geht um Internationalisierung und UTF-8, aber nein das Thema polyglotte Programmierung ist spannender. Vereinfacht beschreibt polyglotte Programmierung einen Mix aus unterschiedlichen Programmiersprachen zur Lösung von Softwareentwicklungsaufgaben und bildet damit einen einen Gegenpol zu der vor allem Im Java-Bereich dominieren Auffassung, das eine Programmiersprache für alle Probleme (Server, Smartcard, Client, Real Time) reicht. Oder um es sehr plakativ austzzudrücken: Java und C gegen XML und DSL (domain-specific language). Auf der Heise-Seite gibt es eine kritischen kurzen Artikel zur polyglotten Programmierung (http://www.heise.de/developer/artikel/Warum-Polyglot-Programming-nicht-praxistauglich-ist-1479542.html) bzw. ist das Original auf Englisch als Blog Post erschienen (http://lofidewanto.blogspot.de/2011/10/why-is-polyglot-programming-or-do-it.html). Auch wenn ich offen gegenüber neuen Entwicklungen bin, so kenne ich die Konfigurationshöllen ala Spring und Maven. Auch wenn sich heute der Zustand in der Spring Welt verbessert hat, so bestärkt mich der Artikel in meiner Skepsis gegenüber polyglotten Projekten. Ein Problem der polyglotten Entwicklung muss aus meiner Sicht stärker betont werden, das Problem der Wartbarkeit polyglotter Projekte. Ich bin der Meinung, dass polyglotte Projekt entgegen der eigentlichen Ziele der polyglotten Programmierung zu einer höheren Komplexität neigen. Und die Nachteile, mehr Fehler und hohe Änderungsträgheit überwiegen. Aus meiner Sicht sind gut designte Objekte und Pakete nichts weiter als eine Vorform einer DSL. Wichtig ist, die Benennung und die Sichtbarkeit von Objekten und Methoden so einzusetzen, dass man mit ihnen so effektiv umgehen kann, wie man man es von einer DSL erwarten würde.

Dienstag, 24. Januar 2012

Buchreview: Arbeiten statt Deligieren

Junge, neue Unternehmen haben es in Deutschland schwer auf die Beine zu kommen und erfolgreich zu werden. Die bürokratischen Bestimmungen und die Organisations-Mentalität der Deutschen hämt viele gute Ideen und lässt diese schon im Keim ersticken. Das Besteller Buch "Rework" der erfolgreichen Software Schmiede "37signals" aus Amerika beschreibt wie es mit einfachen, greifbaren Mitteln möglich ist gute Ideen auf den Markt zu bringen. Es geht nicht darum teure Werbung zu schalten, Manager einzustellen welche die Arbeit deligieren, lange Meetings zu halten, bis spät in die Nacht zu arbeiten oder Geld von Investoren zu akquirieren. Im Gegenteil, es geht darum Produkte zu entwickeln die einen begeistern, seinen Kunden zuzuhören, ehrlich zu sein und am Erfolg zu arbeiten und das mit Mitteln die wir alle zur Verfügung haben. Die Autoren zeigen wie jeder mit dem Fokus auf das Wesentliche zum Ziel kommt. Diese Maxime wird wunderbar im Buch umgesetzt. Die Kapitel sind nicht länger als zwei Seiten, sind leicht zu lesen und für jeden verständlich. Ein großartiges Buch für Alle die arbeiten und Arbeit produzieren.
REWORK - Jason Fried & David Heinemeier Hansson - Founders of 37signals
Autor des Gastbeitrags: Stefan Laabs