<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/atom10full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en-US">
  <title>Out of my mind...</title>
  <subtitle type="html">Frederic Jean's Random Thoughts</subtitle>
  <id>tag:blog.fredjean.net,2005:Typo</id>
  <generator version="4.0" uri="http://www.typosphere.org">Typo</generator>
  
  <link href="http://blog.fredjean.net" rel="alternate" type="text/html" />
  <updated>2008-10-30T05:00:00+00:00</updated>
  <geo:lat>39.929566</geo:lat><geo:long>-104.949317</geo:long><logo>http://creativecommons.org/images/public/somerights20.gif</logo><xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /><link rel="self" href="http://blog.fredjean.net/xml/atom/feed.xml" type="application/atom+xml" /><feedburner:emailServiceId>620071</feedburner:emailServiceId><feedburner:feedburnerHostname>http://www.feedburner.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Fblog.fredjean.net%2Fxml%2Fatom%2Ffeed.xml" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Fblog.fredjean.net%2Fxml%2Fatom%2Ffeed.xml" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Fblog.fredjean.net%2Fxml%2Fatom%2Ffeed.xml" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.rojo.com/add-subscription?resource=http%3A%2F%2Fblog.fredjean.net%2Fxml%2Fatom%2Ffeed.xml" src="http://blog.rojo.com/RojoWideRed.gif">Subscribe with Rojo</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://blog.fredjean.net/xml/atom/feed.xml" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Fblog.fredjean.net%2Fxml%2Fatom%2Ffeed.xml" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Fblog.fredjean.net%2Fxml%2Fatom%2Ffeed.xml" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Fblog.fredjean.net%2Fxml%2Fatom%2Ffeed.xml" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><entry><title type="text">Links for 2008-10-29 [del.icio.us]</title><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/fredjean/outofmymind/~3/436564091/fredjean" /><updated>2008-10-30T00:00:00-05:00</updated><id>http://del.icio.us/fredjean#2008-10-29</id><summary type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blog.slickedit.com/?p=250"&gt;Too Busy Bailing to Plug the Leak &amp;raquo; &amp;ldquo;Hello World&amp;rdquo; - The SlickEdit Developer Blog&lt;/a&gt;&lt;br/&gt;
Discusses one of the reasons why projects fail. Essentially, the people on the project are too busy trying to keep the project moving to address the root causes that are leading to failure.&lt;/li&gt;
&lt;/ul&gt;</summary><content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blog.slickedit.com/?p=250"&gt;Too Busy Bailing to Plug the Leak &amp;raquo; &amp;ldquo;Hello World&amp;rdquo; - The SlickEdit Developer Blog&lt;/a&gt;&lt;br/&gt;
Discusses one of the reasons why projects fail. Essentially, the people on the project are too busy trying to keep the project moving to address the root causes that are leading to failure.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/fredjean/outofmymind/~4/436564091" height="1" width="1"/&gt;</content><feedburner:origLink>http://del.icio.us/fredjean#2008-10-29</feedburner:origLink></entry><entry><title type="text">Links for 2008-10-27 [del.icio.us]</title><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/fredjean/outofmymind/~3/434343581/fredjean" /><updated>2008-10-28T00:00:00-05:00</updated><id>http://del.icio.us/fredjean#2008-10-27</id><summary type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://see.stanford.edu/"&gt;Stanford School of Engineering&lt;/a&gt;&lt;br/&gt;
Stanford offering some of it&amp;#039;s engineering classes for free.&lt;/li&gt;
&lt;/ul&gt;</summary><content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://see.stanford.edu/"&gt;Stanford School of Engineering&lt;/a&gt;&lt;br/&gt;
Stanford offering some of it&amp;#039;s engineering classes for free.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/fredjean/outofmymind/~4/434343581" height="1" width="1"/&gt;</content><feedburner:origLink>http://del.icio.us/fredjean#2008-10-27</feedburner:origLink></entry><entry><title type="text">Links for 2008-10-24 [del.icio.us]</title><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/fredjean/outofmymind/~3/431404013/fredjean" /><updated>2008-10-25T00:00:00-05:00</updated><id>http://del.icio.us/fredjean#2008-10-24</id><summary type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.tbray.org/ongoing/When/200x/2008/10/24/No-Tech-Religion"&gt;Branch Out&lt;/a&gt;&lt;br/&gt;
Advice on how to maximize a developer&amp;#039;s chance to survive these troubled times&lt;/li&gt;
&lt;/ul&gt;</summary><content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.tbray.org/ongoing/When/200x/2008/10/24/No-Tech-Religion"&gt;Branch Out&lt;/a&gt;&lt;br/&gt;
Advice on how to maximize a developer&amp;#039;s chance to survive these troubled times&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/fredjean/outofmymind/~4/431404013" height="1" width="1"/&gt;</content><feedburner:origLink>http://del.icio.us/fredjean#2008-10-24</feedburner:origLink></entry><entry><title type="text">Links for 2008-10-23 [del.icio.us]</title><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/fredjean/outofmymind/~3/430354938/fredjean" /><updated>2008-10-24T00:00:00-05:00</updated><id>http://del.icio.us/fredjean#2008-10-23</id><summary type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.allthingsdistributed.com/2008/10/using_the_cloud_to_build_highl.html"&gt;Using the Cloud to build highly-efficient systems - All Things Distributed&lt;/a&gt;&lt;br/&gt;
Amazon AWS and EC2 become even more compeling with the addition of monitoring, load balancing and automated scaling. Very good things happening at Amazon&lt;/li&gt;
&lt;/ul&gt;</summary><content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.allthingsdistributed.com/2008/10/using_the_cloud_to_build_highl.html"&gt;Using the Cloud to build highly-efficient systems - All Things Distributed&lt;/a&gt;&lt;br/&gt;
Amazon AWS and EC2 become even more compeling with the addition of monitoring, load balancing and automated scaling. Very good things happening at Amazon&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/fredjean/outofmymind/~4/430354938" height="1" width="1"/&gt;</content><feedburner:origLink>http://del.icio.us/fredjean#2008-10-23</feedburner:origLink></entry><entry>
    <author>
      <name>Frederic Jean</name>
      <email>fred@fredjean.net</email>
    </author>
    <id>urn:uuid:142245df-8497-4e2b-b2f8-fbdcc300ebdd</id>
    <published>2008-10-19T14:36:13+00:00</published>
    <updated>2008-10-19T21:37:08+00:00</updated>
    <title type="html">Powell's Endorsement of Obama</title>
    <link href="http://feeds.feedburner.com/~r/fredjean/outofmymind/~3/425801057/powells-endorsement-of-obama" rel="alternate" type="text/html" />
    <category term="personal" scheme="http://blog.fredjean.net/articles/category/personal" label="Personal" />
    <category term="politics" scheme="http://blog.fredjean.net/articles/tag/politics" />
    <category term="elections" scheme="http://blog.fredjean.net/articles/tag/elections" />
    <category term="personal" scheme="http://blog.fredjean.net/articles/tag/personal" />
    <summary type="html">&lt;p&gt;I find this year's election very interesting as a Canadian living in Colorado. I am merely a spectator since I have yet to become an American citizen. Still, I do see this as a pivotal moment in the history of this nation. Americans get to decide what direction they want this country to take.&lt;/p&gt;
