<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>techscouting through the java news</title>
	<atom:link href="http://blog.oio.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.oio.de</link>
	<description>Stuff for Java info junkies</description>
	<lastBuildDate>Thu, 26 Jan 2012 12:05:31 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.oio.de' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>techscouting through the java news</title>
		<link>http://blog.oio.de</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.oio.de/osd.xml" title="techscouting through the java news" />
	<atom:link rel='hub' href='http://blog.oio.de/?pushpress=hub'/>
		<item>
		<title>Functional Thinking</title>
		<link>http://blog.oio.de/2012/01/26/functional-thinking/</link>
		<comments>http://blog.oio.de/2012/01/26/functional-thinking/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 12:04:08 +0000</pubDate>
		<dc:creator>Falk Sippach</dc:creator>
				<category><![CDATA[Java and Quality]]></category>
		<category><![CDATA[Java Basics]]></category>
		<category><![CDATA[functional programming]]></category>

		<guid isPermaLink="false">http://blog.oio.de/?p=2312</guid>
		<description><![CDATA[&#8222;Funktional Programmieren heißt, man schreibt, was gemacht werden soll und nicht wie etwas gemacht werden soll.&#8220; Neal Ford beschreibt in einer Artikelserie auf developerWorks, wie man auch als auf Objektorientierung-gepolter Java-Entwickler Konzepte der funktionalen Programmierung verwenden kann, um seinen Java-Code &#8230; <a href="http://blog.oio.de/2012/01/26/functional-thinking/">Weiterlesen <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oio.de&amp;blog=7731718&amp;post=2312&amp;subd=techscouting&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&#8222;Funktional Programmieren heißt, man schreibt, was gemacht werden soll und nicht wie etwas gemacht werden soll.&#8220; Neal Ford beschreibt in einer Artikelserie auf developerWorks, wie man auch als auf Objektorientierung-gepolter Java-Entwickler Konzepte der funktionalen Programmierung verwenden kann, um seinen Java-Code lesbarer, verständlicher und damit leichter wart- und erweiterbar macht.</p>
<p><a href="http://www.ibm.com/developerworks/java/library/j-ft1/index.html">Thinking functionally (Teil 1)</a><br />
<a href="http://www.ibm.com/developerworks/java/library/j-ft2/index.html">Thinking functionally (Teil 2)</a><br />
<a href="http://www.ibm.com/developerworks/java/library/j-ft3/index.html">Thinking functionally (Teil 3)</a><br />
<a href="http://www.ibm.com/developerworks/java/library/j-ft4/index.html">Immutability</a><br />
<a href="http://www.ibm.com/developerworks/java/library/j-ft5/index.html">Coupling and composition (Teil 1)</a><br />
<a href="http://www.ibm.com/developerworks/java/library/j-ft6/index.html">Coupling and composition (Teil 2)</a><br />
<a href="http://www.ibm.com/developerworks/java/library/j-ft7/index.html">Functional features in Groovy (Teil 1)</a><br />
<a href="http://www.ibm.com/developerworks/java/library/j-ft8/index.html">Functional features in Groovy (Teil 2)</a></p>
<p>Weitere Artikel sollen folgen.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/techscouting.wordpress.com/2312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/techscouting.wordpress.com/2312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/techscouting.wordpress.com/2312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/techscouting.wordpress.com/2312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/techscouting.wordpress.com/2312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/techscouting.wordpress.com/2312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/techscouting.wordpress.com/2312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/techscouting.wordpress.com/2312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/techscouting.wordpress.com/2312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/techscouting.wordpress.com/2312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/techscouting.wordpress.com/2312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/techscouting.wordpress.com/2312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/techscouting.wordpress.com/2312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/techscouting.wordpress.com/2312/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oio.de&amp;blog=7731718&amp;post=2312&amp;subd=techscouting&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.oio.de/2012/01/26/functional-thinking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>0.000000 0.000000</georss:point>
		<geo:lat>0.000000</geo:lat>
		<geo:long>0.000000</geo:long>
		<media:content url="" medium="image">
			<media:title type="html">sippsack</media:title>
		</media:content>
	</item>
		<item>
		<title>Grails is getting Maven support</title>
		<link>http://blog.oio.de/2012/01/12/grails-is-getting-maven-support-2/</link>
		<comments>http://blog.oio.de/2012/01/12/grails-is-getting-maven-support-2/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 09:05:10 +0000</pubDate>
		<dc:creator>Sönke Sothmann</dc:creator>
				<category><![CDATA[Build, config and deploy]]></category>
		<category><![CDATA[Groovy and Grails]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Gant]]></category>
		<category><![CDATA[gradle]]></category>
		<category><![CDATA[grails]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://blog.oio.de/?p=3056</guid>
		<description><![CDATA[According to a recent blog post of Grails project lead Graeme Rocher, Grails is getting Maven support in the form of a plugin. Currently, Grails uses Maven repositories for dependency resolution, but the build system of a Grails application uses &#8230; <a href="http://blog.oio.de/2012/01/12/grails-is-getting-maven-support-2/">Weiterlesen <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oio.de&amp;blog=7731718&amp;post=3056&amp;subd=techscouting&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>According to a recent <a href="http://grails.io/post/15345119630/musings-on-maven">blog post of Grails project lead Graeme Rocher</a>, Grails is getting <a href="http://maven.apache.org/">Maven</a> support in the form of a plugin.</p>
<p>Currently, Grails uses Maven repositories for dependency resolution, but the build system of a Grails application uses <a href="http://gant.codehaus.org/">Gant</a>. For Grails 3.0 it is planned to establish <a href="http://gradle.org/">Gradle</a> as the build system of choice, as Gradle is getting more and more popular.</p>
<p>But as Maven is already widely used in the Java world, Graeme wants to provide Maven as an alternative build system.<br />
There will be an <a href="https://github.com/grails/grails-maven">initial plugin</a> providing basic Maven support soon, which will be compatible with Grails 2.0.<br />
A more refined integration will become available later, but it will probably requiere Grails 2.1.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/techscouting.wordpress.com/3056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/techscouting.wordpress.com/3056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/techscouting.wordpress.com/3056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/techscouting.wordpress.com/3056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/techscouting.wordpress.com/3056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/techscouting.wordpress.com/3056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/techscouting.wordpress.com/3056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/techscouting.wordpress.com/3056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/techscouting.wordpress.com/3056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/techscouting.wordpress.com/3056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/techscouting.wordpress.com/3056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/techscouting.wordpress.com/3056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/techscouting.wordpress.com/3056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/techscouting.wordpress.com/3056/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oio.de&amp;blog=7731718&amp;post=3056&amp;subd=techscouting&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.oio.de/2012/01/12/grails-is-getting-maven-support-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>0.000000 0.000000</georss:point>
		<geo:lat>0.000000</geo:lat>
		<geo:long>0.000000</geo:long>
		<media:content url="" medium="image">
			<media:title type="html">sothmann</media:title>
		</media:content>
	</item>
		<item>
		<title>Firebug 1.9 released</title>
		<link>http://blog.oio.de/2012/01/09/firebug-1-9-released/</link>
		<comments>http://blog.oio.de/2012/01/09/firebug-1-9-released/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 11:50:16 +0000</pubDate>
		<dc:creator>Sönke Sothmann</dc:creator>
				<category><![CDATA[Java Web Frameworks]]></category>
		<category><![CDATA[clipboard]]></category>
		<category><![CDATA[developer tool]]></category>
		<category><![CDATA[Firebug]]></category>
		<category><![CDATA[web developer]]></category>

		<guid isPermaLink="false">http://blog.oio.de/?p=3063</guid>
		<description><![CDATA[The popular web developer tool Firebug has been released in version 1.9. The new features include: Firebug panel docking it is now possible to dock the Firebug panel to any of the four sides of the browser window. Syntax error &#8230; <a href="http://blog.oio.de/2012/01/09/firebug-1-9-released/">Weiterlesen <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oio.de&amp;blog=7731718&amp;post=3063&amp;subd=techscouting&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img src="http://getfirebug.com/img/firebug-large.png" alt="Firebug" /></p>
<p>The popular web developer tool <a href="http://getfirebug.com/">Firebug</a> has been released in version 1.9.</p>
<p>The new features include:</p>
<ul>
<li>Firebug panel docking<br />
it is now possible to dock the Firebug panel to any of the four sides of the browser window.</li>
<li>Syntax error position<br />
Firebug now shows not only the line of an error, but also the exact position.</li>
<li>Support for JSON responses<br />
JSON responses are now supported, including a partial copying of tree elements to the clipboard.</li>
<li>Console log output linked to origin<br />
All console messages are now linked to their origin (file+line).</li>
<li>More tooltips while debugging scripts</li>
</ul>
<p>The full changelog is available at <a href="http://hacks.mozilla.org/2012/01/firebug-1-9-new-features/">hacks.mozilla.org</a>.</p>
<p>Firebug 1.9 is compatible with Firefox 5.0 &#8211; 11.0</p>
<p>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/techscouting.wordpress.com/3063/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/techscouting.wordpress.com/3063/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/techscouting.wordpress.com/3063/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/techscouting.wordpress.com/3063/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/techscouting.wordpress.com/3063/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/techscouting.wordpress.com/3063/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/techscouting.wordpress.com/3063/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/techscouting.wordpress.com/3063/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/techscouting.wordpress.com/3063/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/techscouting.wordpress.com/3063/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/techscouting.wordpress.com/3063/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/techscouting.wordpress.com/3063/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/techscouting.wordpress.com/3063/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/techscouting.wordpress.com/3063/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oio.de&amp;blog=7731718&amp;post=3063&amp;subd=techscouting&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.oio.de/2012/01/09/firebug-1-9-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>0.000000 0.000000</georss:point>
		<geo:lat>0.000000</geo:lat>
		<geo:long>0.000000</geo:long>
		<media:content url="" medium="image">
			<media:title type="html">sothmann</media:title>
		</media:content>

		<media:content url="http://getfirebug.com/img/firebug-large.png" medium="image">
			<media:title type="html">Firebug</media:title>
		</media:content>
	</item>
		<item>
		<title>Knockout JS 2.0.0 released &#8211; Dynamic JavaScript-UIs using Data Binding</title>
		<link>http://blog.oio.de/2011/12/23/knockout-js-2-0-0-released-dynamic-javascript-uis-using-data-binding/</link>
		<comments>http://blog.oio.de/2011/12/23/knockout-js-2-0-0-released-dynamic-javascript-uis-using-data-binding/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 09:56:48 +0000</pubDate>
		<dc:creator>Sönke Sothmann</dc:creator>
				<category><![CDATA[Groovy and Grails]]></category>
		<category><![CDATA[Java Web Frameworks]]></category>
		<category><![CDATA[Data Binding]]></category>
		<category><![CDATA[Dynamic UI]]></category>
		<category><![CDATA[grails]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Knockout JS]]></category>
		<category><![CDATA[mvvm]]></category>

		<guid isPermaLink="false">http://blog.oio.de/?p=3025</guid>
		<description><![CDATA[The Knockout JS Team recently released version 2.0.0 of their JavaScript data binding framework. Knockout JS is a small Javascript library that offers declarative data binding for your HTML code. It enables you to separate you HTML code from your &#8230; <a href="http://blog.oio.de/2011/12/23/knockout-js-2-0-0-released-dynamic-javascript-uis-using-data-binding/">Weiterlesen <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oio.de&amp;blog=7731718&amp;post=3025&amp;subd=techscouting&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://knockoutjs.com/">Knockout JS</a> Team recently released version 2.0.0 of their JavaScript data binding framework.</p>
<p>Knockout JS is a small Javascript library that offers declarative data binding for your HTML code. It enables you to separate you HTML code from your data and UI logic, offering automatic UI refresh and dependency tracking.<br />
I&#8217;m going to write an introductional blog post on KnockoutJS soon. In the meantime, check out the <a href="http://channel9.msdn.com/Events/MIX/MIX11/FRM08">great introduction video</a> of the creator Steve Sanderson.</p>
<p>The new features of version 2.0.0 are:</p>
<ul>
<li><strong>Control flow bindings</strong><br />
You don&#8217;t need a template engine like jquery-tmpl any longer. Simply use the new control flow bindings <em>if</em>, <em>ifnot</em>, <em>with</em>, and <em>foreach</em>.<br />
<pre class="brush: xml;">
&lt;ul data-bind=&quot;foreach: products&quot;&gt;
    &lt;li&gt;
        &lt;strong data-bind=&quot;text: name&quot;&gt;&lt;/strong&gt;
        &lt;em data-bind=&quot;if: manufacturer&quot;&gt;
            &amp;mdash; made by &lt;span data-bind=&quot;text: manufacturer.company&quot;&gt;&lt;/span&gt;
        &lt;/em&gt;
    &lt;/li&gt;
&lt;/ul&gt;
</pre></li>
<li><strong>Containerless control flow</strong><br />
You can now avoid using a container element for bindings like <em>foreach</em> by using the new comment-based control flow syntax.<br />
<pre class="brush: xml;">
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Here is a static header item&lt;/strong&gt;&lt;/li&gt;
    &lt;!-- ko foreach: products --&gt;
    &lt;li&gt;
        &lt;em data-bind=&quot;text: name&quot;&gt;&lt;/em&gt;
    &lt;/li&gt;
&lt;/ul&gt;
</pre></li>
<li><strong>Access to parent binding contexts</strong><br />
You can now access properties that exist at the upper levels of binding via the new pseudo-variables $data, $parent, $parents and $root.</li>
<li>Cleaner event handling<br />
There is now a cleaner, more declarative syntax for event handling bindings that does no longer require to write inline function literals.</li>
<li><strong>Binding providers</strong><br />
There is a new binding providers API to extend the default data binding mechanism. It acts as a general extensibility mechanism.</li>
<li><strong>Throttling</strong><br />
It is now possible to limit how often change events are fired (e.g. only one change event per 500ms). BTW, ko.dependentObservable has been renamed to ko.computed.</li>
</ul>
<p>For a full list of all new features see <a href="http://blog.stevensanderson.com/2011/12/21/knockout-2-0-0-released/">Steve Sanderson&#8217;s blog entry</a>.</p>
<p>There is also a <a href="http://grails.org/plugin/knockoutjs">Grails Plugin</a> available, but as Knockout is just a single JavaScript-File, I would recommend to include it in a Grails project directly without a plugin.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/techscouting.wordpress.com/3025/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/techscouting.wordpress.com/3025/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/techscouting.wordpress.com/3025/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/techscouting.wordpress.com/3025/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/techscouting.wordpress.com/3025/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/techscouting.wordpress.com/3025/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/techscouting.wordpress.com/3025/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/techscouting.wordpress.com/3025/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/techscouting.wordpress.com/3025/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/techscouting.wordpress.com/3025/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/techscouting.wordpress.com/3025/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/techscouting.wordpress.com/3025/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/techscouting.wordpress.com/3025/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/techscouting.wordpress.com/3025/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oio.de&amp;blog=7731718&amp;post=3025&amp;subd=techscouting&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.oio.de/2011/12/23/knockout-js-2-0-0-released-dynamic-javascript-uis-using-data-binding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>0.000000 0.000000</georss:point>
		<geo:lat>0.000000</geo:lat>
		<geo:long>0.000000</geo:long>
		<media:content url="" medium="image">
			<media:title type="html">sothmann</media:title>
		</media:content>
	</item>
		<item>
		<title>FF9 GWT DevMode Plugin</title>
		<link>http://blog.oio.de/2011/12/22/ff9-gwt-devmode-plugin/</link>
		<comments>http://blog.oio.de/2011/12/22/ff9-gwt-devmode-plugin/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 10:30:37 +0000</pubDate>
		<dc:creator>Papick G. Taboada</dc:creator>
				<category><![CDATA[Java Web Frameworks]]></category>
		<category><![CDATA[devmode]]></category>
		<category><![CDATA[ff9]]></category>
		<category><![CDATA[GWT]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://blog.oio.de/?p=3019</guid>
		<description><![CDATA[There is a preliminary ff9 developer mode plugin available for testing, get it here: http://www.mediafire.com/?831pp1kk5p8kgjd Source: https://groups.google.com/forum/#!msg/google-web-toolkit/wElYN-Thi2M/TCgLDSNRusEJ<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oio.de&amp;blog=7731718&amp;post=3019&amp;subd=techscouting&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>There is a preliminary ff9 developer mode plugin available for testing, get it here:</p>
<blockquote><p><a href="http://www.mediafire.com/?831pp1kk5p8kgjd">http://www.mediafire.com/?831pp1kk5p8kgjd</a></p></blockquote>
<p>Source: <a href="https://groups.google.com/forum/#!msg/google-web-toolkit/wElYN-Thi2M/TCgLDSNRusEJ" target="_blank">https://groups.google.com/forum/#!msg/google-web-toolkit/wElYN-Thi2M/TCgLDSNRusEJ</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/techscouting.wordpress.com/3019/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/techscouting.wordpress.com/3019/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/techscouting.wordpress.com/3019/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/techscouting.wordpress.com/3019/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/techscouting.wordpress.com/3019/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/techscouting.wordpress.com/3019/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/techscouting.wordpress.com/3019/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/techscouting.wordpress.com/3019/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/techscouting.wordpress.com/3019/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/techscouting.wordpress.com/3019/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/techscouting.wordpress.com/3019/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/techscouting.wordpress.com/3019/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/techscouting.wordpress.com/3019/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/techscouting.wordpress.com/3019/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oio.de&amp;blog=7731718&amp;post=3019&amp;subd=techscouting&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.oio.de/2011/12/22/ff9-gwt-devmode-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>49.008085 8.403756</georss:point>
		<geo:lat>49.008085</geo:lat>
		<geo:long>8.403756</geo:long>
		<media:content url="" medium="image">
			<media:title type="html">pgtaboada</media:title>
		</media:content>
	</item>
		<item>
		<title>Spring Framework moves to GitHub</title>
		<link>http://blog.oio.de/2011/12/21/spring-framework-moves-to-github/</link>
		<comments>http://blog.oio.de/2011/12/21/spring-framework-moves-to-github/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 18:25:53 +0000</pubDate>
		<dc:creator>Papick G. Taboada</dc:creator>
				<category><![CDATA[Build, config and deploy]]></category>
		<category><![CDATA[Spring Universe]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[spring]]></category>

		<guid isPermaLink="false">http://blog.oio.de/?p=3015</guid>
		<description><![CDATA[The spring framework moved to GitHub: Today we&#8217;re happy to announce that the Spring Framework has moved to GitHub! As you&#8217;ve probably noticed, nearly every other Spring project has already made the move, and those that haven&#8217;t will soon. In &#8230; <a href="http://blog.oio.de/2011/12/21/spring-framework-moves-to-github/">Weiterlesen <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oio.de&amp;blog=7731718&amp;post=3015&amp;subd=techscouting&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The spring framework <a href="http://blog.springsource.org/2011/12/21/spring-framework-moves-to-github" target="_blank">moved to GitHub</a>:</p>
<blockquote><p>Today we&#8217;re happy to announce that the Spring Framework has moved to GitHub!<br />
As you&#8217;ve probably noticed, nearly every other Spring project has already made the move, and those that haven&#8217;t will soon.</p></blockquote>
<p>In this context, there is an interesting post about &#8222;<a href="http://blog.springsource.org/2011/07/18/social-coding-pull-requests-what-to-do-when-things-get-complicated/" target="_blank">social computing, what to do when things get complicated&#8230;</a>&#8222;</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/techscouting.wordpress.com/3015/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/techscouting.wordpress.com/3015/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/techscouting.wordpress.com/3015/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/techscouting.wordpress.com/3015/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/techscouting.wordpress.com/3015/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/techscouting.wordpress.com/3015/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/techscouting.wordpress.com/3015/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/techscouting.wordpress.com/3015/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/techscouting.wordpress.com/3015/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/techscouting.wordpress.com/3015/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/techscouting.wordpress.com/3015/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/techscouting.wordpress.com/3015/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/techscouting.wordpress.com/3015/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/techscouting.wordpress.com/3015/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oio.de&amp;blog=7731718&amp;post=3015&amp;subd=techscouting&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.oio.de/2011/12/21/spring-framework-moves-to-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>49.008085 8.403756</georss:point>
		<geo:lat>49.008085</geo:lat>
		<geo:long>8.403756</geo:long>
		<media:content url="" medium="image">
			<media:title type="html">pgtaboada</media:title>
		</media:content>
	</item>
		<item>
		<title>Project Jigsaw &#8211; jdk8? &#8211; big picture?!?</title>
		<link>http://blog.oio.de/2011/12/21/project-jigsaw-jdk8-big-picture/</link>
		<comments>http://blog.oio.de/2011/12/21/project-jigsaw-jdk8-big-picture/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 12:19:43 +0000</pubDate>
		<dc:creator>Papick G. Taboada</dc:creator>
				<category><![CDATA[Build, config and deploy]]></category>
		<category><![CDATA[Java Basics]]></category>
		<category><![CDATA[Java modularization]]></category>
		<category><![CDATA[jdk8]]></category>
		<category><![CDATA[jigsaw]]></category>
		<category><![CDATA[lambda]]></category>

		<guid isPermaLink="false">http://blog.oio.de/?p=3007</guid>
		<description><![CDATA[Mark Reinhold (Chief Architect of the Java Platform Group at Oracle) just published a &#8222;document&#8220; titled &#8222;Project Jigsaw: The Big Picture — DRAFT 1&#8222;, his words: This document is an overview of the current state of Project Jigsaw, an exploratory &#8230; <a href="http://blog.oio.de/2011/12/21/project-jigsaw-jdk8-big-picture/">Weiterlesen <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oio.de&amp;blog=7731718&amp;post=3007&amp;subd=techscouting&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Mark Reinhold (Chief Architect of the Java Platform Group at Oracle) just published a &#8222;document&#8220; titled &#8222;<a href="http://cr.openjdk.java.net/~mr/jigsaw/notes/jigsaw-big-picture-01" target="_blank">Project Jigsaw: The Big Picture — DRAFT 1</a>&#8222;, his words:</p>
<blockquote><p>This document is an overview of the current state of Project Jigsaw, an exploratory effort to design and implement a module system for the Java SE Platform and to apply that system to the Platform itself and to the JDK.</p></blockquote>
<p>To put it into context: this is draft 1 of the big picture, that comes after draft 12 of a jigsaw module-system requirements document. Why two documents? Is draft 12, although more complete, deprecated now?</p>
<p>One of goals of jigsaw &#8211; among many others, to many other IMHO &#8211; is to provide a scheme of some sort for versioning. Is this the way to go concerning versions? When it comes to documents and versions, one is not leading by example, not, not really&#8230; I am following the jigsaw from a public point of view for a while now &#8211; but I can&#8217;t tell you where to find versions 1 to 11 of the requirement document, and I find it somehow frightening to see a draft 1 on a related topic coming along. The &#8222;still to come&#8220; topics at the end of the document can be found at draft 12 of the requirements documents.</p>
<p>To be honest, I have a bad feeling on all this modularization effort targeting jdk8. If I take a look at lambda (nice post <a href="http://www.infoq.com/news/2011/12/state-lambda" target="_blank">here</a>), we have a <a href="http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-4.html">state document</a>, a <a href="http://jcp.org/en/jsr/detail?id=335" target="_blank">JSR</a> and a <a href="http://blogs.oracle.com/mcimadamore/entry/lambda_integration_plan" target="_blank">plan to integrate it into the JDK</a> source. Sure, we have voices complaining that it is too much, too little, to late &#8211; but hey &#8211; there is something to build upon. It is in a state we can actually believe it is coming. This feels far more solid that anything &#8211; everything &#8211; regarding jigsaw and modularization. We do not even have a JSR for modularization, as stated in the <a href="http://jcp.org/en/jsr/detail?id=337" target="_blank">jdk 8 JSR</a>!</p>
<p>Now back to the big picture document. It does not report the jigsaw status, and it is by far not as complete as the requirements document draft 12. But it does explain the syntax of module definitions on a more precise way, and does recap some of the big picture goals of jigsaw.</p>
<p>Big picture, the design principles:</p>
<blockquote><p>(1) Modularity is a language construct<br />
(2) Module boundaries should be strongly enforced<br />
(3) Static, single-version module resolution is usually sufficient</p></blockquote>
<p>Sounds good, but (1) is the whole point of adding modularization to the jdk, or we could just stick to OSGi. A modularization that is not enforced is not (read <a href="http://www.theserverside.com/feature/OSGi-Because-Sharing-Shouldnt-Be-Painful" target="_blank">enforcement</a> here), so we all agree on (2). That we are going to need split packages loaded in a common class loader because of the mess in the jdk (see java.util package) goes against (2). From the requirements document, draft 12:</p>
<blockquote><p>In support of platform modularization, it <strong>must</strong> be possible to declare that the types defined in a specific set of modules must be loaded <strong>by the same class loader</strong>.</p></blockquote>
<p>But (3) is something that I really do not get. Again, from the requirements document:</p>
<blockquote><p>Multi-version support should only be enabled when type collisions can be detected and reported as errors. <strong>This most likely means</strong> that it cannot be enabled for run-time linking since detecting collisions is nontrivial.</p></blockquote>
<p>Seriously &#8211; just one version at runtime? The whole point of versioning and modularization is that we HAVE version collisions, and we are witnessing repackaging of all sorts circumventing our version conflicts. This is why we started using something like OSGi, despite of all the doing, tooling and architectural pain.</p>
<p>If we can have only one version resolved, we aren&#8217;t getting any better than with  ivy or maven dependency management and dependency mediation. By the way, the new Big picture is messing around with the terminology we are used to: from maven, spring &#8211; and somehow from common sense &#8211; we know &#8222;scopes&#8220; as where to use the artifacts/ components (runtime, compile-time, test-time, etc.). Then we have different life cycles: maven defines a concise project lifecicle. Every single component model defines its own component life cycle, and regarding modules (at the same level of granularity) we have a bundle life cycle defined by OSGi. In this context, take a look at &#8222;Phases&#8220; in the big picture&#8230;</p>
<p>Big picture, the phases:</p>
<blockquote><p>Compile time<br />
Install time<br />
Run time</p></blockquote>
<p>There is not much to comment here. I just have the strong feeling that this is not enough, too late, to little? The big picture turns out to be a very small one. If you really need modularization today, take a look at the really big pictures drawn by maven, spring, osgi. Even GWT &#8211; nothing more than a web framework &#8211; does provide its own little module system.</p>
<p>On his blog &#8222;there&#8217;s not a moment to loose&#8220;, Mark described <a href="http://mreinhold.org/blog/cool" target="_blank">how cool it would be</a> to have a small memory footprint, modularized jdk. That was 2008. Lots of things changed since than.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/techscouting.wordpress.com/3007/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/techscouting.wordpress.com/3007/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/techscouting.wordpress.com/3007/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/techscouting.wordpress.com/3007/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/techscouting.wordpress.com/3007/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/techscouting.wordpress.com/3007/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/techscouting.wordpress.com/3007/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/techscouting.wordpress.com/3007/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/techscouting.wordpress.com/3007/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/techscouting.wordpress.com/3007/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/techscouting.wordpress.com/3007/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/techscouting.wordpress.com/3007/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/techscouting.wordpress.com/3007/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/techscouting.wordpress.com/3007/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oio.de&amp;blog=7731718&amp;post=3007&amp;subd=techscouting&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.oio.de/2011/12/21/project-jigsaw-jdk8-big-picture/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>49.008085 8.403756</georss:point>
		<geo:lat>49.008085</geo:lat>
		<geo:long>8.403756</geo:long>
		<media:content url="" medium="image">
			<media:title type="html">pgtaboada</media:title>
		</media:content>
	</item>
		<item>
		<title>Grails Database Queries &#8211; Criteria Builder vs. Where Queries [updated]</title>
		<link>http://blog.oio.de/2011/12/21/grails-database-queries-criteria-builder-vs-where-queries/</link>
		<comments>http://blog.oio.de/2011/12/21/grails-database-queries-criteria-builder-vs-where-queries/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 09:02:04 +0000</pubDate>
		<dc:creator>Sönke Sothmann</dc:creator>
				<category><![CDATA[Groovy and Grails]]></category>
		<category><![CDATA[Criteria Builder]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[grails]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[Query]]></category>
		<category><![CDATA[Where Query]]></category>

		<guid isPermaLink="false">http://blog.oio.de/?p=2949</guid>
		<description><![CDATA[Before Grails 2.0 arrived, Grails offered 3 ways of doing a database query: dynamic finders HQL queries Hibernate Criteria Builder If the database query is very simple, dynamic finders are a good choice. But for everything else, I used Criteria &#8230; <a href="http://blog.oio.de/2011/12/21/grails-database-queries-criteria-builder-vs-where-queries/">Weiterlesen <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oio.de&amp;blog=7731718&amp;post=2949&amp;subd=techscouting&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Before Grails 2.0 arrived, Grails offered 3 ways of doing a database query:</p>
<ul>
<li>dynamic finders</li>
<li>HQL queries</li>
<li>Hibernate Criteria Builder</li>
</ul>
<p>If the database query is very simple, dynamic finders are a good choice. But for everything else, I used Criteria Builder which is just the Hibernate Criteria API with builder syntax.</p>
<p>Starting with Grails 2.0, there is another alternative: <a href="http://grails.org/doc/latest/guide/GORM.html#whereQueries">Where Queries</a>.<br />
Where Queries are similar to the Criteria Builder approach, but using a nicer &#8222;programmer friendly&#8220; syntax and your queries get checked at compile-time (!).<br />As it uses <a href="http://grails.org/doc/latest/guide/single.html#detachedCriteria" title="Detached Criterias">Detached Criterias</a> under the hood, it should (hopefully) support everything that is possible with Criteria Builder.</p>
<p>Here is an example of a simple Where Query:</p>
<p><pre class="brush: groovy;">
def query = Book.where {
   title == &quot;Grails in Action&quot;
}
Book grailsInAction = query.find()
</pre></p>
<p>The syntax is more natural for Groovy developers. You don&#8217;t need to have the Hibernate Criteria API in mind. Just write your query as if you would deal with a normal collection using Groovy code. Because it uses <a href="http://groovy.codehaus.org/Compile-time+Metaprogramming+-+AST+Transformations">AST transformations</a> (compile-time metaprogramming), your query gets compile time checked and you will get IDE support / code completion (e.g. using STS). Using Where Queries, you can refactor your domain model and you will almost instantly see whether or not the refactoring breaks existing query logic.</p>
<p>I asked myself if the Where Query approach is as powerful as Criteria Builder. Are there queries that you can&#8217;t implement using Where Queries?<br />
And is the generated SQL identical to Criteria Builder&#8217;s SQL statements?</p>
<p>I started to expermiment with same common database queries which I wrote both using Criteria Builder and Where Queries:</p>
<h3>Multiple restrictions and querying associations</h3>
<p>This example shows how to use multiple restrictions in one query and how to query associations. In this case: list all books with a title that contains the word &#8216;grails&#8217; (case insensitive) and that have an author whose last name starts with an &#8216;R&#8217; character (again, case insensitive).</p>
<p><pre class="brush: groovy;">
// Criteria Builder
Book.createCriteria().list {
	ilike('title', '%grails%')
	authors {
		ilike('lastName', 'r%')
	}
}

// Where Query
Book.findAll {
	title =~ '%grails%' &amp;&amp; authors.lastName =~ 'r%'
}</pre></p>
<p>The generated SQL statements are identical for both approaches:</p>
<p><pre class="brush: sql;">SELECT THIS_.ID AS ID0_1_, THIS_.VERSION AS VERSION0_1_, THIS_.DATE_CREATED AS DATE3_0_1_, THIS_.ERSCHEINUNGSDATUM AS ERSCHEIN4_0_1_, THIS_.ISBN AS ISBN0_1_, THIS_.LAST_UPDATED AS LAST6_0_1_, THIS_.PUBLISHER_ID AS PUBLISHER7_0_1_, THIS_.TITLE AS TITLE0_1_, AUTHORS3_.BOOK_ID AS BOOK1_0_, AUTHORS_AL1_.ID AS AUTHOR2_, AUTHORS_AL1_.ID AS ID3_0_, AUTHORS_AL1_.VERSION AS VERSION3_0_, AUTHORS_AL1_.FIRST_NAME AS FIRST3_3_0_, AUTHORS_AL1_.LAST_NAME AS LAST4_3_0_ FROM BOOK THIS_ INNER JOIN AUTHOR_BOOKS AUTHORS3_ ON THIS_.ID=AUTHORS3_.BOOK_ID INNER JOIN AUTHOR AUTHORS_AL1_ ON AUTHORS3_.AUTHOR_ID=AUTHORS_AL1_.ID WHERE lower(this_.title) like ? and (lower(authors_al1_.last_name) like ?)</pre></p>
<h3>Pagination and sorting</h3>
<p>This example show how to sort the results of the query and how to limit the result count, starting at a given offset. In this case: list all books with a title containing the word &#8216;grails&#8217; (case insensitive), limit results to one result, starting at index 1, sorted by property &#8216;title&#8217; ascending.</p>
<p><pre class="brush: groovy;">
// Criteria Builder
Book.createCriteria().list {
	ilike('title', '%grails%')
	maxResults(1)
	firstResult(1)
	order('title', 'asc')
}

// Where Query
Book.findAll(max:1, offset:1, sort:'title', order:'asc'){
	title =~ '%grails%'
}</pre></p>
<p>The generated SQL statements are identical for both approaches:</p>
<p><pre class="brush: sql;">
SELECT THIS_.ID AS ID1_0_, THIS_.VERSION AS VERSION1_0_, THIS_.DATE_CREATED AS DATE3_1_0_, THIS_.ERSCHEINUNGSDATUM AS ERSCHEIN4_1_0_, THIS_.ISBN AS ISBN1_0_, THIS_.LAST_UPDATED AS LAST6_1_0_, THIS_.PUBLISHER_ID AS PUBLISHER7_1_0_, THIS_.TITLE AS TITLE1_0_ FROM BOOK THIS_ WHERE LOWER(THIS_.TITLE) LIKE ? ORDER BY this_.title asc limit ? offset ?
</pre></p>
<p>Unfortunately, the sort order of the Where Query (sort:&#8217;title&#8217;) doesn&#8217;t get compile time checked.</p>
<h3>Sorting by more than one propery</h3>
<p>This example shows how to sort by two properties. In this case: list all books, sorted by title and isbn.</p>
<p><pre class="brush: groovy;">
// Criteria Builder
Book.createCriteria().list {
	order('title', 'asc')
	order('isbn', 'asc')
}

// Where Query
def query = Book.where {}.order('title', 'asc').order('isbn', 'asc')
query.list()
</pre></p>
<p>The generated SQL statements are identical for both approaches:</p>
<p><pre class="brush: sql;">
SELECT THIS_.ID AS ID3_0_, THIS_.VERSION AS VERSION3_0_, THIS_.DATE_CREATED AS DATE3_3_0_, THIS_.ERSCHEINUNGSDATUM AS ERSCHEIN4_3_0_, THIS_.ISBN AS ISBN3_0_, THIS_.LAST_UPDATED AS LAST6_3_0_, THIS_.PUBLISHER_ID AS PUBLISHER7_3_0_, THIS_.TITLE AS TITLE3_0_ FROM book this_ order by this_.title asc, this_.isbn asc
</pre></p>
<p>Although it is possible to use Where Queries here, you have to add the sort order to the query using Criteria API. So: no compile time checks, no IDE support -&gt; no advantage over Criteria Builder approach.  </p>
<h3>Projections</h3>
<p>This example shows how to use restrictions, which means retrieving just some fields and not domain objects. In this case: retrieve just the &#8216;isbn&#8217; property of all books in the database.</p>
<p><pre class="brush: groovy;">
// Criteria Builder
Book.createCriteria().list {
	projections {
		property('isbn')
	}
}

// Where Query
def query = Book.where {}.projections {
	property('isbn')
}
query.list()
</pre></p>
<p>Again, it is possible to use Where Queries here, but you have to add the projection to the query using Criteria API. So: no compile time checks, no IDE support -&gt; no advantage over Criteria Builder approach.</p>
<h3>Conclusion</h3>
<p>Where Queries offer a nicer syntax and &#8211; which is imho a really great feature &#8211; get compile time checked.<br />
Unfortunately, it lacks some advanced query features like multi sorting or projections. As Where Queries use the Criteria API under the hood, it is possible to do such things by adding them to your query using the Criteria syntax, but you are loosing compile time checks. This hopefully gets fixed with future Grails releases.<br />
Personally, I&#8217;m going to use Where Queries whenever possible, falling back to Criteria Builder for queries that are not possible with Where Queries.</p>
<p><b>[update]</b><br />
Updated &#8222;Sorting by more than one propery&#8220; and &#8222;Projections&#8220;: it is possible to do such things by combining Where Queries with Criteria API. (thanks to Stephane Maldini)<br />
<b>[/update]</b></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/techscouting.wordpress.com/2949/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/techscouting.wordpress.com/2949/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/techscouting.wordpress.com/2949/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/techscouting.wordpress.com/2949/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/techscouting.wordpress.com/2949/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/techscouting.wordpress.com/2949/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/techscouting.wordpress.com/2949/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/techscouting.wordpress.com/2949/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/techscouting.wordpress.com/2949/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/techscouting.wordpress.com/2949/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/techscouting.wordpress.com/2949/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/techscouting.wordpress.com/2949/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/techscouting.wordpress.com/2949/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/techscouting.wordpress.com/2949/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oio.de&amp;blog=7731718&amp;post=2949&amp;subd=techscouting&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.oio.de/2011/12/21/grails-database-queries-criteria-builder-vs-where-queries/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">sothmann</media:title>
		</media:content>
	</item>
		<item>
		<title>Hibernate 4 &#8211; the next level</title>
		<link>http://blog.oio.de/2011/12/21/hibernate-4-the-next-level/</link>
		<comments>http://blog.oio.de/2011/12/21/hibernate-4-the-next-level/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 23:36:22 +0000</pubDate>
		<dc:creator>Papick G. Taboada</dc:creator>
				<category><![CDATA[Java EE]]></category>
		<category><![CDATA[Java Persistence]]></category>
		<category><![CDATA[Spring Universe]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[spring]]></category>

		<guid isPermaLink="false">https://techscouting.wordpress.com/?p=2996</guid>
		<description><![CDATA[I am a little bit late, but Hibernate 4 has been released a few days ago: What&#8217;s new?    A lot of things; too many to list here. But here is a list of the major improvements done in 4.0: &#8230; <a href="http://blog.oio.de/2011/12/21/hibernate-4-the-next-level/">Weiterlesen <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oio.de&amp;blog=7731718&amp;post=2996&amp;subd=techscouting&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am a little bit late, but Hibernate <a title="" href="http://in.relation.to/Bloggers/HibernateCore40IsFinal" target="_blank">4 has been released</a> a few days ago:</p>
<blockquote class="webkit-indent-blockquote" style="border:none;margin:0 0 0 40px;padding:0;"><p><span class="Apple-style-span" style="font-weight:normal;">What&#8217;s new? </span><br />
<span class="Apple-style-span" style="font-weight:normal;"> </span><br />
<span class="Apple-style-span" style="font-weight:normal;">A lot of things; too many to list here. But here is a list of the major improvements done in 4.0:</span><span class="Apple-style-span" style="font-weight:normal;"><br />
</span></p>
<ul>
<li><span class="Apple-style-span" style="font-weight:normal;">Initial multi-tenancy support. See http://in.relation.to/Bloggers/HibernateAndMultitenancyWebinar and http://in.relation.to/Bloggers/MultitenancyInHibernate for more information.</span></li>
<li><span class="Apple-style-span" style="font-weight:normal;">Introduction of ServiceRegistry. This is a major change in how Hibernate builds and manages services. See the information in the Hibernate Developer Guide. </span></li>
<li><span class="Apple-style-span" style="font-weight:normal;">Clean up of Session opening from SessionFactory </span></li>
<li><span class="Apple-style-span" style="font-weight:normal;">Improved integration via org.hibernate.integrator.spi.Integrator and auto discovery </span></li>
<li><span class="Apple-style-span" style="font-weight:normal;">Improved logging with i18n support and message codes </span></li>
<li><span class="Apple-style-span" style="font-weight:normal;">Initial work on more clear split between API, SPI and implementation classes. If you import a class contained in an internal package, you know that this code is not guaranteed to work between releases. </span></li>
<li><span class="Apple-style-span" style="font-weight:normal;">Clean up of deprecated methods, classes, etc</span></li>
</ul>
</blockquote>
<p>Along with the core release, the hibernate search project <a title="" href="http://in.relation.to/Bloggers/HibernateSearch4FinalIsHere" target="_blank">also updated to the version 4</a>.</p>
<p>The Springframework <a title="" href="http://blog.springsource.org/2011/12/13/spring-framework-3-1-goes-ga/" target="_blank">release 3.1 a few days ago</a>, among many other features, also introduced hibernate 4 support.</p>
<p>After reading the &#8222;new and noteworthy&#8220; postings, it gets quite clear that there has been a lot of groundwork been done by all the development teams.</p>
<p>Especially the multi-tenancy support is something to keep an eye on. Here is a nice definition of multi-tenancy  I found on <a title="" href="http://www.reflectivethought.net/2011/12/multitenancy-in-google-appengine-gae.html" target="_blank">an article about the gae app engine</a>:</p>
<blockquote class="webkit-indent-blockquote" style="border:none;margin:0 0 0 40px;padding:0;"><p>Multitenancy<span class="Apple-style-span" style="font-weight:normal;"> is a software architecture where a single instance of the software runs on a server, serving multiple client organizations (tenants). With a multitenant architecture, an application can be designed to virtually partition its data and configuration (business logic), and each client organization works with a customized virtual application instance. It suits SaaS (Software as a Service) cloud computing very well; however, they can be very complex to implement.</span></p></blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/techscouting.wordpress.com/2996/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/techscouting.wordpress.com/2996/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/techscouting.wordpress.com/2996/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/techscouting.wordpress.com/2996/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/techscouting.wordpress.com/2996/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/techscouting.wordpress.com/2996/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/techscouting.wordpress.com/2996/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/techscouting.wordpress.com/2996/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/techscouting.wordpress.com/2996/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/techscouting.wordpress.com/2996/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/techscouting.wordpress.com/2996/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/techscouting.wordpress.com/2996/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/techscouting.wordpress.com/2996/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/techscouting.wordpress.com/2996/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oio.de&amp;blog=7731718&amp;post=2996&amp;subd=techscouting&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.oio.de/2011/12/21/hibernate-4-the-next-level/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>49.008085 8.403756</georss:point>
		<geo:lat>49.008085</geo:lat>
		<geo:long>8.403756</geo:long>
		<media:content url="" medium="image">
			<media:title type="html">pgtaboada</media:title>
		</media:content>
	</item>
		<item>
		<title>Fonts for programmers</title>
		<link>http://blog.oio.de/2011/12/20/fonts-for-programmers/</link>
		<comments>http://blog.oio.de/2011/12/20/fonts-for-programmers/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 21:42:29 +0000</pubDate>
		<dc:creator>Papick G. Taboada</dc:creator>
				<category><![CDATA[Did you know?]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[fonts]]></category>
		<category><![CDATA[monospaced]]></category>

		<guid isPermaLink="false">http://blog.oio.de/?p=2991</guid>
		<description><![CDATA[I just came across this posting about top 10 fonts for programmers, and the follow-up posting about the new Anonimous Pro Font. Anonymous Pro is a family of four fixed-width fonts designed especially with coding in mind. Characters that could &#8230; <a href="http://blog.oio.de/2011/12/20/fonts-for-programmers/">Weiterlesen <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oio.de&amp;blog=7731718&amp;post=2991&amp;subd=techscouting&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I just came across this posting about top 10 <a href="http://hivelogic.com/articles/top-10-programming-fonts/" target="_blank">fonts for programmers</a>, and <a href="http://hivelogic.com/articles/anonymous-pro-programming-monospace-font/" target="_blank">the follow-up posting</a> about the new <a href="http://www.ms-studio.com/FontSales/anonymouspro.html" target="_blank">Anonimous Pro Font</a>.</p>
<blockquote><p>Anonymous Pro is a family of four fixed-width fonts designed especially with coding in mind. Characters that could be mistaken for one another (O, 0, I, l, 1, etc.) have distinct shapes to make them easier to tell apart in the context of source code.</p>
<p>Anonymous Pro also features an international, Unicode-based character set, with support for most Western and European Latin-based languages, Greek, and Cyrillic.</p>
<p>Anonymous Pro is distributed with the Open Font License (OFL).</p></blockquote>
<p>It is my default font in eclipse now:</p>
<p><a href="http://techscouting.files.wordpress.com/2011/12/font.png"><img class="aligncenter size-full wp-image-2992" title="font" src="http://techscouting.files.wordpress.com/2011/12/font.png?w=500&#038;h=74" alt="" width="500" height="74" /></a></p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/techscouting.wordpress.com/2991/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/techscouting.wordpress.com/2991/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/techscouting.wordpress.com/2991/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/techscouting.wordpress.com/2991/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/techscouting.wordpress.com/2991/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/techscouting.wordpress.com/2991/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/techscouting.wordpress.com/2991/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/techscouting.wordpress.com/2991/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/techscouting.wordpress.com/2991/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/techscouting.wordpress.com/2991/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/techscouting.wordpress.com/2991/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/techscouting.wordpress.com/2991/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/techscouting.wordpress.com/2991/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/techscouting.wordpress.com/2991/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.oio.de&amp;blog=7731718&amp;post=2991&amp;subd=techscouting&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.oio.de/2011/12/20/fonts-for-programmers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>49.008085 8.403756</georss:point>
		<geo:lat>49.008085</geo:lat>
		<geo:long>8.403756</geo:long>
		<media:content url="" medium="image">
			<media:title type="html">pgtaboada</media:title>
		</media:content>

		<media:content url="http://techscouting.files.wordpress.com/2011/12/font.png" medium="image">
			<media:title type="html">font</media:title>
		</media:content>
	</item>
	</channel>
</rss>
