<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en" xml:base="http://www.brentbaxter.com/wp-atom.php">
	<title type="text">Brent Baxter</title>
	<subtitle type="text">techie, dad, cyclist</subtitle>

	<updated>2010-04-09T19:07:08Z</updated>
	<generator uri="http://wordpress.org/" version="2.9.2">WordPress</generator>

	<link rel="alternate" type="text/html" href="http://www.brentbaxter.com" />
	<id>http://www.brentbaxter.com/feed/atom/</id>
	

			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/brentbaxter" /><feedburner:info uri="brentbaxter" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by/2.0/" /><feedburner:emailServiceId>brentbaxter</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry>
		<author>
			<name>brent</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Thoughts From the First Philly Groovy and Grails Meet-up]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/brentbaxter/~3/XVRE788LYS0/" />
		<id>http://www.brentbaxter.com/?p=304</id>
		<updated>2010-04-09T19:07:08Z</updated>
		<published>2010-04-09T19:03:14Z</published>
		<category scheme="http://www.brentbaxter.com" term="Technology" /><category scheme="http://www.brentbaxter.com" term="chariot" /><category scheme="http://www.brentbaxter.com" term="Grails" /><category scheme="http://www.brentbaxter.com" term="Groovy" />		<summary type="html"><![CDATA[I can&#8217;t begin to thank Scott Davis and Venkat Subramaniam enough for giving us a great start to the Philadelphia Groovy and Grails meet-up. It was great to see two seasoned speakers &#8220;on stage&#8221; at once, but even better two good friends that made the evening both interactive and informative. It was simply awesome.
It was [...]]]></summary>
		<content type="html" xml:base="http://www.brentbaxter.com/2010/04/09/thoughts-from-the-first-philly-groovy-and-grails-meet-up/">&lt;p&gt;I can&amp;#8217;t begin to thank Scott Davis and Venkat Subramaniam enough for giving us a great start to the &lt;a href="http://www.phillygroovy.org"&gt;Philadelphia Groovy and Grails&lt;/a&gt; meet-up. It was great to see two seasoned speakers &amp;#8220;on stage&amp;#8221; at once, but even better two good friends that made the evening both interactive and informative. It was simply awesome.&lt;/p&gt;