&lt;p&gt;This morning, Colin Powell publicly endorsed Barack Obama. This in itself is an event in itself. He took time to explain the rationale behind his decision to vote for Obama on Meet the Press on MSNBC.com. Take a few moments to listen through the interview if you haven't already.&lt;/p&gt;
&lt;p&gt;&lt;iframe height="339" width="425" src="http://www.msnbc.msn.com/id/22425001/vp/#" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;His explanation mirrors in many ways my impression of the campaign run by both candidates. It is a thought through, mindful exposition of why Obama is the better choice for President of the United States of America. Powell's rationale is very powerful and in many confirmed why I would vote for Obama if I could.&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;I find this year's election very interesting as a Canadian living in Colorado. I am merely a spectator since I have yet to become an American citizen. Still, I do see this as a pivotal moment in the history of this nation. Americans get to decide what direction they want this country to take.&lt;/p&gt;
&lt;p&gt;This morning, Colin Powell publicly endorsed Barack Obama. This in itself is an event in itself. He took time to explain the rationale behind his decision to vote for Obama on Meet the Press on MSNBC.com. Take a few moments to listen through the interview if you haven't already.&lt;/p&gt;
&lt;p&gt;&lt;iframe height="339" width="425" src="http://www.msnbc.msn.com/id/22425001/vp/#" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;His explanation mirrors in many ways my impression of the campaign run by both candidates. It is a thought through, mindful exposition of why Obama is the better choice for President of the United States of America. Powell's rationale is very powerful and in many confirmed why I would vote for Obama if I could.&lt;/p&gt;


&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=oqvhM"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=oqvhM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=S8BVM"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=S8BVM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=tIbrm"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=tIbrm" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=pnVFM"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=pnVFM" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/fredjean/outofmymind/~4/425801057" height="1" width="1"/&gt;</content>
  <link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nc-sa/2.0/" /><feedburner:origLink>http://blog.fredjean.net/articles/2008/10/19/powells-endorsement-of-obama</feedburner:origLink></entry>
  <entry><title type="text">Links for 2008-10-15 [del.icio.us]</title><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/fredjean/outofmymind/~3/422293906/fredjean" /><updated>2008-10-16T00:00:00-05:00</updated><id>http://del.icio.us/fredjean#2008-10-15</id><summary type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blog.red-bean.com/sussman/?p=116"&gt;iBanjo &amp;raquo; Blog Archive &amp;raquo; a Mercurial &amp;ldquo;super client&amp;rdquo;&lt;/a&gt;&lt;br/&gt;
A working Mercurial/SVN bridge. It allows hg users to work against a svn repository.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://push.cx/2008/dont-play-hurt"&gt;Don&amp;rsquo;t Play Hurt - Push cx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</summary><content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blog.red-bean.com/sussman/?p=116"&gt;iBanjo &amp;raquo; Blog Archive &amp;raquo; a Mercurial &amp;ldquo;super client&amp;rdquo;&lt;/a&gt;&lt;br/&gt;
A working Mercurial/SVN bridge. It allows hg users to work against a svn repository.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://push.cx/2008/dont-play-hurt"&gt;Don&amp;rsquo;t Play Hurt - Push cx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/fredjean/outofmymind/~4/422293906" height="1" width="1"/&gt;</content><feedburner:origLink>http://del.icio.us/fredjean#2008-10-15</feedburner:origLink></entry><entry>
    <author>
      <name>Frederic Jean</name>
      <email>fred@fredjean.net</email>
    </author>
    <id>urn:uuid:375a0816-d3f2-4abc-9f5a-48dbc5a7e56c</id>
    <published>2008-10-03T13:49:23+00:00</published>
    <updated>2008-10-03T20:49:41+00:00</updated>
    <title type="html">The Me Meme</title>
    <link href="http://feeds.feedburner.com/~r/fredjean/outofmymind/~3/410598147/the-me-meme" rel="alternate" type="text/html" />
    <category term="personal" scheme="http://blog.fredjean.net/articles/category/personal" label="Personal" />
    <category term="meme" scheme="http://blog.fredjean.net/articles/tag/meme" />
    <summary type="html">&lt;p&gt;Why not...&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;img src="http://blog.fredjean.net/files/200810031448.jpg" width="480" height="360" alt="200810031448.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #333333; font-family: 'Lucida Grande'; font-size: 13px; line-height: 20px;"&gt;Take a picture of yourself right now.&lt;br /&gt;
