Archive for the ‘Computer & Software’ Category

Grails in Action und Groovy and Grails Recipes

Thursday, January 14th, 2010

Seit einiger Zeit beschäftige ich mich mit Groovy und dem darauf basierenden Grails Framework. Dazu habe ich mir zwei Bücher ins Regal gestellt die mir den Einstieg sehr einfach gemacht haben.

Das Buch Groovy and Grails Recipes eignet sich hervorragend für Java Entwickler um Erste Schritte mit Grails zu unternehmen. Die initial auftretenden Fragen von Installation bis Deployment werden angenehm kompakt geklärt und mit einfachen Beispielen veranschaulicht. Dabei geht der Autor Bashar Abdul-Jawad erst auf Groovy ein und stellt die Unterschiede, Gemeinsamkeiten und Erweiterungen von Groovy zu Java dar. Nachdem die Grundlagenkenntnise in Groovy vorhanden sind wird das Grails Framework und dessen Verwendung mit Beispielen erklärt. Bashar entwickelt in seinem Buch exemplarisch ein Forum und deckt dabei alle wichtigen Themen ab. Das Buch ist sehr übersichtlich aufgebaut und schon im Index findet man meist einen Hinweis zu aufkommenden Fragen, was auch am Aufbau von Recipes-Büchern (Frage-Antwort) liegt.

Fazit: Klare Empfehlung! Das Buch bietet kompaktes Wissen für Java Entwicklern, die sich mit Groovy und Grails beschäftigen möchten und schnelle Antworten zu anfänglich aufkommenden Fragen suchen.

Wenn man sich intensiver mit Grails beschäftgen möchte, bietet sich das Buch Grails in Action von Glen Smith und Peter Ledbrook erscheinen beim Manning Verlag an. Die Autoren gehen auf alle wichtigen Themen ein und erklären diese umfassend. Die Themen sind im Buch nach ihrer Häufigkeit gegliedert. Täglich benötigtes Wissen und verwendete Themen werden zuerst geklärt und dann wird auf erweiterte und speziellere Themen eingegangen.

Fazit: Empfehlenswert! Mit diesem Buch hat man alles an der Hand was man zur Entwicklung mit Groovy und Grails benötigt. Die Themen sind im Recipes Buch einfacher und kompakter erklärt, wenn man dort aber nicht weiterkommt empfiehlt sich ein Blick in das Manning Buch um Antwort auf Fragen zu erhalten. Die Gliederung nach “Essential”, “Core” oder “Advanced Grails” hat mir nicht so gefallen, aber die Suchfunktion bei Safaribooks hat darüber hinweggeholfen.

JBoss mit Remotezugriff

Friday, June 19th, 2009

Beim Versuch in meinem aktuellen Projekt JBoss auf unserer Buildumgebung zum laufen zu bringen, musste ich feststellen dass JBoss standardmässig nicht für den Remotezugriff eingerichtet ist. Ich dachte erst an ein Firewall Problem aber nichts da. Die Firewall war es nicht.

Um den Zugriff auf JBoss von einer anderen Maschine zu erlauben muss man entweder die JBoss Konfiguration anpassen…

oder JBoss so starten:

./run.sh -b 0.0.0.0

Shellgefrickel

Wednesday, November 12th, 2008

Als Besitzer eines neuen Mac wollte ich in IPhoto verwenden und habe darin “Ereignisse” ineinander geschoben…

das führte dazu das Bilder, die in beiden “Ereignissen” (am Ende ein Verzeichnis) vorhanden waren, ein “_2″ an den Dateinamen bekamen. Nun hätte per Hand löschen wirklich zu lange gedauert.
Also wollte ich die Konsole bemühen und dachte…

Schön wäre ein

find . -name *_2.jpg | xargs rm

…gewesen.

Leider enthielten die von find gelieferten Pfade aber Leerzeichen. Damit konnte rm dann nichts mehr anfangen.

./Data/2008/04 Rotorua/Picture 157_2.jpg
./Data/2008/04 Rotorua/Picture 158_2.jpg

Die Aufgabe war es nun die von find gelieferten Treffer mit Anführungszeichen zu umschliessen, damit rm diese richtig interpretieren und die Datein löschen kann…

nach ein bisschen gefrickel hat es dieser Command getan;

find . -name *_2.jpg | xargs -0 echo | sed ’s,\(.*\),”\1″,’ | xargs rm

leider ging es in der Mac Konsole nicht ohne das zwischengeschaltete echo wenn ich -0 bei xargs gesetzt habe (siehe unten). Wenn ich find -print0 mitgegeben habe sah es so aus als würde sed die Dateien öffnen und den Inhalt ausgeben.

man xargs:

-0      Change xargs to expect NUL (``\0'') characters as separators,
        instead of spaces and newlines.  This is expected to be used
        in concert with the -print0 function in find(1).