<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>all-IT &#187; Java</title>
	<atom:link href="http://www.k-oo.de/blog/category/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.k-oo.de/blog</link>
	<description>all-IT ist ein Blog aus dem IT Alltag</description>
	<lastBuildDate>Fri, 03 Feb 2012 09:42:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>jaxTV: HTML5 &#8211; das Web und der Browser als Plattform</title>
		<link>http://www.k-oo.de/blog/2011/11/26/jaxtv-html5-das-web-und-der-browser-als-plattform/</link>
		<comments>http://www.k-oo.de/blog/2011/11/26/jaxtv-html5-das-web-und-der-browser-als-plattform/#comments</comments>
		<pubDate>Sat, 26 Nov 2011 09:40:06 +0000</pubDate>
		<dc:creator>gklinkmann</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[JAX]]></category>

		<guid isPermaLink="false">http://www.k-oo.de/blog/?p=2510</guid>
		<description><![CDATA[Müsste ich den Preis für die beste Keynote des Jahres vergeben, würde ich den Preis an Christian Heilmann verleihen. Sein Vortrag war für mich eines der Highlights der diesjährigen Jax (Konferenz für Java, Architektur, Cloud &#038; Agile). HTML5 &#8211; das Web und der Browser als Plattform from JAX TV on Vimeo. An dieser Stelle sei [...]]]></description>
			<content:encoded><![CDATA[<p>Müsste ich den Preis für die beste Keynote des Jahres vergeben, würde ich den Preis an Christian Heilmann verleihen. Sein Vortrag war für mich eines der Highlights der diesjährigen Jax (Konferenz für Java, Architektur, Cloud &#038; Agile).</p>
<p><iframe src="http://player.vimeo.com/video/31481966?title=0&amp;byline=0&amp;portrait=0" width="400" height="225" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p>
<p><a href="http://vimeo.com/31481966">HTML5 &#8211; das Web und der Browser als Plattform</a> from <a href="http://vimeo.com/jaxtv">JAX TV</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>An dieser Stelle sei auch auf die vielen anderen sehr interessanten Vorträge verwiesen, die zum Teil auf dem <a href="http://vimeo.com/jaxtv/videos/sort:date" title="Vimeo JAX TV Channel">JAX TV Channel</a> von Vimeo veröffentlicht wurden</p>
 <p><a href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2510&amp;md5=3af4b54a5375a22b3b2aebd139e765e4" title="Flattr" target="_blank"><img src="http://www.k-oo.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.k-oo.de/blog/2011/11/26/jaxtv-html5-das-web-und-der-browser-als-plattform/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2510&amp;md5=3af4b54a5375a22b3b2aebd139e765e4" type="text/html" />
	</item>
		<item>
		<title>Spruch des Tages</title>
		<link>http://www.k-oo.de/blog/2011/11/21/spruch-des-tages/</link>
		<comments>http://www.k-oo.de/blog/2011/11/21/spruch-des-tages/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 06:43:45 +0000</pubDate>
		<dc:creator>gklinkmann</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.k-oo.de/blog/?p=2498</guid>
		<description><![CDATA[Java ist das Cobol des 21. Jahrhunderts. Tim Pritlove in mobilemacs Folge 76]]></description>
			<content:encoded><![CDATA[<blockquote><p>
Java ist das Cobol des 21. Jahrhunderts.
</p></blockquote>
<p>Tim Pritlove in mobilemacs <a href="http://mobilemacs.de/2011/11/mm076-seepferdchensex.html" title="mobilemacs Folge 76">Folge 76</a></p>
 <p><a href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2498&amp;md5=741f1b178f10bd4fe34a82f378eefc72" title="Flattr" target="_blank"><img src="http://www.k-oo.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.k-oo.de/blog/2011/11/21/spruch-des-tages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2498&amp;md5=741f1b178f10bd4fe34a82f378eefc72" type="text/html" />
	</item>
		<item>
		<title>Eclipse PDT, MAMP und die PHP Scripts</title>
		<link>http://www.k-oo.de/blog/2011/10/20/eclipse-pdt-mamp-und-die-php-scripts/</link>
		<comments>http://www.k-oo.de/blog/2011/10/20/eclipse-pdt-mamp-und-die-php-scripts/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 04:53:05 +0000</pubDate>
		<dc:creator>gklinkmann</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[macos]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.k-oo.de/blog/?p=2466</guid>
		<description><![CDATA[Als Entwicklungs-Hardware sind Macs momentan ziemlich beliebt, läuft doch auf diesen Alu Beauties ein Betriebssystem, das auf Unix basiert. Ein weiterer Grund dafür dürfte auch sein, dass die Entwicklungsumgebung Eclipse auf MacOs gut unterstützt wird. Dies gilt vor allem für Java (mit dem Java Development Tool &#8211; JDT). Aber auch PHP Webanwendungen lassen sich gut [...]]]></description>
			<content:encoded><![CDATA[<p>Als Entwicklungs-Hardware sind Macs momentan ziemlich beliebt, läuft doch auf diesen Alu Beauties ein Betriebssystem, das auf Unix basiert.</p>
<p>Ein weiterer Grund dafür dürfte auch sein, dass die Entwicklungsumgebung Eclipse auf MacOs gut unterstützt wird. Dies gilt vor allem für Java (mit dem Java Development Tool &#8211; JDT). Aber auch PHP Webanwendungen lassen sich gut mit Eclipse und dem PHP Development Tool &#8211; PDT programmieren.</p>
<p>Das PDT bringt keinen eigenen PHP Interpreter mit. D.h., man muss selbst für einen Webserver mit PHP Modul sorgen. Auf dem Mac bekommt man das Rundum Sorglos Paket mit <a href="http://www.mamp.info" title="MAMP">MAMP</a>.</p>
<p>Möchte man auch PHP Scripts unter Eclipse ausführen, muss man die beiden miteinander bekannt machen. Doch zuvor verlangt <strong>Eclipse PDT</strong> nach einem <strong>Debugger</strong>. Zur Auswahl stehen der <strong>Zend Debugger</strong>, der leider nicht mit MAMP mitgeliefert wird und <strong>XDebug</strong>, dessen Modul zwar in MAMP integriert ist, bei mir aber nicht funktionierte.</p>
<p>Eine aktuelle Version von XDebug kann man sich über <strong>brew</strong> installieren.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">brew <span style="color: #c20cb9; font-weight: bold;">install</span> xdebug</pre></div></div>

<p>Brew setzt zwar Xcode voraus, sollte aber auf keinem Entwickler-Mac fehlen. Eine Installationsanleitung gibt es auf <a href="https://github.com/mxcl/homebrew/wiki/installation" title="brew Installationsanleitung">github</a>.</p>
<p>Doch zurück zu XDebug. Während der Installation wird man auf die nächsten Schritte hingewiesen:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">To use this software:
  <span style="color: #000000; font-weight: bold;">*</span> Add the following line to php.ini:
    <span style="color: #007800;">zend_extension</span>=<span style="color: #ff0000;">&quot;/usr/local/Cellar/xdebug/2.1.1/xdebug.so&quot;</span>
  <span style="color: #000000; font-weight: bold;">*</span> Restart your webserver.
  <span style="color: #000000; font-weight: bold;">*</span> Write a PHP page that calls <span style="color: #ff0000;">&quot;phpinfo();&quot;</span>
  <span style="color: #000000; font-weight: bold;">*</span> Load it <span style="color: #000000; font-weight: bold;">in</span> a browser and look <span style="color: #000000; font-weight: bold;">for</span> the info on the xdebug module.
  <span style="color: #000000; font-weight: bold;">*</span> If you see it, you have been successful<span style="color: #000000; font-weight: bold;">!</span></pre></div></div>

<p>Die php.ini, die MAMP mitbringt, lässt sich nicht mit normalen User Rechten editieren. Mit sudo geht es aber schon.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">vi</span> <span style="color: #000000; font-weight: bold;">/</span>Applications<span style="color: #000000; font-weight: bold;">/</span>MAMP<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>php<span style="color: #000000; font-weight: bold;">/</span>php5.3.6<span style="color: #000000; font-weight: bold;">/</span>conf<span style="color: #000000; font-weight: bold;">/</span>php.ini</pre></div></div>

<p>Im Bereich <strong>[xdebug]</strong> dann die Direkive für das xdebug Modul hinzufügen:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>xdebug<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #007800;">zend_extension</span>=<span style="color: #ff0000;">&quot;/usr/local/Cellar/xdebug/2.1.1/xdebug.so&quot;</span></pre></div></div>

<p>den Webserver durchstarten und den Erfolg wie oben beschrieben kontrollieren.</p>
<p>Funktioniert alles, muss man in Eclipse nur noch in den Einstellungen ein <strong>PHP Executeable</strong> konfigurieren um von dort aus PHP Scripts starten zu können.</p>
<p><a href="http://www.k-oo.de/blog/wp-content/uploads/2011/10/eclipse-php-executeable.png" rel="lightbox"><img src="http://www.k-oo.de/blog/wp-content/uploads/2011/10/eclipse-php-executeable-500x406.png" alt="eclipse php-executeable" title="eclipse php-executeable" width="500" height="406" class="alignnone size-medium wp-image-2482" /></a></p>
 <p><a href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2466&amp;md5=bc613d80623e0851c6696b1c51b1bce4" title="Flattr" target="_blank"><img src="http://www.k-oo.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.k-oo.de/blog/2011/10/20/eclipse-pdt-mamp-und-die-php-scripts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2466&amp;md5=bc613d80623e0851c6696b1c51b1bce4" type="text/html" />
	</item>
		<item>
		<title>JAX TV</title>
		<link>http://www.k-oo.de/blog/2011/05/25/jax-tv/</link>
		<comments>http://www.k-oo.de/blog/2011/05/25/jax-tv/#comments</comments>
		<pubDate>Wed, 25 May 2011 15:57:27 +0000</pubDate>
		<dc:creator>gklinkmann</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Grails]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[JAX]]></category>

		<guid isPermaLink="false">http://www.k-oo.de/blog/?p=2311</guid>
		<description><![CDATA[Die diesjährige Jax (Fachkonferenz für Java) ist seit gut 2 Wochen vorbei. Ein Teil der Vorträge wurde auf Video aufgezeichnet und wird jetzt nach und nach unter JAX TV Channel auf Vimeo bereitgestellt. Wie immer waren sehr interessante Vorträge aus allen Themenbereichen darunter. Für jeden Java Geschmack sollte also etwas dabei sein.]]></description>
			<content:encoded><![CDATA[<p>Die diesjährige Jax (Fachkonferenz für Java) ist seit gut 2 Wochen vorbei. Ein Teil der Vorträge wurde auf Video aufgezeichnet und wird jetzt nach und nach unter <a href="http://www.vimeo.com/jaxtv/videos/sort:date">JAX TV</a> Channel auf Vimeo bereitgestellt.</p>
<p>Wie immer waren sehr interessante Vorträge aus allen Themenbereichen darunter. Für jeden Java Geschmack sollte also etwas dabei sein.</p>
<p><img src="http://www.k-oo.de/blog/wp-content/uploads/2011/05/jaxtv.jpg" alt="" title="jax tv" width="413" height="190" class="alignnone size-full wp-image-2324" /></p>
 <p><a href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2311&amp;md5=3e7d8dcddac056b798ece7fbb2182865" title="Flattr" target="_blank"><img src="http://www.k-oo.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.k-oo.de/blog/2011/05/25/jax-tv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2311&amp;md5=3e7d8dcddac056b798ece7fbb2182865" type="text/html" />
	</item>
		<item>
		<title>Grails und Eclipse</title>
		<link>http://www.k-oo.de/blog/2011/03/14/grails-und-eclipse/</link>
		<comments>http://www.k-oo.de/blog/2011/03/14/grails-und-eclipse/#comments</comments>
		<pubDate>Mon, 14 Mar 2011 04:56:12 +0000</pubDate>
		<dc:creator>gklinkmann</dc:creator>
				<category><![CDATA[Grails]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[Entwicklungsumgebung]]></category>
		<category><![CDATA[groovy]]></category>

		<guid isPermaLink="false">http://www.k-oo.de/blog/?p=2126</guid>
		<description><![CDATA[Ich habe in der letzten Zeit das Thema Grails in diesen Blog etwas vernachlässigt. So ist es nun nach dieser Durststrecke an der Zeit, wieder einen Blog Eintrag zu diesem Thema zu schreiben (weitere könnten folgen). Einer meiner ersten Artikel zu Grails zeigte, wie man Grails und Eclipse zueinander bringt. Dieser Eintrag war so erfolgreich, [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe in der letzten Zeit das Thema Grails in diesen Blog etwas vernachlässigt. So ist es nun nach dieser Durststrecke an der Zeit, wieder einen Blog Eintrag zu diesem Thema zu schreiben (weitere könnten folgen).<br />
Einer meiner <a href="http://www.k-oo.de/blog/2007/02/03/komfort-grails-und-eclipse/">ersten Artikel zu Grails</a> zeigte, wie man <strong>Grails und Eclipse</strong> zueinander bringt. Dieser Eintrag war so erfolgreich, dass ich ihn auch als <a href="http://www.k-oo.de/blog/grails/komfort-grails-und-eclipse/">feste Seite</a> im Rahmen eines kleinen Tutorials in den Blog integriert habe.</p>
<div style="float:left;margin-right: 10px">
<img src="http://www.k-oo.de/blog/wp-content/uploads/2011/03/sts_grails_plugins.png" alt="" title="sts - eclipse grails plugins" width="242" height="500" class="alignnone size-full wp-image-2213" />
</div>
<p>Dies ist ein paar Monate her und die Unterstützung der Erstellung von Grails Anwendungen durch Eclipse ist stetig besser geworden.<br />
War es zum Anfang so, dass die mit Abstand beste IDE für Grails IDEA war, so holt das freie Eclipse immer mehr auf. Spätestens mit dem Wechsel der Grails Entwickler zu Springsource und der damit verbundenen Einbettung in die Eclipse basierte <a href="http://www.springsource.com/developer/sts">Springsource Tool Suite (STS)</a> hat sich eine Menge getan.</p>
<p>Mal abgesehen von dem Hauptspeicher &#8211; Hunger von STS fühle ich mich als alter Eclipse Nutzer gut aufgehoben. Mit Netbeans und IDEA konnte ich mich nie so richtig anfreunden.</p>
<p><img src="http://www.k-oo.de/blog/wp-content/uploads/2011/03/sts_grails_nav.png" alt="" title="sts grails navigation" width="109" height="91" class="alignnone size-full wp-image-2216" /> </p>
<p>Um den Grails Support zu aktivieren müssen die <strong>Grails und Groovy Extensions</strong> über den Reiter Extensions des STS Dashboards installiert werden (s. Screenshot). Danach gibt es für Grails Projekte eine eigene Perspektive mit Syntax Highlighting, Code Vervollständigung und einer übersichtlichen Navigation im Project Explorer.<br />
In der Toolbar gibt es in der Grails Perspektive einen Button <img src="http://www.k-oo.de/blog/wp-content/uploads/2011/03/sts_grails_button.png" alt="" title="sts grails button" width="21" height="22" class="alignnone size-full wp-image-2219" style="display:inline" /> zur Ausführung von Grails Befehlen (wie z.B. <code>run-app</code>).</p>
<p style="clear:both" />
Bei der Installation der Grails Extensions wird im Installationsverzeichnis des STS die aktuelle <strong>Grails Version</strong> abgelegt.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">~ <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #c20cb9; font-weight: bold;">ls</span> springsource<span style="color: #000000; font-weight: bold;">/</span>
   grails-1.3.5
   grails-1.3.6				
   grails-1.3.7
   maven-2.2.1.RELEASE				
   roo-1.1.0.RELEASE			
   tc-server-developer-2.0.4.RELEASE
   sts-2.5.0.RELEASE</pre></div></div>

<p>Gibt es bei den <strong>Updates</strong> (Help -> check for Updates) eine neue Grails Version wird diese dort hinzugefügt. In den <strong>Preferences (Groovy -> Grails)</strong> muss man dann die neue Version für den Workspace übernehmen. Im Grails Projekt ist dann noch der <code>upgrade</code> <strong>Befehl</strong> notwendig.</p>
<p><strong>Fazit:</strong><br />
Die Grails Integration in Eclipse hat einen großen Schritt nach vorn getan. Vom Funktionsumfang dürfte IDEA immer noch führen. Grails Projekte werden dort allerdings nur in der kostenpflichtigen ULTIMATE Variante unterstützt.<br />
Die kostenfreien Entwicklungsumgebungen Netbeans und die Eclipse basierte STS unterscheiden sich kaum in der Grails Unterstützung. Hier entscheidet die persönliche Vorliebe über die IDE.</p>
<p><strong>Links:</strong><br />
<a href="http://stackoverflow.com/questions/233664/best-ide-for-grails-groovy">Diskussion zu diesem Thema auf stackoverflow.com</a></p>
 <p><a href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2126&amp;md5=957065af38ddd941effd8c43d66854a9" title="Flattr" target="_blank"><img src="http://www.k-oo.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.k-oo.de/blog/2011/03/14/grails-und-eclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2126&amp;md5=957065af38ddd941effd8c43d66854a9" type="text/html" />
	</item>
		<item>
		<title>groovy zootool &#8211; Lesezeichen automatisieren</title>
		<link>http://www.k-oo.de/blog/2011/01/01/groovy-zootool-lesezeichen-automatisieren/</link>
		<comments>http://www.k-oo.de/blog/2011/01/01/groovy-zootool-lesezeichen-automatisieren/#comments</comments>
		<pubDate>Sat, 01 Jan 2011 05:25:55 +0000</pubDate>
		<dc:creator>gklinkmann</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[groovy]]></category>

		<guid isPermaLink="false">http://www.k-oo.de/blog/?p=2079</guid>
		<description><![CDATA[Einen ähnlichen Artikel habe ich vor einiger Zeit auch für meinen Ex &#8211; Lesezeichenverwalter del.icio.us geschrieben. Mein neuer Dienstleister ist zootool. Über die Gründe des Wechsels habe ich ja erst vor kurzem geschrieben. Wenn man sich in eine neue Abhängigkeit begiebt, sollte alles Gute erhalten bleiben. So bietet auch zootool über eine API den Zugriff [...]]]></description>
			<content:encoded><![CDATA[<style type="text/css">
.wraptocenter {
    display: table-cell;
    text-align: center;
    vertical-align: middle;
    width: ...;
    height: ...;
}
.wraptocenter * {
    vertical-align: middle;
}
/*\*//*/
.wraptocenter {
    display: block;
}
.wraptocenter span {
    display: inline-block;
    height: 100%;
    width: 1px;
}
/**/
</style>
<p><!--[if lt IE 8]><br />
<style>
.wraptocenter span {
    display: inline-block;
    height: 100%;
}
</style>
<p><![endif]--></p>
<div class="wraptocenter"><span></span><br />
   <img src="http://www.k-oo.de/blog/wp-content/uploads/2007/01/groovy.png" alt="" title="Groovy Logo" width="203" height="100" class="alignnone size-full wp-image-28" /></p>
<p>   <img src="http://www.k-oo.de/blog/wp-content/uploads/2010/12/zootool.jpg" alt="" title="zootool logo" width="67" height="28" class="alignnone size-full wp-image-2059" />
</div>
<p>Einen <a href="http://www.k-oo.de/blog/2010/03/09/delicious-groovy-lesezeichen-automatisieren/">ähnlichen Artikel</a> habe ich vor einiger Zeit auch für meinen Ex &#8211; Lesezeichenverwalter del.icio.us geschrieben.</p>
<p>Mein neuer Dienstleister ist <a href="http://zootool.com">zootool</a>. Über die Gründe des Wechsels habe ich ja erst vor kurzem <a href="http://www.k-oo.de/blog/2010/12/23/good-bye-del-icio-us-hallo-zootool/">geschrieben</a>.<br />
Wenn man sich in eine neue Abhängigkeit begiebt, sollte alles Gute erhalten bleiben. So bietet auch zootool über eine <strong>API</strong> den Zugriff auf die Lesezeichen.</p>
<p>Anders als bei del.icio.us werden die Ergebnisse einer Anfrage aber im <strong>JSON</strong> Format geliefert, womit das <a href="http://groovy.codehaus.org/modules/http-builder/home.html">HTTPBuilder</a> Modul von Groovy aber auch keine Probleme hat, wie das Beispiel gleich zeigen wird. Ein <strong>verschlüsseltes Passwort</strong> und ein <strong>API-Key</strong> sorgen zusätzlich für mehr Sicherheit.</p>
<p>So, lange genug geredet. Hier ist der <strong>Code</strong> für einen einfachen zootool Lesezeichen Client:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
</pre></td><td class="code"><pre class="groovy" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #a1a100;">de.koo.groovy.rest</span>
&nbsp;
@Grab<span style="color: #66cc66;">&#40;</span>group<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'org.codehaus.groovy.modules.http-builder'</span>, module<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'http-builder'</span>, version<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'0.5.1'</span> <span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #a1a100;">groovyx.net.http.*</span> 
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #a1a100;">groovy.util.slurpersupport.GPathResult</span> 
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #a1a100;">java.security.MessageDigest</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #a1a100;">sun.misc.*</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ZootoolBookmarkClient<span style="color: #66cc66;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">def</span> username
  <span style="color: #000000; font-weight: bold;">def</span> password
  <span style="color: #000000; font-weight: bold;">def</span> apikey
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> ZootoolBookmarkClient<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    username<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&lt;username&gt;&quot;</span>
    password<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&lt;password&gt;&quot;</span>
    apikey<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&lt;apikey&gt;&quot;</span>
  <span style="color: #66cc66;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #993333;">void</span> main<span style="color: #66cc66;">&#40;</span>args<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">def</span> dc<span style="color: #66cc66;">=</span><span style="color: #000000; font-weight: bold;">new</span> ZootoolBookmarkClient<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
    dc.<span style="color: #006600;">request</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#125;</span>
&nbsp;
  <span style="color: #808080; font-style: italic;">/**
   * Lesezeichen abfragen und Aufbereitung der Ergebnisse 
   * im HTML Format als definition list
   */</span>
  <span style="color: #000000; font-weight: bold;">public</span> request <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">def</span> resp
&nbsp;
    <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #66cc66;">&#123;</span>
      <span style="color: #808080; font-style: italic;">// Authentifizierung</span>
      <span style="color: #000000; font-weight: bold;">def</span> url<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://zootool.com/api/users/items/?username=$username&amp;apikey=$apikey&quot;</span>
&nbsp;
      RESTClient rc <span style="color: #66cc66;">=</span> <span style="color: #000000; font-weight: bold;">new</span> RESTClient<span style="color: #66cc66;">&#40;</span> url <span style="color: #66cc66;">&#41;</span>
      rc.<span style="color: #006600;">auth</span>.<span style="color: #006600;">basic</span> <span style="color: #66cc66;">&#40;</span>username.<span style="color: #006600;">toLowerCase</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>, getEncodedPassword<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
      <span style="color: #808080; font-style: italic;">// anfragen und überprüfen der Antwort</span>
      <span style="color: #000000; font-weight: bold;">def</span> params<span style="color: #66cc66;">=</span><span style="color: #66cc66;">&#91;</span>:<span style="color: #66cc66;">&#93;</span>   
      resp<span style="color: #66cc66;">=</span>rc.<span style="color: #663399;">get</span><span style="color: #66cc66;">&#40;</span>params<span style="color: #66cc66;">&#41;</span>
&nbsp;
      <span style="color: #000000; font-weight: bold;">assert</span> resp.<span style="color: #006600;">status</span> <span style="color: #66cc66;">==</span> <span style="color: #cc66cc;">200</span>
&nbsp;
      <span style="color: #993399;">println</span> <span style="color: #ff0000;">&quot;&lt;dl&gt;&quot;</span>
      resp.<span style="color: #006600;">data</span>.<span style="color: #663399;">each</span> <span style="color: #66cc66;">&#123;</span>item <span style="color: #66cc66;">-&gt;</span>
        <span style="color: #993399;">println</span> <span style="color: #ff0000;">&quot;   &lt;dt&gt;&lt;a href=<span style="color: #000099; font-weight: bold;">\&quot;</span>${item?.url}<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;${item?.title}&lt;/a&gt;&lt;/dt&gt;&quot;</span>
        <span style="color: #993399;">println</span> <span style="color: #ff0000;">&quot;      &lt;dd&gt;${item?.title}&lt;/dd&gt;&quot;</span>
      <span style="color: #66cc66;">&#125;</span>
      <span style="color: #993399;">println</span> <span style="color: #ff0000;">&quot;&lt;/dl&gt;&quot;</span>
    <span style="color: #66cc66;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #66cc66;">&#40;</span>e<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
      e.<span style="color: #006600;">printStackTrace</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#125;</span>
  <span style="color: #66cc66;">&#125;</span>
&nbsp;
  <span style="color: #808080; font-style: italic;">/**
   * Passwort Verschlüsselung mit SHA-1 Algorithmus
   */</span>
  <span style="color: #000000; font-weight: bold;">public</span> getEncodedPassword <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #aaaadd; font-weight: bold;">MessageDigest</span> md <span style="color: #66cc66;">=</span> <span style="color: #aaaadd; font-weight: bold;">MessageDigest</span>.<span style="color: #006600;">getInstance</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'SHA-1'</span><span style="color: #66cc66;">&#41;</span>
    md.<span style="color: #006600;">update</span><span style="color: #66cc66;">&#40;</span>password.<span style="color: #006600;">getBytes</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'UTF-8'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> BASE64Encoder<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">encode</span><span style="color: #66cc66;">&#40;</span>md.<span style="color: #006600;">digest</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Ich wünsche Euch allen (mit und ohne gepflegten Kater) ein frohes und gesundes Jahr 2011.</p>
<p>Zum Schluss noch ein paar hilfreiche <strong>Links</strong>:</p>
<p><a href="http://zootool.com/api/keys">zootool API-Key Generierung</a><br />
<a href="http://zootool.com/api/docs/general">zootool API Doku</a><br />
<a href="http://zootool.com/api/docs/code">Beispiel Code für PHP, Python und Objective-C</a></p>
 <p><a href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2079&amp;md5=565b6bb8c47721eae6985a9111161a3e" title="Flattr" target="_blank"><img src="http://www.k-oo.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.k-oo.de/blog/2011/01/01/groovy-zootool-lesezeichen-automatisieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2079&amp;md5=565b6bb8c47721eae6985a9111161a3e" type="text/html" />
	</item>
		<item>
		<title>Java ist:</title>
		<link>http://www.k-oo.de/blog/2010/11/18/java-ist/</link>
		<comments>http://www.k-oo.de/blog/2010/11/18/java-ist/#comments</comments>
		<pubDate>Thu, 18 Nov 2010 16:21:12 +0000</pubDate>
		<dc:creator>gklinkmann</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.k-oo.de/blog/?p=1987</guid>
		<description><![CDATA[Das passiert, wenn man Objekt Orientierung mit russischen Holzpuppen erklärt: Quelle und Dank an: Java Grundlagen Kurs 2010]]></description>
			<content:encoded><![CDATA[<p>Das passiert, wenn man <strong>Objekt Orientierung mit russischen Holzpuppen</strong> erklärt:</p>
<p><a href="http://www.k-oo.de/blog/wp-content/uploads/2010/11/java_matrjoskas.jpg" rel="lightbox"><img src="http://www.k-oo.de/blog/wp-content/uploads/2010/11/java_matrjoskas-500x446.jpg" alt="" title="java ist" width="500" height="446" class="alignnone size-medium wp-image-2020" /></a></p>
<p><strong>Quelle und Dank an:</strong> Java Grundlagen Kurs 2010</p>
 <p><a href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=1987&amp;md5=369a26e54dec5a0b3357ace9beb5990b" title="Flattr" target="_blank"><img src="http://www.k-oo.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.k-oo.de/blog/2010/11/18/java-ist/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=1987&amp;md5=369a26e54dec5a0b3357ace9beb5990b" type="text/html" />
	</item>
		<item>
		<title>Spring 3 &#8211; REST und Content Negotiation</title>
		<link>http://www.k-oo.de/blog/2010/08/12/spring-3-rest-und-content-negotiation/</link>
		<comments>http://www.k-oo.de/blog/2010/08/12/spring-3-rest-und-content-negotiation/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 10:26:45 +0000</pubDate>
		<dc:creator>gklinkmann</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Spring]]></category>

		<guid isPermaLink="false">http://www.k-oo.de/blog/?p=1761</guid>
		<description><![CDATA[Fast jede moderne Webanwendung bietet ihre Daten und Funktionalitäten auch über eine REST Schnittstelle (meist im XML und/oder JSON Format) an. Webframeworks (wie z.B. Rails und Grails), die die Erstellung einer solchen REST Schnittstelle vereinfachen, erfreuen sich unter den Webentwicklern großer Beliebtheit. Da zumindest Grails im Hintergrund auch auf dem Webframework Spring aufsetzt, können auch [...]]]></description>
			<content:encoded><![CDATA[<div style="float:left;margin-right:10px">
<img src="http://www.k-oo.de/blog/wp-content/uploads/2009/10/spring-icon.gif" alt="" title="spring-icon" width="93" height="52" class="alignnone size-full wp-image-1115" />
</div>
<p>Fast jede moderne Webanwendung bietet ihre Daten und Funktionalitäten auch über eine <a href="http://de.wikipedia.org/wiki/Representational_State_Transfer">REST</a> Schnittstelle (meist im XML und/oder JSON Format) an.</p>
<p style="clear:both" />
Webframeworks (wie z.B. Rails und Grails), die die Erstellung einer solchen REST Schnittstelle vereinfachen, erfreuen sich unter den Webentwicklern großer Beliebtheit.<br />
Da zumindest <a href="http://www.grails.org">Grails</a> im Hintergrund auch auf dem Webframework <a href="http://www.springsource.org/about">Spring</a> aufsetzt, können auch Entwickler, die Grails nicht einsetzen dürfen oder wollen, mit Spring diese Funktionalität in ihre Anwendung integrieren.</p>
<p>Ein konkretes Beispiel mit dazu gehörigem Tutorial gibt es von <a href="http://stsmedia.net/series/spring-finance/">StSMedia</a>. Die grundsätzliche REST Integration wird in <a href="http://stsmedia.net/spring-finance-part-2-spring-mvc-spring-30-rest-integration/">Teil 2</a> näher erläutert. Die Umsetzung der ContentNegotiation, also die Auslieferung unterschiedlicher Formate aufgrund der Anfrage (im Accept Header oder durch Erweiterung der URL um die entsprechende Dateiendung) gibt es dann im <a href="http://stsmedia.net/spring-finance-part-7-adding-support-for-json-and-xml-views/">Teil 7</a>.</p>
<p>Der komplette Sourcecode der Spring Finance Manager Anwendung wird auf <a href="http://code.google.com/p/spring-finance-manager/downloads/list">Google Code</a> gehostet und steht dort zum Download bereit. Die Version 0.5 basiert zwar noch auf Spring 3 M4, ich konnte die dort implementierte REST Funktionalität aber auch mit Spring 3.0.2 problemlos nutzen.</p>
<p><strong>Links:</strong><br />
<a href="http://blog.springsource.com/2009/03/16/adding-an-atom-view-to-an-application-using-springs-rest-support/">REST Artikel im Springsource Blog</a></p>
 <p><a href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=1761&amp;md5=ddc76e6823fbf1f722cb4d46e7a0f04f" title="Flattr" target="_blank"><img src="http://www.k-oo.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.k-oo.de/blog/2010/08/12/spring-3-rest-und-content-negotiation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=1761&amp;md5=ddc76e6823fbf1f722cb4d46e7a0f04f" type="text/html" />
	</item>
		<item>
		<title>Vorschau auf Eclipse SDK 4.0</title>
		<link>http://www.k-oo.de/blog/2010/07/29/vorschau-auf-eclipse-sdk-4-0/</link>
		<comments>http://www.k-oo.de/blog/2010/07/29/vorschau-auf-eclipse-sdk-4-0/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 11:55:13 +0000</pubDate>
		<dc:creator>johnnypark</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Eclipse SDK 4.0]]></category>
		<category><![CDATA[Entwicklungsumgebung]]></category>
		<category><![CDATA[Helios]]></category>

		<guid isPermaLink="false">http://www.k-oo.de/blog/?p=1753</guid>
		<description><![CDATA[Wie heise.de heute berichtet wurde eine frühe Version der Eclipse SDK 4.0 veröffentlicht.  Sie dient laut Aussage der Entwickler als Spielwiese für Ideen für die kommende Genaration der vor allem im Java Bereich beliebten Entwicklungsumgebung. Einige Vorschläge fanden bereits den Weg in das letzte Release 3.6  ( Codename:  &#8220;Helios&#8221; ).  Der neue Look und die [...]]]></description>
			<content:encoded><![CDATA[<p>Wie <a title="Neues Eclipse zum Schnuppern freigegeben" href="http://www.heise.de/newsticker/meldung/Neues-Eclipse-zum-Schnuppern-freigegeben-1047399.html" target="_blank">heise.de</a> heute berichtet wurde eine frühe Version der Eclipse SDK 4.0 veröffentlicht.  Sie dient laut Aussage der Entwickler als Spielwiese für Ideen für die kommende Genaration der vor allem im Java Bereich beliebten Entwicklungsumgebung. Einige Vorschläge fanden bereits den Weg in das letzte Release 3.6  ( Codename:  &#8220;Helios&#8221; ).  Der neue Look und die jetzt schon deutlich angezogene Performance machen auf jeden Fall Lust auf mehr.</p>
<p>Link: http://www.eclipse.org/eclipse4/</p>
 <p><a href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=1753&amp;md5=c7aaa526662931e36ac7e8996edba280" title="Flattr" target="_blank"><img src="http://www.k-oo.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.k-oo.de/blog/2010/07/29/vorschau-auf-eclipse-sdk-4-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=1753&amp;md5=c7aaa526662931e36ac7e8996edba280" type="text/html" />
	</item>
		<item>
		<title>Java 4 ever</title>
		<link>http://www.k-oo.de/blog/2010/07/01/java-4-ever/</link>
		<comments>http://www.k-oo.de/blog/2010/07/01/java-4-ever/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 14:13:44 +0000</pubDate>
		<dc:creator>gklinkmann</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.k-oo.de/blog/?p=1740</guid>
		<description><![CDATA[Zu diesem Kurzfilm braucht man eigentlich nichts mehr zu sagen außer, unbedingt angucken und die Botschaft begreifen.]]></description>
			<content:encoded><![CDATA[<p>Zu diesem Kurzfilm braucht man eigentlich nichts mehr zu sagen außer, unbedingt angucken und die Botschaft begreifen. <img src='http://www.k-oo.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><object width="480" height="269"><param name="movie" value="http://www.dailymotion.com/swf/video/xdug56_java-4-ever_shortfilms"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed type="application/x-shockwave-flash" src="http://www.dailymotion.com/swf/video/xdug56_java-4-ever_shortfilms" width="480" height="269" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
 <p><a href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=1740&amp;md5=bc59bc1d45d61a078247af44d07e9d31" title="Flattr" target="_blank"><img src="http://www.k-oo.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.k-oo.de/blog/2010/07/01/java-4-ever/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=1740&amp;md5=bc59bc1d45d61a078247af44d07e9d31" type="text/html" />
	</item>
	</channel>
</rss>