Don’t change your clothes, don’t fix your hair…just take a picture. (should be super-easy with Photobooth)&lt;br /&gt;
Post that picture with NO editing.&lt;br /&gt;
Post these instructions with your picture.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://blog.obiefernandez.com/content/2008/10/the-me-meme.html" style="color: #FF8000; text-decoration: none;"&gt;blog.obiefernandez.com/content/2008/10/the-me-meme.html&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;Why not...&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;img src="http://blog.fredjean.net/files/200810031448.jpg" width="480" height="360" alt="200810031448.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #333333; font-family: 'Lucida Grande'; font-size: 13px; line-height: 20px;"&gt;Take a picture of yourself right now.&lt;br /&gt;
Don’t change your clothes, don’t fix your hair…just take a picture. (should be super-easy with Photobooth)&lt;br /&gt;
Post that picture with NO editing.&lt;br /&gt;
Post these instructions with your picture.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://blog.obiefernandez.com/content/2008/10/the-me-meme.html" style="color: #FF8000; text-decoration: none;"&gt;blog.obiefernandez.com/content/2008/10/the-me-meme.html&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;


&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=hPxPM"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=hPxPM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=fFpHM"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=fFpHM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=JW4Mm"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=JW4Mm" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=UwgdM"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=UwgdM" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/fredjean/outofmymind/~4/410598147" height="1" width="1"/&gt;</content>
  <link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nc-sa/2.0/" /><feedburner:origLink>http://blog.fredjean.net/articles/2008/10/03/the-me-meme</feedburner:origLink></entry>
  <entry><title type="text">Links for 2008-09-29 [del.icio.us]</title><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/fredjean/outofmymind/~3/406947522/fredjean" /><updated>2008-09-30T00:00:00-05:00</updated><id>http://del.icio.us/fredjean#2008-09-29</id><summary type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://openjdk.java.net/projects/mlvm/jvmlangsummit/agenda.html"&gt;JVM Language Summit &amp;mdash; Agenda&lt;/a&gt;&lt;br/&gt;
Schedule and presentations for the JVM Language summit. Much goodness here.&lt;/li&gt;
&lt;/ul&gt;</summary><content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://openjdk.java.net/projects/mlvm/jvmlangsummit/agenda.html"&gt;JVM Language Summit &amp;mdash; Agenda&lt;/a&gt;&lt;br/&gt;
Schedule and presentations for the JVM Language summit. Much goodness here.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/fredjean/outofmymind/~4/406947522" height="1" width="1"/&gt;</content><feedburner:origLink>http://del.icio.us/fredjean#2008-09-29</feedburner:origLink></entry><entry><title type="text">Links for 2008-09-26 [del.icio.us]</title><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/fredjean/outofmymind/~3/404402477/fredjean" /><updated>2008-09-27T00:00:00-05:00</updated><id>http://del.icio.us/fredjean#2008-09-26</id><summary type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blogs.sun.com/xvmblog/entry/the_gui_or_how_sun"&gt;The BUI, or how Sun learned to stop over-thinking and love the customer - Sun xVM Central&lt;/a&gt;&lt;br/&gt;
This makes me wish I had time to blog about my own work...&lt;/li&gt;
&lt;/ul&gt;</summary><content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blogs.sun.com/xvmblog/entry/the_gui_or_how_sun"&gt;The BUI, or how Sun learned to stop over-thinking and love the customer - Sun xVM Central&lt;/a&gt;&lt;br/&gt;
This makes me wish I had time to blog about my own work...&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/fredjean/outofmymind/~4/404402477" height="1" width="1"/&gt;</content><feedburner:origLink>http://del.icio.us/fredjean#2008-09-26</feedburner:origLink></entry><entry>
    <author>
      <name>Frederic Jean</name>
      <email>fred@fredjean.net</email>
    </author>
    <id>urn:uuid:0b5987f1-3350-4edb-8792-02c574e712d6</id>
    <published>2008-09-24T08:50:50+00:00</published>
    <updated>2008-09-24T15:51:21+00:00</updated>
    <title type="html">Elegant Code</title>
    <link href="http://feeds.feedburner.com/~r/fredjean/outofmymind/~3/401906631/elegant-code" rel="alternate" type="text/html" />
    <category term="agile-development" scheme="http://blog.fredjean.net/articles/category/agile-development" label="Agile Development" />
    <category term="development-process" scheme="http://blog.fredjean.net/articles/category/development-process" label="Development Process" />
    <category term="work" scheme="http://blog.fredjean.net/articles/category/work" label="Work" />
    <category term="web-development" scheme="http://blog.fredjean.net/articles/category/web-development" label="Web Development" />
    <category term="code" scheme="http://blog.fredjean.net/articles/tag/code" />
    <category term="tips" scheme="http://blog.fredjean.net/articles/tag/tips" />
    <category term="architecture" scheme="http://blog.fredjean.net/articles/tag/architecture" />
    <category term="agility" scheme="http://blog.fredjean.net/articles/tag/agility" />
    <summary type="html">&lt;p&gt;I spent some time going through the &lt;a href="http://elegantcode.com/"&gt;Elegant Code&lt;/a&gt; blog after &lt;a href="http://agileartisans.com/main/blog/129"&gt;Jared blogged about his latest interview&lt;/a&gt;. I was very impressed with the content and added it to my subscription list. I strongly recommend it to anyone who are interested in increasing the elegance and quality of the applications they write.&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;I spent some time going through the &lt;a href="http://elegantcode.com/"&gt;Elegant Code&lt;/a&gt; blog after &lt;a href="http://agileartisans.com/main/blog/129"&gt;Jared blogged about his latest interview&lt;/a&gt;. I was very impressed with the content and added it to my subscription list. I strongly recommend it to anyone who are interested in increasing the elegance and quality of the applications they write.&lt;/p&gt;