&lt;p&gt;It was great to have an active crowd as well, and I hope that everyone that attended was able to take away something from the evening. Scott and Venkat started with an agenda for the evening, but we quickly pulled them off track and wandered. I&amp;#8217;m working from memory, but we roughly covered the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Groovy is Java, except when it isn&amp;#8217;t! Search for &amp;#8220;Groovy the blue pill&amp;#8221; or &amp;#8220;Groovy the red pill&amp;#8221; to see what that means.&lt;/li&gt;
&lt;li&gt;We saw several perfectly valid Java classes become elegantly simple Groovy classes&lt;/li&gt;
&lt;li&gt;Examples of Groovy metaprogramming and AST transformations (@Immutable, @Delegate and @Newify)&lt;/li&gt;
&lt;li&gt;What tools and IDEs might be considered for Groovy and Grails programming&lt;/li&gt;
&lt;li&gt;We learned that Venkat only uses a web browser that works with EMACS-like commands (it is &lt;a href="http://conkeror.org/"&gt;Conkeror&lt;/a&gt; in case you are wondering)&lt;/li&gt;
&lt;li&gt;We were reminded of the evil lurking in Java with precision issues in double and float, and how Groovy avoided this issue&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There were many more little bits of information, but suffice to say we covered a lot of ground.  Thanks again to Scott and Venkat, and thanks to all that attended our first meet-up.&lt;/p&gt;
&lt;p&gt;Please watch the meet-up group &lt;a href="http://www.phillygroovy.org"&gt;site&lt;/a&gt; for more information about our next meet-up.&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F&amp;amp;title=Thoughts+From+the+First+Philly+Groovy+and+Grails+Meet-up" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F&amp;amp;title=Thoughts+From+the+First+Philly+Groovy+and+Grails+Meet-up" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F&amp;amp;title=Thoughts+From+the+First+Philly+Groovy+and+Grails+Meet-up" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F&amp;amp;headline=Thoughts+From+the+First+Philly+Groovy+and+Grails+Meet-up" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Thoughts+From+the+First+Philly+Groovy+and+Grails+Meet-up&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Thoughts+From+the+First+Philly+Groovy+and+Grails+Meet-up&amp;amp;u=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://delicious.com/save?title=Thoughts+From+the+First+Philly+Groovy+and+Grails+Meet-up&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Thoughts+From+the+First+Philly+Groovy+and+Grails+Meet-up&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Thoughts+From+the+First+Philly+Groovy+and+Grails+Meet-up&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F&amp;amp;title=Thoughts+From+the+First+Philly+Groovy+and+Grails+Meet-up&amp;amp;summary=&amp;amp;source=" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brentbaxter/~4/XVRE788LYS0" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.brentbaxter.com/2010/04/09/thoughts-from-the-first-philly-groovy-and-grails-meet-up/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.brentbaxter.com/2010/04/09/thoughts-from-the-first-philly-groovy-and-grails-meet-up/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.brentbaxter.com/2010/04/09/thoughts-from-the-first-philly-groovy-and-grails-meet-up/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>brent</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Philadelphia Groovy and Grails User Group Kickoff]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/brentbaxter/~3/BZbfjEwC6ZM/" />
		<id>http://www.brentbaxter.com/?p=298</id>
		<updated>2010-04-06T02:40:35Z</updated>
		<published>2010-04-06T02:40:35Z</published>
		<category scheme="http://www.brentbaxter.com" term="Technology" /><category scheme="http://www.brentbaxter.com" term="Grails" /><category scheme="http://www.brentbaxter.com" term="Groovy" />		<summary type="html"><![CDATA[On April 8, 2010 &#8211; just three short days from now &#8211; we will be kicking off the Philadelphia Groovy and Grails User Group (GGUG).  This will be part of the evening events at the Philadelphia Emerging Technology conference.  The conference is sold out, however a conference entrance pass is not required to [...]]]></summary>
		<content type="html" xml:base="http://www.brentbaxter.com/2010/04/05/philadelphia-groovy-and-grails-user-group-kickoff/">&lt;p&gt;On April 8, 2010 &amp;#8211; just three short days from now &amp;#8211; we will be kicking off the Philadelphia Groovy and Grails User Group (GGUG).  This will be part of the evening events at the &lt;a href="http://www.phillyemergingtech.com/"&gt;Philadelphia Emerging Technology&lt;/a&gt; conference.  The conference is sold out, however a conference entrance pass is not required to attend the evening event.  I&amp;#8217;d love to see a packed room, so feel free to stop by and say hello.&lt;/p&gt;
&lt;p&gt;I also want to be sure that everyone goes to the Philly GGUG official site at &lt;a href="http://www.phillygroovy.org"&gt;http://www.phillygroovy.org&lt;/a&gt; and join the email list so that you can be a part of our future events.  I am hoping to have Philly GGUG meet-ups every two months, so look for another meet-up in June.&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F&amp;amp;title=Philadelphia+Groovy+and+Grails+User+Group+Kickoff" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F&amp;amp;title=Philadelphia+Groovy+and+Grails+User+Group+Kickoff" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F&amp;amp;title=Philadelphia+Groovy+and+Grails+User+Group+Kickoff" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F&amp;amp;headline=Philadelphia+Groovy+and+Grails+User+Group+Kickoff" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Philadelphia+Groovy+and+Grails+User+Group+Kickoff&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Philadelphia+Groovy+and+Grails+User+Group+Kickoff&amp;amp;u=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://delicious.com/save?title=Philadelphia+Groovy+and+Grails+User+Group+Kickoff&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Philadelphia+Groovy+and+Grails+User+Group+Kickoff&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Philadelphia+Groovy+and+Grails+User+Group+Kickoff&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F&amp;amp;title=Philadelphia+Groovy+and+Grails+User+Group+Kickoff&amp;amp;summary=&amp;amp;source=" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brentbaxter/~4/BZbfjEwC6ZM" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.brentbaxter.com/2010/04/05/philadelphia-groovy-and-grails-user-group-kickoff/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.brentbaxter.com/2010/04/05/philadelphia-groovy-and-grails-user-group-kickoff/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.brentbaxter.com/2010/04/05/philadelphia-groovy-and-grails-user-group-kickoff/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>brent</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Grails Tip: Using failOnError When Saving Domain Instances]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/brentbaxter/~3/LpjKjPlkZbw/" />
		<id>http://www.brentbaxter.com/?p=288</id>
		<updated>2010-03-11T03:17:05Z</updated>
		<published>2010-03-11T03:17:05Z</published>
		<category scheme="http://www.brentbaxter.com" term="Technology" /><category scheme="http://www.brentbaxter.com" term="chariot" /><category scheme="http://www.brentbaxter.com" term="Grails" /><category scheme="http://www.brentbaxter.com" term="Groovy" /><category scheme="http://www.brentbaxter.com" term="software" /><category scheme="http://www.brentbaxter.com" term="springsource" />		<summary type="html"><![CDATA[Calling the save method on a Grails domain class will return a null if there was an error in validation.  This is handy when doing something like the following.

if( !book.save() ) {
   book.errors.each {
        println it
   }
}

In Grails 1.2 a feature was added [...]]]></summary>
		<content type="html" xml:base="http://www.brentbaxter.com/2010/03/10/grails-tip-using-failonerror-when-saving-domain-instances/">&lt;p&gt;Calling the save method on a Grails domain class will return a null if there was an error in validation.  This is handy when doing something like the following.&lt;/p&gt;
&lt;pre class="brush: groovy;"&gt;
if( !book.save() ) {
   book.errors.each {
        println it
   }
}
&lt;/pre&gt;
&lt;p&gt;In Grails 1.2 a feature was added to allow the option of forcing save to throw a grails.validation.ValidationException by using the failOnError  argument.&lt;/p&gt;
&lt;pre class="brush: groovy;"&gt;
try {
     book.save(failOnError:true)
} catch(ValidationException e) {
   // handle
}
&lt;/pre&gt;
&lt;p&gt;If you prefer to make failing on validation errors the default, you can update Config.groovy in your Grails project to set the following property.&lt;/p&gt;
&lt;pre class="brush: groovy;"&gt;
grails.gorm.failOnError=true
&lt;/pre&gt;
&lt;p&gt;Thanks to Jeff Brown for reminding me of this when replying to a recent &lt;a href="http://n4.nabble.com/issue-bootstrapping-Domain-object-td1579784.html#a1579784"&gt;thread&lt;/a&gt; on the Grails user email list.&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F&amp;amp;title=Grails+Tip%3A+Using+failOnError+When+Saving+Domain+Instances" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F&amp;amp;title=Grails+Tip%3A+Using+failOnError+When+Saving+Domain+Instances" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F&amp;amp;title=Grails+Tip%3A+Using+failOnError+When+Saving+Domain+Instances" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F&amp;amp;headline=Grails+Tip%3A+Using+failOnError+When+Saving+Domain+Instances" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Grails+Tip%3A+Using+failOnError+When+Saving+Domain+Instances&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Grails+Tip%3A+Using+failOnError+When+Saving+Domain+Instances&amp;amp;u=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://delicious.com/save?title=Grails+Tip%3A+Using+failOnError+When+Saving+Domain+Instances&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Grails+Tip%3A+Using+failOnError+When+Saving+Domain+Instances&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Grails+Tip%3A+Using+failOnError+When+Saving+Domain+Instances&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F&amp;amp;title=Grails+Tip%3A+Using+failOnError+When+Saving+Domain+Instances&amp;amp;summary=&amp;amp;source=" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brentbaxter/~4/LpjKjPlkZbw" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.brentbaxter.com/2010/03/10/grails-tip-using-failonerror-when-saving-domain-instances/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.brentbaxter.com/2010/03/10/grails-tip-using-failonerror-when-saving-domain-instances/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.brentbaxter.com/2010/03/10/grails-tip-using-failonerror-when-saving-domain-instances/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>brent</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Grails Tip: Using Schema Export]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/brentbaxter/~3/u76uBKBa450/" />
		<id>http://www.brentbaxter.com/?p=283</id>
		<updated>2010-03-10T03:10:07Z</updated>
		<published>2010-03-10T02:47:43Z</published>
		<category scheme="http://www.brentbaxter.com" term="Technology" /><category scheme="http://www.brentbaxter.com" term="chariot" /><category scheme="http://www.brentbaxter.com" term="Grails" /><category scheme="http://www.brentbaxter.com" term="software" />		<summary type="html"><![CDATA[Ever wonder what the DDL would look like that Grails generates to create or update your database? Well, no need to wonder any longer. Grails is packed full with little things to make your life simpler, and one that you may not have heard of yet is the Grails &#8217;schema-export&#8217; command line option.  Under [...]]]></summary>
		<content type="html" xml:base="http://www.brentbaxter.com/2010/03/09/grails-tip-using-schema-export/">&lt;p&gt;Ever wonder what the DDL would look like that Grails generates to create or update your database? Well, no need to wonder any longer. Grails is packed full with little things to make your life simpler, and one that you may not have heard of yet is the Grails &amp;#8217;schema-export&amp;#8217; command line option.  Under the covers this handy utility delegates to Hibernate&amp;#8217;s SchemaExport.  The output can either go to a file or to standard out.&lt;/p&gt;
&lt;p&gt;Examples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;#8216;grails schema-export&amp;#8217; : generates the DDL for the development environment into the default file ddl.sql&lt;/li&gt;
&lt;li&gt;&amp;#8216;grails prod schema-export&amp;#8217; : generates the DDL for the production environment to the default file ddl.sql&lt;/li&gt;
&lt;li&gt;&amp;#8216;grails schema-export export&amp;#8217; : generates the export DDL (drop then create)&lt;/li&gt;
&lt;li&gt;&amp;#8216;grails schema-export stdout&amp;#8217; : generates the DDL and sends it to starndard out&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="lightsocial_container"&gt;&lt;a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F&amp;amp;title=Grails+Tip%3A+Using+Schema+Export" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F&amp;amp;title=Grails+Tip%3A+Using+Schema+Export" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F&amp;amp;title=Grails+Tip%3A+Using+Schema+Export" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F&amp;amp;headline=Grails+Tip%3A+Using+Schema+Export" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Grails+Tip%3A+Using+Schema+Export&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Grails+Tip%3A+Using+Schema+Export&amp;amp;u=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://delicious.com/save?title=Grails+Tip%3A+Using+Schema+Export&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Grails+Tip%3A+Using+Schema+Export&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Grails+Tip%3A+Using+Schema+Export&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F&amp;amp;title=Grails+Tip%3A+Using+Schema+Export&amp;amp;summary=&amp;amp;source=" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brentbaxter/~4/u76uBKBa450" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.brentbaxter.com/2010/03/09/grails-tip-using-schema-export/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.brentbaxter.com/2010/03/09/grails-tip-using-schema-export/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.brentbaxter.com/2010/03/09/grails-tip-using-schema-export/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>brent</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Building Grails applications with PostgreSQL]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/brentbaxter/~3/IfMASEqj3RI/" />
		<id>http://www.brentbaxter.com/?p=274</id>
		<updated>2010-03-06T15:28:56Z</updated>
		<published>2010-03-06T15:05:03Z</published>
		<category scheme="http://www.brentbaxter.com" term="Technology" /><category scheme="http://www.brentbaxter.com" term="chariot" /><category scheme="http://www.brentbaxter.com" term="Grails" /><category scheme="http://www.brentbaxter.com" term="postgresql" />		<summary type="html"><![CDATA[I&#8217;ll be presenting a tutorial &#8220;Building Grails applications with PostgreSQL&#8221; along with my fellow Chariot Solutions colleague Ken Rimple at the PostgreSQL East 2010 conference in Philadelphia, PA. We are scheduled to present on March 25, 2010 at 11:00 AM.
This will be a 90 minute tutorial targeted at beginners of Grails. We plan to cover [...]]]></summary>
		<content type="html" xml:base="http://www.brentbaxter.com/2010/03/06/building-grails-applications-with-postgresql/">&lt;p&gt;I&amp;#8217;ll be presenting a tutorial &lt;a href="http://postgresqlconference.org/2010/east/talks/building_grails_applications_with_postgresql"&gt;&amp;#8220;Building Grails applications with PostgreSQL&amp;#8221;&lt;/a&gt; along with my fellow &lt;a href="http://www.chariotsolutions.com"&gt;Chariot Solutions&lt;/a&gt; colleague &lt;a href="http://www.rimple.com"&gt;Ken Rimple&lt;/a&gt; at the PostgreSQL East 2010 conference in Philadelphia, PA. We are scheduled to present on March 25, 2010 at 11:00 AM.&lt;/p&gt;
&lt;p&gt;This will be a 90 minute tutorial targeted at beginners of Grails. We plan to cover the following:&lt;/p&gt;
&lt;p&gt;1. Overview of Grails&lt;/p&gt;
&lt;p&gt;2. GORM&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Properties and Validation&lt;/li&gt;
&lt;li&gt;Associations and Composition&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;3. Configuring Grails with PostgreSQL&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Environments: Dev, Test, and Production&lt;/li&gt;
&lt;li&gt;Using DataSource.groovy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you happen to be at the talk, be sure to introduce yourself and say hello!&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F&amp;amp;title=Building+Grails+applications+with+PostgreSQL" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F&amp;amp;title=Building+Grails+applications+with+PostgreSQL" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F&amp;amp;title=Building+Grails+applications+with+PostgreSQL" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F&amp;amp;headline=Building+Grails+applications+with+PostgreSQL" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Building+Grails+applications+with+PostgreSQL&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Building+Grails+applications+with+PostgreSQL&amp;amp;u=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://delicious.com/save?title=Building+Grails+applications+with+PostgreSQL&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Building+Grails+applications+with+PostgreSQL&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Building+Grails+applications+with+PostgreSQL&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F&amp;amp;title=Building+Grails+applications+with+PostgreSQL&amp;amp;summary=&amp;amp;source=" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brentbaxter/~4/IfMASEqj3RI" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.brentbaxter.com/2010/03/06/building-grails-applications-with-postgresql/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.brentbaxter.com/2010/03/06/building-grails-applications-with-postgresql/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.brentbaxter.com/2010/03/06/building-grails-applications-with-postgresql/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>brent</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Grails 1.2.1 is Released]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/brentbaxter/~3/IppYOCpZNKM/" />
		<id>http://www.brentbaxter.com/?p=267</id>
		<updated>2010-02-02T02:08:01Z</updated>
		<published>2010-02-02T02:08:01Z</published>
		<category scheme="http://www.brentbaxter.com" term="Technology" /><category scheme="http://www.brentbaxter.com" term="chariot" /><category scheme="http://www.brentbaxter.com" term="Grails" /><category scheme="http://www.brentbaxter.com" term="Groovy" /><category scheme="http://www.brentbaxter.com" term="software" /><category scheme="http://www.brentbaxter.com" term="springsource" />		<summary type="html"><![CDATA[Great news for all Grails developers, it appears that the core Grails team is still hard at work.  Today it was announced that Grails 1.2.1 is ready.  A quick look at the release notes and I see that there aren&#8217;t any major new features, but there are a lot of bug fixes. While [...]]]></summary>
		<content type="html" xml:base="http://www.brentbaxter.com/2010/02/01/grails-1-2-1-is-released/">&lt;p&gt;&lt;img src="http://www.brentbaxter.com/wp-content/uploads/2009/11/grailslogo_topNav.png" alt="" title="Grails Logo" width="163" height="43" class="alignleft size-full wp-image-44" /&gt;Great news for all Grails developers, it appears that the core Grails team is still hard at work.  Today it was announced that &lt;a href="http://www.grails.org/1.2.1+Release+Notes"&gt;Grails 1.2.1&lt;/a&gt; is ready.  A quick look at the release notes and I see that there aren&amp;#8217;t any major new features, but there are a lot of bug fixes. While this alone is encouraging, when I looked at the &lt;a href="http://jira.codehaus.org/browse/GRAILS#selectedTab=com.atlassian.jira.plugin.system.project:roadmap-panel"&gt;Grails Roadmap&lt;/a&gt; I see issues cued up for 1.2.2 and a release date of 1.3 is still listed as March 30. So far I&amp;#8217;m liking the first quarter of 2010!&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F&amp;amp;title=Grails+1.2.1+is+Released" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F&amp;amp;title=Grails+1.2.1+is+Released" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F&amp;amp;title=Grails+1.2.1+is+Released" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F&amp;amp;headline=Grails+1.2.1+is+Released" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Grails+1.2.1+is+Released&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Grails+1.2.1+is+Released&amp;amp;u=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://delicious.com/save?title=Grails+1.2.1+is+Released&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Grails+1.2.1+is+Released&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Grails+1.2.1+is+Released&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F&amp;amp;title=Grails+1.2.1+is+Released&amp;amp;summary=&amp;amp;source=" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brentbaxter/~4/IppYOCpZNKM" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.brentbaxter.com/2010/02/01/grails-1-2-1-is-released/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.brentbaxter.com/2010/02/01/grails-1-2-1-is-released/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.brentbaxter.com/2010/02/01/grails-1-2-1-is-released/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>brent</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Defining and Testing Constraints on Grails Domain Classes]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/brentbaxter/~3/i199QhBk7ng/" />
		<id>http://www.brentbaxter.com/?p=224</id>
		<updated>2010-02-12T02:21:58Z</updated>
		<published>2010-01-31T23:23:06Z</published>
		<category scheme="http://www.brentbaxter.com" term="Technology" /><category scheme="http://www.brentbaxter.com" term="chariot" /><category scheme="http://www.brentbaxter.com" term="Grails" /><category scheme="http://www.brentbaxter.com" term="Groovy" />		<summary type="html"><![CDATA[Defining constraints in Grails domain classes is achieved quite simply with a static property defined directly in the domain class. For example, I can define a User domain class and its constraints as follows:

class User {
  String login
  String password
  String email
  Integer age

  static constraints = {
   [...]]]></summary>
		<content type="html" xml:base="http://www.brentbaxter.com/2010/01/31/validation-of-grails-domains-with-gorm/">&lt;p&gt;Defining constraints in Grails domain classes is achieved quite simply with a static property defined directly in the domain class. For example, I can define a User domain class and its constraints as follows:&lt;/p&gt;
&lt;pre class="brush: groovy;"&gt;
class User {
  String login
  String password
  String email
  Integer age

  static constraints = {
    login(size:5..15, blank:false, unique:true)
    password(size:5..15, blank:false)
    email(email:true, blank:false)
    age(min:18, nullable:false)
  }
}
&lt;/pre&gt;
&lt;p&gt;Constraints are syntactically formatted as method calls with the name of the method matching the name of the property the constraint is to be associated with. The method parameters are named parameters specifying the constraint. On User we have defined a constraint for each property. This was my decision to constrain each property, there is not a requirement to name a constraint for all properties in a domain class.&lt;/p&gt;
&lt;p&gt;So far so good, but now I want to verify my constraints work the way I expect. The easiest way to test constraints is as part of a unit test. Grails provides mocking support in unit tests, so to setup a mock domain class for constraint testing I would create the following test class.&lt;/p&gt;
&lt;pre class="brush: groovy;"&gt;
import grails.test.*

class UserTests extends GrailsUnitTestCase {

  protected void setUp() {
    super.setUp()
    mockForConstraintsTests(User)
  }

  protected void tearDown() {
    super.tearDown()
  }

  void testValidation() {
    def user = new User(login:'jdoe', password:'passw0rd',email:'jdoe@foo.com',age:32)
    assertTrue user.validate()
  }
}
&lt;/pre&gt;
&lt;p&gt;That is it. One item of note, I recently found out that it is possible to pass a list of property names to the valdiate() method indicating that the validation should only be run on those properties. For example, if I only want to validate the login and password properties on an instance of User then I would do the following.&lt;/p&gt;
&lt;pre class="brush: groovy;"&gt;
user.validate(['login','password'])
&lt;/pre&gt;
&lt;p&gt;This trick, however, does not work in unit tests as it appears the validate method provided by the mock does not accept any parameters. Still, this will come in handy when I know that I don&amp;#8217;t have a fully populated domain POGO, but want to validate what I have.  Say, for example, in a UI wizard where each step sets a partial set of properties on the domain class.&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F&amp;amp;title=Defining+and+Testing+Constraints+on+Grails+Domain+Classes" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F&amp;amp;title=Defining+and+Testing+Constraints+on+Grails+Domain+Classes" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F&amp;amp;title=Defining+and+Testing+Constraints+on+Grails+Domain+Classes" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F&amp;amp;headline=Defining+and+Testing+Constraints+on+Grails+Domain+Classes" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Defining+and+Testing+Constraints+on+Grails+Domain+Classes&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Defining+and+Testing+Constraints+on+Grails+Domain+Classes&amp;amp;u=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://delicious.com/save?title=Defining+and+Testing+Constraints+on+Grails+Domain+Classes&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Defining+and+Testing+Constraints+on+Grails+Domain+Classes&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Defining+and+Testing+Constraints+on+Grails+Domain+Classes&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F&amp;amp;title=Defining+and+Testing+Constraints+on+Grails+Domain+Classes&amp;amp;summary=&amp;amp;source=" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brentbaxter/~4/i199QhBk7ng" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.brentbaxter.com/2010/01/31/validation-of-grails-domains-with-gorm/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.brentbaxter.com/2010/01/31/validation-of-grails-domains-with-gorm/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.brentbaxter.com/2010/01/31/validation-of-grails-domains-with-gorm/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>brent</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[DevNews Podcast Episode #2]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/brentbaxter/~3/slj2CxA_OAA/" />
		<id>http://www.brentbaxter.com/?p=216</id>
		<updated>2010-01-26T06:15:15Z</updated>
		<published>2010-01-26T06:15:15Z</published>
		<category scheme="http://www.brentbaxter.com" term="Technology" /><category scheme="http://www.brentbaxter.com" term="chariot" /><category scheme="http://www.brentbaxter.com" term="devnews" /><category scheme="http://www.brentbaxter.com" term="podcast" /><category scheme="http://www.brentbaxter.com" term="software" /><category scheme="http://www.brentbaxter.com" term="techcast" />		<summary type="html"><![CDATA[In case you are not already a follower of the Chariot TechCast, you may have missed the fact that TechCast host, Ken Rimple, and I posted the second edition of the new DevNews podcast. We plan for this to be a short, weekly podcast that covers some quick news items from the week.  In [...]]]></summary>
		<content type="html" xml:base="http://www.brentbaxter.com/2010/01/26/devnews-podcast-episode-2/">&lt;p&gt;&lt;img src="http://www.brentbaxter.com/wp-content/uploads/2010/01/ChariotTechCasts-small.jpg" alt="" title="ChariotTechCasts-small" width="100" height="100" class="alignleft size-full wp-image-215" /&gt;In case you are not already a follower of the &lt;a href="http://www.chariotsolutions.com/downloads/podcasts"&gt;Chariot TechCast&lt;/a&gt;, you may have missed the fact that TechCast host, &lt;a href="http://www.rimple.com/"&gt;Ken Rimple&lt;/a&gt;, and I posted the second edition of the new DevNews podcast. We plan for this to be a short, weekly podcast that covers some quick news items from the week.  In DevNews episode #2 we cover:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Google news including GDrive and a primer on Google Go&lt;/li&gt;
&lt;li&gt;Maven&amp;#8217;s switch to Guice and a demo of Maven POM files in Groovy&lt;/li&gt;
&lt;li&gt;Dependency injection annotations JSR-330 and JSR-299 released with JavaEE 6&lt;/li&gt;
&lt;li&gt;Flex, OSGi, and Gremlin&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have suggestions on topics we should cover in the future, you can tag related news items on Delicious with the tag &lt;a href="http://www.delicious.com/tag/devnewsideas"&gt;devnewsideas&lt;/a&gt; and we will consider your story for the podcast.&lt;/p&gt;
&lt;p&gt;While you are checking out the DevNews, be sure to catch podcasts with &lt;a href="http://techcast.chariotsolutions.com/index.php?post_id=572350"&gt;Venkat Subramaniam&lt;/a&gt; and &lt;a href="http://techcast.chariotsolutions.com/index.php?post_id=574627"&gt;Jeremy Grelle&lt;/a&gt;.  Both of these guests will be speakers at the &lt;a href="http://www.phillyemergingtech.com/"&gt;Emerging Technologies for the Enterprise Conference&lt;/a&gt; being held in Philadelphia on April 8-9, 2010.  In the interest of full disclosure, this conference is hosted and presented by &lt;a href="http://www.chariotsolutions.com"&gt;Chariot Solutions&lt;/a&gt; &amp;#8211; my employer.  This is the 5th year this conference will be presented, and it just keeps getting better.  We have a great list of speakers and topics lined up, so check it out and be sure to &lt;a href="http://www.phillyemergingtech.com/register"&gt;register&lt;/a&gt; soon to get the early bird discount.&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F&amp;amp;title=DevNews+Podcast+Episode+%232" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F&amp;amp;title=DevNews+Podcast+Episode+%232" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F&amp;amp;title=DevNews+Podcast+Episode+%232" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F&amp;amp;headline=DevNews+Podcast+Episode+%232" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=DevNews+Podcast+Episode+%232&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=DevNews+Podcast+Episode+%232&amp;amp;u=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://delicious.com/save?title=DevNews+Podcast+Episode+%232&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=DevNews+Podcast+Episode+%232&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=DevNews+Podcast+Episode+%232&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F&amp;amp;title=DevNews+Podcast+Episode+%232&amp;amp;summary=&amp;amp;source=" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brentbaxter/~4/slj2CxA_OAA" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.brentbaxter.com/2010/01/26/devnews-podcast-episode-2/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.brentbaxter.com/2010/01/26/devnews-podcast-episode-2/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.brentbaxter.com/2010/01/26/devnews-podcast-episode-2/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>brent</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Spring, Groovy, and Grails Closing 2009 With a Bang]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/brentbaxter/~3/iAX4uQXwy3k/" />
		<id>http://www.brentbaxter.com/?p=204</id>
		<updated>2009-12-17T02:32:15Z</updated>
		<published>2009-12-17T02:10:43Z</published>
		<category scheme="http://www.brentbaxter.com" term="Technology" /><category scheme="http://www.brentbaxter.com" term="chariot" /><category scheme="http://www.brentbaxter.com" term="Grails" /><category scheme="http://www.brentbaxter.com" term="Groovy" /><category scheme="http://www.brentbaxter.com" term="software" /><category scheme="http://www.brentbaxter.com" term="spring framework" /><category scheme="http://www.brentbaxter.com" term="springsource" />		<summary type="html"><![CDATA[It appears that the folks at SpringSouce have been hard at work, and are giving Groovy and Grails folks a lot to look forward to in 2010.  Let me give you a quick recap of the past week or so and just highlight some of the recent events.
It started last week with two Groovy [...]]]></summary>
		<content type="html" xml:base="http://www.brentbaxter.com/2009/12/16/spring-groovy-and-grails-closing-2009-with-a-bang/">&lt;p&gt;It appears that the folks at &lt;a href="http://www.springsource.com"&gt;SpringSouce&lt;/a&gt; have been hard at work, and are giving Groovy and Grails folks a lot to look forward to in 2010.  Let me give you a quick recap of the past week or so and just highlight some of the recent events.&lt;/p&gt;
&lt;p&gt;It started last week with two Groovy related announcements.  First, we were treated to Groovy 1.7 RC2 and found out that we have every reason to expect Groovy 1.7 GA before Christmas.&lt;/p&gt;
&lt;p&gt;See: &lt;a href="http://docs.codehaus.org/display/GROOVY/2009/12/09/Groovy+1.7-RC-2+out+there"&gt;Groovy 1.7-RC-2 out there&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Also, last week the Groovy-Eclipse team quietly released 2.0M2 of the Groovy Eclipse plug-in.  They claim to have addressed over 100 issues, which includes a better inference engine, better refactoring support, task tag support, and content assist in GStrings.  All in all, it looks like some nice improvements.&lt;/p&gt;
&lt;p&gt;See: &lt;a href="http://docs.codehaus.org/display/GROOVY/Groovy-Eclipse+2.0.0M2+New+and+Noteworthy"&gt;Groovy-Eclipse 2.0.0M2 New and Noteworthy&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then today there was an explosion of news all starting with the release of Spring Framework 3.0.  There is a lot of good new stuff in there, and I&amp;#8217;ll leave it to Juergen Hoeller to lay it all out for you.&lt;/p&gt;
&lt;p&gt;See: &lt;a href="http://blog.springsource.com/2009/12/16/spring-framework-3-0-goes-ga/"&gt;Spring Framework 3.0 goes GA&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This was followed very closely with the release of Grails 1.2 RC2 which includes the new Spring Framework 3.0 GA.&lt;/p&gt;
&lt;p&gt;See: &lt;a href="http://www.grails.org/1.2-RC2+Release+Notes"&gt;Grails 1.2-RC2 Release Notes&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Finally, Guillaume Laforge posted an update on the modularity work that is being done as part of the Groovy 1.8 effort. This gist of this is to modularize Groovy into smaller pieces rather than having one, large groovy-all.jar distribution. Part of this effort will include replacing the current Ant based build with &lt;a href="http://gradle.org/"&gt;Gradle&lt;/a&gt;.  This is a nice feather in the cap for Gradle.&lt;/p&gt;
&lt;p&gt;See: &lt;a href="http://docs.codehaus.org/display/GROOVY/Groovy+1.8+modularization"&gt;Groovy 1.8 modularization&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I am very excited to see what is to come in 2010 for the Groovy and Grails community.  Judging by the activities of just the past month, there is a lot to be excited about for the year to come.&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F&amp;amp;title=Spring%2C+Groovy%2C+and+Grails+Closing+2009+With+a+Bang" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F&amp;amp;title=Spring%2C+Groovy%2C+and+Grails+Closing+2009+With+a+Bang" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F&amp;amp;title=Spring%2C+Groovy%2C+and+Grails+Closing+2009+With+a+Bang" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F&amp;amp;headline=Spring%2C+Groovy%2C+and+Grails+Closing+2009+With+a+Bang" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Spring%2C+Groovy%2C+and+Grails+Closing+2009+With+a+Bang&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Spring%2C+Groovy%2C+and+Grails+Closing+2009+With+a+Bang&amp;amp;u=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://delicious.com/save?title=Spring%2C+Groovy%2C+and+Grails+Closing+2009+With+a+Bang&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Spring%2C+Groovy%2C+and+Grails+Closing+2009+With+a+Bang&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Spring%2C+Groovy%2C+and+Grails+Closing+2009+With+a+Bang&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F&amp;amp;title=Spring%2C+Groovy%2C+and+Grails+Closing+2009+With+a+Bang&amp;amp;summary=&amp;amp;source=" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brentbaxter/~4/iAX4uQXwy3k" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.brentbaxter.com/2009/12/16/spring-groovy-and-grails-closing-2009-with-a-bang/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.brentbaxter.com/2009/12/16/spring-groovy-and-grails-closing-2009-with-a-bang/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.brentbaxter.com/2009/12/16/spring-groovy-and-grails-closing-2009-with-a-bang/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>brent</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[LIVESTRONG Challenge Registration is Open]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/brentbaxter/~3/zFAVWxzXc3k/" />
		<id>http://www.brentbaxter.com/?p=173</id>
		<updated>2009-12-05T17:48:47Z</updated>
		<published>2009-12-02T03:06:24Z</published>
		<category scheme="http://www.brentbaxter.com" term="Cycling" /><category scheme="http://www.brentbaxter.com" term="livestrong" /><category scheme="http://www.brentbaxter.com" term="tmob" />		<summary type="html"><![CDATA[<img src="http://www.brentbaxter.com/wp-content/uploads/2009/12/lsc_logo.gif" alt="lsc_logo.gif" border="0" width="224" height="95" align="right" />]]></summary>
		<content type="html" xml:base="http://www.brentbaxter.com/2009/12/01/livestrong-challenge-registration-is-open/">&lt;p&gt;&lt;img src="http://www.brentbaxter.com/wp-content/uploads/2009/12/lsc_logo.gif" alt="lsc_logo.gif" border="0" width="224" height="95" align="right" /&gt;Today, December 1, marks the opening for participants to register for the 2010 LIVESTRONG Challenge events. As a bonus, for one day the registration fee has been reduced to $35. You can register right now by going to the &lt;a href="http://www.livestrong.org/team"&gt;Team LIVESTRONG&lt;/a&gt; site. The dates and locations for the 2010 LIVESTRONG Challenge events are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Seattle, WA: June 20, 2010&lt;/li&gt;
&lt;li&gt;San Jose, CA: July 11, 2010&lt;/li&gt;
&lt;li&gt;Philly, PA: August 21–22, 2010&lt;/li&gt;
&lt;li&gt;Austin, TX: October 23–24, 2010&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By the time you read this post, the promotion may very well be over. Even if you have missed the promotion, please consider &lt;a href="http://www.livestrong.org/team"&gt;registering&lt;/a&gt; right now to walk, run, or ride &amp;#8211; and join the fight against cancer.&lt;/p&gt;
&lt;p&gt;I will be riding again in 2010. This will be my 4th year in a row riding with &lt;a href="http://philly2010.livestrong.org/margaritavilleorbust"&gt;Team Margaritaville or Bust&lt;/a&gt; (or TMOB for short), which is the official cycling team for the &lt;a href="http://saltshakerfoundation.org/"&gt;Salt Shaker Foundation&lt;/a&gt;. If you are in the greater Philly area and would like to join a team, please consider joining TMOB. We would love to have you ride, walk, or run with us!&lt;/p&gt;
&lt;p&gt;This past year, cancer has continued to impact my extended family. My fight against cancer will continue as I ride, and wear a yellow wristband to remind myself every day to &lt;strong&gt;live strong&lt;/strong&gt;. Cancer sucks &amp;#8211; join the fight!&lt;/p&gt;
&lt;div class="lightsocial_container"&gt;&lt;a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F01%2Flivestrong-challenge-registration-is-open%2F&amp;amp;title=LIVESTRONG+Challenge+Registration+is+Open" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F01%2Flivestrong-challenge-registration-is-open%2F&amp;amp;title=LIVESTRONG+Challenge+Registration+is+Open" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F01%2Flivestrong-challenge-registration-is-open%2F&amp;amp;title=LIVESTRONG+Challenge+Registration+is+Open" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F01%2Flivestrong-challenge-registration-is-open%2F&amp;amp;headline=LIVESTRONG+Challenge+Registration+is+Open" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=LIVESTRONG+Challenge+Registration+is+Open&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F01%2Flivestrong-challenge-registration-is-open%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=LIVESTRONG+Challenge+Registration+is+Open&amp;amp;u=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F01%2Flivestrong-challenge-registration-is-open%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://delicious.com/save?title=LIVESTRONG+Challenge+Registration+is+Open&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F01%2Flivestrong-challenge-registration-is-open%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=LIVESTRONG+Challenge+Registration+is+Open&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F01%2Flivestrong-challenge-registration-is-open%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=LIVESTRONG+Challenge+Registration+is+Open&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F01%2Flivestrong-challenge-registration-is-open%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F01%2Flivestrong-challenge-registration-is-open%2F&amp;amp;title=LIVESTRONG+Challenge+Registration+is+Open&amp;amp;summary=&amp;amp;source=" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F01%2Flivestrong-challenge-registration-is-open%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F01%2Flivestrong-challenge-registration-is-open%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F01%2Flivestrong-challenge-registration-is-open%2F" &gt;&lt;img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brentbaxter/~4/zFAVWxzXc3k" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.brentbaxter.com/2009/12/01/livestrong-challenge-registration-is-open/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.brentbaxter.com/2009/12/01/livestrong-challenge-registration-is-open/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.brentbaxter.com/2009/12/01/livestrong-challenge-registration-is-open/</feedburner:origLink></entry>
	</feed>
