<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en-AU">
<script>
var __mgkid=222;
__mgkstart=new Date().getTime();
</script>
<script type="text/javascript">var _sf_startpt=(new Date()).getTime()</script>
  <head>
    <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />

    <!-- Navigational metadata for large websites (an accessibility feature): -->
        <link rel="stylesheet" href="/jquery/jquery-accordion/demo/demo.css" />
    <link rel="stylesheet" type="text/css" href="http://www.groovymag.com/templates/groovy2/screen.css" media="screen" title="Screen CSS" />
    <link rel="stylesheet" type="text/css" href="http://www.groovymag.com/templates/groovy2/wpstyle.css" media="screen" title="WP CSS" />
<link rel="alternate" type="application/rss+xml" title="GroovyMag RSS Feed 2" href="http://blog.groovymag.com/feed/rss/" />
<!--
<link rel="alternate" type="application/rss+xml" title="GroovyMag RSS Feed" href="http://feeds.feedburner.com/groovymag" />
-->

        
        <script type="text/javascript" src="/jquery/jquery-accordion/lib/jquery.js"></script>
        <script type="text/javascript" src="/jquery/jquery-accordion/lib/chili-1.7.pack.js"></script>
        
        <script type="text/javascript" src="/jquery/jquery-accordion/lib/jquery.easing.js"></script>
        <script type="text/javascript" src="/jquery/jquery-accordion/lib/jquery.dimensions.js"></script>
        <script type="text/javascript" src="/jquery/jquery-accordion/jquery.accordion.js"></script>
 <script src="http://kimsal.com/copy.js"></script> 
        <script type="text/javascript">
        jQuery().ready(function(){
 

		$(".qty").change(function(){ 
			var over1 = 0;
			$(".qty").each( function() { 
				var id=this.id.replace("qty_","");
				var licid = "license_"+id;
				if(this.value>1) { 
					over1++;
		//			$("#"+licid).show();
				} else { 
		//			$("#"+licid).hide();
				}
			});
			if(over1>0) { 
		//		$("#licenseColumn").show();	
			} else {
		//		$("#licenseColumn").hide();	

			}
		});
	});
	</script>
    <title>GroovyMag - the magazine for Groovy and Grails developers about Groovy programming and Grails development</title>
  </head>

  <body>
	<div id='bodycontent'>
    <!-- For non-visual user agents: -->
      <div id="top"><a href="#main-copy" class="doNotDisplay doNotPrint">Skip to main content.</a></div>

    <!-- ##### Header ##### -->

    <div id="header">
      <div class="midHeader">

  <a href="http://www.groovymag.com/main/" title="Home"><img border='0' height='60' style='float:left;' src="/images/gm_60.png" alt="GroovyMag - the magazine for Groovy and Grails developers about Groovy programming and Grails development"/></a>
<div id='loginArea'>
		<p><a href="https://www.groovymag.com/login/">Log in</a></p>

</div>

<div style='clear:both'></div>


</div>


</div>

<!-- ##### Side Bar ##### -->

<div class="centerit" id="side-bar" plugin="menu/show">



<div id='side-bar-in'>
<ul>
<!--
  <li><a href="http://www.groovymag.com/main.about/" title="Home">About</a></li>
-->
  <li><a href="http://www.groovymag.com/main.issues/" title="Purchase">Purchase/Subscribe</></li>
  <li><a href="http://www.groovymag.com/main.page/GroovyMag_FAQ" title="FAQ">FAQ</a></li>
  <li><a href="http://blog.groovymag.com/" title="Blog">Blog</a></li>
  <li><a href="http://www.groovymag.com/cart" >Cart</a></li>
  <li><a href="http://www.groovymag.com/authors" >Authors</a></li>
  <li><a href="http://www.groovymag.com/sponsors" >Sponsors</a></li>
  <li><a href="http://www.groovymag.com/training">Training</a></li>
  <li><a href="http://www.jsmag.com/latest">JSMag</a></li>
</li>
<!--
  <li><a href="http://www.groovymag.com/main.submit/" title="Home">Submit a topic</a></li>
-->

        </ul>
<!--
  <a style="hover:none;"  href="http://twitter.com/groovymag" target="_new"><img style="hover:none;" border="0" src="/images/twitter_icon.gif" alt="Follow GroovyMag on Twitter!"/><br/>Follow GroovyMag</a> 
-->
<!--

<div style='text-align: center; font-size: .8em'>
Credit card processing<br/>
handled by PayPal<br/>
<img src="https://www.paypalobjects.com/WEBSCR-540-20081021-1/en_US/i/logo/logo3.gif"/>
</div>
-->



    </div>
</div>
<div style='clear:both;'></div>

    <!-- ##### Main Copy ##### -->

    <div id="main-copy">
			<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: GroovyMag March 2009 available</title>
	<atom:link href="http://blog.groovymag.com/2009/03/groovymag-march-2009-available/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.groovymag.com/2009/03/groovymag-march-2009-available/</link>
	<description>Groovy and Grails magazine</description>
	<lastBuildDate>Wed, 31 Aug 2011 12:32:07 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
</channel>
</rss>

    </div>
	<div style='clear:both'></div>
    
    <!-- ##### Footer ##### -->

<div id='footertop'>
<a href="http://www.webdevpub.com"><img border="0" src="http://webdevpub.com/images/webdevpub.png" height="65"/></a>
</div>
    <div id="footer">
      <div class="left">
        E-mail:&nbsp;<a href="mailto:webmaster@groovymag.com" title="Contact webmaster">webmaster@groovymag.com</a>
 | <a href="/privacy">Privacy Policy</a>
 | <a href="/refund">Refund Policy</a>
 | <a href="/contact">Contact</a>
 | 
<a href="http://blog.groovymag.com/feed/rss/" title="Subscribe to my feed" rel="alternate" type="application/rss+xml">Subscribe to free RSS</a>
 
 | <a href="/love">We Love You - Really!</a>
 | <a target="_new" href="http://www.twitter.com/groovymag">Follow on Twitter (thanks!)</a>
<br />
      </div>

      <br class="doNotDisplay doNotPrint" />

      <div class="right"><br/></div>
    </div>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-224419-14");
pageTracker._trackPageview();
</script>
	</div>

<script>
var d = document.getElementsByTagName('body')[0];
var s = document.createElement('script');
s.src="http://michaelkimsal.com/track/f.php?id="+__mgkid+"&h=60";
d.appendChild(s);
</script>

<script type="text/javascript">
var _sf_async_config={uid:9726,domain:"groovymag.com"};
(function(){
  function loadChartbeat() {
    window._sf_endpt=(new Date()).getTime();
    var e = document.createElement('script');
    e.setAttribute('language', 'javascript');
    e.setAttribute('type', 'text/javascript');
    e.setAttribute('src',
       (("https:" == document.location.protocol) ? "https://a248.e.akamai.net/chartbeat.download.akamai.com/102508/" : "http://static.chartbeat.com/") +
       "js/chartbeat.js");
    document.body.appendChild(e);
  }
  var oldonload = window.onload;
  window.onload = (typeof window.onload != 'function') ?
     loadChartbeat : function() { oldonload(); loadChartbeat(); };
})();

</script>
  </body>
</html>