&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=Xh4rL"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=Xh4rL" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=EBAPL"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=EBAPL" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=xgApl"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=xgApl" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=SELZL"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=SELZL" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/fredjean/outofmymind/~4/401906631" height="1" width="1"/&gt;</content>
  <link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nc-sa/2.0/" /><feedburner:origLink>http://blog.fredjean.net/articles/2008/09/24/elegant-code</feedburner:origLink></entry>
  <entry>
    <author>
      <name>Frederic Jean</name>
      <email>fred@fredjean.net</email>
    </author>
    <id>urn:uuid:c68bf540-030c-461d-865c-4d22ad9c3665</id>
    <published>2008-08-04T12:44:50+00:00</published>
    <updated>2008-08-04T19:44:57+00:00</updated>
    <title type="html">What I Publish</title>
    <link href="http://feeds.feedburner.com/~r/fredjean/outofmymind/~3/355622241/what-i-publish" rel="alternate" type="text/html" />
    <category term="personal" scheme="http://blog.fredjean.net/articles/category/personal" label="Personal" />
    <summary type="html">&lt;a href="http://wordle.net/gallery/wrdl/104942/What_I_Publish" title="Wordle: What I Publish"&gt;&lt;img src="http://wordle.net/thumb/wrdl/104942/What_I_Publish" style="padding:4px;border:1px solid #ddd" width="532" height="399" /&gt;&lt;/a&gt;&lt;br /&gt;
Here is what I publish through this blog's RSS feed. It's not bound to what I actually write...&lt;br /&gt;
This was created using &lt;a href="http://wordle.net/"&gt;Wordle&lt;/a&gt; and is licensed under a Creative Commons By Attribution License.
</summary>
    <content type="html">&lt;a href="http://wordle.net/gallery/wrdl/104942/What_I_Publish" title="Wordle: What I Publish"&gt;&lt;img src="http://wordle.net/thumb/wrdl/104942/What_I_Publish" style="padding:4px;border:1px solid #ddd" width="532" height="399" /&gt;&lt;/a&gt;&lt;br /&gt;
Here is what I publish through this blog's RSS feed. It's not bound to what I actually write...&lt;br /&gt;
This was created using &lt;a href="http://wordle.net/"&gt;Wordle&lt;/a&gt; and is licensed under a Creative Commons By Attribution License.


&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=ucVamK"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=ucVamK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=cB2HmK"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=cB2HmK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=wRc8Mk"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=wRc8Mk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=PLfTyK"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=PLfTyK" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/fredjean/outofmymind/~4/355622241" height="1" width="1"/&gt;</content>
  <link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nc-sa/2.0/" /><feedburner:origLink>http://blog.fredjean.net/articles/2008/08/04/what-i-publish</feedburner:origLink></entry>
  <entry>
    <author>
      <name>Frederic Jean</name>
      <email>fred@fredjean.net</email>
    </author>
    <id>urn:uuid:f2abcfba-3011-48a4-8cd1-6bf987fe503c</id>
    <published>2008-08-04T12:41:39+00:00</published>
    <updated>2008-08-04T19:45:56+00:00</updated>
    <title type="html">What Peeks My Interest</title>
    <link href="http://feeds.feedburner.com/~r/fredjean/outofmymind/~3/355619132/what-peeks-my-interest" rel="alternate" type="text/html" />
    <category term="personal" scheme="http://blog.fredjean.net/articles/category/personal" label="Personal" />
    <summary type="html">&lt;a href="http://wordle.net/gallery/wrdl/104937/What_Peeks_My_Interest" title="Wordle: What Peeks My Interest"&gt;&lt;img src="http://wordle.net/thumb/wrdl/104937/What_Peeks_My_Interest" style="padding:4px;border:1px solid #ddd" width="499" height="374" /&gt;&lt;/a&gt;&lt;br /&gt;
Generated by &lt;a href="http://wordle.net/"&gt;Wordle&lt;/a&gt; and published under a &lt;a href="http://creativecommons.org/licenses/by/3.0/us"&gt;Creative Common "By Attribution" license&lt;/a&gt;.
</summary>
    <content type="html">&lt;a href="http://wordle.net/gallery/wrdl/104937/What_Peeks_My_Interest" title="Wordle: What Peeks My Interest"&gt;&lt;img src="http://wordle.net/thumb/wrdl/104937/What_Peeks_My_Interest" style="padding:4px;border:1px solid #ddd" width="499" height="374" /&gt;&lt;/a&gt;&lt;br /&gt;
Generated by &lt;a href="http://wordle.net/"&gt;Wordle&lt;/a&gt; and published under a &lt;a href="http://creativecommons.org/licenses/by/3.0/us"&gt;Creative Common "By Attribution" license&lt;/a&gt;.


&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=Mc82LK"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=Mc82LK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=Q7NFcK"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=Q7NFcK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=U7ZvLk"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=U7ZvLk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=NqJ4lK"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=NqJ4lK" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/fredjean/outofmymind/~4/355619132" height="1" width="1"/&gt;</content>
  <link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nc-sa/2.0/" /><feedburner:origLink>http://blog.fredjean.net/articles/2008/08/04/what-peeks-my-interest</feedburner:origLink></entry>
  <entry>
    <author>
      <name>Frederic Jean</name>
      <email>fred@fredjean.net</email>
    </author>
    <id>urn:uuid:97bf2e1d-2cfc-4642-ae29-5d98ae42f20b</id>
    <published>2008-07-17T15:09:52+00:00</published>
    <updated>2008-07-17T22:10:14+00:00</updated>
    <title type="html">Back on blogs.sun.com</title>
    <link href="http://feeds.feedburner.com/~r/fredjean/outofmymind/~3/338437147/back-on-blogs-sun-com" rel="alternate" type="text/html" />
    <category term="work" scheme="http://blog.fredjean.net/articles/category/work" label="Work" />
    <category term="general" scheme="http://blog.fredjean.net/articles/category/general" label="General" />
    <summary type="html">&lt;p&gt;I have been back at Sun for almost a year now. Still, there are a few things that I have yet to take care of. Things like unsubscribing from the Sun Alumni Yahoo! group. Or moving my RSS feed back to blogs.sun.com.&lt;/p&gt;
