<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" version="2.0">
  <channel>
    <title>SpringOne 2GX</title>
    <link>http://springone2gx.com</link>
    <description>SpringOne 2GX</description>
    <item>
      <title>Static type checking and compilation in Groovy 2</title>
      <link>http://springone2gx.com/blog/guillaume_laforge/2012/01/static_type_checking_and_compilation_in_groovy_2</link>
      <description />
      <pubDate>Tue, 31 Jan 2012 08:16:00 CST</pubDate>
      <guid isPermaLink="true">static-type-checking-and-compilation-in-groovy-2</guid>
      <dc:creator>Guillaume LaForge</dc:creator>
    </item>
    <item>
      <title>This Week in Grails (2012-04)</title>
      <link>http://springone2gx.com/blog/burt_beckwith/2012/01/this_week_in_grails_2012_04_</link>
      <description>&lt;p&gt;Peter Ledbrook started a HOWTO series this week for Grails; the first one is on &lt;a target='_blank' href='http://pledbrook.github.com/grails-howtos/en/upgradeToGrails2.html'&gt;upgrading to Grails 2.0&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; and there&amp;#8217;s also a &lt;a target='_blank' href='http://pledbrook.github.com/grails-howtos/en/contributeToTheseGuides.html'&gt;HOWTO on writing HOWTOs&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We could use your help finding invalid JIRA issues (e.g. already fixed or no longer an issue). Check out the section &amp;#8220;Reviewing issues&amp;#8221; in the &lt;a target='_blank' href='http://grails.org/Contribute'&gt;wiki page on contributing to Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; for how to use the new &amp;#8220;Last Reviewed&amp;#8221; and &amp;#8220;Flagged&amp;#8221; fields.&lt;/p&gt;
&lt;p&gt;Tomas Lin wrote up his experiences &lt;a target='_blank' href='http://fbflex.wordpress.com/2012/01/27/deploying-grails-applications-on-appfog-first-impressions/'&gt;deploying Grails applications to AppFog&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;. It&amp;#8217;s great to know that there&amp;#8217;s another viable cloud provider for Grails developers.&lt;/p&gt;
&lt;p&gt;STS 2.9.0.M2 was &lt;a target='_blank' href='http://www.springsource.org/node/3377'&gt;released this week&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;. Check out the &lt;a target='_blank' href='http://download.springsource.com/release/STS/doc/STS-new_and_noteworthy-2.9.0.M2.pdf'&gt;new and noteworthy PDF&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; for what&amp;#8217;s been updated in the Groovy, Grails, and Gradle support.&lt;/p&gt;
&lt;p&gt;I released a &lt;a target='_blank' href='http://grails.org/plugin/ratpack'&gt;new plugin&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; this week, to support using &lt;a target='_blank' href='https://github.com/bleedingwolf/Ratpack'&gt;Ratpack&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; in a Grails application. Thanks to James Williams for &lt;a target='_blank' href='http://jameswilliams.be/blog/entry/233'&gt;his post&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; that got me started and inspired the plugin. And within a day there was already a &lt;a target='_blank' href='http://padcom13.blogspot.com/2012/01/grails-and-ratpack.html'&gt;blog post by Matthias Hryniszak&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; on using the plugin.&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;If you want to keep up with these &amp;#8220;This Week in Grails&amp;#8221; posts you can access them directly via their &lt;a target="_blank" href="http://burtbeckwith.com/blog/?cat=32"&gt;category link&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt; or in an RSS reader with &lt;a target="_blank" href="http://feeds.feedburner.com/this-week-in-grails"&gt;the feed&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt; for just these posts.&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;Translations of this post:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/2012/01/31/esta-semana-en-grails-2012-04/'&gt;Traducción al español&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.groovyq.net/content/grails%E6%AF%8F%E5%91%A8%E8%A7%82%E5%AF%9F%EF%BC%882012-04%EF%BC%89'&gt;Grails每周观察&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://remoteexception.blogspot.com/2012/01/semana-grails-2012-04.html'&gt;Este artigo em Português&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.luca-canducci.com/2012/01/questa-settimana-in-grails-2012-04/'&gt;Traduzione Italiana&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.jp/news/2012-04.html'&gt;今週のGrails日本語版&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;div class="toc"&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#miscellaneous"&gt;Miscellaneous Items&lt;/a&gt;&lt;br /&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#plugins"&gt;Plugins&lt;/a&gt;&lt;br /&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#tweets"&gt;Interesting Tweets&lt;/a&gt;&lt;br /&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#jobs"&gt;Jobs&lt;/a&gt;&lt;br /&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#meetups"&gt;User groups and Conferences&lt;/a&gt;
&lt;/div&gt;
&lt;hr/&gt;
&lt;div id="miscellaneous"&gt;
&lt;h2&gt;Miscellaneous Items&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://developer4life.blogspot.com/2012/01/wizard-design-pattern.html'&gt;The Wizard Design Pattern&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Not Grails-specific, but an interesting approach, especially for DSLs and builders
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://assarconsulting.blogspot.com/2012/01/groovy-dsl-simple-example.html'&gt;Groovy DSL &amp;#8211; A Simple Example&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.tomcatexpert.com/blog/2012/01/24/apache-tomcat-7025-released'&gt;Apache Tomcat 7.0.25 released&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://blog.jelastic.com/2012/01/24/grails-on-jelastic/'&gt;Grails on Jelastic&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://plus.google.com/117411438136918964913/posts/axyCZk1P5L5'&gt;Have you upgraded a #grails application to version 2 yet? Let us know how it went!&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://ldaley.com/post/615966534/custom-grails-test'&gt;Custom Grails Test Types/Phases&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Older but cool
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://leanjavaengineering.wordpress.com/2012/01/26/c-r-a-p-metrics-for-grails/'&gt;C.R.A.P. metrics for Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.jroller.com/melix/entry/static_compilation_for_groovy_poll'&gt;Static compilation for Groovy poll results&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.intelligrape.com/blog/2012/01/29/groovy-annotations-for-tostring-and-equalsandhashcode/'&gt;Groovy annotations for ToString and EqualsAndHashCode &lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
A good reminder, and useful tip about adding to the domain class template
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://refactr.com/blog/2012/01/grails-database-migration-gotchas/'&gt;Grails Database Migration Gotchas&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://schneide.wordpress.com/2012/01/23/upgrading-your-app-to-grails-2-0-0-better-wait-for-2-0-1/'&gt;Upgrading your app to Grails 2.0.0? Better wait for 2.0.1&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.tomcatexpert.com/blog/2012/01/24/using-tomcat-7-jdbc-connection-pool-production'&gt;Using the Tomcat 7 JDBC Connection Pool in Production&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.jroller.com/aalmiray/entry/grails_bootstrapping_data_with_domainbuilder'&gt;Grails: Bootstrapping data with DomainBuilder&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://mrhaki.blogspot.com/2012/01/groovy-goodness-solve-naming-conflicts.html'&gt;Groovy Goodness: Solve Naming Conflicts with Builders&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.jroller.com/melix/entry/static_type_checking_talk_from'&gt;Static type checking talk from Paris Groovy/Grails User Group&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.workopolis.com/EN/job/13616464'&gt;Java Groovy / Grails Developer in Toronto&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://sbglasius.tumblr.com/post/16691515147/grails-weceem-apache2'&gt;Grails, Weceem and Apache2&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Getting the GR8Conf sites running on new hardware
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://blog.andresteingress.com/2012/01/24/cachemanagers-diskstorepath/'&gt;CacheManager’s diskStorePath&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Interesting stuff on configuring Ehcache
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/hoy/?date=2012-01-23'&gt;http://observatoriodegrails.com/hoy/?date=2012-01-23&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/hoy/?date=2012-01-24'&gt;http://observatoriodegrails.com/hoy/?date=2012-01-24&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/hoy/?date=2012-01-25'&gt;http://observatoriodegrails.com/hoy/?date=2012-01-25&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/hoy/?date=2012-01-26'&gt;http://observatoriodegrails.com/hoy/?date=2012-01-26&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/hoy/?date=2012-01-27'&gt;http://observatoriodegrails.com/hoy/?date=2012-01-27&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://forums.gradle.org/gradle/topics/this_week_in_gradle_2012_4'&gt;This Week in Gradle (2012-4)&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.springsource.org/node/3379'&gt;This Week in Spring, January 24th, 2012&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="plugins"&gt;
&lt;h2&gt;Plugins&lt;/h2&gt;
&lt;p&gt;There were 3 new plugins released:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/jquery-ui-timepicker'&gt;jquery-ui-timepicker&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.9.8.1. Provides resources for &lt;a href="http://trentrichardson.com/examples/timepicker/" target='_blank'&gt;http://trentrichardson.com/examples/timepicker/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/eco-resources'&gt;eco-resources&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.1. Compiles Eco templates to Javascript
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/ratpack'&gt;ratpack&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.0.1. Lets you use Ratpack inside Grails
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;and 17 updated plugins:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/atmosphere'&gt;atmosphere&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.4.2.1. Provides integration with the Atmosphere project, a portable AjaxPush/Comet and WebSocket framework
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/ckeditor'&gt;ckeditor&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 3.6.2.1. Implements the integration layer between Grails and the CKEditor web rich text editor.
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/date-formatting'&gt;date-formatting&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.2.5. Adds functions to the Date object to convert into various string formats
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/foundation'&gt;foundation&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 2.1.4.3. Provides the Foundation CSS framework resources
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/google-visualization'&gt;google-visualization&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.5. Provides a taglib for the interactive charts of the Google Visualization API
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/grails-melody'&gt;grails-melody&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.11. Integrates the JavaMelody system monitoring tool
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/gsp-taglib'&gt;gsp-taglib&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.3.2. Makes it possible to declare tags in a gsp in grails-app/taglib
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/jasper'&gt;jasper&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.5.2. Enables use of JasperReports
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/rich-domain'&gt;rich-domain&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.0.6. Provides dependency injection for POGOs that are not Grails domain classes
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/spring-security-mock'&gt;spring-security-mock&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.0.1. Mock authentication support for Spring Security
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/spring-security-saml'&gt;spring-security-saml&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.0.0.M11. SAML 2.x support for the Spring Security Plugin
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/spring-security-shibboleth-native-sp'&gt;spring-security-shibboleth-native-sp&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.0.2. Shibboleth Naitive SP support for the Spring Security grails plugin
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/syntax-highlighter'&gt;syntax-highlighter&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 3.0.83. Adds a Syntax Highlighter for displaying code samples in GSP pages
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/tiny-mce'&gt;tiny-mce&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 3.4.7. Integrates the TinyMce editor javascript and tags to embed the editor in your GSP pages
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/twitter4j'&gt;twitter4j&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.3.2. Send and receive Twitter messages using the twitter4j library
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/xwiki-rendering'&gt;xwiki-rendering&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.4. Convert texts using XWiki Rendering Framework
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/zkui'&gt;zkui&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.4.1. Seamlessly integrates ZK with Grails&amp;#8217; infrastructures; uses the Grails&amp;#8217; infrastructures such as GSP, controllers rather than zk&amp;#8217;s zul as in ZKGrails plugin
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="tweets"&gt;
&lt;h2&gt;Interesting Tweets&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/CedricChampeau/status/161145720496336897'&gt;@CedricChampeau&lt;/a&gt;: More details about my talk, static type checking at the Paris &lt;a href='https://search.twitter.com/search?q=%23groovy' target='_blank'&gt;#groovy&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23grails' target='_blank'&gt;#grails&lt;/a&gt; user group. &lt;a href="http://t.co/mUwPQcJD" target='_blank'&gt;http://t.co/mUwPQcJD&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/LondonGGUG/status/161823948487655424'&gt;@LondonGGUG&lt;/a&gt;: Anyone free and willing to talk about their &lt;a href='https://search.twitter.com/search?q=%23grails' target='_blank'&gt;#grails&lt;/a&gt; deployment setup at next GGUG? 20th Feb. Length 10-30 mins.
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/joshareed/status/161983137939849216'&gt;@joshareed&lt;/a&gt;: &amp;#8216;git clean -df&amp;#8217; is great for cleaning up all the images, css, js that a grails upgrade re-creates
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/wangjammer5/status/162155760539795456'&gt;@wangjammer5&lt;/a&gt;: Great discussions with &lt;a href='https://search.twitter.com/search?q=%23Grails' target='_blank'&gt;#Grails&lt;/a&gt; team this morning yielded this idea to replace install-plugin: &lt;a href="http://t.co/fQcHbXeJ" target='_blank'&gt;http://t.co/fQcHbXeJ&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/CodersUniverse/status/162163770276319232'&gt;@CodersUniverse&lt;/a&gt;: SpringPeople launches open house training in India: &amp;#8230; Tomcat, Apache, Groovy &amp;#038; Grails, Testing, Databases, Ope&amp;#8230; &lt;a href="http://t.co/DfnHxmk7" target='_blank'&gt;http://t.co/DfnHxmk7&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/fifthposition/status/162203342813143040'&gt;@fifthposition&lt;/a&gt;: Grails 2.0 and emacs shell-mode: &lt;a href="http://t.co/ruPXN0i2" target='_blank'&gt;http://t.co/ruPXN0i2&lt;/a&gt;. (Thanks to &lt;a href='https://twitter.com/#!/ataylor284' target='_blank'&gt;@ataylor284&lt;/a&gt; for this.) &lt;a href='https://search.twitter.com/search?q=%23grails' target='_blank'&gt;#grails&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23emacs' target='_blank'&gt;#emacs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/aalmiray/status/162281230547697664'&gt;@aalmiray&lt;/a&gt;: hacking groovy/javafx by day; griffon/grails by night. 2012 is certainly looking interesting as days pass by
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/gr8conf/status/162301816149770242'&gt;@gr8conf&lt;/a&gt;: We&amp;#8217;re happy to announce, that SpringSource is the premium sponsor of &lt;a href='https://search.twitter.com/search?q=%23gr8conf' target='_blank'&gt;#gr8conf&lt;/a&gt; Europe 2012. &lt;a href='https://search.twitter.com/search?q=%23groovy' target='_blank'&gt;#groovy&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23grails' target='_blank'&gt;#grails&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23gradle' target='_blank'&gt;#gradle&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23griffon' target='_blank'&gt;#griffon&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23vmware' target='_blank'&gt;#vmware&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/nhoussos/status/162830544617480192'&gt;@nhoussos&lt;/a&gt;: New release of Free/Open source applicant tracking (e-Recruitment) system by EKT (developed in Grails!): &lt;a href="http://t.co/n7qaC2Fy" target='_blank'&gt;http://t.co/n7qaC2Fy&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/jatin_Shephertz/status/162965950826684420'&gt;@jatin_Shephertz&lt;/a&gt;: I created group Grails 4 Newbie on Linkedin.: &lt;a href="http://t.co/FNjG7dEq" target='_blank'&gt;http://t.co/FNjG7dEq&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/bmuschko/status/163675327195906048'&gt;@bmuschko&lt;/a&gt;: Released &lt;a href='https://search.twitter.com/search?q=%23grails' target='_blank'&gt;#grails&lt;/a&gt; Google Visualization plugin v0.5: &lt;a href="http://t.co/LL6aqysm" target='_blank'&gt;http://t.co/LL6aqysm&lt;/a&gt;. New visualizations, minor bugfixes, JS API taglib, updated docs.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="jobs"&gt;
&lt;h2&gt;Jobs&lt;/h2&gt;
&lt;hr/&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://seeker.dice.com/jobsearch/servlet/JobSearch?op=300&amp;#038;FREE_TEXT=grails&amp;#038;FRMT=0'&gt;Dice keyword search for Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://jobsearch.monster.com/PowerSearch.aspx?q=grails'&gt;Monster keyword search for Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.careerbuilder.com/Jobseeker/Jobs/JobResults.aspx?_ctl0%3A_ctl2%3AucQuickBar%3As_rawwords=grails'&gt;Careerbuilder keyword search for Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/SpringSourceJob'&gt;SpringSourceJob Twitter feed&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://jobs.vmware.com/search?q=springsource'&gt;SpringSource job search at jobs.vmware.com&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.grailsjobs.com/view-job/396'&gt;Groovy/Grails Developer (contract) in Slovakia&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.grailsjobs.com/view-job/397'&gt;Sr. Developer Analyst (Grails) &amp;#8211; Columbus, Ohio&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://www.webcruiter.no/wcmain/advertviewpublic.aspx?oppdragsnr=1302686071&amp;#038;culture_id=DA&amp;#038;company_id=4662900&amp;#038;Link_source_id=&amp;#038;use_position_site_header=0'&gt;Freelance Grails/Java udviklere &amp;#8211; København&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/SaraJaneJones2/status/162630437922021376'&gt;@SaraJaneJones2&lt;/a&gt;: &lt;a href='https://twitter.com/#!/lakah' target='_blank'&gt;@lakah&lt;/a&gt; Hey John, I&amp;#8217;m looking for &lt;a href='https://search.twitter.com/search?q=%23groovy' target='_blank'&gt;#groovy&lt;/a&gt;/grails developer for a client in &lt;a href='https://search.twitter.com/search?q=%23nyc' target='_blank'&gt;#nyc&lt;/a&gt;. Would you have any referrals? Plz rt!
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://us1.campaign-archive1.com/?u=c4dba33aa421b27c3fc24b8c6&amp;#038;id=05edcb0485'&gt;Groovy / Grails Developer in NYC&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.grailsjobs.com/view-job/398'&gt;Java Groovy/Grails Developer &amp;#8211; Toronto, ON, Canada&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.jobg8.com/JobG8SearchFullView.aspx?jbid=2353&amp;#038;jid=4200854'&gt;Java/Grails Developer in Phoenix, AZ&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.ziprecruiter.com/job/Groovy-Grails-Developer/7a1a9cfb/'&gt;Groovy Grails Developer in NYC&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://careers.joelonsoftware.com/jobs/13095/sr-consultant-java-grails-ios-permanent-full-object-partners'&gt;Sr. Consultant (Java/Grails/iOS) at Object Partners in Minneapolis, MN&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.virtualvocations.com/job/remote-java-jvm-grails-developer-73521.html'&gt;Remote Java / JVM / Grails Developer&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/coryhodnett/status/161508257620443136'&gt;@coryhodnett&lt;/a&gt;: Looking for a Web Developer for Java Script, Grails, &amp;#038; AJAX contract.  Call me! 6022242486
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/mobiquityinc/status/161499479651004419'&gt;@mobiquityinc&lt;/a&gt;: Still looking for &lt;a href='https://search.twitter.com/search?q=%23mobile' target='_blank'&gt;#mobile&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23developers' target='_blank'&gt;#developers&lt;/a&gt;. Especially with &lt;a href='https://search.twitter.com/search?q=%23Cocos2D' target='_blank'&gt;#Cocos2D&lt;/a&gt; and &lt;a href='https://search.twitter.com/search?q=%23Grails' target='_blank'&gt;#Grails&lt;/a&gt; experience. &lt;a href='https://search.twitter.com/search?q=%23Jobs' target='_blank'&gt;#Jobs&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23Boston' target='_blank'&gt;#Boston&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23PVD' target='_blank'&gt;#PVD&lt;/a&gt;.
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.linkedin.com/updates?discuss=&amp;#038;scope=73776304&amp;#038;stype=M&amp;#038;type=U&amp;#038;topic=5567319485301395456&amp;#038;a=h_x8'&gt;Looking for Java Developers, Java / Grails developers&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/gsuhm/status/162224941427728385'&gt;@gsuhm&lt;/a&gt;: Are you a &lt;a href='https://search.twitter.com/search?q=%23grails' target='_blank'&gt;#grails&lt;/a&gt; developer in Atlanta? Drop me a note for a great opportunity&amp;#8230;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/jvandersande/status/162382772332281856'&gt;@jvandersande&lt;/a&gt;: 2 groovy/grails development roles for a new startup. Great company w/ a great story. Willing to look at java, python, ruby, etc engineers
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/errr_/status/162351328625049601'&gt;@errr_&lt;/a&gt;: Are you a bad ass Java developer? Do you know groovy and grails? Do you also know vmware? We NEED you!! Shoot me your resume!
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.bullhornreach.com/job/187981_java-dev-grails-nashville-tn'&gt;Java Dev &amp;#8211; Grails in Nashville&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://jobs.ipfhr.com/job/java-grailsgroovy-restful-web-services/650542'&gt;Java, Grails/Groovy, Restful Web Services&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.4europeanjobs.com/display_job/524548/Java_Devloper.html'&gt;Java Developer in Bristol, UK&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://annoncevisning.monster.dk/getjob.aspx?JobID=105876092'&gt;Java udviklere søges (Grails, Groovy, Spring) &amp;#8211; Sjælland &amp;#038; Hovedstad&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.postjobfree.com/job/jxc9lo/grails-remotely-re-done-java-vancouver-bc-v5z-1k7?id=ac073658413d4cf1b38113ee96128b5c'&gt;Contract Java Developer in Vancouver&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='www.linkedin.com/groups/Senior-Java-Grails-Groovy-Developer-39757.S.90634084?view=&amp;#038;gid=39757&amp;#038;type=member&amp;#038;item=90634084'&gt;Senior Java Grails/Groovy Developer (contract) in NYC&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/DevelopmenGC/status/161812831874973696'&gt;@DevelopmenGC&lt;/a&gt;: Recherche Analyste programmeur Groovy (Grails) (Montréal)&lt;br /&gt;
Contactez : &lt;a href='mailto:cv@developmen.ca'&gt;cv@developmen.ca&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.jobsite.co.uk/job/lead-java-developer-architect-groovy-grails-941787085'&gt;Lead Java Developer / Architect &amp;#8211; Groovy, Grails in Northampton, UK&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="meetups"&gt;
&lt;h2&gt;User groups and Conferences&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.springio.net/'&gt;Spring I/O 2012&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
February 16&lt;sup&gt;th&lt;/sup&gt; and 17&lt;sup&gt;th&lt;/sup&gt; in Madrid
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.meetup.com/Seattle-Groovy/events/49374702/'&gt;Thursday, February 9, 2012&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Seattle Groovy/Grails Users Group
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.meetup.com/Seattle-Groovy/events/48327722/'&gt;March 8, 2012&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Seattle Groovy/Grails Users Group
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p class="wp-flattr-button"&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://burtbeckwith.com/blog/?flattrss_redirect&amp;amp;id=1204&amp;amp;md5=c7fc9a680eb9a067600881a7cb1631a1" title="Flattr" target="_blank"&gt;&lt;img src="http://burtbeckwith.com/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 30 Jan 2012 20:24:00 CST</pubDate>
      <guid isPermaLink="true">http://burtbeckwith.com/blog/?p=1204</guid>
      <dc:creator>Burt Beckwith</dc:creator>
    </item>
    <item>
      <title>Grails plugin for Ratpack</title>
      <link>http://springone2gx.com/blog/burt_beckwith/2012/01/grails_plugin_for_ratpack</link>
      <description>&lt;p&gt;I saw James Williams&amp;#8217; post on &lt;a target="_blank" href="http://jameswilliams.be/blog/entry/233"&gt;Running Ratpack inside Grails&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt; earlier this week and thought that it should be implemented as a Grails plugin, so I started playing with it. There isn&amp;#8217;t much in the way of documentation yet, but what&amp;#8217;s there is at the &lt;a target="_blank" href="http://grails.org/plugin/ratpack"&gt;plugin portal page&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt;. The source for the plugin is &lt;a target="_blank" href="https://github.com/burtbeckwith/grails-ratpack"&gt;here&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt; if you have any fixes or suggestions.&lt;/p&gt;
