<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><!-- generator="wordpress/2.2.2" --><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Jon Chase's Blog</title>
	<link>http://www.juliesoft.com/blog/jon</link>
	<description>Making the Web better one post at a time.</description>
	<pubDate>Sat, 05 Apr 2008 14:30:51 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.2</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Sendalongcom-Blog" type="application/rss+xml" /><item>
		<title>Skybus closed for business - ah, bankruptcy</title>
		<link>http://feeds.feedburner.com/~r/Sendalongcom-Blog/~3/264577390/</link>
		<comments>http://www.juliesoft.com/blog/jon/index.php/2008/04/05/skybust-skybus-closed-for-business-ah-bancruptcy/#comments</comments>
		<pubDate>Sat, 05 Apr 2008 14:15:39 +0000</pubDate>
		<dc:creator>jonchase</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.juliesoft.com/blog/jon/index.php/2008/04/05/skybust-skybus-closed-for-business-ah-bancruptcy/</guid>
		<description><![CDATA[Skybus is officially closed - as of, well, right now (thanks for the advance notice).  I bet they wanted to do this April 1st but were afraid that no one would have taken it seriously.
The official announcement:
 Skybus Airlines will cease all operations effective Saturday, April 5.
Skybus struggled to overcome the combination of rising [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.juliesoft.com/blog/jon/index.php/2008/04/05/skybust-skybus-closed-for-business-ah-bancruptcy/skybust-skybus-closed-for-business-ah-bancruptcy/" rel="attachment wp-att-158" title="Skybust - Skybus closed for business - ah, bancruptcy"><img src="http://www.juliesoft.com/blog/jon/wp-content/uploads/2008/04/skybust.png" class="float-left" alt="Skybust - Skybus closed for business - ah, bancruptcy" /></a><a href="http://www.skybus.com">Skybus is officially closed</a> - as of, well, right now (thanks for the advance notice).  I bet they wanted to do this April 1st but were afraid that no one would have taken it seriously.</p>
<p>The official announcement:</p>
<blockquote><p> Skybus Airlines will cease all operations effective Saturday, April 5.</p>
<p>Skybus struggled to overcome the combination of rising jet fuel costs and a slowing economic environment. These two issues proved to be insurmountable for a new carrier.</p>
<p>We deeply regret the impact this decision will have on our employees and their families, customers, vendors, suppliers, airport officials and others in the cities in which we have operated. Our financial condition is such that our Board of Directors felt it had no choice but to cease operations.</p>
<p>Passengers holding reservations for Skybus flights scheduled to depart on or after Saturday, April 5, 2008 should contact their credit card companies to arrange to apply for a refund. More information for customers and others will be made available on the Skybus web site (www.skybus.com) as it becomes available.</p>
<p>All flights for Friday, April 4 will be completed. Passengers holding reservations on flights for Friday, April 4 should check in for their flight at a Skybus kiosk at the airport instead of the Skybus website.</p></blockquote>
<p>*sigh* Guess it&#8217;s time to call Visa to see if we can get some of our money back.</p>
<img src="http://feeds.feedburner.com/~r/Sendalongcom-Blog/~4/264577390" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.juliesoft.com/blog/jon/index.php/2008/04/05/skybust-skybus-closed-for-business-ah-bancruptcy/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.juliesoft.com/blog/jon/index.php/2008/04/05/skybust-skybus-closed-for-business-ah-bancruptcy/</feedburner:origLink></item>
		<item>
		<title>April Fools Roundup</title>
		<link>http://feeds.feedburner.com/~r/Sendalongcom-Blog/~3/262102991/</link>
		<comments>http://www.juliesoft.com/blog/jon/index.php/2008/04/01/april-fools-roundup/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 17:35:56 +0000</pubDate>
		<dc:creator>jonchase</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.juliesoft.com/blog/jon/index.php/2008/04/01/april-fools-roundup/</guid>
		<description><![CDATA[I just had a blast catching up on RSS feeds over lunch - except I couldn&#8217;t tell what news was real and what was fake.
Here are some of my favorites from today, and a few from the past.  The funniest ones are in bold.

SQL on Rails (you must watch the screencast)
The Commentator - automatically [...]]]></description>
			<content:encoded><![CDATA[<p>I just had a blast catching up on RSS feeds over lunch - except I couldn&#8217;t tell what news was real and what was fake.</p>
<p>Here are some of my favorites from today, and a few from the past.  The funniest ones are in <strong>bold</strong>.</p>
<ul>
<li><a href="http://www2.sqlonrails.org/">SQL on Rails</a> (you must watch the <strong><a href="http://www2.sqlonrails.org/screencast">screencast</a></strong>)</li>
<li><strong><a href="http://www.cenqua.com/commentator/">The Commentator</a></strong> - automatically generate code comments</li>
<li><a href="http://www.cenqua.com/pairon/">PairOn pair programming chair</a></li>
<li><strong><a href="http://luminotes.com/blog?note_id=e4wn6grwjpn4xz78jzeh5ac7q">Luminotes new feature: Import -&gt; Internet</a></strong></li>
<li><a href="http://stuffwhitepeoplelike.wordpress.com/2008/03/31/stuff-white-people-like-bought-by-target/">Stuff White People Like bought by Target</a></li>
<li><a href="http://blog.catchpole.net/2008/04/strange-imagery-found-in-java-class.html">Jesus found in Java .class file</a></li>
<li><a href="http://mail.google.com/mail/help/customtime/index.html">Gmail Custom Time</a></li>
<li><strong><a href="http://aws.typepad.com/aws/2008/04/is-this-a-bear.html">Amazon&#8217;s DCI (Dog Computer Interface)</a></strong></li>
<li><a href="http://discuss.joelonsoftware.com/default.asp?biz.5.612530">PerfectBingoTablePlanMaker released</a></li>
</ul>
<img src="http://feeds.feedburner.com/~r/Sendalongcom-Blog/~4/262102991" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.juliesoft.com/blog/jon/index.php/2008/04/01/april-fools-roundup/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.juliesoft.com/blog/jon/index.php/2008/04/01/april-fools-roundup/</feedburner:origLink></item>
		<item>
		<title>Amazon EC2 now offers STATIC IPs</title>
		<link>http://feeds.feedburner.com/~r/Sendalongcom-Blog/~3/258979197/</link>
		<comments>http://www.juliesoft.com/blog/jon/index.php/2008/03/27/amazon-ec2-now-offers-static-ips/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 13:30:45 +0000</pubDate>
		<dc:creator>jonchase</dc:creator>
		
		<category><![CDATA[Java &amp; Programming]]></category>

		<guid isPermaLink="false">http://www.juliesoft.com/blog/jon/index.php/2008/03/27/amazon-ec2-now-offers-static-ips/</guid>
		<description><![CDATA[This is great news for any Amazon EC2 (Elastic Compute Cloud) developer - up until this point, hosting web sites on EC2 has been a little tricky due to the fact that EC2 instances used dynamic IPs - making it tough to set up reliable load balancing and failover in the face of ever-changing IP [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.juliesoft.com/blog/jon/wp-content/uploads/2008/03/aws1.gif" class="float-left" alt="Amazon EC2 now offers STATIC IPs" />This is great news for any <a href="http://www.amazon.com/gp/browse.html?node=201590011">Amazon EC2</a> (Elastic Compute Cloud) developer - up until this point, hosting web sites on EC2 has been a little tricky due to the fact that EC2 instances used dynamic IPs - making it tough to set up reliable load balancing and failover in the face of ever-changing IP addresses.</p>
<p>From the email I just received (below), it looks like this may no longer be an issue.  Also in the email is the announcement of  Availability Zones - groups of EC2 instances in different physical locations and networks, which will help ensure that if your site goes down in one availability zone, your instances in another zone won&#8217;t be affected.</p>
<p>Here&#8217;s the email:</p>
<blockquote><p> Dear Amazon EC2 Developer,<br />
This is a quick note to let you know about some exciting changes with Amazon EC2. We are happy to announce two significant new features - <a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1346">Elastic IP Addresses</a> and <a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1347">Availability Zones</a> - which help you to run reliable web sites and other applications within Amazon EC2.</p>
<p><a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1346">Elastic IP Addresses</a> are static IP addresses designed for dynamic cloud computing, and now make it easy to host web sites, web services and other online applications in Amazon EC2. Elastic IP addresses are associated with your AWS account, not with your instances, and can be programmatically mapped to any of your instances. This allows you to easily recover from instance and other failures while presenting your users with a static IP address.</p>
<p><a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1347">Availability Zones</a> give you the ability to easily and inexpensively operate a highly available internet application. Each Amazon EC2 Availability Zone is a distinct location that is engineered to be insulated from failures in other Availability Zones. Previously, only very large companies had the scale to be able to distribute an application across multiple locations, but now it is as easy as changing a parameter in an API call. You can choose to run your application across multiple Availability Zones to be prepared for unexpected events such as power failures or network connectivity issues, or you can place instances in the same Availability Zone to take advantage of free data transfer and the lowest latency communication.</p>
<p>With these two new features, it now easier than ever for you to isolate your application from common failure scenarios and host high availability web sites in Amazon EC2.</p>
<p>For more information on how to best leverage this new functionality, please see our Feature Guides for <a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1346">Elastic IP Addresses</a> and <a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1347">Availability Zones</a>.</p>
<p>Sincerely,<br />
The Amazon EC2 Team</p></blockquote>
<img src="http://feeds.feedburner.com/~r/Sendalongcom-Blog/~4/258979197" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.juliesoft.com/blog/jon/index.php/2008/03/27/amazon-ec2-now-offers-static-ips/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.juliesoft.com/blog/jon/index.php/2008/03/27/amazon-ec2-now-offers-static-ips/</feedburner:origLink></item>
		<item>
		<title>Programming with Amazon’s Web Services?  Buy this book.</title>
		<link>http://feeds.feedburner.com/~r/Sendalongcom-Blog/~3/258363415/</link>
		<comments>http://www.juliesoft.com/blog/jon/index.php/2008/03/26/programming-with-amazons-web-services-buy-this-book/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 15:05:12 +0000</pubDate>
		<dc:creator>jonchase</dc:creator>
		
		<category><![CDATA[Java &amp; Programming]]></category>

		<guid isPermaLink="false">http://www.juliesoft.com/blog/jon/index.php/2008/03/26/programming-with-amazons-web-services-buy-this-book/</guid>
		<description><![CDATA[I know I&#8217;m going to, just for the cool fish on the cover and the unbelievably long title: Programming Amazon Web Services: S3, EC2, SQS, FPS, and SimpleDB.
Via Amazon Web Services Blog.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/Programming-Amazon-Web-Services-SimpleDB/dp/0596515812/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1206535364&amp;sr=8-1"><img src="http://www.juliesoft.com/blog/jon/wp-content/uploads/2008/03/aws.gif" class="float-left" alt="aws.gif" /></a>I know I&#8217;m going to, just for the cool fish on the cover and the unbelievably long title: <a href="http://www.amazon.com/Programming-Amazon-Web-Services-SimpleDB/dp/0596515812/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1206535364&amp;sr=8-1">Programming Amazon Web Services: S3, EC2, SQS, FPS, and SimpleDB</a>.</p>
<p>Via <a href="http://aws.typepad.com/aws/2008/03/programming-ama.html">Amazon Web Services Blog</a>.</p>
<img src="http://feeds.feedburner.com/~r/Sendalongcom-Blog/~4/258363415" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.juliesoft.com/blog/jon/index.php/2008/03/26/programming-with-amazons-web-services-buy-this-book/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.juliesoft.com/blog/jon/index.php/2008/03/26/programming-with-amazons-web-services-buy-this-book/</feedburner:origLink></item>
		<item>
		<title>Revisit Your Design Ideas</title>
		<link>http://feeds.feedburner.com/~r/Sendalongcom-Blog/~3/257397749/</link>
		<comments>http://www.juliesoft.com/blog/jon/index.php/2008/03/24/revisit-your-design-ideas/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 03:09:22 +0000</pubDate>
		<dc:creator>jonchase</dc:creator>
		
		<category><![CDATA[SendAlong]]></category>

		<guid isPermaLink="false">http://www.juliesoft.com/blog/jon/index.php/2008/03/24/revisit-your-design-ideas/</guid>
		<description><![CDATA[Sometimes (a lot of times) I&#8217;ll design a screen or some code and I think &#8220;not bad&#8221;.  Since it&#8217;s not bad, it gets my approval and gets moved into production.   Thankfully, I often realize that it&#8217;s not a bad idea to revisit those designs and see if there&#8217;s something I can improve [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes (a lot of times) I&#8217;ll design a screen or some code and I think &#8220;not bad&#8221;.  Since it&#8217;s not bad, it gets my approval and gets moved <a href="http://www.sendalong.com">into production</a>.   Thankfully, I often realize that it&#8217;s not a bad idea to revisit those designs and see if there&#8217;s something I can improve upon.  That just happened (Ricky Bobby, anyone?) with <a href="http://www.sendalong.com">SendAlong</a>&#8217;s upgrade confirmation page.  The differences were drastic enough that I figured they merited mention, if only so that you can learn from my mistakes.</p>
<p>Here&#8217;s the original &#8220;confirm upgrade&#8221; screen:</p>
<p><img src="http://www.juliesoft.com/blog/jon/wp-content/uploads/2008/03/upgrade-old.jpg" alt="upgrade-old.jpg" /></p>
<p>I look at the above screen now and it&#8217;s painful – the design is horrible.  Let&#8217;s think about the goals for this screen:</p>
<ul>
<li>Tell the user what to expect (how much do I have to pay?).</li>
<li>Reassure the user that they&#8217;re going to get what they expect (clear information, no surprises).</li>
<li>Encourage the user to complete the process (click the button).</li>
</ul>
<p>I think the above screen does a pretty lousy job of achieving those goals.  Here&#8217;s why:</p>
<ul>
<li>It&#8217;s crowded – there&#8217;s too much going on for the user to be able to easily focus – buttons, text, blah blah blah…</li>
<li>It&#8217;s too general – I used an existing template for this page – but sometimes certain pages can benefit from a bit of extra attention.</li>
</ul>
<p>If you&#8217;re a designer, I&#8217;m sure you see more problems that just those two.  My poor naïve eyes only see the most surface level problems – but the good news is that surface level usually catches 80% of the problems, as seen in the new screen below…</p>
<p><img src="http://www.juliesoft.com/blog/jon/wp-content/uploads/2008/03/upgrade-new.jpg" alt="upgrade-new.jpg" /></p>
<p>I like this page a lot more.  Can you see the difference? It just works better, it&#8217;s more focused, and it&#8217;s tailored specifically to the goal:</p>
<ul>
<li>There&#8217;s a lot less information – the user can focus on the task at hand.</li>
<li>The user knows exactly what to expect – the prices are printed in big bold font, not in small print.</li>
<li>All of the extra navigation has been removed – this helps direct (&#8221;funnel&#8221;) the user to the goal.</li>
</ul>
<p>Not bad for a little bit of work.  Here&#8217;s the same screen before and after, but in this scenario the user has already entered his payment information and all that is needed to complete the upgrade process is clicking the button.  Which of the below screens do you think will result in more upgrades?</p>
<p><img src="http://www.juliesoft.com/blog/jon/wp-content/uploads/2008/03/upgrade2-old.jpg" alt="upgrade2-old.jpg" /></p>
<p><img src="http://www.juliesoft.com/blog/jon/wp-content/uploads/2008/03/upgrade2-new.jpg" alt="upgrade2-new.jpg" /></p>
<p>Do you have any other suggestions for improvements?</p>
<img src="http://feeds.feedburner.com/~r/Sendalongcom-Blog/~4/257397749" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.juliesoft.com/blog/jon/index.php/2008/03/24/revisit-your-design-ideas/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.juliesoft.com/blog/jon/index.php/2008/03/24/revisit-your-design-ideas/</feedburner:origLink></item>
		<item>
		<title>Groovy Micro Benchmark Revisited (Groovy is fast…)</title>
		<link>http://feeds.feedburner.com/~r/Sendalongcom-Blog/~3/250137605/</link>
		<comments>http://www.juliesoft.com/blog/jon/index.php/2008/03/12/groovy-micro-benchmark-revisited-groovy-is-fast/#comments</comments>
		<pubDate>Wed, 12 Mar 2008 12:27:47 +0000</pubDate>
		<dc:creator>jonchase</dc:creator>
		
		<category><![CDATA[Groovy]]></category>

		<category><![CDATA[Java &amp; Programming]]></category>

		<guid isPermaLink="false">http://www.juliesoft.com/blog/jon/index.php/2008/03/12/groovy-micro-benchmark-revisited-groovy-is-fast/</guid>
		<description><![CDATA[Alright, no more Groovy posts for a while after this one.  In fact, I hadn&#8217;t planned on posting about this again, but I thought it was worth mention.
From the last post, we saw the following results for parsing an XML dataset with about 450 simple elements in it 1,000 times:

Java: ~9 seconds
Groovy: ~28 seconds [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.juliesoft.com/blog/jon/wp-content/uploads/2008/03/medium11.png" class="float-left" alt="Back again…" />Alright, no more Groovy posts for a while after this one.  In fact, I hadn&#8217;t planned on posting about this again, but I thought it was worth mention.</p>
<p>From <a href="http://www.juliesoft.com/blog/jon/index.php/2008/03/10/groovy-micro-benchmark/">the last post</a>, we saw the following results for parsing an XML dataset with about 450 simple elements in it 1,000 times:</p>
<ul>
<li>Java: ~9 seconds</li>
<li>Groovy: ~28 seconds (with new results below&#8230;)</li>
</ul>
<p>I decided to rerun the test for Groovy because of <a href="http://www.juliesoft.com/blog/jon/index.php/2008/03/09/groovy-is-coming/">a comment John Wilson left on the first post</a>.  He suggested this more concise syntax for the Groovy implementation:</p>
<p><img src="http://www.juliesoft.com/blog/jon/wp-content/uploads/2008/03/sshot-2.png" alt="New Groovy code" /></p>
<p>I reran the same benchmark, and I was very, very surprised at the results:</p>
<ul>
<li>Java: ~9 seconds</li>
<li><strong>Groovy: </strong><strike>~28</strike><strong> </strong><strong>~9 seconds</strong></li>
</ul>
<p>All I can say is wow.  I&#8217;m not sure what is happening differently, but I&#8217;m happy:)</p>
<p>Any ideas what was taking up so much time in <a href="http://www.juliesoft.com/blog/jon/index.php/2008/03/09/groovy-is-coming/">the original Groovy implementation</a>?</p>
<img src="http://feeds.feedburner.com/~r/Sendalongcom-Blog/~4/250137605" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.juliesoft.com/blog/jon/index.php/2008/03/12/groovy-micro-benchmark-revisited-groovy-is-fast/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.juliesoft.com/blog/jon/index.php/2008/03/12/groovy-micro-benchmark-revisited-groovy-is-fast/</feedburner:origLink></item>
		<item>
		<title>Groovy Micro Benchmark</title>
		<link>http://feeds.feedburner.com/~r/Sendalongcom-Blog/~3/249270304/</link>
		<comments>http://www.juliesoft.com/blog/jon/index.php/2008/03/10/groovy-micro-benchmark/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 03:57:07 +0000</pubDate>
		<dc:creator>jonchase</dc:creator>
		
		<category><![CDATA[Groovy]]></category>

		<category><![CDATA[Java &amp; Programming]]></category>

		<guid isPermaLink="false">http://www.juliesoft.com/blog/jon/index.php/2008/03/10/groovy-micro-benchmark/</guid>
		<description><![CDATA[Following on from the previous post (and here&#8217;s the last post), here&#8217;s a very quick and dirty, completely unscientific, prone to error, your mileage may vary micro benchmark I did using the code in the last post.
Date set: a String containing roughly 450 XML elements in the form &#60;contact name=&#8221;some name&#8221; email=&#8221;some email&#8221; /&#62;
Methodology: I [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.juliesoft.com/blog/jon/wp-content/uploads/2008/03/medium1.png" class="float-left" alt="Groovy Micro Benchmark" />Following on from <a href="http://www.juliesoft.com/blog/jon/index.php/2008/03/09/groovy-is-coming/">the previous post</a> (and here&#8217;s <a href="http://www.juliesoft.com/blog/jon/index.php/2008/03/12/groovy-micro-benchmark-revisited-groovy-is-fast/">the last post</a>), here&#8217;s a very quick and dirty, completely unscientific, prone to error, your mileage may vary micro benchmark I did using the code in <a href="http://www.juliesoft.com/blog/jon/index.php/2008/03/09/groovy-is-coming/">the last post</a>.</p>
<p>Date set: a String containing roughly 450 XML elements in the form &lt;contact name=&#8221;some name&#8221; email=&#8221;some email&#8221; /&gt;</p>
<p>Methodology: I wrote driver programs in both Groovy and Java to run the test.  Here&#8217;s the one from Java (the Groovy one is similar):</p>
<p><img src="http://www.juliesoft.com/blog/jon/wp-content/uploads/2008/03/driver.png" alt="Driver program" /></p>
<p>As you can see from the code, very quick and dirty.  The test iterates 1,000 times and then prints out the time consumed.</p>
<p>I ran the test several times on my laptop (2Ghz, 2GB ram, blah blah blah it doesn&#8217;t really matter here) and here are the general results for total execution time for 1,000 iterations:</p>
<ul>
<li>Java: ~9 seconds</li>
<li>Groovy: ~28 seconds</li>
</ul>
<p>Quite a difference.  I suspect part of that has to do with my inefficiency as a Groovy programmer.  Certainly though, you can see that there is measurable difference in performance.  I wonder what type of XML parser the Groovy implementation uses behind the scenes. The Java implementation uses SAX.  If Groovy were using DOM with XmlSlurper, I could see that making a very large difference.  Any experts care to chime in?</p>
<p>Now, before you decide to write off Groovy, another metric of interest might be seconds required to develop the code.  It was something like this:</p>
<ul>
<li>Java: ~ 1,800 seconds - roughly 30 minutes. (First I had to decide what XML library I was going to use - JDOM?  Dom4J? Xstream? Then I had to search and search for documentation on JDOM&#8230;and of course I had to download JDOM, well, that is, I have to add JDOM as a dependency in my Maven pom.xml (after I looked up the current version of JDOM at the ibiblio repo), and rebuild my Eclipse classpath with the new JAR on it, and then figure out how to use the JDOM API&#8230;) I&#8217;ve been writing Java for about 6 years, so I consider myself fairly adept.</li>
<li>Groovy: ~300 seconds - roughly 5 minutes.  (I had to find the page on the Groovy wiki that explained how to process XML.)  I&#8217;ve been writing Groovy for less than 2 weeks.</li>
</ul>
<p>So there you have it, my quick and dirty, completely unscientific, prone to error, your mileage may vary micro benchmark.</p>
<p>I&#8217;m not one to reserve judgment, so here goes:</p>
<ul>
<li>First, this is just one example.  Comprehensively measuring performance is a complex thing, and this benchmark doesn&#8217;t claim to do that.  There is no such thing as saying &#8220;Groovy is slow&#8221;.</li>
<li>Second, I&#8217;d gladly trade the frustration and time requirement of the Java solution for the easier to read and write Groovy solution.  Servers are cheap.  I&#8217;ll almost always choose to pay the price in $$$ (which I can always get more of) rather than time (which I can never have enough of).</li>
</ul>
<p>Update: here&#8217;s the <a href="http://www.juliesoft.com/blog/jon/index.php/2008/03/12/groovy-micro-benchmark-revisited-groovy-is-fast/">final post</a> in this series.</p>
<img src="http://feeds.feedburner.com/~r/Sendalongcom-Blog/~4/249270304" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.juliesoft.com/blog/jon/index.php/2008/03/10/groovy-micro-benchmark/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.juliesoft.com/blog/jon/index.php/2008/03/10/groovy-micro-benchmark/</feedburner:origLink></item>
		<item>
		<title>Groovy is Coming…</title>
		<link>http://feeds.feedburner.com/~r/Sendalongcom-Blog/~3/248540094/</link>
		<comments>http://www.juliesoft.com/blog/jon/index.php/2008/03/09/groovy-is-coming/#comments</comments>
		<pubDate>Sun, 09 Mar 2008 22:35:38 +0000</pubDate>
		<dc:creator>jonchase</dc:creator>
		
		<category><![CDATA[Groovy]]></category>

		<category><![CDATA[Java &amp; Programming]]></category>

		<guid isPermaLink="false">http://www.juliesoft.com/blog/jon/index.php/2008/03/09/groovy-is-coming/</guid>
		<description><![CDATA[I&#8217;ve been trying to slowly integrate some Groovy into my normal Java coding.  Here&#8217;s just one of the reasons why:

Java code:

Groovy code:

Note that this reduction in complexity happens almost everywhere I choose to use Groovy over Java.  Of course there are myriad other ways I could have done this in Java (I even [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.juliesoft.com/blog/jon/wp-content/uploads/2008/03/medium.png" class="float-left" alt="Here comes Groovy" />I&#8217;ve been trying to slowly integrate some <a href="http://groovy.codehaus.org/">Groovy</a> into my normal Java coding.  Here&#8217;s just one of the reasons why:</p>
<p><br style="clear: both" /></p>
<p>Java code:<br />
<img src="http://www.juliesoft.com/blog/jon/wp-content/uploads/2008/03/java1.png" alt="The Java code" /></p>
<p>Groovy code:<br />
<img src="http://www.juliesoft.com/blog/jon/wp-content/uploads/2008/03/groovy.png" alt="The Groovy code" /></p>
<p>Note that this reduction in complexity happens almost everywhere I choose to use Groovy over Java.  Of course there are myriad other ways I could have done this in Java (I even tried Xstream but I couldn&#8217;t figure part out so I gave up).  The point is that the first way I chose to do it in Groovy was natural, expressive, and easy.</p>
<p>Groovy is not going away any time soon.  If you&#8217;re a Java developer and wish you could move faster, <a href="http://www.amazon.com/Groovy-Action-Dierk-Koenig/dp/1932394842/ref=pd_bbs_sr_1_s9_rk?ie=UTF8&amp;s=books&amp;s9r=8afd079f0eefbbe9010f873c3e10073b&amp;itemPosition=1&amp;qid=1205101426&amp;sr=8-1">buy the book</a>, read it, and then start integrating Groovy into your daily programming a little at a time. You&#8217;ll be happy you did.</p>
<p>And don&#8217;t even get me started on <a href="http://grails.org/">Grails</a>&#8230;</p>
<p><strong>Update:</strong> here are the <a href="http://www.juliesoft.com/blog/jon/index.php/2008/03/10/groovy-micro-benchmark/">second</a> and <a href="http://www.juliesoft.com/blog/jon/index.php/2008/03/12/groovy-micro-benchmark-revisited-groovy-is-fast/">third</a> posts in this series (benchmarks included).</p>
<img src="http://feeds.feedburner.com/~r/Sendalongcom-Blog/~4/248540094" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.juliesoft.com/blog/jon/index.php/2008/03/09/groovy-is-coming/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.juliesoft.com/blog/jon/index.php/2008/03/09/groovy-is-coming/</feedburner:origLink></item>
		<item>
		<title>SendAlong got picked up</title>
		<link>http://feeds.feedburner.com/~r/Sendalongcom-Blog/~3/243100449/</link>
		<comments>http://www.juliesoft.com/blog/jon/index.php/2008/02/28/sendalong-got-picked-up/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 04:05:31 +0000</pubDate>
		<dc:creator>jonchase</dc:creator>
		
		<category><![CDATA[SendAlong]]></category>

		<guid isPermaLink="false">http://www.juliesoft.com/blog/jon/index.php/2008/02/28/sendalong-got-picked-up/</guid>
		<description><![CDATA[Today was a very exciting day for SendAlong - it&#8217;s release was picked up by several sites (mostly the US and parts of Europe).  I was absolutely blown away this morning when I checked the system and saw the number of sign ups - let&#8217;s just say it was a bit more than I [...]]]></description>
			<content:encoded><![CDATA[<p>Today was a very exciting day for SendAlong - it&#8217;s release was picked up by several sites (mostly the US and parts of Europe).  I was absolutely blown away this morning when I checked the system and saw the number of sign ups - let&#8217;s just say it was a bit more than I expected! If you&#8217;re interested, I posted about some of the reviews on <a href="http://www.sendalong.com/blog/index.php/2008/02/28/gracias-grazie-merci-vielen-dank-a-great-day-for-sendalong/">SendAlong&#8217;s blog</a>.</p>
<p>The bad news is that I might have to purchase a paid plan for <a href="http://www.crazyegg.com">CrazyEgg.com</a> -  I&#8217;ve been using the Free plan which records up to 5,000 visits per month.  SendAlong&#8217;s gone through that many visitors since Monday alone!  That means CrazyEgg has stopped recording statistics for me for the time being.  The month rollover will happen on Saturday, so I think I&#8217;ll stick it out on the Free plan for a bit more, but CrazyEgg is definitely a service I can&#8217;t live with out, so I&#8217;ll probably wind up upgrading (no, they&#8217;re not paying me for saying that!).</p>
<p>I can&#8217;t describe how hard it was to make myself *not* check my email throughout the day as I worked.  Talk about an exercise in self control:).</p>
<p>Ok, back to work.  Looks like it might be a late night.</p>
<p>One more thing worth noting - I actually just pushed a new version out to the servers.  Mainly just some UI tweaks and small bug fixes.  Let me know if you like the <a href="http://www.sendalong.com/tour.html">new tour page</a> and <a href="http://www.sendalong.com">home page</a> better.  And if you haven&#8217;t <a href="http://www.sendalong.com/plans.html">signed up for a free account</a> yet to try it out, you really should:).</p>
<img src="http://feeds.feedburner.com/~r/Sendalongcom-Blog/~4/243100449" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.juliesoft.com/blog/jon/index.php/2008/02/28/sendalong-got-picked-up/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.juliesoft.com/blog/jon/index.php/2008/02/28/sendalong-got-picked-up/</feedburner:origLink></item>
		<item>
		<title>SendAlong 1.0 is out!  More info coming soon…</title>
		<link>http://feeds.feedburner.com/~r/Sendalongcom-Blog/~3/240385263/</link>
		<comments>http://www.juliesoft.com/blog/jon/index.php/2008/02/24/sendalong-10-is-out-more-info-coming-soon/#comments</comments>
		<pubDate>Sun, 24 Feb 2008 14:39:54 +0000</pubDate>
		<dc:creator>jonchase</dc:creator>
		
		<category><![CDATA[SendAlong]]></category>

		<guid isPermaLink="false">http://www.juliesoft.com/blog/jon/index.php/2008/02/24/sendalong-10-is-out-more-info-coming-soon/</guid>
		<description><![CDATA[Just a quick bit of news that makes me very, very happy to be able to announce:
I&#8217;ve officially released SendAlong 1.0!
It&#8217;s been a labor of love and&#8230;labor, but it&#8217;s been worth it.
I&#8217;ve got so many things planned for SendAlong - it&#8217;s exciting that I&#8217;ve finally got 1.0 out the door so that I can refocus [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick bit of news that makes me very, very happy to be able to announce:</p>
<p>I&#8217;ve <a href="http://www.sendalong.com/blog/index.php/2008/02/24/sendalong-officially-released/" title="SendAlong released!">officially released</a> SendAlong 1.0!</p>
<p>It&#8217;s been a labor of love and&#8230;labor, but it&#8217;s been worth it.</p>
<p>I&#8217;ve got so many things planned for SendAlong - it&#8217;s exciting that I&#8217;ve finally got 1.0 out the door so that I can refocus and start implementing what so many people have been asking for.</p>
<p>Oh, I&#8217;m not sure if I mentioned this before, but SendAlong is built primarily on <a href="http://www.amazon.com/gp/browse.html?node=16427261" title="S3">Amazon&#8217;s S3</a> and <a href="http://www.amazon.com/gp/browse.html?node=201590011" title="EC2">EC2</a> - they provide a very secure, reliable, and scalable architecture that&#8217;s suited quite niciely for what SendAlong is providing.   I can&#8217;t *not* mention <a href="http://eapps.com/" title="eapps rules">eapps.com</a> as well, though - part of SendAlong is hosted on there as well, and their support with getting things set up has been invaluable.</p>
<img src="http://feeds.feedburner.com/~r/Sendalongcom-Blog/~4/240385263" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.juliesoft.com/blog/jon/index.php/2008/02/24/sendalong-10-is-out-more-info-coming-soon/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.juliesoft.com/blog/jon/index.php/2008/02/24/sendalong-10-is-out-more-info-coming-soon/</feedburner:origLink></item>
	</channel>
</rss>