&lt;p&gt;Well, one of these things have been taken care of since I am now syndicated on blogs.sun.com instead of alumni.sun.com. It will be interesting to see how this affects my FeedBurner numbers...&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;I have been back at Sun for almost a year now. Still, there are a few things that I have yet to take care of. Things like unsubscribing from the Sun Alumni Yahoo! group. Or moving my RSS feed back to blogs.sun.com.&lt;/p&gt;
&lt;p&gt;Well, one of these things have been taken care of since I am now syndicated on blogs.sun.com instead of alumni.sun.com. It will be interesting to see how this affects my FeedBurner numbers...&lt;/p&gt;


&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=Eo5tVJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=Eo5tVJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=UcsZJJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=UcsZJJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=3TiOFj"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=3TiOFj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=7NzNBJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=7NzNBJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/fredjean/outofmymind/~4/338437147" height="1" width="1"/&gt;</content>
  <link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nc-sa/2.0/" /><feedburner:origLink>http://blog.fredjean.net/articles/2008/07/17/back-on-blogs-sun-com</feedburner:origLink></entry>
  <entry>
    <author>
      <name>Frederic Jean</name>
      <email>fred@fredjean.net</email>
    </author>
    <id>urn:uuid:485934e9-f597-4816-b2cf-a6a540ee362b</id>
    <published>2008-05-30T10:06:41+00:00</published>
    <updated>2008-05-30T17:14:25+00:00</updated>
    <title type="html">Released REM 1.5.0 for NetBeans 6.x</title>
    <link href="http://feeds.feedburner.com/~r/fredjean/outofmymind/~3/301382996/released-rem-1-5-0-for-netbeans-6-x" rel="alternate" type="text/html" />
    <category term="zk" scheme="http://blog.fredjean.net/articles/category/zk" label="ZK" />
    <category term="rem" scheme="http://blog.fredjean.net/articles/category/rem" label="REM" />
    <category term="ZK" scheme="http://blog.fredjean.net/articles/tag/zk" />
    <category term="REM" scheme="http://blog.fredjean.net/articles/tag/rem" />
    <summary type="html">&lt;p&gt;I just pushed REm 1.5.0 for NetBeans 6.x. This releases adds the following features:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Bundles ZK 3.0.5&lt;/li&gt;

  &lt;li&gt;Provides basic syntax highlighting for ZHTML files.&lt;/li&gt;

  &lt;li&gt;Provides basic syntax highlighting for DSP files.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can download the plugin from &lt;a href="http://downloads.sourceforge.net/rem1/REM-1.5.0.zip?use_mirror=osdn"&gt;Sourceforge.net&lt;/a&gt;.&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;I just pushed REm 1.5.0 for NetBeans 6.x. This releases adds the following features:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Bundles ZK 3.0.5&lt;/li&gt;

  &lt;li&gt;Provides basic syntax highlighting for ZHTML files.&lt;/li&gt;

  &lt;li&gt;Provides basic syntax highlighting for DSP files.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can download the plugin from &lt;a href="http://downloads.sourceforge.net/rem1/REM-1.5.0.zip?use_mirror=osdn"&gt;Sourceforge.net&lt;/a&gt;.&lt;/p&gt;


&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=jlXxEH"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=jlXxEH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=7Lk1SH"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=7Lk1SH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=zNA9Kh"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=zNA9Kh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=d2PuKH"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=d2PuKH" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/fredjean/outofmymind/~4/301382996" height="1" width="1"/&gt;</content>
  <link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nc-sa/2.0/" /><feedburner:origLink>http://blog.fredjean.net/articles/2008/05/30/released-rem-1-5-0-for-netbeans-6-x</feedburner:origLink></entry>
  <entry>
    <author>
      <name>Frederic Jean</name>
      <email>fred@fredjean.net</email>
    </author>
    <id>urn:uuid:51c0a13e-4ea0-4fb4-aa1e-95c86d8a145c</id>
    <published>2008-05-06T17:31:00+00:00</published>
    <updated>2008-05-07T09:37:31+00:00</updated>
    <title type="html">Do You Really Need That Jar File?</title>
    <link href="http://feeds.feedburner.com/~r/fredjean/outofmymind/~3/284794192/do-you-really-need-that-jar-file" rel="alternate" type="text/html" />
    <category term="java" scheme="http://blog.fredjean.net/articles/category/java" label="Java" />
    <category term="Java" scheme="http://blog.fredjean.net/articles/tag/java" />
    <category term="library" scheme="http://blog.fredjean.net/articles/tag/library" />
    <category term="jar" scheme="http://blog.fredjean.net/articles/tag/jar" />
    <summary type="html">&lt;p&gt;Many Java projects accumulate Jar files. Their numbers just grow until you are not exactly sure why or whether a Jar file is still in use. Traditionally, you answer the question of whether you still need a specific file by removing it from the class path, attempting to build your project, deploying it and seeing whether the application works or not.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.linkedin.com/pub/2/035/080" title="Kyrill's profile on Linked In"&gt;Kyrill Alyoshin&lt;/a&gt; has released a beta version of his loosejar project. The goal is to determine what jar files are not being used by your application. It does so by analyzing what classes are loaded by which class loader. The result is a report that is presented via JMX or through the console (once the VM is shutdown).&lt;/p&gt;