&lt;p class="wp-flattr-button"&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://burtbeckwith.com/blog/?flattrss_redirect&amp;amp;id=1198&amp;amp;md5=be5e851124ae8b0e393a629bf5758c41" title="Flattr" target="_blank"&gt;&lt;img src="http://burtbeckwith.com/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sun, 29 Jan 2012 00:13:00 CST</pubDate>
      <guid isPermaLink="true">http://burtbeckwith.com/blog/?p=1198</guid>
      <dc:creator>Burt Beckwith</dc:creator>
    </item>
    <item>
      <title>Running Ratpack inside Grails</title>
      <link>http://springone2gx.com/blog/james_williams1/2012/01/running_ratpack_inside_grails</link>
      <description>&lt;div&gt;When I would present on Ratpack at conferences, one of the main questions I'd get would be around the migration path from Ratpack to Grails. I'd usually answer noting that you could run Ratpack along side Grails. It turns out it is incredibly simple to run a Ratpack app inside Grails. I don't think it's a long term solution and best as an intermediary step to migrate from one side to the other.&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;1. Grab and build &lt;a href="http://github.com/bleedingwolf/Ratpack"&gt;Ratpack&lt;/a&gt;.&lt;/div&gt;&#xD;
&lt;div&gt;Provided you already have Gradle installed, run &lt;em&gt;gradle buildDistro&lt;/em&gt;. The only file you need is the main Ratpack-x.x file. Grails will provide the Groovy and servlet container run time for you. Add this to the lib directory of your Grails app.&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;2. Create your Ratpack app class.&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;Putting the script into a proper class, as shown below, makes it easier to reference it from our Servlet.&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;import java.text.SimpleDateFormat&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;import com.bleedingwolf.ratpack.*&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;br /&gt;&#xD;
&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;class SampleApp {&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;br /&gt;&#xD;
&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;			&lt;/span&gt;def app = Ratpack.app {&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;				&lt;/span&gt;set 'port', 4999&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;br /&gt;&#xD;
&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;				&lt;/span&gt;get(&amp;quot;/&amp;quot;) {&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;					&lt;/span&gt;def ua = headers['user-agent']&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &lt;span class="Apple-tab-span" style="white-space:pre"&gt;			&lt;/span&gt;&amp;quot;Your user-agent: ${ua} from Ratpack&amp;quot;&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;				&lt;/span&gt;}&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;				&lt;/span&gt;get(&amp;quot;/foo/:name&amp;quot;) {&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;					&lt;/span&gt;&amp;quot;Hello, ${urlparams.name}&amp;quot;&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;				&lt;/span&gt;}&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;				&lt;/span&gt;get(&amp;quot;/person/:id&amp;quot;) {&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;					&lt;/span&gt;&amp;quot;Person #${urlparams.id}&amp;quot;&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;				&lt;/span&gt;}&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&amp;nbsp;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;			&lt;/span&gt;}&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;br /&gt;&#xD;
&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&amp;nbsp;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;			&lt;/span&gt;public static void main(String[] args) {&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;				&lt;/span&gt;SampleServlet.serve(new SampleApp().app)&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&amp;nbsp;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;			&lt;/span&gt;}&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;}&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;3. Subclass *RatpackServlet*.&lt;/div&gt;&#xD;
&lt;div&gt;If you don't mind getting an logging error, you can use something as simple as the following file:&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;code&gt;import com.bleedingwolf.ratpack.*&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;br /&gt;&#xD;
&lt;/code&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;class SampleServlet extends RatpackServlet {&lt;/code&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;			&lt;br /&gt;&#xD;
&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; void init() {&lt;br /&gt;&#xD;
&lt;/code&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;app = new SampleApp().app&lt;br /&gt;&#xD;
&lt;/code&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&#xD;
&lt;/code&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;}&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;4. Add the servlet information to your application.&lt;/div&gt;&#xD;
&lt;div&gt;There is a really confusing way to do it using the resources.groovy file but I prefer just adding it to the web.xml by hand. Run&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;em&gt;grails install-templates&lt;/em&gt;&lt;/div&gt;&#xD;
&lt;div&gt;and navigate to src/templates/war/web.xml and add the following:&lt;/div&gt;&#xD;
&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;code&gt;&amp;lt;servlet&amp;gt;&lt;br /&gt;&#xD;
&lt;/code&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&amp;lt;servlet-name&amp;gt;SampleServlet&amp;lt;/servlet-name&amp;gt;&lt;/code&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;br /&gt;&#xD;
&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;lt;servlet-class&amp;gt;SampleServlet&amp;lt;/servlet-class&amp;gt;&lt;/code&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;br /&gt;&#xD;
&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/servlet&amp;gt;&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;code&gt;&lt;br /&gt;&#xD;
&lt;/code&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;&amp;lt;servlet-mapping&amp;gt;&lt;br /&gt;&#xD;
&lt;/code&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&amp;lt;servlet-name&amp;gt;SampleServlet&amp;lt;/servlet-name&amp;gt;&lt;/code&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;br /&gt;&#xD;
&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;url-pattern&amp;gt;/ratpack/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;&#xD;
&lt;/code&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;&amp;lt;/servlet-mapping&amp;gt;&lt;/code&gt;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;The servlet needs to be put on a url-pattern that isn't root (/*) so I used (/ratpack/*). Run &lt;em&gt;grails run-app&amp;nbsp;&lt;/em&gt;and you're all set.&lt;/div&gt;&#xD;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <pubDate>Tue, 24 Jan 2012 12:30:00 CST</pubDate>
      <guid isPermaLink="true">http://jameswilliams.be/blog/entry/2012/1/24/Running+Ratpack+inside+Grails</guid>
      <dc:creator>James Williams</dc:creator>
    </item>
    <item>
      <title>This Week in Grails (2012-03)</title>
      <link>http://springone2gx.com/blog/burt_beckwith/2012/01/this_week_in_grails_2012_03_</link>
      <description>&lt;p&gt;You only have a few more weeks to get your talk proposals in for GR8Conf EU and US. The EU page is &lt;a target="_blank" href="http://gr8conf.eu/content/eu2012/cfp"&gt;here&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt; and the US page is &lt;a target="_blank" href="http://gr8conf.us/content/us2012/Presentation-Proposal"&gt;here&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt;; both conferences have a February 15&lt;sup&gt;th&lt;/sup&gt; deadline.&lt;/p&gt;
&lt;p&gt;Lots of Spring Security items this week. I broke war deployment in the &lt;a target="_blank" href="http://grails.org/plugin/spring-security-core"&gt;spring-security-core&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt; 1.2.7 release so I released version 1.2.7.1 to address that. There&amp;#8217;s a new plugin to integrate a &lt;a target="_blank" href="http://grails.org/plugin/spring-security-shibboleth-native-sp"&gt;Shibboleth native SP&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt;, and one for &lt;a target="_blank" href="http://grails.org/plugin/spring-security-mock"&gt;mock authentication&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt;. And Carsten Block did a blog post on &lt;a target='_blank' href='http://blog.block-consult.com/2012/01/restricting-concurrent-user-sessions-in-grails-2-using-spring-security-core-plugin/'&gt;restricting concurrent user sessions&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; (also see the &lt;a href="http://blog.block-consult.com/2012/01/update-concurrent-user-sessions-management-in-grails-2-using-spring-security-core-plugin/" target='_blank'&gt;updated post&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Check out &lt;a target="_blank" href="http://www.slideshare.net/tyama/grailsxlondon-2011"&gt;Tsuyoshi Yamamoto&amp;#8217;s summary&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt; of the &lt;a target="_blank" href="http://skillsmatter.com/event/groovy-grails/groovy-grails-exchange-2011"&gt;Groovy &amp;#038; Grails eXchange 2011&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt; in London. Lots of cool photos, including one of the three developers of the &lt;a target="_blank" href="http://grails.org/plugin/acegi"&gt;Acegi plugin&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt; &amp;#8211; it was the first time we were all in the same place together.&lt;/p&gt;
&lt;p&gt;I released a new plugin this week to help with &lt;a target="_blank" href="http://grails.org/plugin/jbossas"&gt;deploying applications to JBoss&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt;. Each version of JBoss has various things that need to be done to get an app deployed, so I thought it&amp;#8217;d be best to encapsulate that in a plugin that does the work for you. It works with version 5 and 6, but no support for version 7 since there isn&amp;#8217;t one that supports Grails yet (due various bugs that will hopefully be addressed in 7.2).&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;If you want to keep up with these &amp;#8220;This Week in Grails&amp;#8221; posts you can access them directly via their &lt;a target="_blank" href="http://burtbeckwith.com/blog/?cat=32"&gt;category link&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt; or in an RSS reader with &lt;a target="_blank" href="http://feeds.feedburner.com/this-week-in-grails"&gt;the feed&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt; for just these posts.&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;Translations of this post:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/2012/01/23/esta-semana-en-grails-2012-03/'&gt;Traducción al español&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://groovyq.net/content/grails%E6%AF%8F%E5%91%A8%E8%A7%82%E5%AF%9F%EF%BC%882012-03%EF%BC%89'&gt;Grails每周观察&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://remoteexception.blogspot.com/2012/01/semana-grails-2012-03.html'&gt;Este artigo em Português&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.luca-canducci.com/2012/01/questa-settimana-in-grails-2012-03'&gt;Traduzione Italiana&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.jp/news/2012-03.html'&gt;今週のGrails日本語版&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;div class="toc"&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#miscellaneous"&gt;Miscellaneous Items&lt;/a&gt;&lt;br /&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#plugins"&gt;Plugins&lt;/a&gt;&lt;br /&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#tweets"&gt;Interesting Tweets&lt;/a&gt;&lt;br /&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#jobs"&gt;Jobs&lt;/a&gt;&lt;br /&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#meetups"&gt;User groups and Conferences&lt;/a&gt;
&lt;/div&gt;
&lt;hr/&gt;
&lt;div id="miscellaneous"&gt;
&lt;h2&gt;Miscellaneous Items&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.io/post/15965611310'&gt;Lessons learnt developing Groovy AST transformations&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://blog.andresteingress.com/2012/01/17/nullsafe-reloaded/'&gt;@NullSafe Reloaded&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.intelligrape.com/blog/2012/01/18/my-top-9-features-from-grails-2-0/'&gt;My Top 9 Features from Grails 2.0&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.io/post/16065252638'&gt;Functional testing Grails core with Gradle, Spock and Geb&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.curiousattemptbunny.com/2012/01/gradle-goodness.html'&gt;Gradle Goodness&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.curiousattemptbunny.com/2012/01/gradle-goodness_18.html'&gt;Gradle Goodness (part 2)&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.curiousattemptbunny.com/2012/01/gradle-goodness_20.html'&gt;Gradle Goodness (part 3)&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://fbflex.wordpress.com/2012/01/18/running-geb-specs-using-a-separate-driver-profile-to-test-mobile-views-in-grails/'&gt;Running Geb specs using a separate driver profile to test mobile views in Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://programmingitch.blogspot.com/2012/01/passing-parameters-into-groovy-script.html'&gt;Passing parameters into Groovy script using Binding class&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://blog.andresteingress.com/2012/01/16/gcontracts-1-2-5-released/'&gt;GContracts 1.2.5 Released!&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://viaboxxsystems.de/hacking-around-grails-broken-snapshot-dependency-mechanism'&gt;Hacking Around Grails&amp;#8217; Broken Snapshot Dependency Mechanism&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.objectpartners.com/2012/01/17/presentation-grails-2-0-what-to-be-excited-about/'&gt;Presentation: Grails 2.0 – what to be excited about&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/hoy/?date=2012-01-16'&gt;http://observatoriodegrails.com/hoy/?date=2012-01-16&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/hoy/?date=2012-01-17'&gt;http://observatoriodegrails.com/hoy/?date=2012-01-17&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/hoy/?date=2012-01-18'&gt;http://observatoriodegrails.com/hoy/?date=2012-01-18&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/hoy/?date=2012-01-19'&gt;http://observatoriodegrails.com/hoy/?date=2012-01-19&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/hoy/?date=2012-01-20'&gt;http://observatoriodegrails.com/hoy/?date=2012-01-20&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.springsource.org/node/3366'&gt;This Week in Spring, January 17th, 2012&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="plugins"&gt;
&lt;h2&gt;Plugins&lt;/h2&gt;
&lt;p&gt;There were 4 new plugins released:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/spring-security-shibboleth-native-sp'&gt;spring-security-shibboleth-native-sp&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.0.0. Shibboleth Naitive SP support for the Spring Security grails plugin
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/activiti-shiro'&gt;activiti-shiro&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.1.1. Integrates Shiro Security to Activiti
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/kendo-ui'&gt;kendo-ui&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.0.0. Supplies Kendo UI dependencies
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/jbossas'&gt;jbossas&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.0. Assists in deploying to JBoss
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;and 14 updated plugins:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/build-info'&gt;build-info&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.2.2. Provides a controller/view that display basic information about the war file
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/clover'&gt;clover&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 3.1.3. Integrates the Clover code coverage tool
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/commentable'&gt;commentable&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.7.7. Mark up any of your domain classes as having comments and then use the tag library and partial templates to integrate comments into your views
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/dao-artefacts'&gt;dao-artefacts&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.4. Provides a way of using DAOs in Grails applications.
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/external-config-reload'&gt;external-config-reload&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.4.8. Polls for changes to external configuration files (files added to grails.config.locations), reloads the configuration when a change has occurred, and notifies specified plugins by firing the onConfigChange event in each
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/hibernate-search'&gt;hibernate-search&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.4. Integrates Hibernate Search for domain classes
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/infinispan'&gt;infinispan&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.4.5. Adds support for the JBoss Infinispan distributed cache
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/jasypt-encryption'&gt;jasypt-encryption&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.1.0. Integration the Jasypt encryption library
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/mahout-recommender'&gt;mahout-recommender&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.5.2. Use Apache Mahout recommendation algorithms in your project
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/marshallers'&gt;marshallers&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.1.1. Easy registration and usage of custom XML and JSON marshallers supporting hierarchical configurations
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/pusher'&gt;pusher&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.2. Wrapper for pusher.com REST api
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/simpledb'&gt;simpledb&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.3. Integrates the AWS SimpleDB datastore into Grails, providing a GORM API onto it
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/spring-security-core'&gt;spring-security-core&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.2.7.1. The official Grails security plugin; integrates with Spring Security
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/spring-security-mock'&gt;spring-security-mock&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.0.0. Mock authentication support for Spring Security
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="tweets"&gt;
&lt;h2&gt;Interesting Tweets&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/ewolff/status/158889193462964224'&gt;@ewolff&lt;/a&gt;: Tech Talk &lt;a href='https://search.twitter.com/search?q=%23adessoAG' target='_blank'&gt;#adessoAG&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23Groovy' target='_blank'&gt;#Groovy&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23Grails' target='_blank'&gt;#Grails&lt;/a&gt; in Stralsund &lt;a href="http://t.co/JkqqRUof" target='_blank'&gt;http://t.co/JkqqRUof&lt;/a&gt; Feb 2nd
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/aaronzirbes/status/159027155123179520'&gt;@aaronzirbes&lt;/a&gt;: I just published a &lt;a href='https://search.twitter.com/search?q=%23Grails' target='_blank'&gt;#Grails&lt;/a&gt; Spring Security plugin for those using &lt;a href='https://search.twitter.com/search?q=%23Shibboleth' target='_blank'&gt;#Shibboleth&lt;/a&gt;. Check it out @ &lt;a href="http://t.co/kHqF58qY" target='_blank'&gt;http://t.co/kHqF58qY&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/padcom/status/159033071243509760'&gt;@padcom&lt;/a&gt;: &lt;a href='https://search.twitter.com/search?q=%23GContracts' target='_blank'&gt;#GContracts&lt;/a&gt; is just awesome! Finally a good use of closure annotations in &lt;a href='https://search.twitter.com/search?q=%23Groovy' target='_blank'&gt;#Groovy&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/doylecentral/status/159390163536056320'&gt;@doylecentral&lt;/a&gt;: sts just checked for a duplicate string in json builder. WOW &lt;a href='https://search.twitter.com/search?q=%23sts' target='_blank'&gt;#sts&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23grails' target='_blank'&gt;#grails&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/nagai_masato/status/159420574555324417'&gt;@nagai_masato&lt;/a&gt;: When you learn the AST DSL of Groovy, AstSpecBuilder woks as a great reference. &lt;a href="http://t.co/LyhoHetB" target='_blank'&gt;http://t.co/LyhoHetB&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23groovy' target='_blank'&gt;#groovy&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/glaforge/status/159595557587927040'&gt;@glaforge&lt;/a&gt;: &lt;a href='https://search.twitter.com/search?q=%23groovy' target='_blank'&gt;#groovy&lt;/a&gt; is back at the 36th rank in the &lt;a href='https://search.twitter.com/search?q=%23tiobe' target='_blank'&gt;#tiobe&lt;/a&gt; index. It&amp;#8217;s playing yoyo &lt;img src='http://burtbeckwith.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /&gt;  &lt;a href="http://t.co/lrWqUTmb" target='_blank'&gt;http://t.co/lrWqUTmb&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/hiranasu/status/159653624790786050'&gt;@hiranasu&lt;/a&gt;: GrailsでAjax実装するのが簡単すぎてやばい。jsの知識ゼロで書ける。楽しすぎる！
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/FinGGUG/status/159752373525422080'&gt;@FinGGUG&lt;/a&gt;: Where are you all the Finnish &lt;a href='https://search.twitter.com/search?q=%23Groovy' target='_blank'&gt;#Groovy&lt;/a&gt; and &lt;a href='https://search.twitter.com/search?q=%23Grails' target='_blank'&gt;#Grails&lt;/a&gt; developers? We need people to join the action! Please spread the word.
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/TimSporcic/status/159800977732534272'&gt;@TimSporcic&lt;/a&gt;: Finally pushed up GORM Recipes to GitHub. Samples of using GORM with Grails 2.0.  &lt;a href='https://search.twitter.com/search?q=%23GORM' target='_blank'&gt;#GORM&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23grails' target='_blank'&gt;#grails&lt;/a&gt;  &lt;a href="http://t.co/Wvj8Rc1c" target='_blank'&gt;http://t.co/Wvj8Rc1c&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/rstepanenko/status/159850047830372352'&gt;@rstepanenko&lt;/a&gt;: published 0.3 release of &lt;a href='https://search.twitter.com/search?q=%23AWS' target='_blank'&gt;#AWS&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23simpledb' target='_blank'&gt;#simpledb&lt;/a&gt; gorm plugin for &lt;a href='https://search.twitter.com/search?q=%23grails' target='_blank'&gt;#grails&lt;/a&gt;. Release notes: &lt;a href="http://t.co/IvBAV0xE" target='_blank'&gt;http://t.co/IvBAV0xE&lt;/a&gt; (numeric ids, aws retries etc.)
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/milcom_/status/160025235712786432'&gt;@milcom_&lt;/a&gt;: TIL there is a &lt;a href='https://search.twitter.com/search?q=%23groovy' target='_blank'&gt;#groovy&lt;/a&gt; sub reddit. &lt;img src='http://burtbeckwith.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /&gt;  &lt;a href="http://t.co/Pg1LTbLj" target='_blank'&gt;http://t.co/Pg1LTbLj&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/CedricChampeau/status/160135867413966849'&gt;@CedricChampeau&lt;/a&gt;: Slides from my talk about static type checking at the &lt;a href='https://search.twitter.com/search?q=%23groovy' target='_blank'&gt;#groovy&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23grails' target='_blank'&gt;#grails&lt;/a&gt; user group &lt;a href="http://t.co/8AjXvWqM" target='_blank'&gt;http://t.co/8AjXvWqM&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/nmartignole/status/160263565369020416'&gt;@nmartignole&lt;/a&gt;: &lt;a href='https://search.twitter.com/search?q=%23Groovy' target='_blank'&gt;#Groovy&lt;/a&gt; users in the south of France, there&amp;#8217;s now a Groovy/Grails User Group at Sophia Antipolis &lt;a href="http://t.co/8bE92CQs" target='_blank'&gt;http://t.co/8bE92CQs&lt;/a&gt; cc &lt;a href='https://twitter.com/#!/sebi2706' target='_blank'&gt;@sebi2706&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/nobusue/status/160302854437994496'&gt;@nobusue&lt;/a&gt;: 公式公認!ドキュメント翻訳 / “Grails Framework リファレンスドキュメント” &lt;a href="http://t.co/bJpXnped" target='_blank'&gt;http://t.co/bJpXnped&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="jobs"&gt;
&lt;h2&gt;Jobs&lt;/h2&gt;
&lt;hr/&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://seeker.dice.com/jobsearch/servlet/JobSearch?op=300&amp;#038;FREE_TEXT=grails&amp;#038;FRMT=0'&gt;Dice keyword search for Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://jobsearch.monster.com/PowerSearch.aspx?q=grails'&gt;Monster keyword search for Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.careerbuilder.com/Jobseeker/Jobs/JobResults.aspx?_ctl0%3A_ctl2%3AucQuickBar%3As_rawwords=grails'&gt;Careerbuilder keyword search for Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/SpringSourceJob'&gt;SpringSourceJob Twitter feed&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://jobs.vmware.com/search?q=springsource'&gt;SpringSource job search at jobs.vmware.com&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/GCSdigitalmedia/status/158890230773067776'&gt;@GCSdigitalmedia&lt;/a&gt;: Looking for Java Groovy/Grails developers for an immediate start, please contact Kevin on 020 7710 4121
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/albertovilches/status/159214638989455361'&gt;@albertovilches&lt;/a&gt;: ¿Algún programador Groovy &lt;a href='https://search.twitter.com/search?q=%23Grails' target='_blank'&gt;#Grails&lt;/a&gt; está buscando trabajo en Madrid? que se ponga en contacto conmigo! &lt;img src='http://burtbeckwith.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.grailsjobs.com/view-job/392'&gt;Java/Grails Application Developer at Devis in Arlington, VA&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/bredo/status/159655348221911040'&gt;@bredo&lt;/a&gt;: We&amp;#8217;re hiring! Looking for a Grails/Java developer &lt;a href="http://t.co/pLTDu0A2" target='_blank'&gt;http://t.co/pLTDu0A2&lt;/a&gt; &amp;#8211; fun team, fun project, great tech, cake, booze, beauty, clerkenwell
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/BKBRecruiter/status/159712551209410560'&gt;@BKBRecruiter&lt;/a&gt;: Searching for a Groovy and Grails developer in Toronto if interested Msg me&amp;#8230; &lt;a href='https://search.twitter.com/search?q=%23in' target='_blank'&gt;#in&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.grailsjobs.com/view-job/394'&gt;Software Engineer at SRA International in Charlottesville, VA&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.totaljobs.com/JobSearch/JobDetails.aspx?JobId=52646781'&gt;Web Developer / Grails Developer in Northamptonshire&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.grailsjobs.com/view-job/395'&gt;Grails Web Developer at Coresystems AG in Windisch, Switzerland&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.linkedin.com/groups/Looking-Lead-Developer-migrate-ERP-39757.S.88755333?view=&amp;#038;gid=39757&amp;#038;type=member&amp;#038;item=88755333'&gt;Looking for a Lead Developer to migrate ERP systems based in SilverStream over to Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.excella.com/careers/javajvm-languages-developer.aspx'&gt;Java/JVM Languages Developer at Excella&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.acrede.net/job-vacancies/'&gt;Grails Developers at Acrede&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.bullhornreach.com/job/187981_java-dev-grails-nashville-tn'&gt;Java Dev &amp;#8211; Grails at Moxy in Nashville, TN&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/noelwiland/status/160002500915765249'&gt;@noelwiland&lt;/a&gt;: NOW HIRING: Senior Level Developer with experience with RESTful Web Services &amp;#038; Grails Framework. Please contact me if you are interested. n…
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.jobsite.co.uk/job/lead-java-developer-architect-groovy-grails-941716618'&gt;Lead Java Developer / Architect &amp;#8211; Groovy, Grails in Northampton&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.tecnoempleo.com/oferta-empleo-madrid/java-spring-grails/rf-3036pbba1c00b08b939d'&gt;Desarrollador Junior de Java &amp;#8211; Madrid&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.it-jobbank.dk/da/job--freelance-grails-java-udviklere--50445298.job?cid=msearch_careerjet_itjobsdk,msearch_careerjet'&gt;Freelance Grails/Java udviklere &amp;#8211; København&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.aplitrak.com/?adid=Y2lhcmFuLm9yZWdhbi45Mjc0Mi50d2lAaHVudHJlc3MuYXBsaXRyYWsuY29t'&gt;Web Developer, Grails / ColdFusion, London&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.devbistro.com/jobs/143256'&gt;Sr. JAVA/Groovy Grails Developer&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.ziprecruiter.com/job/Groovy-Grails-Java-NYC-9-Months-80-C2C/485a1dd2/'&gt;Groovy Grails / Java | NYC&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.vivonet.com/about-us/careers/sr-grails-java-developer'&gt;Sr Grails / Java Developer in Vancouver, BC&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="meetups"&gt;
&lt;h2&gt;User groups and Conferences&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.springio.net/'&gt;Spring I/O 2012&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
February 16&lt;sup&gt;th&lt;/sup&gt; and 17&lt;sup&gt;th&lt;/sup&gt; in Madrid
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.meetup.com/Seattle-Groovy/events/48327722/'&gt;Thursday, March 8, 2012&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Seattle Groovy/Grails Users Group
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p class="wp-flattr-button"&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://burtbeckwith.com/blog/?flattrss_redirect&amp;amp;id=1174&amp;amp;md5=8ed8fc855ea032000f205d067880ce03" title="Flattr" target="_blank"&gt;&lt;img src="http://burtbeckwith.com/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 23 Jan 2012 07:53:00 CST</pubDate>
      <guid isPermaLink="true">http://burtbeckwith.com/blog/?p=1174</guid>
      <dc:creator>Burt Beckwith</dc:creator>
    </item>
    <item>
      <title>Grails: Bootstrapping data with DomainBuilder</title>
      <link>http://springone2gx.com/blog/andres_almiray/2012/01/grails_bootstrapping_data_with_domainbuilder</link>
      <description>&lt;p&gt;A few days ago I was discussing the topic of builders during a Grails training session. After surveying the usual suspects found in the standard Groovy distribution (MarkupBuilder, SwingBuilder, Antbuilder and ObjectGraphBuilder) we jumped into Grails' &lt;a href="http://grails.org/doc/latest/api/grails/util/DomainBuilder.html"&gt;DomainBuilder&lt;/a&gt;. Once we got familiar with it the team seized the opportunity to refactor an existing application they've been working on for a few weeks. The idea was to remove a very verbose data setup during the bootstrap sequence.&lt;/p&gt;
&lt;p&gt;Like many other applications out there, this one requires setting up users and roles to secure access to some areas. The User and Role classes looked like the following ones&lt;br/&gt;&lt;textarea name="srccode" class="groovy:nocontrols:nogutter" cols="80" rows="15"&gt;class User {
    String username
    String name
    static hasMany = [roles: Role]
    static constraints = {
        username(nullable: false, blank: false, unique: true)
        name(nullable: false, blank: false, unique: true)
    }
}

class Role {
    String name
    static constraints = {
        name(nullable: false, blank: false, unique: true)
    } 
}&lt;/textarea&gt;&lt;/p&gt;&lt;p&gt;Nothing complex really. Now, during bootstrap there were a handful on instances of both classes being created and saved. A few users would share roles which meant keeping a reference to the common role to later use Grails relationship methods. This caused the code to be not so much DRY, and while it's good to be &lt;a href="http://www.nofluffjuststuff.com/blog/andrew_glover/2008/07/it_s_ok_to_wet_yourself_every_once_in_awhile"&gt;WET&lt;/a&gt; from time to time this wasn't the case. Let me show you how the code looked like before we added the builder&lt;br/&gt;&lt;textarea name="srccode" class="groovy:nocontrols:nogutter" cols="80" rows="35"&gt;import com.acme.*

class BootStrap {
    def init = { servletContext -&gt;
        User user1 = new User(username: 'user1', name: 'Regular')
        User user2 = new User(username: 'user2', name: 'Super')
        User user3 = new User(username: 'user3', name: 'Über')
        User user4 = new User(username: 'user4', name: 'Admin')

        Role role1 = new Role(name: 'Observer')
        Role role2 = new Role(name: 'Executor')
        Role role3 = new Role(name: 'Collector')
        Role role4 = new Role(name: 'Administrator')

        user1.addToRoles(role1)

        user2.addToRoles(role1)
        user2.addToRoles(role2)

        user3.addToRoles(role1)
        user3.addToRoles(role2)
        user3.addToRoles(role3)

        user4.addToRoles(role4)

        role1.save()
        role2.save()
        role3.save()
        role4.save()
        role1.save()
        user2.save()
        user3.save()
        user4.save()
    }
}&lt;/textarea&gt;&lt;/p&gt;&lt;p&gt;We could have saved a few lines by collecting all domain classes in Lists then applying &lt;tt&gt;*.save()&lt;/tt&gt; on the lists, however that would still have left the relationship methods being defined explicitly. This is where DomainBuilder came in. With it we were able to define the domain instances and the relationships at the same time. We ended up with code looking like the following one&lt;br/&gt;&lt;textarea name="srccode" class="groovy:nocontrols:nogutter" cols="80" rows="41"&gt;import com.acme.*
import grails.util.DomainBuilder

class BootStrap {
    def init = { servletContext -&gt;
        DomainBuilder builder = new DomainBuilder()
        builder.classNameResolver = 'com.acme'
        builder.identifierResolver = { 'nodeId' }
        builder.registerFactory 'list', new ListFactory()
        builder.childPropertySetter = new CustomChildPropertySetter()

        List instances = builder.list {
            role(nodeId: 'role1', name: 'Observer')
            role(nodeId: 'role2', name: 'Executor')
            role(nodeId: 'role3', name: 'Collector')
            role(nodeId: 'role4', name: 'Administrator')

            user(username: 'user1', name: 'Regular') {
                role(refId: 'role1')
            }
            
            user(username: 'user2', name: 'Super') {
                role(refId: 'role1')
                role(refId: 'role2')
            }
            
            user(username: 'user3', name: 'Über') {
                role(refId: 'role1')
                role(refId: 'role2')
                role(refId: 'role3')
            }
            
            user(username: 'user4', name: 'Admin') {
                role(refId: 'role4')
            }
        }
        
        instances*.save()
    }
}&lt;/textarea&gt;&lt;/p&gt;
&lt;p&gt;DomainBuilder understands perfectly well the relationships between domain class instances. It also makes some assumptions on how the model is setup, but we still need to give it a few hints. In line 7 we can see a &lt;tt&gt;classNameResolver&lt;/tt&gt; set on the builder. By convention the builder will use an strategy to construct fully qualified classnames out of node names. If the classes happen to be defined inside a package then you must define a custom classNameResolver. In our case the classes we're interested in live under the same package so we only need to specify it, the builder will do the rest to figure out the correct class name.&lt;/p&gt;&lt;p&gt;Next, we must set a custom &lt;tt&gt;identifierResolver&lt;/tt&gt; because the &lt;tt&gt;id&lt;/tt&gt; property is of semantic meaning to domain classes. The builder can keep references to all instantiated nodes, it will use the &lt;tt&gt;id&lt;/tt&gt; property by default, assuming that's a synthetic property. This means it will treated in a different way than the rest of properties. Because &lt;tt&gt;id&lt;/tt&gt; is used by domain classes we set a different synthetic property named &lt;tt&gt;nodeId&lt;/tt&gt;. Finally we define a custom factory to serve as the root of the object graph. This custom factory requires additional setup to handle its children, which is why we also register a custom &lt;tt&gt;ChildPropertySetter&lt;/tt&gt; on the builder. These two helper classes can be seen in the following snippets&lt;br/&gt;&lt;textarea name="srccode" class="groovy:nocontrols:nogutter" cols="80" rows="5"&gt;private static class ListFactory extends AbstractFactory {
    Object newInstance(FactoryBuilderSupport builder, Object name, Object value, Map attributes) {
        []
    }
}&lt;/textarea&gt;&lt;textarea name="srccode" class="groovy:nocontrols:nogutter" cols="80" rows="9"&gt;private static class CustomChildPropertySetter extends DomainBuilder.DefaultGrailsChildPropertySetter {
    void setChild(Object parent, Object child, String parentName, String propertyName) {
        if (parent instanceof List) {
            parent &lt;&lt; child         } else {             super.setChild(parent, child, parentName, propertyName)         }     } }&lt;/textarea&gt;&lt;/p&gt;&lt;p&gt;Basically the code inspects the type of the parent node. If it's a List then we append the child to it, otherwise we let the standard behavior take control. You can read more information on the builders used at &lt;a href="http://groovy.codehaus.org/FactoryBuilderSupport"&gt;FactoryBuilderSupport&lt;/a&gt; and &lt;a href="http://groovy.codehaus.org/objectgraphbuilder"&gt;ObjectGraphBuilder&lt;/a&gt;.&lt;/p&gt;&lt;br/&gt;Keep on Groovying!</description>
      <pubDate>Mon, 23 Jan 2012 06:35:00 CST</pubDate>
      <guid isPermaLink="true">http://www.jroller.com/aalmiray/entry/grails_bootstrapping_data_with_domainbuilder</guid>
      <dc:creator>Andres Almiray</dc:creator>
    </item>
    <item>
      <title>Say No to iBooks Author</title>
      <link>http://springone2gx.com/blog/james_williams1/2012/01/say_no_to_ibooks_author</link>
      <description>&lt;div&gt;Apple, at their recent event announcement, unveiled a new innovation in the textbook market with iBooks Author. Most of the words around this event use flowery language of how groundbreaking it is and how it will change the market. I think it stands to do more damage to the market than help.&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;Let's start with the ridiculous EULA, Apple requires any work that is created with iBooks Author(IBA) to be sold only in the Apple iBooks store. Apple doesn't have the right to tell me where I can sell the work I create on my own equipment. This seems to be nothing more than a ploy to bolster the paltry selection of books in iBooks, an elite bookstore. I don't fault them for wanting to upset the publishing world because as an author, my cut of the take isn't that great with a traditional publisher. Crafting a means for authors to get a more equitable cut could only be good for them, right? In this case, I'd argue not. You would be trading masters. Get a little more money but also a master that is more ruthless.&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;iBooks will have to be appoved just like normal iOS apps. Though much improved in recent years, releasing an app on iOS is often unpredictable. In addition to not knowing precisely when a book will be available for purchase, you are dependent on Apple. &lt;strong&gt;ONLY&lt;/strong&gt;&amp;nbsp;Apple.&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;As Daniel Glazman, a member of the W3C CSS Working Group,&amp;nbsp;&lt;a href="http://www.glazman.org/weblog/dotclear/index.php?post/2012/01/20/iBooks-Author-a-nice-tool-but"&gt;notes&lt;/a&gt;, IBA uses a proprietary format that is not compatible with any current software. He asserts a point that is hard to argue. Had Apple participated in the standards process openly, we could have a more robust EPUB standard AND Apple would have first to market advantage. John Gruber &lt;a href="http://daringfireball.net/2012/01/ibooks_author_file_format"&gt;rebuts&lt;/a&gt;&amp;nbsp;Daniel's post stating that it IBA need not be standards compliant and throws out the canard of Amazon's mobi format being proprietary. A key difference is the mobi format is largely open, setting aside the .azw DRM variant for a second, and many tools can create them. Good or bad, anyone can publish a book to the Kindle store and have access to hundreds of millions of devices when you count that Kindle apps exist for Android, iOS, WP7, and the Chrome Web browser.&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;Let's go back in time a couple years to the start of the Android vs iOS debate. You'd ask devs why they didn't develop for Android and first they'd say &amp;quot;The iOS market is bigger.&amp;quot; After Android activations surpassed iOS, the excuse became &amp;quot;The Android market is fragmented.&amp;quot; Let's turn that argument on its head.&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;When you have&amp;nbsp;&lt;/div&gt;&#xD;
&lt;ul&gt;&#xD;
    &lt;li&gt;more open formats like MOBI and EPUB that benefit from a number of tools that can create them,&amp;nbsp;&lt;/li&gt;&#xD;
    &lt;li&gt;many online stores that sell books in those formats (SmashWords and Amazon to name a few), and&lt;/li&gt;&#xD;
    &lt;li&gt;the ability to create your own e-commerce site with your content, and,&lt;/li&gt;&#xD;
    &lt;li&gt;access to hundreds of millions devices of all shapes and sizes,&lt;/li&gt;&#xD;
&lt;/ul&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;do you really want to give that all up for Apple?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 23 Jan 2012 02:00:00 CST</pubDate>
      <guid isPermaLink="true">http://jameswilliams.be/blog/entry/2012/1/23/Say+No+to+iBooks+Author</guid>
      <dc:creator>James Williams</dc:creator>
    </item>
    <item>
      <title>This Week in Grails (2012-02)</title>
      <link>http://springone2gx.com/blog/burt_beckwith/2012/01/this_week_in_grails_2012_02_</link>
      <description>&lt;p&gt;Gr8Conf Europe announced a &lt;a target='_blank' href='http://www.gr8conf.eu/content/eu2012/'&gt;new look this week for their site&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; (based on &lt;a target='_blank' href='http://www.weceem.org/weceem/'&gt;Weceem&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;) and that their &lt;a target='_blank' href='http://www.gr8conf.eu/content/eu2012/cfp'&gt;Call for Papers&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; is open. If you want to speak in Copenhagen be sure to get your proposals in by the February 15&lt;sup&gt;th&lt;/sup&gt; deadline.&lt;/p&gt;
&lt;p&gt;The &lt;a target='_blank' href='http://grails.org/plugins/'&gt;plugin portal&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; got a few new features recently. Plugin pages now display the syntax for declaring the plugin in BuildConfig.groovy instead of using install-plugin. For example the &lt;a target='_blank' href='http://grails.org/plugin/spring-security-core'&gt;spring-security-core&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; plugin&amp;#8217;s value is &lt;code&gt;compile ":spring-security-core:1.2.7"&lt;/code&gt;. Plugins that use extra jar repositories also display that information, for example &lt;a target='_blank' href='http://grails.org/plugin/spring-mobile'&gt;spring-mobile&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;. Plugins now display usage data (although it&amp;#8217;s limited so the numbers aren&amp;#8217;t very valid yet). The spring-security-core plugin displays &amp;#8220;Used by approximately 35% of Grails users&amp;#8221;.&lt;/p&gt;
&lt;p&gt;Peter&amp;#8217;s started a project to &lt;a target='_blank' href='http://grails.1312388.n4.nabble.com/ANN-New-project-for-Grails-HOWTOs-td4285638.html'&gt;collect HOWTO guides&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; for Grails. Hopefully this will evolve into a large collection, created both by the core team and the community.&lt;/p&gt;
&lt;p&gt;Bobby Warner is back this week with two screencasts, both on CoffeeScript. Check out&lt;br /&gt;
&lt;a target='_blank' href='http://www.bobbywarner.com/2012/01/09/getting-groovy-with-coffeescript/'&gt;Getting Groovy with CoffeeScript&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; and &lt;a target='_blank' href='http://www.bobbywarner.com/2012/01/12/another-adventure-with-grails-and-coffeescript/'&gt;Another Adventure with Grails and CoffeeScript&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;If you want to keep up with these &amp;#8220;This Week in Grails&amp;#8221; posts you can access them directly via their &lt;a target="_blank" href="http://burtbeckwith.com/blog/?cat=32"&gt;category link&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt; or in an RSS reader with &lt;a target="_blank" href="http://feeds.feedburner.com/this-week-in-grails"&gt;the feed&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt; for just these posts.&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;Translations of this post:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/2012/01/17/esta-semana-en-grails-2012-02/'&gt;Traducción al español&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.groovyq.net/content/grails%E6%AF%8F%E5%91%A8%E8%A7%82%E5%AF%9F%EF%BC%882012-02%EF%BC%89'&gt;Grails每周观察&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://remoteexception.blogspot.com/2012/01/semana-grails-2012-02.html'&gt;Este artigo em Português&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.luca-canducci.com/2012/01/questa-settimana-in-grails-2012-02/'&gt;Traduzione Italiana&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.jp/news/2012-02.html'&gt;今週のGrails日本語版&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;div class="toc"&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#miscellaneous"&gt;Miscellaneous Items&lt;/a&gt;&lt;br /&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#plugins"&gt;Plugins&lt;/a&gt;&lt;br /&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#tweets"&gt;Interesting Tweets&lt;/a&gt;&lt;br /&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#jobs"&gt;Jobs&lt;/a&gt;&lt;br /&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#meetups"&gt;User groups and Conferences&lt;/a&gt;
&lt;/div&gt;
&lt;hr/&gt;
&lt;div id="miscellaneous"&gt;
&lt;h2&gt;Miscellaneous Items&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.io/post/15613554536'&gt;Custom Implementations of GORM&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.io/post/15622232580'&gt;New version of GORM-JPA plugin available&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.io/post/15664759905'&gt;Grails Roadmap Update&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.io/post/15568051467'&gt;GMock 0.8.2 released with Grails 2.0 support&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://mrhaki.blogspot.com/2012/01/grails-goodness-generate-links-outside.html'&gt;Grails Goodness: Generate Links Outside Controllers or Tag Libraries&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://githire.com/about'&gt;githire&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.objectpartners.com/2012/01/12/generating-excel-from-grails/'&gt;Generating Excel from Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://tradeshift.com/blog/grails-at-tradeshift/'&gt;Grails at Tradeshift&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://kousenit.wordpress.com/2012/01/13/elvis-carried-away-by-spaceships/'&gt;Elvis carried away by spaceships&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://mrhaki.blogspot.com/2012/01/grails-goodness-date-request-parameter.html'&gt;Grails Goodness: Date Request Parameter Value Conversions&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.tomcatexpert.com/blog/2012/01/04/year-review-2011'&gt;Year in Review 2011 (Tomcat Expert)&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://seeallhearall.blogspot.com/2012/01/remoting-groovy-with-generated-closures.html'&gt;Remoting Groovy with Generated Closures&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://blog.andresteingress.com/2012/01/13/gsheets-a-groovy-builder-based-on-apache-poi/'&gt;GSheets – A Groovy Builder based on Apache POI&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://andreasarledal.github.com/blog/2012/01/15/gr8-expectations/'&gt;Gr8 Expectations&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Good ideas; not so sure about the last one though &lt;img src='http://burtbeckwith.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://piedradigital.blogspot.com/2012/01/aplicaciones-multi-tenant-en-grails.html'&gt;Aplicaciones Multi-Tenant en Grails usando Multi-Tenant-Core plugin y Single-Tenant Mode&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://grooovygeorge.wordpress.com/2012/01/12/shifting-weceem-cms-to-grails-2-0/'&gt;Shifting Weceem CMS to Grails 2.0&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/hoy/?date=2012-01-09'&gt;http://observatoriodegrails.com/hoy/?date=2012-01-09&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/hoy/?date=2012-01-10'&gt;http://observatoriodegrails.com/hoy/?date=2012-01-10&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/hoy/?date=2012-01-13'&gt;http://observatoriodegrails.com/hoy/?date=2012-01-13&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.springsource.org/node/3361'&gt;This Week in Spring, January 10th, 2012&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="plugins"&gt;
&lt;h2&gt;Plugins&lt;/h2&gt;
&lt;p&gt;There were 4 new plugins released:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/foundation'&gt;foundation&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 2.1.4.1. Provides the Foundation CSS framework resources
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/fbootstrapp'&gt;fbootstrapp&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.1.1. Provides FBootstrapp CSS framework resource files
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/spring-security-mock'&gt;spring-security-mock&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.9.8. Mock authentication support for Spring Security
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/jquery-mobile-scaffolding'&gt;jquery-mobile-scaffolding&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.1. Provides mobile templates that can be used during the scaffolding process
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;and 21 updated plugins:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/atmosphere'&gt;atmosphere&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.4.2. Provides integration with the Atmosphere project, a portable AjaxPush/Comet and WebSocket framework
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/bubbling'&gt;bubbling&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 2.1.4. Provides integration with the Bubbling Library YUI extension
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/build-info'&gt;build-info&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.2.1. Provides a controller/view that display basic information about the war file
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/commentable'&gt;commentable&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.7.6. Mark up any of your domain classes as having comments and then use the tag library and partial templates to integrate comments into your views
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/cucumber'&gt;cucumber&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.2.2. Test your Grails apps with Cucumber
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/dao'&gt;dao&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.4.2. Enables a grails-app/dao directory to setup beans. See &lt;a href="https://github.com/basejump/grails-dao" target='_blank'&gt;https://github.com/basejump/grails-dao&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/dojo'&gt;dojo&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.7.1.3. Integrates the Dojo javascript toolkit
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/excel-import'&gt;excel-import&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.0.0. Excel &amp;#038; CSV Importer &amp;#038; Exporter using Apache POI
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/facebook-sdk'&gt;facebook-sdk&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.1.2. Allows your application to use the Facebook Platform and develop Facebook apps on Facebook.com or on web sites (with Facebook Connect)
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/geolocation'&gt;geolocation&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.4. Adds HTML5 geolocation support and offers some utility methods to calculate distances and range checks
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/gorm-jpa'&gt;gorm-jpa&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.0.0.M1. Implementation of GORM for JPA 1.0
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/grails-ui'&gt;grails-ui&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.2.3. Provides a standard UI tag library for ajaxy widgets using YUI
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/hibernate-jpa-provider'&gt;hibernate-jpa-provider&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.0.0.M1. Integrates Hibernate as a JPA provider
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/jasper'&gt;jasper&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.5.1. Enables use of JasperReports
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/jquery-validation-ui'&gt;jquery-validation-ui&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.2.3. Client Side Validation without writing JavaScript
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/rateable'&gt;rateable&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.7.1. Adds a generic mechanism for rating domain objects
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/release'&gt;release&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.0.1. Publishes Grails plugins either to a public or private repository
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/routing'&gt;routing&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.1.6. Send and route messages to a wide variety of destination endpoints directly from your Controllers and Services using Camel
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/screencasts'&gt;screencasts&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.5.6. Allows the upload, management and display of screencasts
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/svn'&gt;svn&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.0.2. Provides SVNKit as a dependency; an SvnClient class that makes it easier to work with Subversion; and integration with the Release plugin
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/uploadr'&gt;uploadr&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.5.8. HTML5 Drag and Drop file uploader
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="tweets"&gt;
&lt;h2&gt;Interesting Tweets&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/smaldini/status/156883033927057408'&gt;@smaldini&lt;/a&gt;: good work in progress for the &lt;a href='https://search.twitter.com/search?q=%23grails' target='_blank'&gt;#grails&lt;/a&gt; plugin platform with the event mechanism and its Spring Integration impl &amp;#8211; targeting a release asap
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/grails_rocks/status/156883362034888704'&gt;@grails_rocks&lt;/a&gt;: Well &lt;a href='https://search.twitter.com/search?q=%23Grails' target='_blank'&gt;#Grails&lt;/a&gt; Functional Test plugin 2.0 (upgraded from previous name of 1.5) is coming along well. New REST API testing mode, dep fixes etc
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/GavinInNY/status/156948993467883520'&gt;@GavinInNY&lt;/a&gt;: Working on &lt;a href='https://twitter.com/#!/ApacheShiro' target='_blank'&gt;@ApacheShiro&lt;/a&gt; documentation for &lt;a href='https://twitter.com/#!/grailsframework' target='_blank'&gt;@grailsframework&lt;/a&gt;. Anyone want to help? &lt;a href="https://t.co/pgE8dM22" target='_blank'&gt;https://t.co/pgE8dM22&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/ldaley/status/157024104116006912'&gt;@ldaley&lt;/a&gt;: I&amp;#8217;ll be in Portland for Gradle training (places still open: &lt;a href="http://t.co/Wee0pVII" target='_blank'&gt;http://t.co/Wee0pVII&lt;/a&gt;) next week if anyone wants to talk Gradle, Grails, Geb etc.
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/pniederw/status/157318548698578945'&gt;@pniederw&lt;/a&gt;: I&amp;#8217;ve always wanted true named parameters for &lt;a href='https://search.twitter.com/search?q=%23groovy' target='_blank'&gt;#groovy&lt;/a&gt;. Time to take action&amp;#8230; &lt;a href="https://t.co/w6GD59Wv" target='_blank'&gt;https://t.co/w6GD59Wv&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/glaforge/status/157444386379137024'&gt;@glaforge&lt;/a&gt;: &lt;a href='https://search.twitter.com/search?q=%23springio' target='_blank'&gt;#springio&lt;/a&gt; 2012 (Feb 16-17, Madrid) has quite a few nice &lt;a href='https://search.twitter.com/search?q=%23groovy' target='_blank'&gt;#groovy&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23grails' target='_blank'&gt;#grails&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23gcontracts' target='_blank'&gt;#gcontracts&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23cloudfoundry' target='_blank'&gt;#cloudfoundry&lt;/a&gt; talks! Check it out! &lt;a href="http://t.co/UWR4h2uK" target='_blank'&gt;http://t.co/UWR4h2uK&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/CedricChampeau/status/157597446019629056'&gt;@CedricChampeau&lt;/a&gt;: De retour du &lt;a href='https://twitter.com/#!/nantesjug' target='_blank'&gt;@nantesjug&lt;/a&gt;. Mes slides &amp;#8220;Introduction aux &lt;a href='https://search.twitter.com/search?q=%23DSL' target='_blank'&gt;#DSL&lt;/a&gt; en &lt;a href='https://search.twitter.com/search?q=%23Groovy' target='_blank'&gt;#Groovy&lt;/a&gt;&amp;#8221; &lt;a href="http://t.co/7MFJr3sK" target='_blank'&gt;http://t.co/7MFJr3sK&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/tahmed/status/157714774224941057'&gt;@tahmed&lt;/a&gt;: &lt;a href='https://search.twitter.com/search?q=%23OpenLogic' target='_blank'&gt;#OpenLogic&lt;/a&gt; announces 2011 open source trending report. &lt;a href='https://search.twitter.com/search?q=%23Grails' target='_blank'&gt;#Grails&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%2311' target='_blank'&gt;#11&lt;/a&gt; in overall growth.  &lt;a href="http://t.co/YF8wE5R0" target='_blank'&gt;http://t.co/YF8wE5R0&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23Groovy' target='_blank'&gt;#Groovy&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/grailsframework/status/157756610436009984'&gt;@grailsframework&lt;/a&gt;: In Madrid or near by? Then check out Spring IO &amp;#8211; a February conference for all things &lt;a href='https://search.twitter.com/search?q=%23springframework' target='_blank'&gt;#springframework&lt;/a&gt; &amp;#038; &lt;a href='https://search.twitter.com/search?q=%23groovy' target='_blank'&gt;#groovy&lt;/a&gt; &amp;#8211; &lt;a href="http://t.co/OZT64FBZ" target='_blank'&gt;http://t.co/OZT64FBZ&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/nikostheimpaler/status/158365028121190402'&gt;@nikostheimpaler&lt;/a&gt;: Converting old half-finished side project to Grails. Roughly 90% done after 3 hours. &lt;a href='https://search.twitter.com/search?q=%23imsold' target='_blank'&gt;#imsold&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="jobs"&gt;
&lt;h2&gt;Jobs&lt;/h2&gt;
&lt;hr/&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://seeker.dice.com/jobsearch/servlet/JobSearch?op=300&amp;#038;FREE_TEXT=grails&amp;#038;FRMT=0'&gt;Dice keyword search for Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://jobsearch.monster.com/PowerSearch.aspx?q=grails'&gt;Monster keyword search for Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.careerbuilder.com/Jobseeker/Jobs/JobResults.aspx?_ctl0%3A_ctl2%3AucQuickBar%3As_rawwords=grails'&gt;Careerbuilder keyword search for Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/SpringSourceJob'&gt;SpringSourceJob Twitter feed&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://jobs.vmware.com/search?q=springsource'&gt;SpringSource job search at jobs.vmware.com&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/sebi2706/status/156732540558909440'&gt;@sebi2706&lt;/a&gt;: Wants to work with &lt;a href='https://search.twitter.com/search?q=%23Groovy' target='_blank'&gt;#Groovy&lt;/a&gt; and other exciting technos while living on the french Riviera ? please DM me or RT &lt;a href='https://search.twitter.com/search?q=%23sun' target='_blank'&gt;#sun&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23sea' target='_blank'&gt;#sea&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23groovy' target='_blank'&gt;#groovy&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.linkedin.com/groups/SENIOR-GRAILS-SERVER-DEVELOPER-WELLESLEY-39757.S.88908453?view=&amp;#038;gid=39757&amp;#038;type=member&amp;#038;item=88908453'&gt;Senior Grails Server Developer at Mobiquity in Wellesley, MA or Providence, RI&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/amontalenti/status/158234616937979905'&gt;@amontalenti&lt;/a&gt;: Any software engineers interested in a senior development role at a startup using &lt;a href='https://search.twitter.com/search?q=%23Groovy' target='_blank'&gt;#Groovy&lt;/a&gt; or &lt;a href='https://search.twitter.com/search?q=%23Grails' target='_blank'&gt;#Grails&lt;/a&gt;?  DM or @ me for more information. &lt;a href='https://search.twitter.com/search?q=%23in' target='_blank'&gt;#in&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/DimitrisTI/status/156341977040949250'&gt;@DimitrisTI&lt;/a&gt;: Όποιος θέλει να εφαρμόσει (ή να αποκτήσει) την εμπειρία του σε Grails σε νέο, ενδιαφέρον project @ me
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/carribus/status/156163739849207808'&gt;@carribus&lt;/a&gt;: Can anyone point me in the direction of a &lt;a href='https://search.twitter.com/search?q=%23JavaEE' target='_blank'&gt;#JavaEE&lt;/a&gt;/&lt;a href='https://search.twitter.com/search?q=%23Groovy' target='_blank'&gt;#Groovy&lt;/a&gt; on &lt;a href='https://search.twitter.com/search?q=%23Grails' target='_blank'&gt;#Grails&lt;/a&gt; guru who would be interested in a lucrative opportunity?
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/mariocruz/status/156540250867499008'&gt;@mariocruz&lt;/a&gt;: Looking for a Java / Grails Developer temp to perm in Coral Gables spread the word.
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/BKBRecruiter/status/156458181214740480'&gt;@BKBRecruiter&lt;/a&gt;: Searching for a Java / Groovy and Grails Developer if interested Msg me @  &lt;a href='mailto:bbarry@bevertec.com'&gt;bbarry@bevertec.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/DedicatedTech/status/156407664195289089'&gt;@DedicatedTech&lt;/a&gt;: Java &amp;#8211; Groovy/Grails position in NYC. Anyone know someone who is looking for employment? &lt;a href="http://t.co/yLVa1qgM" target='_blank'&gt;http://t.co/yLVa1qgM&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.linkedin.com/jobs?viewJob=&amp;#038;jobId=2035879'&gt;Multiple opportunities for Open Source Architects, Engineers &amp;#038; Consultants (Java/Spring/Groovy Grails etc)&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/JuDelisle/status/157919209546985472'&gt;@JuDelisle&lt;/a&gt;: Recherche un développeur Groovy (Grails) pour un mandat débutant à la mi-février &amp;#8211; pendant 8 mois. Centre-ville de Montréal. &lt;a href='mailto:julie@intellis&lt;/a&gt;…
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.groupetgc.com/?p=4946'&gt;Analyste programmeur Groovy (Grails) – Contractuel, Montréal&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.linkedin.com/groups/SENIOR-BUSINESS-SYSTEMS-ANALYST-PROGRAMMER-39757.S.87493982?view=&amp;#038;gid=39757&amp;#038;type=member&amp;#038;item=87493982'&gt;Senior Business Systems Analyst Programmer &amp;#8211; Java Technical Lead in Mumbai, India&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.linkedin.com/groups/Looking-Lead-Developer-migrate-ERP-39757.S.88755333?view=&amp;#038;gid=39757&amp;#038;type=member&amp;#038;item=88755333'&gt;Looking for a Lead Developer to migrate ERP systems based in SilverStream over to Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.jobsite.co.uk/job/lead-java-developer-architect-groovy-grails-941628036'&gt;Lead Java Developer / Architect &amp;#8211; Groovy, Grails in Northampton, UK&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/MansfieldNeil/status/156317733334683648'&gt;@MansfieldNeil&lt;/a&gt;: New requirement for a Junior Groovy on Grails developer &amp;#8211; Berlin &amp;#8211; 6 Months ++ please contact me on &lt;a href='mailto:neil.mansfield@darwinrecruitment.com'&gt;neil.mansfield@darwinrecruitment.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.seek.com.au/Job/web-developer-grails-java-j2ee/in/brisbane-brisbane/21401617'&gt;Web Developer Grails / Groovy / Java in Brisbane, AU&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.careers24.com/jobs/adverts/183696-developer-ruby-groovy-grails-bryanston-sandton-south-africa/'&gt;Developer: Ruby/ Groovy/ Grails in Bryanston, Sandton, South Africa&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.linkedin.com/groups/dba-consult-are-seeking-2-906257.S.88572780?view=&amp;#038;gid=906257&amp;#038;type=member&amp;#038;item=88572780'&gt;Seeking 2-4 Senior Java developers with Groovy, grails, drools competences for contract in Copenhagen&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.bctechnology.com/scripts/show_job.cfm?id=90624'&gt;Sr Grails / Java Developer in Vancouver&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.theitjobboard.co.uk/IT-Job/Java-Developer/8429031/en/'&gt;Java Developer in London&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.aplitrak.com/?adid=Y2lhcmFuLm9yZWdhbi45Mjc0Mi50d2lAaHVudHJlc3MuYXBsaXRyYWsuY29t'&gt;Web Developer, Grails / ColdFusion, London&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.authenticjobs.com/jobs/11289/grails-software-engineer'&gt;Grails Software Engineer at Bloom Health in Minneapolis&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="meetups"&gt;
&lt;h2&gt;User groups and Conferences&lt;/h2&gt;
&lt;hr/&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.meetup.com/Paris-Groovy-Grails/events/45108892/'&gt;Thursday, January 19, 2012 &amp;#8211; Groovy 2.0 : un pas vers le typage statique&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Paris Groovy and Grails User Group
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.meetup.com/java-161/events/44263902/'&gt;Monday, January 23, 2012&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
SF Bay Groovy and Grails Meetup Group
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p class="wp-flattr-button"&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://burtbeckwith.com/blog/?flattrss_redirect&amp;amp;id=1156&amp;amp;md5=7070492c1cbc59457b4b27c0ec80baab" title="Flattr" target="_blank"&gt;&lt;img src="http://burtbeckwith.com/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 17 Jan 2012 10:40:00 CST</pubDate>
      <guid isPermaLink="true">http://burtbeckwith.com/blog/?p=1156</guid>
      <dc:creator>Burt Beckwith</dc:creator>
    </item>
    <item>
      <title>Running Spring Security's Tutorial Sample in Spring Tool Suite</title>
      <link>http://springone2gx.com/blog/rob_winch/2012/01/running_spring_security_s_tutorial_sample_in_spring_tool_suite</link>
      <description>&lt;span style="font-size: 180%;"&gt;Note&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;Note:&lt;/b&gt; &lt;a href="http://rwinch.blogspot.com/2011/08/easily-by-voting-make-running-spring.html"&gt;Vote on these JIRA's&lt;/a&gt; if you would like STS to be able to import Spring Security without use of the command line.&lt;span style="font-size: 180%;"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: 180%;"&gt;Introduction&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
This blog will teach you how to run the sample applications/tests for Spring Security 3.1.x in &lt;a href="http://www.springsource.com/developer/sts"&gt;STS&lt;/a&gt;. It is assumed that you have already &lt;a href="http://www.springsource.com/landing/best-development-tool-enterprise-java"&gt;installed&lt;/a&gt; STS. Since STS is a flavor of Eclipse, the process for doing this in Eclipse is similar.&lt;br /&gt;
&lt;br /&gt;
The main goal is to demonstrate how to setup a workspace with STS. In later posts I will describe how to run the other sample applications within STS. Once you can run Spring Security in an IDE, I will describe how to contribute back to Spring Security.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: 180%;"&gt;Screencast&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
If you want to see this in action, you can view the &lt;a href="http://www.youtube.com/watch?v=lx23i2a5o88"&gt;screen cast&lt;/a&gt; too.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: 180%;"&gt;STS Setup&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Spring Security uses git to manage the source code. There are quite a  few different git clients to choose from, but in this blog I will demonstrate how to obtain the source using EGit.&lt;br /&gt;
&lt;br /&gt;
Some of the tests are written in Groovy. If you want to run the tests, you will need to install the Groovy Eclipse plugin.&lt;br /&gt;
&lt;br /&gt;
To install the plugins:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Open up STS to a new workspace&lt;/li&gt;
&lt;li&gt;You should see an option to &lt;span style="font-weight: bold;"&gt;Open Dashboard&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;At the bottom of the Dashboard View select the &lt;span style="font-weight: bold;"&gt;Extensions&lt;/span&gt; tab&lt;/li&gt;
&lt;li&gt;In the &lt;span style="font-weight: bold;"&gt;Find&lt;/span&gt; box type in &lt;span style="font-style: italic;"&gt;EGit&lt;/span&gt; and select the check box next to it&lt;/li&gt;
&lt;li&gt;In the &lt;span style="font-weight: bold;"&gt;Find&lt;/span&gt; box type in &lt;span style="font-style: italic;"&gt;Groovy Eclipse&lt;/span&gt; and select the check box next to it&lt;/li&gt;
&lt;li&gt;Click the &lt;span style="font-weight: bold;"&gt;Install&lt;/span&gt; button in the lower right&lt;/li&gt;
&lt;li&gt;Follow the instructions on any dialogs that pop up&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;After everything is installed, restart STS&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="font-size: 180%;"&gt;Checking Out the Source Code&lt;/span&gt;&lt;span style="font-size: 130%;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Once STS starts back up navigate to &lt;span style="font-weight: bold;"&gt;File&lt;/span&gt;-&amp;gt;&lt;span style="font-weight: bold;"&gt;Import&lt;/span&gt;-&amp;gt;&lt;span style="font-weight: bold;"&gt;Git&lt;/span&gt;-&amp;gt;&lt;span style="font-weight: bold;"&gt;Projects from Git&lt;/span&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Click the &lt;span style="font-weight: bold;"&gt;Clone...&lt;/span&gt; button&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Fill out the &lt;span style="font-weight: bold;"&gt;URI&lt;/span&gt; with &lt;span style="font-style: italic;"&gt;git://github.com/SpringSource/spring-security.git&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Click the &lt;span style="font-weight: bold;"&gt;Next&lt;/span&gt; button to view the branches for this repository&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Ensure that all the branches are selected&lt;/li&gt;
&lt;li&gt;Click the &lt;span style="font-weight: bold;"&gt;Next&lt;/span&gt; button again to clone all the branches&lt;/li&gt;
&lt;li&gt;Accept all the defaults and click the &lt;span style="font-weight: bold;"&gt;Finish&lt;/span&gt; button&lt;/li&gt;
&lt;li&gt;The repository will be cloned and the local location will be displayed next to it&lt;/li&gt;
&lt;li&gt;Remember the path to the repository as the Destination Directory&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="font-size: 180%;"&gt;Generating the Eclipse Configuration Files&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Open up a command prompt and navigate to the Destination Directory from the previous step&lt;/li&gt;
&lt;li&gt;When using EGit, I have to add the execution bit the gradle wrapper. Since this does not happen when I use git from the command line, I suspect it is an EGit bug. To change the permissions in a Linux environment execute &lt;span style="font-weight: bold;"&gt;chmod +x gradlew&lt;/span&gt; from the command line.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Linux/Mac users run &lt;span style="font-weight: bold;"&gt;./gradlew eclipse&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Windows users run &lt;span style="font-weight: bold;"&gt;.\gradlew.bat eclipse&lt;br /&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Gradle will automatically be downloaded, installed, download the required dependencies, and then the Eclipse configuration will be generated&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="font-size: 180%;"&gt;Importing the Projects&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Navigate back to Eclipse and click the &lt;span style="font-weight: bold;"&gt;Next&lt;/span&gt; button&lt;/li&gt;
&lt;li&gt;Ensure &lt;span style="font-weight: bold;"&gt;Import Existing Projects&lt;/span&gt; is selected&lt;/li&gt;
&lt;li&gt;Click the &lt;span style="font-weight: bold;"&gt;Next&lt;/span&gt; button&lt;/li&gt;
&lt;li&gt;Click &lt;span style="font-weight: bold;"&gt;Select All&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Click the &lt;span style="font-weight: bold;"&gt;Finish&lt;/span&gt; button&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;The project will be imported and there should be no errors.&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="font-size: 180%;"&gt;Running the Code&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
At this point you should be able to run all of the unit tests by right clicking the project and navigating to &lt;span style="font-weight: bold;"&gt;Run As -&amp;gt; JUnit Tests&lt;/span&gt;. Of course that is not all that fun, so instead we will run the tutorial sample on tc Server. To run the tutorial follow these steps:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Right click spring-security-samples-tutorial and select &lt;span style="font-weight: bold;"&gt;Run As -&amp;gt; Run on Server&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Select &lt;span style="font-weight: bold;"&gt;Finish&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;When prompted if you want to enable Spring Insight click &lt;span style="font-weight: bold;"&gt;No&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;The application will be opened up in Spring Tool Suite&lt;/li&gt;
&lt;li&gt;When prompted to login, you can use the users defined in &lt;span style="font-weight: bold;"&gt;spring-security-samples-tutorial/src/main/webapp/WEB-INF/applicationContext-security.xml&lt;/span&gt; (i.e. rod / koala)&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;span style="font-size: 180%;"&gt;What Next?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
You can read about &lt;a href="http://rwinch.blogspot.com/2011/04/running-spring-securitys-cas-and.html"&gt;Running Spring Security's CAS and PreAuth Samples in STS&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744388729481895460-9099595449522617487?l=rwinch.blogspot.com' alt='' /&gt;&lt;/div&gt;</description>
      <pubDate>Mon, 16 Jan 2012 19:29:00 CST</pubDate>
      <guid isPermaLink="true">tag:blogger.com,1999:blog-7744388729481895460.post-9099595449522617487</guid>
      <dc:creator>Rob Winch</dc:creator>
    </item>
    <item>
      <title>HTML5 Game Programming FAQ Day 2</title>
      <link>http://springone2gx.com/blog/james_williams1/2012/01/html5_game_programming_faq_day_2</link>
      <description>&lt;div&gt;This week I'm answering questions about HTML5 and Game Programming in general over at CodeRanch. Wednesday's questions seems to be dominated by inquiries of cross-browser feature compatibility with several variants.&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;*Q: What are some device considerations when making HTML5 apps?*&lt;/div&gt;&#xD;
&lt;div&gt;A: The best guide to check is CanIUse.com. It lists the capabilities of the mobile browsers along side the desktop browsers. YMMV when it comes to mobile browsers.&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;*Q: What is HTML5 geolocation sometimes wrong?*&lt;/div&gt;&#xD;
&lt;div&gt;A: Geolocation can be inferred in many different ways, one of which is your IP address. Sometimes your IP address can be assigned to a location other than your physical location. For example, your company or ISP might be giving you an IP for a different locality or might be routing your traffic to another site which serves as the IP of record for your request.&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;*Q: What's the point of the audio tag?*&lt;/div&gt;&#xD;
&lt;div&gt;A:The key value in this is that it doesn't require a plugin. It's built into the browser. There are compatibility issues between browsers on what formats are supported. The three audio types that are supported in some shape or form are OGG(Ogg Vorbis), MP3, and WAV. The audio tag does have function called *canPlayType* that tells you if the specific browser might support a file type.&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;If you want to use a library to test availability of HTML5 features, check out Modernizr(http://modernizr.com).&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;Though not as widely supported, you should look into the WebAudio API. It picks up where the Audio tag leaves off like better support for volume/gain management, multiplexing sound, etc.&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;*Q: What can I use for easing functions?*&lt;/div&gt;&#xD;
&lt;div&gt;A: If you aren't using RaphaelJS(SVG) which has built-in functions for easing, you could implement them yourself or try out Trident.js(https://github.com/kirillcool/trident-js) which allows you to almost any JavaScript property or element.&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;</description>
      <pubDate>Fri, 13 Jan 2012 02:00:00 CST</pubDate>
      <guid isPermaLink="true">http://jameswilliams.be/blog/entry/2012/1/13/HTML5+Game+Programming+FAQ+Day+2</guid>
      <dc:creator>James Williams</dc:creator>
    </item>
    <item>
      <title>Elvis carried away by spaceships</title>
      <link>http://springone2gx.com/blog/kenneth_kousen/2012/01/elvis_carried_away_by_spaceships</link>
      <description>&lt;p&gt;I love teaching Groovy to existing Java developers, because they have such a hard time holding back Tears Of Joy when they see how much easier life can be. Today, though, I did a quick demo that resulted in a line of Groovy that was so amusing I had to post it here.&lt;/p&gt;
&lt;p&gt;Consider a trivial POGO (Plain Old Groovy Object) called &lt;code&gt;Course&lt;/code&gt;:&lt;br /&gt;
&lt;pre class="brush: plain;"&gt;
class Course
    String name
    int days
    String toString() { &amp;quot;($name,$days)&amp;quot; }
}
&lt;/pre&gt;&lt;br /&gt;
The goal was to take a collection of courses and sort it by the number of days. That&amp;#8217;s really easy in Groovy:&lt;br /&gt;
&lt;pre class="brush: groovy;"&gt;
def courses = [
    new Course(name:'Groovy',days:4),
    new Course(name:'Grails',days:3),
    new Course(name:'Spring',days:4),
    new Course(name:'Hibernate',days:3)
]

assert courses.toString() == '[(Groovy,4), (Grails,3), (Spring,4), (Hibernate,3)]'

courses.sort { it.days }

assert courses*.days == [3, 3, 4, 4]
&lt;/pre&gt;&lt;br /&gt;
The &lt;code&gt;sort&lt;/code&gt; method in the &lt;code&gt;java.util.Collection&lt;/code&gt; class is part of the Groovy JDK, meaning it&amp;#8217;s one of the methods Groovy adds to the standard Java libraries. It takes a closure of either one or two arguments. In this case, I&amp;#8217;m using the one-argument closure, which is used to select a property on which to base the sort. By specifying &lt;code&gt;it.days&lt;/code&gt; in the closure, I&amp;#8217;m telling the &lt;code&gt;sort&lt;/code&gt; method to sort the courses based on their &lt;code&gt;days&lt;/code&gt; property. Then I verify that the sort worked by checking that the courses are the right order, using the spread-dot operator to just look at the number of days.&lt;/p&gt;
&lt;p&gt;In class the question that always comes up is, can I sort by days and then by name? In other words, if two courses have the same number of days, can I then sort by the &lt;code&gt;name&lt;/code&gt; property?&lt;/p&gt;
&lt;p&gt;That&amp;#8217;s what the two-argument closure on the &lt;code&gt;sort&lt;/code&gt; method is for. The two arguments are references to any pair of courses, and the closure should return a negative number, zero, or positive number according to whether the first course is less than, equal to, or greater than the second.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s where things get amusing. The sort I want is:&lt;br /&gt;
&lt;pre class="brush: groovy;"&gt;
courses.sort { a,b -&amp;gt;
    a.days &amp;lt;=&amp;gt; b.days ?: a.name &amp;lt;=&amp;gt; b.name
}

assert courses.toString() == '[(Grails,3), (Hibernate,3), (Groovy,4), (Spring,4)]'
&lt;/pre&gt;&lt;br /&gt;
The body of the closure on &lt;code&gt;sort&lt;/code&gt; uses the spaceship operator &amp;lt;=&amp;gt;, which returns -1, 0, or 1 depending on whether the left side is less than, equal to, or greater than the right side. I use spaceship to compare the &lt;code&gt;days&lt;/code&gt; properties. Then I add the Elvis operator ?: which means if the days comparison is not zero, use it, but otherwise use the following comparison, which uses another spaceship to compare by name.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s only after writing the code in class that one of the students pointed out that I had Elvis in between two spaceships, leading to the following observations:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The spaceships are there to return Elvis to his home planet&lt;/li&gt;
&lt;li&gt;It takes two &lt;a href="http://www.smallartworks.ca/Gallery/J2/jupiter2.JPG"&gt;spaceships&lt;/a&gt;, working in tandem, to carry Elvis away, in much the same way &lt;a href="http://www.youtube.com/watch?v=rzcLQRXW6B0"&gt;two swallows can carry a coconut in tandem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Therefore, the Elvis being carried away must be the &lt;a href="http://www.antisteez.com/wp-content/uploads/2009/10/fat-elvis.jpg"&gt;fat Elvis&lt;/a&gt; from the 70s, rather than the &lt;a href="http://hairstylesarea.com/hair-pic/HLIC/11fc6966ee56903bf40fee5c8f462800.jpg"&gt;thin, cool Elvis&lt;/a&gt; from the 50s
&lt;/ol&gt;
&lt;p&gt;Either way, after the sort is finished, Elvis has left the building.&lt;/p&gt;
&lt;p&gt;Thank you, thank you very much.&lt;/p&gt;
&lt;br /&gt;  &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kousenit.wordpress.com/335/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kousenit.wordpress.com/335/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kousenit.wordpress.com/335/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kousenit.wordpress.com/335/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/kousenit.wordpress.com/335/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/kousenit.wordpress.com/335/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/kousenit.wordpress.com/335/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/kousenit.wordpress.com/335/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kousenit.wordpress.com/335/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kousenit.wordpress.com/335/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kousenit.wordpress.com/335/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kousenit.wordpress.com/335/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kousenit.wordpress.com/335/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kousenit.wordpress.com/335/" /&gt;&lt;/a&gt; &lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kousenit.wordpress.com&amp;amp;blog=186706&amp;amp;post=335&amp;amp;subd=kousenit&amp;amp;ref=&amp;amp;feed=1" width="1" height="1" /&gt;</description>
      <pubDate>Fri, 13 Jan 2012 00:25:00 CST</pubDate>
      <guid isPermaLink="true">http://kousenit.wordpress.com/?p=335</guid>
      <dc:creator>Kenneth Kousen</dc:creator>
    </item>
    <item>
      <title>“What’s New In Grails 2.0″ at NEJUG</title>
      <link>http://springone2gx.com/blog/burt_beckwith/2012/01/_what_s_new_in_grails_2_0_at_nejug</link>
      <description>&lt;p&gt;I gave a &lt;a target='_blank' href='http://nejug.org/events/show/134'&gt;talk at NEJUG&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; tonight on the new features in Grails 2.0, with some coverage of the new features in Groovy 1.8 and a live coding demo of the &amp;#8220;Twitter in 40 minutes&amp;#8221; application. Many thanks to the organizers for the invitation, &lt;a target='_blank' href='http://www.constantcontact.com/'&gt;Constant Contact&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; for hosting, and to the attendees for the great questions and enthusiasm.&lt;/p&gt;
&lt;p&gt;You can download the talk slides &lt;a target='_blank' href='/blog/files/1150/NEJUG_Grails_2012.pdf'&gt;here&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; and the completed demo application &lt;a target='_blank' href='/blog/files/1150/twitr.zip'&gt;here&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To see the earlier recorded talks that I based mine on check out Peter Ledbrook&amp;#8217;s &lt;a target='_blank' href='https://www.youtube.com/watch?v=IHUPLOnUF4g'&gt;screencast of the new 2.0 features&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; and Guillaume&amp;#8217;s &lt;a target='_blank' href='http://greach.es/ponentes/guillaume-laforge'&gt;talk at Greach on Groovy 1.8&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p class="wp-flattr-button"&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://burtbeckwith.com/blog/?flattrss_redirect&amp;amp;id=1150&amp;amp;md5=da274395ba8ec0cc6224425530464c91" title="Flattr" target="_blank"&gt;&lt;img src="http://burtbeckwith.com/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 12 Jan 2012 23:10:00 CST</pubDate>
      <guid isPermaLink="true">http://burtbeckwith.com/blog/?p=1150</guid>
      <dc:creator>Burt Beckwith</dc:creator>
    </item>
    <item>
      <title>Mon One Man Show au Paris JUG</title>
      <link>http://springone2gx.com/blog/guillaume_laforge/2012/01/mon_one_man_show_au_paris_jug</link>
      <description />
      <pubDate>Thu, 12 Jan 2012 04:26:10 CST</pubDate>
      <guid isPermaLink="true">mon-one-man-show-au-paris-jug</guid>
      <dc:creator>Guillaume LaForge</dc:creator>
    </item>
    <item>
      <title>GR8Conf Europe Call for Paper open</title>
      <link>http://springone2gx.com/blog/guillaume_laforge/2012/01/gr8conf_europe_call_for_paper_open</link>
      <description />
      <pubDate>Thu, 12 Jan 2012 03:35:00 CST</pubDate>
      <guid isPermaLink="true">gr8conf-europe-call-for-paper-open</guid>
      <dc:creator>Guillaume LaForge</dc:creator>
    </item>
    <item>
      <title>HTML5 Game Programming FAQ Day 1</title>
      <link>http://springone2gx.com/blog/james_williams1/2012/01/html5_game_programming_faq_day_1</link>
      <description>&lt;div&gt;This week I'm answering questions about HTML5 and Game Programming in general over at CodeRanch. Here are a couple of the questions I answered today. Questions may have been tweaked for brevity.&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;strong&gt;*Q: What I use for animation, setTimeout or requestAnimationFrame?*&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;div&gt;A: Use requestAnimationFrame. Check out Paul Irish 's requestAnimationFrame &lt;a href="http://paulirish.com/2011/requestanimationframe-for-smart-animating/"&gt;shim&lt;/a&gt; for an easy way to address all the variants and fall back to setTimeout.&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;strong&gt;*Q: What could I use to recreate Legend of Zelda?*&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;div&gt;A: Check out Akihabara(&lt;a href="http://www.kesiev.com/akihabara/"&gt;http://www.kesiev.com/akihabara/&lt;/a&gt;). Some of the examples are in the retro console style.&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;strong&gt;*Q: What is the relationship between WebGL and HTML5? How does it relate to Canvas?*&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;div&gt;Canvas2D is a 2D drawing API. WebGL is a 3D drawing API. WebGL is hardware accelerated whereas Canvas2D is not. Both APIs use the Canvas tag for their drawing surfaces. All three are commonly considered to be part of HTML5.&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;&lt;strong&gt;*Q: I'm a Java developer... can you suggest a page to convince me that HTML5 is awesome?*&lt;/strong&gt;&lt;/div&gt;&#xD;
&lt;div&gt;A: Check out the HTML5Rocks slide deck (&lt;a href="http://slides.html5rocks.com"&gt;http://slides.html5rocks.com&lt;/a&gt;). There are also a number of tutorials at the HTML5Rocks site(&lt;a href="http://www.html5rocks.com/en/"&gt;http://www.html5rocks.com/en/&lt;/a&gt;), even one penned by yours truly. Because you are a Java dev, you might also want to check out PlayN (&lt;a href="http://code.google.com/p/playn"&gt;http://code.google.com/p/playn&lt;/a&gt;). It's a game library that allows you to write in Java but build HTML5, Desktop Java, or Android games.&lt;/div&gt;</description>
      <pubDate>Wed, 11 Jan 2012 14:00:00 CST</pubDate>
      <guid isPermaLink="true">http://jameswilliams.be/blog/entry/2012/1/11/+HTML5+Game+Programming+FAQ+Day+1</guid>
      <dc:creator>James Williams</dc:creator>
    </item>
    <item>
      <title>Scandinavian Developer Conference 2012</title>
      <link>http://springone2gx.com/blog/sam_brannan/2012/01/scandinavian_developer_conference_2012</link>
      <description>&lt;p&gt;&lt;a title="Sam Brannen" href="http://www.swiftmind.com/de/ueber-uns/team/sam-brannen/"&gt;Sam Brannen&lt;/a&gt; will be presenting &lt;a href="http://www.scandevconf.se/2012/conference/speakers/sam-brannen/" target="_blank"&gt;&lt;em&gt;&amp;#8220;Spring 3.1 to 3.2 in a Nutshell&amp;#8221;&lt;/em&gt;&lt;/a&gt; at the Scandinavian Developer Conference in Gothenburg, Sweden on Tuesday, April 17, 2012.&lt;/p&gt;
&lt;p&gt;&lt;a title="SDC2012" href="http://www.scandevconf.se" target="_blank"&gt;&lt;img src="http://www.scandevconf.se/img/promote/2012/banner468x60v2.gif" alt="SDC2012 - Scandinavian Developer Conference" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;SDC2012 is about bringing together people who work with software development to discuss new ideas, views on industry trends, and exchange experiences. Topics covered include the latest tools and frameworks for both the Java and .Net platforms, as well as plenty about development for the Web, IBMi, and Mobile devices.&lt;/p&gt;
&lt;p&gt;For further details about the conference and to register, visit the official &lt;a title="Scandinavian Developer Conference" href="http://www.scandevconf.se/" target="_blank"&gt;Scandinavian Developer Conference Website&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Tue, 10 Jan 2012 14:39:00 CST</pubDate>
      <guid isPermaLink="true">http://www.swiftmind.com/de/?p=1139</guid>
      <dc:creator>Sam Brannen</dc:creator>
    </item>
    <item>
      <title>Spring I/O 2012</title>
      <link>http://springone2gx.com/blog/sam_brannan/2012/01/spring_i_o_2012</link>
      <description>&lt;p&gt;&lt;a title="Sam Brannen" href="http://www.swiftmind.com/de/ueber-uns/team/sam-brannen/"&gt;Sam Brannen&lt;/a&gt; will be presenting &amp;#8220;Spring 3.1 to 3.2 in a Nutshell&amp;#8221; at the third annual Spring I/O conference in Madrid, Spain on February 16, 2012.&lt;/p&gt;
&lt;p&gt;&lt;a title="Spring I/O" href="http://springio.net" target="_blank"&gt;&lt;img class="alignnone size-medium wp-image-1128" src="http://www.swiftmind.com/de/files/2012/01/spring_io_logo_small-164x56.png" alt="" width="164" height="56" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Spring I/O 2012 will be a 2-day event full of presentations delivered by development leads, book authors and professionals on Spring, Groovy/Grails and Cloud technologies. The perfect place to obtain critical skills to help you build, run and manage tomorrow&amp;#8217;s software solutions. Don&amp;#8217;t miss the chance to meet and learn from experts and professionals who drive innovation for these technologies.&lt;/p&gt;
&lt;p&gt;For further details about the conference and to register, visit the official &lt;a title="Spring I/O" href="http://springio.net" target="_blank"&gt;Spring I/O Website&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Tue, 10 Jan 2012 14:16:00 CST</pubDate>
      <guid isPermaLink="true">http://www.swiftmind.com/de/?p=1124</guid>
      <dc:creator>Sam Brannen</dc:creator>
    </item>
    <item>
      <title>Book Promotion at CodeRanch</title>
      <link>http://springone2gx.com/blog/james_williams1/2012/01/book_promotion_at_coderanch</link>
      <description>&lt;div&gt;In promotion of my book &lt;em&gt;Learning HTML5 Game Programming&lt;/em&gt;, I'll be answering questions about my book and gaming in general all this week on the HTML5, CSS, and JS forum at &lt;a href="http://www.coderanch.com/forums/f-20/HTML-CSS-JavaScript"&gt;CodeRanch&lt;/a&gt;. Four random posters at CodeRanch will be awarded a free copy of my book. &amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div&gt;They won't eligible for the drawing but feel free to ask questions on this thread or on &lt;a href="https://plus.google.com/105400736676917752271/posts/NWUCXE2PCWt"&gt;Google+&lt;/a&gt; as well.&lt;/div&gt;&#xD;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <pubDate>Tue, 10 Jan 2012 13:30:00 CST</pubDate>
      <guid isPermaLink="true">http://jameswilliams.be/blog/entry/2012/1/10/Book+Promotion+at+CodeRanch</guid>
      <dc:creator>James Williams</dc:creator>
    </item>
    <item>
      <title>Tweets sympas sur Free Mobile</title>
      <link>http://springone2gx.com/blog/guillaume_laforge/2012/01/tweets_sympas_sur_free_mobile</link>
      <description />
      <pubDate>Tue, 10 Jan 2012 10:02:33 CST</pubDate>
      <guid isPermaLink="true">tweets-sympas-sur-free-mobile</guid>
      <dc:creator>Guillaume LaForge</dc:creator>
    </item>
    <item>
      <title>Hans Dockter interview on Gradle</title>
      <link>http://springone2gx.com/blog/guillaume_laforge/2012/01/hans_dockter_interview_on_gradle</link>
      <description />
      <pubDate>Tue, 10 Jan 2012 08:09:00 CST</pubDate>
      <guid isPermaLink="true">hans-dokter-interview-on-gradle</guid>
      <dc:creator>Guillaume LaForge</dc:creator>
    </item>
    <item>
      <title>Hans Dokter interview on Gradle</title>
      <link>http://springone2gx.com/blog/guillaume_laforge/2012/01/hans_dokter_interview_on_gradle</link>
      <description />
      <pubDate>Tue, 10 Jan 2012 07:16:57 CST</pubDate>
      <guid isPermaLink="true">hans-dokter-interview-on-gradle</guid>
      <dc:creator>Guillaume LaForge</dc:creator>
    </item>
    <item>
      <title>This Week in Grails (2012-01)</title>
      <link>http://springone2gx.com/blog/burt_beckwith/2012/01/this_week_in_grails_2012_01_</link>
      <description>&lt;p&gt;Graeme updated his blog and has committed to posting more often &amp;#8211; check out &lt;a target='_blank' href='http://grails.io/'&gt;the new digs&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Bobby Warner&amp;#8217;s published a great screencast this week on using Grails 2.0 and Spring Security &amp;#8211; &lt;a target='_blank' href='http://www.bobbywarner.com/2012/01/05/jump-into-grails-2-0/'&gt;Jump Into Grails 2.0&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Jochen Theodorou wrote up an in-depth overview of the &lt;a target='_blank' href='http://blackdragsview.blogspot.com/2012/01/invokedynamic-api.html'&gt;invokedynamic API&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;. I think I may need to read this one a couple of times before it sinks in &lt;img src='http://burtbeckwith.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /&gt; &lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;If you want to keep up with these &amp;#8220;This Week in Grails&amp;#8221; posts you can access them directly via their &lt;a target="_blank" href="http://burtbeckwith.com/blog/?cat=32"&gt;category link&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt; or in an RSS reader with &lt;a target="_blank" href="http://feeds.feedburner.com/this-week-in-grails"&gt;the feed&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt; for just these posts.&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;Translations of this post:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/2012/01/10/esta-semana-en-grails-2012-01/'&gt;Traducción al español&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.groovyq.net/content/grails%E6%AF%8F%E5%91%A8%E8%A7%82%E5%AF%9F%EF%BC%882012-01%EF%BC%89'&gt;Grails每周观察&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://remoteexception.blogspot.com/2012/01/semana-grails-2012-01.html'&gt;Este artigo em Português&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.luca-canducci.com/2012/01/questa-settimana-in-grails-2012-01/'&gt;Traduzione Italiana&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.jp/news/2012-01.html'&gt;今週のGrails日本語版&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;div class="toc"&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#miscellaneous"&gt;Miscellaneous Items&lt;/a&gt;&lt;br /&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#plugins"&gt;Plugins&lt;/a&gt;&lt;br /&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#tweets"&gt;Interesting Tweets&lt;/a&gt;&lt;br /&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#jobs"&gt;Jobs&lt;/a&gt;&lt;br /&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#meetups"&gt;User groups and Conferences&lt;/a&gt;
&lt;/div&gt;
&lt;hr/&gt;
&lt;div id="miscellaneous"&gt;
&lt;h2&gt;Miscellaneous Items&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.infoq.com/interviews/javaone2011-graeme-rocher-interview'&gt;Graeme Rocher on Grails 2.0 and Polyglot Persistence&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.io/post/15345119630/musings-on-maven'&gt;Musings on Maven&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.infoq.com/presentations/Running-Spring-Java-and-Scala-Apps-on-Heroku'&gt;Running Spring Java and Scala Apps on Heroku&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
James Ward&amp;#8217;s SpringOne/2GX talk, including my Grails demo
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://blog.swierczynski.net/2012/01/cloud-foundry-grails-lightning-fast-deployment/'&gt;Cloud Foundry + Grails = lightning fast deployment&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://agrawalgagan.blogspot.com/2012/01/groovygrails-integration-tests-for.html'&gt;Groovy/Grails : Integration tests for multi-threaded application&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://blog.delucas.com.ar/2012/01/desplegar-una-aplicacion-grails-2-0-en-heroku/'&gt;Desplegar una aplicación Grails 2.0 en Heroku&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/hoy/?date=2012-01-02'&gt;http://observatoriodegrails.com/hoy/?date=2012-01-02&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/hoy/?date=2012-01-03'&gt;http://observatoriodegrails.com/hoy/?date=2012-01-03&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/hoy/?date=2012-01-04'&gt;http://observatoriodegrails.com/hoy/?date=2012-01-04&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/hoy/?date=2012-01-05'&gt;http://observatoriodegrails.com/hoy/?date=2012-01-05&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.springsource.org/node/3354'&gt;This Week in Spring, January 3rd, 2012&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="plugins"&gt;
&lt;h2&gt;Plugins&lt;/h2&gt;
&lt;p&gt;There were 4 new plugins released:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/jxl'&gt;jxl&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.5. Export data to Excel using the JXL library
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/swiss-post-code'&gt;swiss-post-code&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.1.2. Provides all available Swiss post codes
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/ajax-proxy'&gt;ajax-proxy&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.1.1. Ajax Proxy Plugin (for cross-domain requests)
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/facebook-sdk'&gt;facebook-sdk&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.1.1. Allows your application to use the Facebook Platform and develop Facebook apps on Facebook.com or on web sites (with Facebook Connect)
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;and 13 updated plugins:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/asynchronous-mail'&gt;asynchronous-mail&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.3. Send email asynchronously by storing them in the database and sending with a Quartz job
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/audit-trail'&gt;audit-trail&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 2.0.0. Adds created/updated audit fields to domain classes and updates them after a new insert or update
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/bulkload'&gt;bulkload&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.1.4. Export or bulkload all the instances of a given class from the client browser
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/compass-sass'&gt;compass-sass&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.6. Compass, SASS and SCSS support for Grails. Automatically compiles .scss/.sass during run-app, and adds other framework functionality
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/cucumber'&gt;cucumber&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.2.1. Test your Grails apps with Cucumber
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/cxf-client'&gt;cxf-client&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.2.5. Use existing (or new) Apache CXF wsdl2java generated content to invoke SOAP services
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/date-formatting'&gt;date-formatting&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.2.3. Adds functions to the Date object to convert into various string formats
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/facebook-graph'&gt;facebook-graph&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.14. Provides access to the Facebook Graph API and makes easier the development of a single sign-on using the Facebook Authentication proposal.
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/jasper'&gt;jasper&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.3.0. Enables use of JasperReports
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/routing'&gt;routing&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.1.5. Send and route messages to a wide variety of destination endpoints directly from your Controllers and Services using Camel
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/routing-jms'&gt;routing-jms&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.1.5. JMS integration for the grails-routing plugin
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/translate'&gt;translate&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.2.1. Translates text from one language to another using the Google Translate API
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/uploadr'&gt;uploadr&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.5.7. HTML5 Drag and Drop file uploader
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="tweets"&gt;
&lt;h2&gt;Interesting Tweets&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/albertovilches/status/153663350503505920'&gt;@albertovilches&lt;/a&gt;: Conocíais Ratpack? Un mini-framework web para Groovy inspirado en Sinatra &lt;a href="http://t.co/Ou5ks0Mq" target='_blank'&gt;http://t.co/Ou5ks0Mq&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23groovy' target='_blank'&gt;#groovy&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/renescheibe/status/153908539411279872'&gt;@renescheibe&lt;/a&gt;: Anybody using &lt;a href='https://search.twitter.com/search?q=%23Java7' target='_blank'&gt;#Java7&lt;/a&gt; Update2? I am seeing up to 20% performance increase over &lt;a href='https://search.twitter.com/search?q=%23Java6' target='_blank'&gt;#Java6&lt;/a&gt; when running some &lt;a href='https://search.twitter.com/search?q=%23Groovy' target='_blank'&gt;#Groovy&lt;/a&gt; benchmarks.
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/smakela_/status/153952027926474753'&gt;@smakela_&lt;/a&gt;: &lt;a href='https://twitter.com/#!/FinGGUG' target='_blank'&gt;@FinGGUG&lt;/a&gt; is &lt;a href='https://search.twitter.com/search?q=%23Finnish' target='_blank'&gt;#Finnish&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23Groovy' target='_blank'&gt;#Groovy&lt;/a&gt; and &lt;a href='https://search.twitter.com/search?q=%23Grails' target='_blank'&gt;#Grails&lt;/a&gt; User Group &lt;a href="http://t.co/Yw7Cma3P" target='_blank'&gt;http://t.co/Yw7Cma3P&lt;/a&gt; &lt;a href='https://twitter.com/#!/grailsframework' target='_blank'&gt;@grailsframework&lt;/a&gt; &lt;a href='https://twitter.com/#!/grailsinfo' target='_blank'&gt;@grailsinfo&lt;/a&gt; &lt;a href='https://twitter.com/#!/ReaktorNow' target='_blank'&gt;@ReaktorNow&lt;/a&gt; &lt;a href='https://twitter.com/#!/FinJUG' target='_blank'&gt;@FinJUG&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/renescheibe/status/153972732353183744'&gt;@renescheibe&lt;/a&gt;: Looking forward to more &lt;a href='https://search.twitter.com/search?q=%23invokedynamic' target='_blank'&gt;#invokedynamic&lt;/a&gt; in &lt;a href='https://search.twitter.com/search?q=%23groovy' target='_blank'&gt;#groovy&lt;/a&gt;. Already 40% speedup for untyped fibonacci with blackdrag&amp;#8217;s 1st draft.
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/smakela_/status/154447986687090688'&gt;@smakela_&lt;/a&gt;: Good video about Spring Security 3.1 &lt;a href="http://t.co/BrNt0SBu" target='_blank'&gt;http://t.co/BrNt0SBu&lt;/a&gt; Even if you are using &lt;a href='https://search.twitter.com/search?q=%23Grails' target='_blank'&gt;#Grails&lt;/a&gt; plugin it&amp;#8217;s good to know what&amp;#8217;s under the hood.
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/grails_rocks/status/154879225155952640'&gt;@grails_rocks&lt;/a&gt;: For those who do/did use Functional Test plugin, I have started work on a 1.5 release to fix all those Grails compatibility problems&amp;#8230;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/scottyfred/status/154937555685605377'&gt;@scottyfred&lt;/a&gt;: &lt;a href='https://twitter.com/#!/graemerocher' target='_blank'&gt;@graemerocher&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23grails' target='_blank'&gt;#grails&lt;/a&gt; and &lt;a href='https://search.twitter.com/search?q=%23maven' target='_blank'&gt;#maven&lt;/a&gt;: they go together like peanut butter and motor oil. Understand the need though, good luck.
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/rfletcherEW/status/155311282160017409'&gt;@rfletcherEW&lt;/a&gt;: Proper docs for the &lt;a href='https://search.twitter.com/search?q=%23Grails' target='_blank'&gt;#Grails&lt;/a&gt; Fields plugin: &lt;a href="http://t.co/nGgWTpos" target='_blank'&gt;http://t.co/nGgWTpos&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/eqe/status/155328867110887424'&gt;@eqe&lt;/a&gt;: San Francisco, where the help wanted posters ask for Java and Grails. &lt;a href="http://t.co/iQ84LojY" target='_blank'&gt;http://t.co/iQ84LojY&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/marcoVermeulen/status/155577006099152896'&gt;@marcoVermeulen&lt;/a&gt;: My blog had a much needed facelift: &lt;a href="http://t.co/72CY9Z3m" target='_blank'&gt;http://t.co/72CY9Z3m&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23groovy' target='_blank'&gt;#groovy&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23grails' target='_blank'&gt;#grails&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/seletz/status/155998058981761024'&gt;@seletz&lt;/a&gt;: really great &lt;a href='https://search.twitter.com/search?q=%23groovy' target='_blank'&gt;#groovy&lt;/a&gt; examples at &lt;a href="http://t.co/JCaytnvK" target='_blank'&gt;http://t.co/JCaytnvK&lt;/a&gt; &amp;#8212; even a offline version is on git hub: &lt;a href="https://t.co/71Yeiz6V" target='_blank'&gt;https://t.co/71Yeiz6V&lt;/a&gt; thanks! &lt;a href='https://twitter.com/#!/mrhaki' target='_blank'&gt;@mrhaki&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="jobs"&gt;
&lt;h2&gt;Jobs&lt;/h2&gt;
&lt;hr/&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://seeker.dice.com/jobsearch/servlet/JobSearch?op=300&amp;#038;FREE_TEXT=grails&amp;#038;FRMT=0'&gt;Dice keyword search for Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://jobsearch.monster.com/PowerSearch.aspx?q=grails'&gt;Monster keyword search for Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.careerbuilder.com/Jobseeker/Jobs/JobResults.aspx?_ctl0%3A_ctl2%3AucQuickBar%3As_rawwords=grails'&gt;Careerbuilder keyword search for Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/SpringSourceJob'&gt;SpringSourceJob Twitter feed&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://jobs.vmware.com/search?q=springsource'&gt;SpringSource job search at jobs.vmware.com&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://jobs.vmware.com/job/Palo-Alto-Member-of-Technical-Staff-Integration-Engineering-Job-CA-94301/1319958/'&gt;MTS Integration Engineering at VMworld Labs in Cambridge, MA or Palo Alto, CA&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://careers.stackoverflow.com/jobs/15318/sr-developer-and-do-gooder-energy-saving-saas-energyscorecards'&gt;Sr Developer and Do-gooder for energy-saving SaaS (Groovy, Grails) at EnergyScoreCards in NYC&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.grailsjobs.com/view-job/386'&gt;Grails Developer &amp;#8211; Wavre, Belgium&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/marty_pleasant/status/154245920559611905'&gt;@marty_pleasant&lt;/a&gt;: Are you a Java Developer that wants to work with Grails?  I have a great 6 month project for you! 651-788-9632
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.grailsjobs.com/view-job/388'&gt;Experienced Grails Developer (contract) at SupaJam in Westerham, Kent, UK&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.grailsjobs.com/view-job/387'&gt;Junior Grails Developer (contract) at SupaJam in Westerham, Kent, UK&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/Ramona_Batista/status/154654048186941440'&gt;@Ramona_Batista&lt;/a&gt;: Need &lt;a href='https://search.twitter.com/search?q=%23Groovy' target='_blank'&gt;#Groovy&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23Java' target='_blank'&gt;#Java&lt;/a&gt; Dev for &lt;a href='https://search.twitter.com/search?q=%23NYC' target='_blank'&gt;#NYC&lt;/a&gt; Job&amp;#8230;email resume to &lt;a href='mailto:ramona@trineaspects.com'&gt;ramona@trineaspects.com&lt;/a&gt; &lt;a href='https://twitter.com/#!/groovymag' target='_blank'&gt;@groovymag&lt;/a&gt; &lt;a href='https://twitter.com/#!/grailsframework' target='_blank'&gt;@grailsframework&lt;/a&gt; &lt;a href='https://twitter.com/#!/grailspodcast' target='_blank'&gt;@grailspodcast&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://boston.craigslist.org/gbs/sof/2784411096.html'&gt;Grails Software Developer (Boston/Cambridge)&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.grailsjobs.com/view-job/390'&gt;Web Application Developer (contract) at Closely in Denver, CO&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.grailsjobs.com/view-job/389'&gt;Senior Software Engineer (contract) at Taulia Inc. in San Francisco, CA&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.meetup.com/Grails-Boston/boards/view/viewthread?thread=19215732'&gt;Grails Developer (contract) in Scottsdale, AZ&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.netvitesse.com/careers/lead-dev-web-voip'&gt;Lead développeur(se) web / VoIP&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/alexandrevs/status/155710898810527746'&gt;@alexandrevs&lt;/a&gt;: Vaga para trabalhar com JBoss, Java, Grails e Groovy em Holambra -SP. Interessados falar comigo.(RT pls)
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/DedicatedTech/status/155367146069835776'&gt;@DedicatedTech&lt;/a&gt;: New to Twitter! I&amp;#8217;m a Technical Recruiter with a Java &amp;#8211; Groovy/Grails position in NYC. Anyone know someone who is looking for an assignment?
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.bestinfotechjobs.com/maryland-jobs/bethesda/senior-java-developer-with-spring,-hibernate,-sql,-hql,-grails-J3G87H77YXZJDXTZX9N.html'&gt;Senior Java Developer with Spring, Hibernate, SQL, HQL, Grails in Bethesda, MD&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/dwmarley/status/155035342662139904'&gt;@dwmarley&lt;/a&gt;: &lt;a href='https://search.twitter.com/search?q=%23canada' target='_blank'&gt;#canada&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23jobs' target='_blank'&gt;#jobs&lt;/a&gt; Now Hiring: Java Integration (Camel) and Grails Developer &amp;#8211; Work From home on open source projects www.middleware360.com
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.bullhornreach.com/job/170714_agile-javaj2ee-programmer-analyst-with-grails-westlake-tx'&gt;Agile Java/J2EE Programmer Analyst with Grails in Westlake, TX&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.jobsite.co.uk/job/lead-java-developer-architect-groovy-grails-941628036'&gt;Bookmark and Share Lead Java Developer / Architect &amp;#8211; Groovy, Grails in Northampton, UK&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.supajam.com/page/jobs'&gt;Experienced Grails Developer and Junior Grails Developer at SupaJam&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://public.bullhornstaffing.com/JobBoard/Standard/BHContent_JobDetail.cfm?jobPostingID=6200&amp;#038;privateLabelID=3701'&gt;Java Developer at CareWorks Technologies in Columbus, OH&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.ziprecruiter.com/job/Groovy-Grails-Java-NYC-9-Months-80-C2C/485a1dd2/'&gt;Groovy Grails / Java in NYC&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.auctelia.com/blog/fr/2011/12/web-developer/'&gt;Développeur Web Java / Grails at Auctelia in Court-Saint-Etienne, Belgium&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/mbnrecruitment/status/154221547350003712'&gt;@mbnrecruitment&lt;/a&gt;: Fantastic opportunity just in for a Java Developer (Grails) &amp;#8211; North West, c£45K. Visit &lt;a href="http://t.co/xgROIElU" target='_blank'&gt;http://t.co/xgROIElU&lt;/a&gt; or contact Joshua Smith.
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/DIS_IT_Berlin/status/154549769879044096'&gt;@DIS_IT_Berlin&lt;/a&gt;: Groovy/Grails Projekt in Berlin, ca. 2 bis 3 Monate. Wer hat Kapazität? &lt;a href='https://search.twitter.com/search?q=%23freelance' target='_blank'&gt;#freelance&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23berlin' target='_blank'&gt;#berlin&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23dev' target='_blank'&gt;#dev&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23grails' target='_blank'&gt;#grails&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="meetups"&gt;
&lt;h2&gt;User groups and Conferences&lt;/h2&gt;
&lt;hr/&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.meetup.com/Seattle-Groovy/events/32345342/'&gt;Thursday, January 12, 2012&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Seattle Groovy/Grails Users Group
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://nejug.org/events/show/134'&gt;Thursday, January 12, 2012 &amp;#8211; What&amp;#8217;s new with Grails 2.0&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
New England Java Users Group
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.meetup.com/Paris-Groovy-Grails/events/45108892/'&gt;Thursday, January 19, 2012 &amp;#8211; Groovy 2.0 : un pas vers le typage statique&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Paris Groovy and Grails User Group
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.meetup.com/java-161/events/44263902/'&gt;Monday, January 23, 2012&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
SF Bay Groovy and Grails Meetup Group
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p class="wp-flattr-button"&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://burtbeckwith.com/blog/?flattrss_redirect&amp;amp;id=1143&amp;amp;md5=a23ea1f6276f348d7d0a91a419732b77" title="Flattr" target="_blank"&gt;&lt;img src="http://burtbeckwith.com/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 09 Jan 2012 21:38:00 CST</pubDate>
      <guid isPermaLink="true">http://burtbeckwith.com/blog/?p=1143</guid>
      <dc:creator>Burt Beckwith</dc:creator>
    </item>
    <item>
      <title>Moved</title>
      <link>http://springone2gx.com/blog/graeme_rocher/2012/01/moved</link>
      <description>This blog has &lt;a href="http://graemerocher.tumblr.com"&gt;moved home to Tumblr&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20633170-3527809233659811052?l=graemerocher.blogspot.com' alt='' /&gt;&lt;/div&gt;</description>
      <pubDate>Thu, 05 Jan 2012 03:04:37 CST</pubDate>
      <guid isPermaLink="true">tag:blogger.com,1999:blog-20633170.post-3527809233659811052</guid>
      <dc:creator>Graeme Rocher</dc:creator>
    </item>
    <item>
      <title>This Week in Grails (2011-52), and the year in review</title>
      <link>http://springone2gx.com/blog/burt_beckwith/2012/01/this_week_in_grails_2011_52__and_the_year_in_review</link>
      <description>&lt;p&gt;Happy new year! This is the final &amp;#8220;This Week in Grails&amp;#8221; for 2011. I went back through the previous 51 posts and counted up the totals for what I&amp;#8217;d posted throughout the year (including this week): there were 840 miscellaneous items, 693 tweets, 888 Jobs (including several reposts), and 167 new plugins (only 3 weeks without a new plugin) and 724 plugin updates. I didn&amp;#8217;t count meetup listings because I repeated most of them several times.&lt;/p&gt;
&lt;p&gt;It was an interesting year for the Grails/Groovy ecosystem:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Grails had its final 1.3 release (1.3.7) and the big one, 2.0&lt;/li&gt;
&lt;li&gt;There were four Groovy 1.7.x releases (1.7.7-1.7.10) and six 1.8.x releases (1.8.0-1.8.5) along with beta releases of 2.0 (currently at Beta 2)&lt;/li&gt;
&lt;li&gt;Gradle also had several milestone releases and is getting close to a 1.0 beta and final 1.0 release&lt;/li&gt;
&lt;li&gt;There were several Groovy++ releases, although development seems to have stalled given that Groovy code is getting static features&lt;/li&gt;
&lt;li&gt;SpringSource Tool Suite had several releases, 2.5.2, 2.6.0, 2.6.1, 2.7.0, 2.7.1, 2.7.2, 2.8.0, and 2.9.0.M1 and the Groovy-Eclipse plugin also had several; both added tons of cool new features to help Groovy and Grails development&lt;/li&gt;
&lt;li&gt;Grails now has excellent options for deployment to various cloud providers thanks to the aws (Amazon), cloud-foundry, cloud-bees, and heroku plugins&lt;/li&gt;
&lt;li&gt;Marco Vermeulen created Ubuntu packages for Grails and Groovy&lt;/li&gt;
&lt;li&gt;Stéphane Maldini and Damien Vitrac reworked the look and feel of the &lt;a target="_blank" href="http://grails.org/doc/latest/"&gt;reference docs&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;We migrated JIRA from Codehaus to &lt;a target="_blank" href="http://jira.grails.org/"&gt;http://jira.grails.org/&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt; and now each plugin has its own project instead of being a component in one huge project&lt;/li&gt;
&lt;li&gt;Erik Pragt and Marcin Erdmann did some very cool stuff to get Groovy working in Android with their discobot project. I&amp;#8217;m looking forward to seeing more of that&lt;/li&gt;
&lt;li&gt;We now have the &amp;#8220;This week in Spring&amp;#8221;, &amp;#8220;This week in Gradle&amp;#8221;, and the occasional &amp;#8220;This week in Discobot&amp;#8221; series&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There were nine conferences that were entirely based on the Groovy ecosystem or had multiple related talks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Spring IO in Madrid&lt;/li&gt;
&lt;li&gt;GR8Conf Europe in Copenhagen&lt;/li&gt;
&lt;li&gt;GR8Conf US in Minneapolis&lt;/li&gt;
&lt;li&gt;GeeCON 2011 in Krakow&lt;/li&gt;
&lt;li&gt;SpringOne/2GX in Chicago&lt;/li&gt;
&lt;li&gt;Greach in Madrid&lt;/li&gt;
&lt;li&gt;CamelCaseCon in Düsseldorf&lt;/li&gt;
&lt;li&gt;GR8Conf Australia in Canberra&lt;/li&gt;
&lt;li&gt;Groovy &amp;#038; Grails eXchange in London&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Lots of cool posts from a few notable bloggers: Mr Haki (&lt;a target="_blank" href="http://mrhaki.blogspot.com/"&gt;http://mrhaki.blogspot.com/&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt;), Tomas Lin (&lt;a target="_blank" href="http://fbflex.wordpress.com/"&gt;http://fbflex.wordpress.com/&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt;), Bobby Warner (&lt;a target="_blank" href="http://www.bobbywarner.com/"&gt;http://www.bobbywarner.com/&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt;), and Jochen Theodorou (&lt;a target="_blank" href="http://blackdragsview.blogspot.com/"&gt;http://blackdragsview.blogspot.com/&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt;). I won&amp;#8217;t highlight anything in particular &amp;#8211; just go to their blogs and read everything &lt;img src='http://burtbeckwith.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /&gt;  Set aside extra time for Mr Haki though; he&amp;#8217;s done approximately &lt;em&gt;one million&lt;/em&gt; posts so far.&lt;/p&gt;
&lt;p&gt;I released 10 new plugins:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;database-migration&lt;/li&gt;
&lt;li&gt;spring-security-kerberos&lt;/li&gt;
&lt;li&gt;spring-security-appinfo&lt;/li&gt;
&lt;li&gt;cloud-foundry&lt;/li&gt;
&lt;li&gt;cloud-foundry-ui&lt;/li&gt;
&lt;li&gt;standalone&lt;/li&gt;
&lt;li&gt;memcached&lt;/li&gt;
&lt;li&gt;cloud-support&lt;/li&gt;
&lt;li&gt;atomikos&lt;/li&gt;
&lt;li&gt;heroku&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(11 if you count reworking the webxml plugin and adding a new feature for filter-mapping element sorting).&lt;/p&gt;
&lt;p&gt;This series is now translated into Spanish (Aitor Alzola), Chinese (Jian Hu), Portuguese (Paulo Pereira), and Italian (Luca Canducci). These guys do a great job every week.&lt;/p&gt;
&lt;p&gt;If 2011 is any indication of the future, 2012 will be a very good year to be a Grails developer.&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;If you want to keep up with these &amp;#8220;This Week in Grails&amp;#8221; posts you can access them directly via their &lt;a target="_blank" href="http://burtbeckwith.com/blog/?cat=32"&gt;category link&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt; or in an RSS reader with &lt;a target="_blank" href="http://feeds.feedburner.com/this-week-in-grails"&gt;the feed&lt;img src="/blog/images/pop.gif"/&gt;&lt;/a&gt; for just these posts.&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;Translations of this post:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/2012/01/03/esta-semana-en-grails-2011-52/'&gt;Traducción al español&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.groovyq.net/content/grails%E6%AF%8F%E5%91%A8%E8%A7%82%E5%AF%9F%EF%BC%882011-52%EF%BC%89'&gt;Grails每周观察&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://remoteexception.blogspot.com/2012/01/semana-grails-2011-52.html'&gt;Este artigo em Português&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.luca-canducci.com/2012/01/questa-settimana-in-grails-2011-52/'&gt;Traduzione Italiana&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.jp/news/2011-52.html'&gt;今週のGrails日本語版&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;div class="toc"&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#miscellaneous"&gt;Miscellaneous Items&lt;/a&gt;&lt;br /&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#plugins"&gt;Plugins&lt;/a&gt;&lt;br /&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#tweets"&gt;Interesting Tweets&lt;/a&gt;&lt;br /&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#jobs"&gt;Jobs&lt;/a&gt;&lt;br /&gt;
&lt;img src="/blog/images/folder_go.png"/&gt;&amp;nbsp;&lt;a href="#meetups"&gt;User groups and Conferences&lt;/a&gt;
&lt;/div&gt;
&lt;hr/&gt;
&lt;div id="miscellaneous"&gt;
&lt;h2&gt;Miscellaneous Items&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://mrhaki.blogspot.com/2011/12/grails-goodness-customize-url-format.html'&gt;Grails Goodness: Customize the URL Format&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.bobbywarner.com/2011/12/29/using-stripe-with-grails/'&gt;Using Stripe with Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.bobbywarner.com/2011/12/30/using-stripe-with-grails-continued/'&gt;Using Stripe with Grails Continued&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.intelligrape.com/blog/2011/12/29/grails-custom-data-binding-in-3-simple-steps/'&gt;Grails Custom Data Binding in 3 Simple Steps &lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.intelligrape.com/blog/2011/12/29/closure-caching-for-increased-performance-memoize/'&gt;Closure Caching For Increased Performance (.memoize())&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.mopri.de/?p=2379'&gt;Grails 2.0 &amp;#038; Jenkins&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://roshandawrani.wordpress.com/2011/12/27/grails-geb-executing-multiple-functional-test-phases-together/'&gt;Grails, Geb: Executing multiple functional test phases together&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/hoy/?date=2011-12-26'&gt;http://observatoriodegrails.com/hoy/?date=2011-12-26&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://observatoriodegrails.com/hoy/?date=2011-12-28'&gt;http://observatoriodegrails.com/hoy/?date=2011-12-28&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.springsource.org/node/3349'&gt;This Year in Spring&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="plugins"&gt;
&lt;h2&gt;Plugins&lt;/h2&gt;
&lt;p&gt;There were 2 new plugins released:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/stripe'&gt;stripe&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.0.M6. Use Stripe to process credit card transactions
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/quartz2'&gt;quartz2&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.2.2. Integration with Quartz 2 framework from quartz-scheduler.org
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;and 18 updated plugins:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/activiti'&gt;activiti&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 5.8.2. Integrates the Activiti BPM Suite and workflow system
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/activiti-spring-security'&gt;activiti-spring-security&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.4.6. Integrates Spring Security to Activiti as custom IdentityService
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/ajax-uploader'&gt;ajax-uploader&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.0. Tag Library which implements Andrew Valum’s excellent file uploader
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/browser-detection'&gt;browser-detection&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.3.3. Provides a service and tag library for browser detection
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/bulkload'&gt;bulkload&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.1.2. Export or bulkload all the instances of a given class from the client browser
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/cloud-foundry'&gt;cloud-foundry&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.2.1. Integrates Cloud Foundry&amp;#8217;s cloud deployment services to manage the running of Grails applications in the cloud from the command line
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/cxf-client'&gt;cxf-client&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.2.4. Use existing (or new) Apache CXF wsdl2java generated content to invoke SOAP services
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/jasypt-encryption'&gt;jasypt-encryption&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.0.1. Integration the Jasypt encryption library
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/oauth-scribe'&gt;oauth-scribe&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.3. Provides oAuth integration for Grails, using the Scribe framework
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/quick-input'&gt;quick-input&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.1.2. Provides new input tags supporting some mass input capabilities
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/rabbitmq'&gt;rabbitmq&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.3.3. Integrates with Rabbit MQ messaging
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/routing'&gt;routing&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.1.4. Send and route messages to a wide variety of destination endpoints directly from your Controllers and Services using Camel
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/routing-jms'&gt;routing-jms&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.1.4. JMS integration for the grails-routing plugin
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/spring-security-core'&gt;spring-security-core&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.2.7. The official Grails security plugin; integrates with Spring Security
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/spring-security-facebook'&gt;spring-security-facebook&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 0.5.4. Plugin for Facebook Authentication, as extension to Grails Spring Security Core plugin
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/spring-security-radius'&gt;spring-security-radius&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.1.1. RADIUS support for the Spring Security plugin
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/twitter-bootstrap'&gt;twitter-bootstrap&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.4.0.14. Twitter Bootstrap CSS framework resource files
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://grails.org/plugin/viaboxx-dbmigrate'&gt;viaboxx-dbmigrate&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt; version 1.3.2. Setup and migrate the database of your project
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="tweets"&gt;
&lt;h2&gt;Interesting Tweets&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/epragt/status/151384219036299264'&gt;@epragt&lt;/a&gt;: Just did my first pull request for &lt;a href='https://search.twitter.com/search?q=%23groovy' target='_blank'&gt;#groovy&lt;/a&gt;. &lt;a href="https://t.co/V5QGs6sR" target='_blank'&gt;https://t.co/V5QGs6sR&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/kenliu/status/151419710536302592'&gt;@kenliu&lt;/a&gt;: playing around with &lt;a href='https://search.twitter.com/search?q=%23grails' target='_blank'&gt;#grails&lt;/a&gt; 2.0.0 on &lt;a href='https://search.twitter.com/search?q=%23heroku' target='_blank'&gt;#heroku&lt;/a&gt;. flash-to-bang time is even quicker than AWS Elastic Beanstalk
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/foo2bar/status/151435486429327360'&gt;@foo2bar&lt;/a&gt;: Just relased new version of &lt;a href='https://search.twitter.com/search?q=%23Grails' target='_blank'&gt;#Grails&lt;/a&gt; Spring Security RADIUS plugin with failover support. Docs: &lt;a href="http://t.co/zl9FYxhJ" target='_blank'&gt;http://t.co/zl9FYxhJ&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/tednaleid/status/151525013290352641'&gt;@tednaleid&lt;/a&gt;: released grails jasypt-encryption 1.0.1, upgraded to grails 2.0 &amp;#038; jaspyt 1.9…thanks to Jon Palmer for his pull request &lt;a href="https://t.co/X5KDXeUz" target='_blank'&gt;https://t.co/X5KDXeUz&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/sapsiero/status/151726710130360321'&gt;@sapsiero&lt;/a&gt;: Just added a short demo video about the features of the &lt;a href='https://search.twitter.com/search?q=%23grails' target='_blank'&gt;#grails&lt;/a&gt; quick input &lt;a href='https://search.twitter.com/search?q=%23plugin' target='_blank'&gt;#plugin&lt;/a&gt;. Check it out: &lt;a href="http://t.co/zUlzd2fM" target='_blank'&gt;http://t.co/zUlzd2fM&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/marcinerdmann/status/151799915490717696'&gt;@marcinerdmann&lt;/a&gt;: great progress on &lt;a href='https://search.twitter.com/search?q=%23discobot' target='_blank'&gt;#discobot&lt;/a&gt; &amp;#8211; just released gradle-discobot-plugin to github based maven repo, now we only have to finish patching &lt;a href='https://search.twitter.com/search?q=%23groovy' target='_blank'&gt;#groovy&lt;/a&gt;!
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/valenmope/status/151803455193890817'&gt;@valenmope&lt;/a&gt;: If you wanna attend to one of the best free &lt;a href='https://search.twitter.com/search?q=%23spring' target='_blank'&gt;#spring&lt;/a&gt; and &lt;a href='https://search.twitter.com/search?q=%23groovy' target='_blank'&gt;#groovy&lt;/a&gt; event at Spain, registration is now open &lt;a href="http://t.co/9x0whkhk" target='_blank'&gt;http://t.co/9x0whkhk&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23springio' target='_blank'&gt;#springio&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/skepticalhumor/status/151837645968908288'&gt;@skepticalhumor&lt;/a&gt;: I hope that &lt;a href='https://search.twitter.com/search?q=%23Groovy' target='_blank'&gt;#Groovy&lt;/a&gt; is the next COBOL. So that I can program in it for the rest of my life.
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/wangjammer5/status/152352831150624768'&gt;@wangjammer5&lt;/a&gt;: I missed this before &amp;#8211; &lt;a href='https://twitter.com/#!/glaforge' target='_blank'&gt;@glaforge&lt;/a&gt;&amp;#8216;s useful page with links to all the Groovy &amp;#038; Grails Exchange 2011 videos &lt;a href="http://t.co/Z5y1u7Ct" target='_blank'&gt;http://t.co/Z5y1u7Ct&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/mittie/status/152788848689164288'&gt;@mittie&lt;/a&gt;: &lt;a href='https://search.twitter.com/search?q=%23gpars' target='_blank'&gt;#gpars&lt;/a&gt; 1.0 is on its way. First beta available at &lt;a href="http://t.co/nC52ErTm" target='_blank'&gt;http://t.co/nC52ErTm&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23groovy' target='_blank'&gt;#groovy&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23concurrency' target='_blank'&gt;#concurrency&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/honzam399/status/152789645896323072'&gt;@honzam399&lt;/a&gt;: &lt;a href='https://search.twitter.com/search?q=%23gpars' target='_blank'&gt;#gpars&lt;/a&gt; 1.0 is on its way. First beta available at gpars.codehaus.org/Download &lt;a href='https://search.twitter.com/search?q=%23groovy' target='_blank'&gt;#groovy&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23concurrency' target='_blank'&gt;#concurrency&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/grails_rocks/status/153508454282170368'&gt;@grails_rocks&lt;/a&gt;: Many parts of the &lt;a href='https://search.twitter.com/search?q=%23grails' target='_blank'&gt;#grails&lt;/a&gt; plugin platform work are now coming together. Expect an &amp;#8220;early access&amp;#8221; within a few weeks!
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="jobs"&gt;
&lt;h2&gt;Jobs&lt;/h2&gt;
&lt;hr/&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://seeker.dice.com/jobsearch/servlet/JobSearch?op=300&amp;#038;FREE_TEXT=grails&amp;#038;FRMT=0'&gt;Dice keyword search for Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://jobsearch.monster.com/PowerSearch.aspx?q=grails'&gt;Monster keyword search for Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.careerbuilder.com/Jobseeker/Jobs/JobResults.aspx?_ctl0%3A_ctl2%3AucQuickBar%3As_rawwords=grails'&gt;Careerbuilder keyword search for Grails&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/SpringSourceJob'&gt;SpringSourceJob Twitter feed&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://jobs.vmware.com/search?q=springsource'&gt;SpringSource job search at jobs.vmware.com&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.technojobs.co.uk/job.phtml/771697'&gt;Java developer &amp;#8211; Groovy/ Grails &amp;#8211; London &amp;#8211; 6 month rolling contract&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://us.bstonetech.com/jobs/2011/12/sr-j2ee-developer-federal-practice-dc-area/'&gt;Sr. J2EE Developer – Federal Practice – DC Area&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.centuria.com/current-openings/colorado/sr-developer-grails/'&gt;Senior Grails Developer in Loveland, CO&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/rahulsom/status/152419103649443840'&gt;@rahulsom&lt;/a&gt;: Let me know if you want to work at a &lt;a href='https://search.twitter.com/search?q=%23Grails' target='_blank'&gt;#Grails&lt;/a&gt; &lt;a href='https://search.twitter.com/search?q=%23HealthCare' target='_blank'&gt;#HealthCare&lt;/a&gt; company in San Jose, CA &amp;#8211; The Engineering team at &lt;a href='https://twitter.com/#!/CertifyData' target='_blank'&gt;@CertifyData&lt;/a&gt; needs UI, BE, QA ppl
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/CV_TechSearch/status/152107251547648000'&gt;@CV_TechSearch&lt;/a&gt;: seeking Grails framework and Groovy language developer with &lt;a href='https://search.twitter.com/search?q=%23ecommerce' target='_blank'&gt;#ecommerce&lt;/a&gt; exposure &lt;a href='https://search.twitter.com/search?q=%23NYC' target='_blank'&gt;#NYC&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.grailsjobs.com/view-job/385'&gt;Software Developer &amp;#8211; Grails, Java, Mobile and etc &amp;#8211; Sao Paulo, Brazil&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://jobview.monster.com/Groovy-Grails-Development-Java-Job-Toronto-ON-CA-105148333.aspx'&gt;Groovy &amp;#038; Grails Developer (contract) in Toronto&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.linkedin.com/groups/Sr-Grails-contract-developer-in-39757.S.86922636?view=&amp;#038;gid=39757&amp;#038;type=member&amp;#038;item=86922636'&gt;Sr. Grails contract developer in Piscataway, NJ&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='https://twitter.com/#!/brandyjfordcpc/status/152439639360290818'&gt;@brandyjfordcpc&lt;/a&gt;: Hiring Now Software Engineer II exp with Java Web Standards Server side JVM Grails framework Direct Hire Paid Relocation contact Brandyjford
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.programmez.com/emploi.php?did=JHP0816NQSKM984FM6Z'&gt;Développeur Java / J2EE expérimenté / Grails / CDI / IDF/ &amp;#8211; Paris&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="meetups"&gt;
&lt;h2&gt;User groups and Conferences&lt;/h2&gt;
&lt;hr/&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.meetup.com/Seattle-Groovy/events/32345342/'&gt;Thursday, January 12, 2012&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Seattle Groovy/Grails Users Group
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://nejug.org/events/show/134'&gt;Thursday, January 12, 2012 &amp;#8211; What&amp;#8217;s new with Grails 2.0&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
New England Java Users Group
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.meetup.com/Paris-Groovy-Grails/events/45108892/'&gt;Thursday, January 19, 2012 &amp;#8211; Groovy 2.0 : un pas vers le typage statique&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Paris Groovy and Grails User Group
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a target='_blank' href='http://www.meetup.com/java-161/events/44263902/'&gt;Monday, January 23, 2012&lt;img src='/blog/images/pop.gif'/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
SF Bay Groovy and Grails Meetup Group
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p class="wp-flattr-button"&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://burtbeckwith.com/blog/?flattrss_redirect&amp;amp;id=1126&amp;amp;md5=4e07026e33cb8b478fb63b368d300fde" title="Flattr" target="_blank"&gt;&lt;img src="http://burtbeckwith.com/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 03 Jan 2012 08:25:00 CST</pubDate>
      <guid isPermaLink="true">http://burtbeckwith.com/blog/?p=1126</guid>
      <dc:creator>Burt Beckwith</dc:creator>
    </item>
  </channel>
</rss>