&lt;p&gt;The project is hosted on &lt;a href="http://code.google.com/p/loosejar/" title="Loosejar project URL on Google Code."&gt;Google Code&lt;/a&gt; and it is released under the Apache Software License v2.0.&lt;/p&gt;</summary>
    <content type="html">&lt;p&gt;Many Java projects accumulate Jar files. Their numbers just grow until you are not exactly sure why or whether a Jar file is still in use. Traditionally, you answer the question of whether you still need a specific file by removing it from the class path, attempting to build your project, deploying it and seeing whether the application works or not.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.linkedin.com/pub/2/035/080" title="Kyrill's profile on Linked In"&gt;Kyrill Alyoshin&lt;/a&gt; has released a beta version of his loosejar project. The goal is to determine what jar files are not being used by your application. It does so by analyzing what classes are loaded by which class loader. The result is a report that is presented via JMX or through the console (once the VM is shutdown).&lt;/p&gt;
&lt;p&gt;The project is hosted on &lt;a href="http://code.google.com/p/loosejar/" title="Loosejar project URL on Google Code."&gt;Google Code&lt;/a&gt; and it is released under the Apache Software License v2.0.&lt;/p&gt;

&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=xZFAIH"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=xZFAIH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=1m6k2H"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=1m6k2H" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=2IfFHh"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=2IfFHh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=q90zTH"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=q90zTH" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/fredjean/outofmymind/~4/284794192" height="1" width="1"/&gt;</content>
  <link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nc-sa/2.0/" /><feedburner:origLink>http://blog.fredjean.net/articles/2008/05/06/do-you-really-need-that-jar-file</feedburner:origLink></entry>
  <entry>
    <author>
      <name>Frederic Jean</name>
      <email>fred@fredjean.net</email>
    </author>
    <id>urn:uuid:f4b7533a-6d5e-4188-b95e-6747b2903c15</id>
    <published>2008-02-28T06:57:02+00:00</published>
    <updated>2008-02-28T07:02:17+00:00</updated>
    <title type="html">Groovy Fizz and Buzz</title>
    <link href="http://feeds.feedburner.com/~r/fredjean/outofmymind/~3/242555107/groovy-fizz-and-buzz" rel="alternate" type="text/html" />
    <category term="groovy" scheme="http://blog.fredjean.net/articles/category/groovy" label="Groovy" />
    <category term="general" scheme="http://blog.fredjean.net/articles/category/general" label="General" />
    <category term="groovy" scheme="http://blog.fredjean.net/articles/tag/groovy" />
    <category term="programming" scheme="http://blog.fredjean.net/articles/tag/programming" />
    <category term="fizzbuzz" scheme="http://blog.fredjean.net/articles/tag/fizzbuzz" />
    <summary type="html">&lt;p&gt;The &lt;a href="http://tickletux.wordpress.com/2007/01/24/using-fizzbuzz-to-find-developers-who-grok-coding/"&gt;FizzBuzz programming interview&lt;/a&gt; question &lt;a href="http://www.dougalstanton.net/blog/index.php/2008/02/26/my-shame-is-complete"&gt;raised it's head again&lt;/a&gt;. I've managed to resist the temptation to implement it in any languages so far. Until this morning that is...&lt;/p&gt;
&lt;p&gt;So I fired up the Groovy Console and played a little. A nice feature of the console is that it displays a history of the scripts it ran. This allows me to present an evolution of my FizzBuzz program.&lt;/p&gt;
&lt;p&gt;I first started with a rather naive implementation:&lt;/p&gt;
&lt;pre&gt;
(1..100).each { 
  def out = "" 
  if ((it % 3) == 0) { out += "Fizz" } 
  if ((it % 5) == 0) { out += "Buzz" } 
  if (out == "" ) { out = it } 
  println out
}
&lt;/pre&gt;
&lt;p&gt;Not bad for something that I came up with in about 10 minutes. It doesn't really take advantage of Groovy's features though. So I refined it a bit by using the ternary operator:&lt;/p&gt;
&lt;pre&gt;
(1..100).each {
  def out = (it % 3) == 0 ? "Fizz" : ""
  out += (it % 5) == 0 ? "Buzz" : ""
  println (out == "" ? it : out)
}
&lt;/pre&gt;
&lt;p&gt;This is a slight improvement over the first version. I still didn't feel that this was Groovy enough for me. I decided to play with the List collect method. This applies a closure to all items in a collection. The first pass was the following code segment:&lt;/p&gt;
&lt;pre&gt;
println ((1..100).collect {
  def out = (it % 3) == 0 ? "Fizz" : ""
  out += (it % 5) == 0 ? "Buzz" : ""
  out == "" ? it : out
})
&lt;/pre&gt;
&lt;p&gt;This ended up printing the list returned by the collect method. Really close, but not quite what I was hoping for. After all, the challenge is to print the results, not quite a string representation of a list. It was easy then to go from the code above to the code below:&lt;/p&gt;
&lt;pre&gt;
(1..100).collect {
  def out = (it % 3) == 0 ? "Fizz" : ""
  out += (it % 5) == 0 ? "Buzz" : ""
  out ?: it
}.each { println it }
&lt;/pre&gt;
&lt;p&gt;This printed the list just like the first pass. It's definitively Groovier (in my opinion) than the original implementation. It still does fall short of the capabilities of Groovy.&lt;/p&gt;
&lt;p&gt;So here's my final implementation:&lt;/p&gt;
&lt;pre&gt;
(1..100).collect {
     ((it % 3) == 0 ? "Fizz" : "") &amp;lt;&amp;lt; ((it % 5) == 0 ? "Buzz" : "") ?: it
}.each { println it }
&lt;/pre&gt;
&lt;p&gt;This takes full advantage of Groovy's power. It is a little harder to read, which is a downside. It does take full advantage of many of Groovy's powerful features:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;A range to generate the list of numbers to process. Ranges return an iterator that iterates from the start of the range to the end of the range.&lt;/li&gt;

  &lt;li&gt;The collect method which applies a closure to each item in the collection (or iterator) and returns the results as a list.&lt;/li&gt;

  &lt;li&gt;The each method, which iterates through a list and applies a closure to it. It returns the collection that it iterated through.&lt;/li&gt;

  &lt;li&gt;Closures, which are implemented quite well in Groovy.&lt;/li&gt;

  &lt;li&gt;Operator overloading. The &amp;lt;&amp;lt; operator is overloaded on the String class to concatenate two Strings together.&lt;/li&gt;

  &lt;li&gt;The brand new Elvis operator (?:) which returns the alternate value if the expression evaluates to false.&lt;/li&gt;

  &lt;li&gt;Groovy returns the last expression of a block as the result of the block. This includes closures and methods.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I do think that I'll incorporate this question in future interviews. It has quite a few interesting subtleties and implementations that are only rivaled by the Singleton pattern. I guess that the last group of interviewees got it a little easier...&lt;/p&gt;&lt;br /&gt;
</summary>
    <content type="html">&lt;p&gt;The &lt;a href="http://tickletux.wordpress.com/2007/01/24/using-fizzbuzz-to-find-developers-who-grok-coding/"&gt;FizzBuzz programming interview&lt;/a&gt; question &lt;a href="http://www.dougalstanton.net/blog/index.php/2008/02/26/my-shame-is-complete"&gt;raised it's head again&lt;/a&gt;. I've managed to resist the temptation to implement it in any languages so far. Until this morning that is...&lt;/p&gt;
&lt;p&gt;So I fired up the Groovy Console and played a little. A nice feature of the console is that it displays a history of the scripts it ran. This allows me to present an evolution of my FizzBuzz program.&lt;/p&gt;
&lt;p&gt;I first started with a rather naive implementation:&lt;/p&gt;
&lt;pre&gt;
(1..100).each { 
  def out = "" 
  if ((it % 3) == 0) { out += "Fizz" } 
  if ((it % 5) == 0) { out += "Buzz" } 
  if (out == "" ) { out = it } 
  println out
}
&lt;/pre&gt;
&lt;p&gt;Not bad for something that I came up with in about 10 minutes. It doesn't really take advantage of Groovy's features though. So I refined it a bit by using the ternary operator:&lt;/p&gt;
&lt;pre&gt;
(1..100).each {
  def out = (it % 3) == 0 ? "Fizz" : ""
  out += (it % 5) == 0 ? "Buzz" : ""
  println (out == "" ? it : out)
}
&lt;/pre&gt;
&lt;p&gt;This is a slight improvement over the first version. I still didn't feel that this was Groovy enough for me. I decided to play with the List collect method. This applies a closure to all items in a collection. The first pass was the following code segment:&lt;/p&gt;
&lt;pre&gt;
println ((1..100).collect {
  def out = (it % 3) == 0 ? "Fizz" : ""
  out += (it % 5) == 0 ? "Buzz" : ""
  out == "" ? it : out
})
&lt;/pre&gt;
&lt;p&gt;This ended up printing the list returned by the collect method. Really close, but not quite what I was hoping for. After all, the challenge is to print the results, not quite a string representation of a list. It was easy then to go from the code above to the code below:&lt;/p&gt;
&lt;pre&gt;
(1..100).collect {
  def out = (it % 3) == 0 ? "Fizz" : ""
  out += (it % 5) == 0 ? "Buzz" : ""
  out ?: it
}.each { println it }
&lt;/pre&gt;
&lt;p&gt;This printed the list just like the first pass. It's definitively Groovier (in my opinion) than the original implementation. It still does fall short of the capabilities of Groovy.&lt;/p&gt;
&lt;p&gt;So here's my final implementation:&lt;/p&gt;
&lt;pre&gt;
(1..100).collect {
     ((it % 3) == 0 ? "Fizz" : "") &amp;lt;&amp;lt; ((it % 5) == 0 ? "Buzz" : "") ?: it
}.each { println it }
&lt;/pre&gt;
&lt;p&gt;This takes full advantage of Groovy's power. It is a little harder to read, which is a downside. It does take full advantage of many of Groovy's powerful features:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;A range to generate the list of numbers to process. Ranges return an iterator that iterates from the start of the range to the end of the range.&lt;/li&gt;

  &lt;li&gt;The collect method which applies a closure to each item in the collection (or iterator) and returns the results as a list.&lt;/li&gt;

  &lt;li&gt;The each method, which iterates through a list and applies a closure to it. It returns the collection that it iterated through.&lt;/li&gt;

  &lt;li&gt;Closures, which are implemented quite well in Groovy.&lt;/li&gt;

  &lt;li&gt;Operator overloading. The &amp;lt;&amp;lt; operator is overloaded on the String class to concatenate two Strings together.&lt;/li&gt;

  &lt;li&gt;The brand new Elvis operator (?:) which returns the alternate value if the expression evaluates to false.&lt;/li&gt;

  &lt;li&gt;Groovy returns the last expression of a block as the result of the block. This includes closures and methods.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I do think that I'll incorporate this question in future interviews. It has quite a few interesting subtleties and implementations that are only rivaled by the Singleton pattern. I guess that the last group of interviewees got it a little easier...&lt;/p&gt;&lt;br /&gt;


&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=XoryZKE"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=XoryZKE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=gXh8gIE"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=gXh8gIE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=iA7nmZe"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=iA7nmZe" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=XVgSHaE"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=XVgSHaE" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/fredjean/outofmymind/~4/242555107" height="1" width="1"/&gt;</content>
  <link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nc-sa/2.0/" /><feedburner:origLink>http://blog.fredjean.net/articles/2008/02/28/groovy-fizz-and-buzz</feedburner:origLink></entry>
  <entry>
    <author>
      <name>Frederic Jean</name>
      <email>fred@fredjean.net</email>
    </author>
    <id>urn:uuid:4b61e8bf-df33-4fd5-acff-53105394b9dc</id>
    <published>2008-01-20T19:02:13+00:00</published>
    <updated>2008-01-20T19:02:18+00:00</updated>
    <title type="html">New Countertops and Sink</title>
    <link href="http://feeds.feedburner.com/~r/fredjean/outofmymind/~3/219968244/new-countertops-and-sink" rel="alternate" type="text/html" />
    <category term="personal" scheme="http://blog.fredjean.net/articles/category/personal" label="Personal" />
    <category term="general" scheme="http://blog.fredjean.net/articles/category/general" label="General" />
    <category term="kitchen" scheme="http://blog.fredjean.net/articles/tag/kitchen" />
    <category term="countertops" scheme="http://blog.fredjean.net/articles/tag/countertops" />
    <summary type="html">&lt;p style="text-align: center;"&gt;&lt;img src="http://blog.fredjean.net/files/P1200003.jpg" width="480" height="360" alt="Our new kitchen"/&gt;&lt;/p&gt;
&lt;p&gt;Our old countertops where in really bad shape, and it was driving my wife to insanity (or so she claims). We had done everything we could think of to extend their life. We painted them, we glued the old formica in place. But the paint started to chip and the formica didn't stay glued on very long. So we decided that we had to address the countertop situation.&lt;/p&gt;
&lt;p&gt;We remembered passing by a booth at the Flatiron Mall advertising an engineered granite solution by &lt;a href="http://www.granitetransformations.com/" title="Granite Transformations Home Page"&gt;Granite Transformations&lt;/a&gt;. It happens that I occasionally drive by their local franchise. We stopped by on a Saturday afternoon, got some information and scheduled an estimate. We did have a little sticker shock at first so we decided to compare other options before going ahead. It turns out that they were competitive with other options from Lowes and Home Depots.&lt;/p&gt;
&lt;p&gt;I had to take out the sink before the installation could occur, so we decided to upgrade the sink at the same time.&lt;/p&gt;
&lt;p&gt;The installation itself is a two step process. First, a template is built to facilitate the fabrication process. The team showed up right on time for the appointment and created the template. Three days later, they showed up for the installation proper. There was very little demolition involved. The old countertops didn't need to be ripped out since this is an overlay product. They were done right on time for lunch.&lt;/p&gt;
&lt;p&gt;I decided to install the sink myself. It did turn into a bit of a saga, like any home improvement projects that I take on. It was promptly resolved once I found the right feed lines for the sink. Within a few hours the sink and new faucets were installed and tested.&lt;/p&gt;
&lt;p&gt;My lovely wife is simply in love with the new kitchen and raves about it. I love it too and feel a lot of pride in having installed the sink myself. We are already compiling a list of projects to do next. It never really stops...&lt;/p&gt;
</summary>
    <content type="html">&lt;p style="text-align: center;"&gt;&lt;img src="http://blog.fredjean.net/files/P1200003.jpg" width="480" height="360" alt="Our new kitchen"/&gt;&lt;/p&gt;
&lt;p&gt;Our old countertops where in really bad shape, and it was driving my wife to insanity (or so she claims). We had done everything we could think of to extend their life. We painted them, we glued the old formica in place. But the paint started to chip and the formica didn't stay glued on very long. So we decided that we had to address the countertop situation.&lt;/p&gt;
&lt;p&gt;We remembered passing by a booth at the Flatiron Mall advertising an engineered granite solution by &lt;a href="http://www.granitetransformations.com/" title="Granite Transformations Home Page"&gt;Granite Transformations&lt;/a&gt;. It happens that I occasionally drive by their local franchise. We stopped by on a Saturday afternoon, got some information and scheduled an estimate. We did have a little sticker shock at first so we decided to compare other options before going ahead. It turns out that they were competitive with other options from Lowes and Home Depots.&lt;/p&gt;
&lt;p&gt;I had to take out the sink before the installation could occur, so we decided to upgrade the sink at the same time.&lt;/p&gt;
&lt;p&gt;The installation itself is a two step process. First, a template is built to facilitate the fabrication process. The team showed up right on time for the appointment and created the template. Three days later, they showed up for the installation proper. There was very little demolition involved. The old countertops didn't need to be ripped out since this is an overlay product. They were done right on time for lunch.&lt;/p&gt;
&lt;p&gt;I decided to install the sink myself. It did turn into a bit of a saga, like any home improvement projects that I take on. It was promptly resolved once I found the right feed lines for the sink. Within a few hours the sink and new faucets were installed and tested.&lt;/p&gt;
&lt;p&gt;My lovely wife is simply in love with the new kitchen and raves about it. I love it too and feel a lot of pride in having installed the sink myself. We are already compiling a list of projects to do next. It never really stops...&lt;/p&gt;


&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=uD0N0KD"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=uD0N0KD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=79MwnAD"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=79MwnAD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=GqKUBwd"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=GqKUBwd" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/fredjean/outofmymind?a=X7clabD"&gt;&lt;img src="http://feeds.feedburner.com/~f/fredjean/outofmymind?i=X7clabD" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/fredjean/outofmymind/~4/219968244" height="1" width="1"/&gt;</content>
  <link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nc-sa/2.0/" /><feedburner:origLink>http://blog.fredjean.net/articles/2008/01/20/new-countertops-and-sink</feedburner:origLink></entry>
</feed>
