<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Code Goop</title>
	<atom:link href="http://codegoop.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://codegoop.com</link>
	<description></description>
	<lastBuildDate>Tue, 31 Jan 2012 21:45:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title></title>
		<link>http://codegoop.com/2012/01/501/</link>
		<comments>http://codegoop.com/2012/01/501/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 21:45:40 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[mobile]]></category>

		<guid isPermaLink="false">http://codegoop.com/?p=501</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<!-- tweet id : 164463865361473537 --><style type='text/css'>#bbpBox_164463865361473537 a { text-decoration:none; color:#009999; }#bbpBox_164463865361473537 a:hover { text-decoration:underline; }</style><div id='bbpBox_164463865361473537' class='bbpBox' style='padding:5px; margin:5px 0'><div style='background:#fff; padding:10px; margin:0; min-height:48px; color:#333333; -moz-border-radius:5px; -webkit-border-radius:5px; background-color:#f6f6f6'><span style='width:100%; font-size:13px; line-height:22px;'>Not sure why people keep pushing you must build a mobile app w/native language. We are building awesome, cross-platform stuff with Adobe AIR</span><div class='bbp-actions' style='font-size:12px; width:100%; padding:5px 0; margin:0 0 10px 0; border-bottom:1px solid #e6e6e6;'><a href='https://twitter.com/intent/tweet?in_reply_to=164463865361473537' class='bbp-action bbp-reply-action' title='Reply'><span><em style='margin-left: 1em;'></em><strong>Reply</strong></span></a><a href='https://twitter.com/intent/retweet?tweet_id=164463865361473537' class='bbp-action bbp-retweet-action' title='Retweet'><span><em style='margin-left: 1em;'></em><strong>Retweet</strong></span></a><a href='https://twitter.com/intent/favorite?tweet_id=164463865361473537' class='bbp-action bbp-favorite-action' title='Favorite'><span><em style='margin-left: 1em;'></em><strong>Favorite</strong></span></a></div><div style='float:left; padding:0; margin:0'><a style='font-weight:bold' href='http://twitter.com/intent/user?screen_name=codegoop'>@codegoop</a></div><div style='clear:both'></div></div></div><!-- end of tweet -->
]]></content:encoded>
			<wfw:commentRss>http://codegoop.com/2012/01/501/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title></title>
		<link>http://codegoop.com/2011/11/492/</link>
		<comments>http://codegoop.com/2011/11/492/#comments</comments>
		<pubDate>Thu, 24 Nov 2011 00:30:01 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[scala]]></category>

		<guid isPermaLink="false">http://codegoop.com/?p=492</guid>
		<description><![CDATA[

]]></description>
			<content:encoded><![CDATA[<div>
<!-- tweet id : 139478374270763008 --><style type='text/css'>#bbpBox_139478374270763008 a { text-decoration:none; color:#0084B4; }#bbpBox_139478374270763008 a:hover { text-decoration:underline; }</style><div id='bbpBox_139478374270763008' class='bbpBox' style='padding:5px; margin:5px 0'><div style='background:#fff; padding:10px; margin:0; min-height:48px; color:#333333; -moz-border-radius:5px; -webkit-border-radius:5px; background-color:#f6f6f6'><span style='width:100%; font-size:13px; line-height:22px;'>S. Colebourne: Scala feels like EJB 2 <a href="http://t.co/Xw1wiSzL" rel="nofollow">http://t.co/Xw1wiSzL</a>Don't like eggs, but I don't waste time trying to convince others that eggs r bad</span><div class='bbp-actions' style='font-size:12px; width:100%; padding:5px 0; margin:0 0 10px 0; border-bottom:1px solid #e6e6e6;'><a href='https://twitter.com/intent/tweet?in_reply_to=139478374270763008' class='bbp-action bbp-reply-action' title='Reply'><span><em style='margin-left: 1em;'></em><strong>Reply</strong></span></a><a href='https://twitter.com/intent/retweet?tweet_id=139478374270763008' class='bbp-action bbp-retweet-action' title='Retweet'><span><em style='margin-left: 1em;'></em><strong>Retweet</strong></span></a><a href='https://twitter.com/intent/favorite?tweet_id=139478374270763008' class='bbp-action bbp-favorite-action' title='Favorite'><span><em style='margin-left: 1em;'></em><strong>Favorite</strong></span></a></div><div style='float:left; padding:0; margin:0'><a style='font-weight:bold' href='http://twitter.com/intent/user?screen_name=codegoop'>@codegoop</a></div><div style='clear:both'></div></div></div><!-- end of tweet -->
</div>
<!-- tweet id : 139469422220947456 --><style type='text/css'>#bbpBox_139469422220947456 a { text-decoration:none; color:#0084B4; }#bbpBox_139469422220947456 a:hover { text-decoration:underline; }</style><div id='bbpBox_139469422220947456' class='bbpBox' style='padding:5px; margin:5px 0'><div style='background:#fff; padding:10px; margin:0; min-height:48px; color:#333333; -moz-border-radius:5px; -webkit-border-radius:5px; background-color:#f6f6f6'><span style='width:100%; font-size:13px; line-height:22px;'>Rocking out on some ScalaTest and trying to convince my team to use it.  Loving how well it integrates with Maven and our builds.</span><div class='bbp-actions' style='font-size:12px; width:100%; padding:5px 0; margin:0 0 10px 0; border-bottom:1px solid #e6e6e6;'><a href='https://twitter.com/intent/tweet?in_reply_to=139469422220947456' class='bbp-action bbp-reply-action' title='Reply'><span><em style='margin-left: 1em;'></em><strong>Reply</strong></span></a><a href='https://twitter.com/intent/retweet?tweet_id=139469422220947456' class='bbp-action bbp-retweet-action' title='Retweet'><span><em style='margin-left: 1em;'></em><strong>Retweet</strong></span></a><a href='https://twitter.com/intent/favorite?tweet_id=139469422220947456' class='bbp-action bbp-favorite-action' title='Favorite'><span><em style='margin-left: 1em;'></em><strong>Favorite</strong></span></a></div><div style='float:left; padding:0; margin:0'><a style='font-weight:bold' href='http://twitter.com/intent/user?screen_name=codegoop'>@codegoop</a></div><div style='clear:both'></div></div></div><!-- end of tweet -->
]]></content:encoded>
			<wfw:commentRss>http://codegoop.com/2011/11/492/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bruce Eckel talks Scala</title>
		<link>http://codegoop.com/2011/07/bruce-eckel-talks-scala/</link>
		<comments>http://codegoop.com/2011/07/bruce-eckel-talks-scala/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 11:27:27 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[scala]]></category>

		<guid isPermaLink="false">http://codegoop.com/?p=460</guid>
		<description><![CDATA[Back in the day, Thinking in Java by Bruce Eckel was the first real Java book I read.  I was new to the language and needed lots of help.  It was generally required reading for any self-respecting Java professional.  The problem is, that was 11 years ago.  For a stable industry, that seems like a [...]]]></description>
			<content:encoded><![CDATA[<p>Back in the day, Thinking in Java by Bruce Eckel was the first real Java book I read.  I was new to the language and needed lots of help.  It was generally required reading for any self-respecting Java professional.  The problem is, that was 11 years ago.  For a stable industry, that seems like a long time.  In software development, that&#8217;s ancient history. Ideas change,  concepts evolve, and languages fall out of flavor.  For better or for worse, change happens and it can be really fun if you embrace it.  Bruce wrote a very compelling post on some of the advantages of Scala.  He touched on code expressiveness, case classes, traits, functional programming, and a few other interesting concepts.  It&#8217;s a great read and well worth your time.  I&#8217;ve been a Scala fan for some time, but I was a fence sitter.  I&#8217;d dip my toe in and if the water was too cold, I turn and run back to the safety of what I knew.  It seems like there is now a critical mass behind Scala though.  I&#8217;m hoping I can find a way to work it into my next project and get off the fence for good.</p>
<p><a title="Scala: The Static Language that Feels Dynamic" href="http://www.artima.com/weblogs/viewpost.jsp?thread=328540" target="_blank">Scala: The Static Language that Feels Dynamic</a></p>
]]></content:encoded>
			<wfw:commentRss>http://codegoop.com/2011/07/bruce-eckel-talks-scala/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Back from hiatus</title>
		<link>http://codegoop.com/2011/05/back-from-hiatus/</link>
		<comments>http://codegoop.com/2011/05/back-from-hiatus/#comments</comments>
		<pubDate>Tue, 17 May 2011 17:23:34 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://codegoop.com/?p=454</guid>
		<description><![CDATA[I&#8217;ve been on a bit of a hiatus recently, but I should be back to posting soon.  I switched projects and have been spending a lot of time cleaning up some big messes.  I turned a nasty Eclipse right click/export build into something usable.  We ended up with a sweet Maven/Nexus/Hudson build process.  I&#8217;ve used [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been on a bit of a hiatus recently, but I should be back to posting soon.  I switched projects and have been spending a lot of time cleaning up some big messes.  I turned a nasty Eclipse right click/export build into something usable.  We ended up with a sweet Maven/Nexus/Hudson build process.  I&#8217;ve used Maven on a lot of projects and have a love-hate relationship with it. Dependency management is such a freeing experience, but I&#8217;m trying to cut down on the amount of time I spend with XML.  I know Maven 3 has the ability to create poms with Groovy, but I haven&#8217;t gotten into that much.  Instead, I&#8217;ve been using Gradle.  It has all the advantages of dependency management without the legacy cruft.  It took me a couple of days to understand what Gradle was doing and it&#8217;s still immature, but I think it has a bright future.  Either way, Nexus has been the core product that has brought all of this together.  Whether we are using Maven, Gradle, or Ant/Ivy, Nexus just keeps getting better and better.  It&#8217;s one of those products that I find just &#8220;works&#8221;.  I highly recommend it as the heart of a jvm build process.  I&#8217;ve got a lot more to talk about in this space, so hopefully I can&#8217;t blog on that soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://codegoop.com/2011/05/back-from-hiatus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scala Stuff</title>
		<link>http://codegoop.com/2010/10/scala-stuff/</link>
		<comments>http://codegoop.com/2010/10/scala-stuff/#comments</comments>
		<pubDate>Thu, 14 Oct 2010 02:08:47 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[scala]]></category>

		<guid isPermaLink="false">http://codegoop.com/?p=444</guid>
		<description><![CDATA[I&#8217;ve been trying to spend a lot of my free time hacking on Scala.  I love the language.  It&#8217;s had a steep learning curve for me, but I&#8217;ve really enjoyed the trip.  As you get into the language, you appreciate how it&#8217;s consistency can make complicated concepts seem simple.  Here are some good links that [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been trying to spend a lot of my free time hacking on Scala.  I love the language.  It&#8217;s had a steep learning curve for me, but I&#8217;ve really enjoyed the trip.  As you get into the language, you appreciate how it&#8217;s consistency can make complicated concepts seem simple.  Here are some good links that helped me get started:</p>
<ul>
<li>Scala training slides: <a title="Scala training slides" href="http://github.com/javaBin/scala-training-slides">http://github.com/javaBin/scala-training-slides</a></li>
<li>Dick Wall&#8217;s functional koans: <a title="Functional Koans" href="http://github.com/relevance/functional-koans/tree/scala">http://github.com/relevance/functional-koans/tree/scala</a></li>
<li>Scala for Java refugees: <a title="Scala for Java refugees" href="http://www.codecommit.com/blog/scala/roundup-scala-for-java-refugees">http://www.codecommit.com/blog/scala/roundup-scala-for-java-refugees</a></li>
<li>Java Posse Roundup 2010 &#8211; Scala discussion: <a title="Java Posse #314" href="http://javaposse.com/java_posse_314_roundup_10_scala">http://javaposse.com/java_posse_314_roundup_10_scala</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://codegoop.com/2010/10/scala-stuff/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fitting in</title>
		<link>http://codegoop.com/2010/08/fitting-in/</link>
		<comments>http://codegoop.com/2010/08/fitting-in/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 01:11:21 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://codegoop.com/?p=427</guid>
		<description><![CDATA[I had a relatively long post put together about writing code and how important it is to be consistent with your teammates.  I had a few paragraphs on maintaining style, architecture, and keeping the essence of the code you&#8217;re working with.  Instead of going through that, I boiled it down to a few [...]]]></description>
			<content:encoded><![CDATA[<p>I had a relatively long post put together about writing code and how important it is to be consistent with your teammates.  I had a few paragraphs on maintaining style, architecture, and keeping the essence of the code you&#8217;re working with.  Instead of going through that, I boiled it down to a few basics that I run into often.</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">Keep the style consistent</span></p>
<p style="padding-left: 60px;">If you have a corporate style, follow that.  Otherwise, the Snoracle <a title="code conventions" href="http://www.oracle.com/technetwork/java/codeconvtoc-136057.html" target="_blank">code conventions</a> are mostly your friend. I always have to grit my teeth when someone abuses this.  If the project is written in a K&amp;R style, don&#8217;t complain when your Allman style classes get reformatted.  <a href="http://checkstyle.sourceforge.net/" target="_blank">Checkstyle</a> does a really good job at automating this at check in time, while the major IDEs have very good formatting tools.</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">Maintain the architecture</span></p>
<p style="padding-left: 60px;">If the project you&#8217;ve been asked to maintain is straight JSF, don&#8217;t slam in your favorite DI framework because that&#8217;s all you know. Take the time to look through the code and get to know it.  Maintain the architecture whenever possible.  When it&#8217;s your turn to decide the design, you can do it however you want. Until then, it&#8217;s helpful to stick with the groundwork that&#8217;s already present.  Keeping the architecture clean is a huge advantage when it comes time for refactoring or retrofitting for missed requirements.</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">Follow the spirit</span></p>
<p style="padding-left: 60px;">If a class has only 5-line methods, don&#8217;t slam in a 50-line monstrosity.  When all the parameters are declared final, take note, and do the same where appropriate.  If the class is immutable, don&#8217;t add javabean setters.  In other words, don&#8217;t redecorate your friend&#8217;s house when you stop by for a visit.  For good or bad, a lot of developers feel strongly about code they initially created.  If someone else isn&#8217;t considerate of the spirit in which that code was written, feelings can fray and productivity can plummet.</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">Don&#8217;t break things</span></p>
<p style="padding-left: 60px;">Before you check your code in, make sure it compiles and passes all of the unit tests.  <a href="http://hudson-ci.org/" target="_blank">Continuous integration</a> helps this situation, but you can save yourself embarrassment and the wrath of your coworkers by making sure things are ok before committing.  If you don&#8217;t have unit tests for your stuff, now is the time to write some.  No one likes a broken build, but it&#8217;s even worse when broken code ends up on your machine straight from source control. Developers have a hard enough time tracking down their own bugs.  Adding to that burden and making them fix yours is not appreciated.</p>
<p style="padding-left: 60px;">
<p style="padding-left: 30px;">
]]></content:encoded>
			<wfw:commentRss>http://codegoop.com/2010/08/fitting-in/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Addicted to final</title>
		<link>http://codegoop.com/2010/06/addicted-to-final/</link>
		<comments>http://codegoop.com/2010/06/addicted-to-final/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 02:44:36 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://codegoop.com/?p=409</guid>
		<description><![CDATA[What can I say?  I&#8217;m addicted to the final keyword.  My code is littered with it.  A typical class can end up looking like the following:
123456789101112131415161718192021222324252627282930313233public class SimpleClass &#123;

&#160; private static final Logger logger = Logger.getLogger&#40;&#34;SimpleClass&#34;&#41;;
&#160; private final String foo;
&#160; private final List&#60;String&#62; bars = new ArrayList&#60;String&#62;&#40;&#41;;

&#160; public SimpleClass&#40;final String foo&#41; &#123;
&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>What can I say?  I&#8217;m addicted to the final keyword.  My code is littered with it.  A typical class can end up looking like the following:</p>
<div class="codecolorer-container java geshi" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> SimpleClass <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> Logger logger <span style="color: #339933;">=</span> Logger.<span style="color: #006633;">getLogger</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SimpleClass&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> foo<span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">final</span> List<span style="color: #339933;">&lt;</span>String<span style="color: #339933;">&gt;</span> bars <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ArrayList<span style="color: #339933;">&lt;</span>String<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; <span style="color: #000000; font-weight: bold;">public</span> SimpleClass<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> foo<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">foo</span> <span style="color: #339933;">=</span> foo<span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> addBar<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> bar<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; bars.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>bar<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> printFooBars<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">PrintStream</span> out <span style="color: #339933;">=</span> <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; out.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span>getFoo<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; logger.<span style="color: #006633;">info</span><span style="color: #009900;">&#40;</span>e.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> s <span style="color: #339933;">:</span> bars<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; out.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span>s<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; <span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #003399;">String</span> getFoo<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Exception</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>foo <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Exception</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> foo<span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Constants, variables, and parameters have final attached to them.  I wasn&#8217;t always this addicted, but I&#8217;ve since learned through painful experience.  With the final keyword spread liberally around my code, the compiler does the hard work and tells me when I&#8217;m doing something wrong.  I can&#8217;t accidentally change a value or reassign a variable I didn&#8217;t mean to.  I know that a lot of people will complain about how verbose this can be and they&#8217;re correct.  That&#8217;s part of the language, though.  I&#8217;d love to have all variables set as final by default.  Until then, I&#8217;ll sprinkle it around every chance I get. </p>
]]></content:encoded>
			<wfw:commentRss>http://codegoop.com/2010/06/addicted-to-final/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Favorite books</title>
		<link>http://codegoop.com/2010/05/favorite-books/</link>
		<comments>http://codegoop.com/2010/05/favorite-books/#comments</comments>
		<pubDate>Thu, 13 May 2010 01:15:52 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[books]]></category>

		<guid isPermaLink="false">http://codegoop.com/?p=366</guid>
		<description><![CDATA[I love to read.  Every developer needs a few of their favorite books sitting on their desk for quick reference or to loan out.  It always gives me pause to come across a developer that doesn&#8217;t have any books on their desk.  One of my favorite interview questions is to ask a [...]]]></description>
			<content:encoded><![CDATA[<p>I love to read.  Every developer needs a few of their favorite books sitting on their desk for quick reference or to loan out.  It always gives me pause to come across a developer that doesn&#8217;t have any books on their desk.  One of my favorite interview questions is to ask a candidate to list a book they&#8217;ve read recently or to name a favorite author.  You can learn a lot about a person based on the books they have read, which gives you more insight into hiring decisions.  Recently, someone asked me about books I&#8217;d recommend for someone just getting started or in need of a Java/Dev refresher.  There are a lot of great books for that situation, but these are some of my favorites:</p>
<p><center></p>
<table>
<tr>
<td style="background-color:#ffffff">
<a href="http://www.amazon.com/gp/product/0735619670?ie=UTF8&amp;tag=codegoop-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0735619670" target="_new"><img class="alignnone" title="Code Complete" src="https://images-na.ssl-images-amazon.com/images/I/51PPS4C6i8L._SL160_.jpg" alt="" width="131" height="160" /></a>
</td>
<td style="background-color:#ffffff">
<a href="http://www.amazon.com/gp/product/B001GSTOAM?ie=UTF8&amp;tag=codegoop-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B001GSTOAM" target="_new"><img class="alignnone" title="Clean Code" src="https://images-na.ssl-images-amazon.com/images/I/41wGTnmRTFL._SL160_.jpg" alt="" width="121" height="160" /><br />
</a>
</td>
<td style="background-color:#ffffff">
<a href="http://www.amazon.com/gp/product/B002RHN7RM?ie=UTF8&#038;tag=codegoop-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=B002RHN7RM" target="_new"><img alt="" src="https://images-na.ssl-images-amazon.com/images/I/51TE0%2BiCzDL._SL160_.jpg" title="Coders at Work" class="alignnone" width="111" height="160" /></a>
</td>
</tr>
<tr>
<td style="background-color:#ffffff">
<a href="http://www.amazon.com/gp/product/0735611319?ie=UTF8&#038;tag=codegoop-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0735611319" target="_new"><img alt="" src="https://images-na.ssl-images-amazon.com/images/I/31GBgcA5PML._SL160_.jpg" title="Code" class="alignnone" width="104" height="160" /></a>
</td>
<td style="background-color:#ffffff">
<a href="http://www.amazon.com/gp/product/B000WJOUPA?ie=UTF8&#038;tag=codegoop-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=B000WJOUPA" target="_new"><img alt="" src="https://images-na.ssl-images-amazon.com/images/I/511ft-Kf%2BAL._SL160_.jpg" title="Effective Java" class="alignnone" width="127" height="160" /></a>
</td>
<td style="background-color:#ffffff">
<a href="http://www.amazon.com/gp/product/0131872486?ie=UTF8&#038;tag=codegoop-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0131872486" target="_new"><img alt="" src="https://images-na.ssl-images-amazon.com/images/I/31bmX1EXVZL._SL160_.jpg" title="Thinking in Java" class="alignnone" width="120" height="160" /></a>
</td>
</tr>
</table>
<p></center></p>
]]></content:encoded>
			<wfw:commentRss>http://codegoop.com/2010/05/favorite-books/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What job posting phrases really mean</title>
		<link>http://codegoop.com/2010/03/what-job-posting-phrases-really-mean/</link>
		<comments>http://codegoop.com/2010/03/what-job-posting-phrases-really-mean/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 16:34:33 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[humor]]></category>

		<guid isPermaLink="false">http://codegoop.com/?p=323</guid>
		<description><![CDATA[A bit of humor for the week&#8230;.


Challenging:
We fired the person that wrote all this junk and we need you to clean it up.


Self starter:
We won&#8217;t be giving you any direction, so it&#8217;ll be up to you to sink or swim.


Ability to prioritize:
You&#8217;ll have 6 projects to work on and they all are the most important.


Gets [...]]]></description>
			<content:encoded><![CDATA[<p>A bit of humor for the week&#8230;.</p>
<table border="1" width="600">
<tr>
<td><strong>Challenging:</strong></td>
<td width="500">We fired the person that wrote all this junk and we need you to clean it up.</td>
</tr>
<tr>
<td><strong>Self starter:</strong></td>
<td width="500">We won&#8217;t be giving you any direction, so it&#8217;ll be up to you to sink or swim.</td>
</tr>
<tr>
<td><strong>Ability to prioritize:</strong></td>
<td width="500">You&#8217;ll have 6 projects to work on and they all are the most important.</td>
</tr>
<tr>
<td><strong>Gets the job done:</strong></td>
<td width="500">You may be asked to do things that are immoral or illegal.</td>
</tr>
<tr>
<td><strong>Team environment:</strong></td>
<td width="500">Everyone else has already formed a clique and you&#8217;ll be the outsider who gets the used PC and the crappy desk.</td>
</tr>
<tr>
<td><strong>Fast paced:</strong></td>
<td width="500">We require a code slinging monkey hopped up on caffeine, which we&#8217;ll provide.</td>
</tr>
<tr>
<td><strong>Flexible schedule:</strong></td>
<td width="500">We don&#8217;t mind if you take a long lunch because we expect you to work nights, weekends, and holidays.</td>
</tr>
<tr>
<td><strong>Company first:</strong></td>
<td width="500">Resistance is futile.</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://codegoop.com/2010/03/what-job-posting-phrases-really-mean/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interview the process</title>
		<link>http://codegoop.com/2010/03/interview-the-process/</link>
		<comments>http://codegoop.com/2010/03/interview-the-process/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 14:12:11 +0000</pubDate>
		<dc:creator>Chad</dc:creator>
				<category><![CDATA[interviews]]></category>

		<guid isPermaLink="false">http://codegoop.com/?p=307</guid>
		<description><![CDATA[I ran across a few interesting posts that somewhat go with mine on tech interview tests.  First, Norman Richards, talks about the worst interview question ever while, Neil McAllister, talks about how you hire a developer.  I&#8217;m glad other people are experiencing the same frustrations I have with the interviewing process.  It&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>I ran across a few interesting posts that somewhat go with mine on <a href="http://codegoop.com/2010/01/the-tech-interview-test/">tech interview tests</a>.  First, Norman Richards, talks about <a href="http://nostacktrace.com/dev/2010/2/26/the-worst-interview-question-ever.html">the worst interview question ever</a> while, Neil McAllister, talks about <a href="http://howto.techworld.com/applications/3213884/how-to-hire-a-developer/">how you hire a developer</a>.  I&#8217;m glad other people are experiencing the same frustrations I have with the interviewing process.  It&#8217;s mostly hit or miss walking into an interview cold if you don&#8217;t already have an inside connection.  It almost makes serious networking a required skill for finding that next killer job you covet.  I&#8217;ve found consulting has helped in that regard, but there are other things you can do from attending user groups, answering forum postings, working on open source projects, or anything else that gets you interacting with more people in a positive way.  That&#8217;s not always easy for someone that sits behind a keyboard 9 hours a day.</p>
<p>On the other side of the fence, Mike Taylor, complains that <a href="http://reprog.wordpress.com/2010/03/03/whatever-happened-to-programming/">programming is too easy</a> while, Jeff Atwood, laments that he can&#8217;t find anyone that <a href="http://www.codinghorror.com/blog/2010/02/the-nonprogramming-programmer.html">programs well</a>.  Which is it?  It&#8217;s certainly not both of these.  Mike is completely wrong when he whines that all programmers do today is glue stuff together while *real* programmers create everything from scratch.  Attitudes like that completely smack of a not invented here syndrome.  That just doesn&#8217;t cut it when your project deadlines are coming up and the feature creep sets in.  It&#8217;s still and always has been about the customers and meeting their needs.  Anything else is pure self indulgence.  Meanwhile, Jeff Atwood, is trying to interview people by using a &#8220;pen and paper&#8221; style.  While that method can work, I&#8217;d be afraid to disqualify someone good that isn&#8217;t adept at writing code on paper.  That can be a difficult thing to do, when stressed, if you don&#8217;t do it often.  At the very least, sit someone you&#8217;re interviewing down at a computer and walk through some code.  Give them a taste of what they are going to actually be doing.  The interview is your first and best chance to set expectations about what the job really is and what the work will be.  It&#8217;s as much about them knowing if they are a good fit as it is you thinking they are.  I&#8217;ve found most people are honest and will tell you if they don&#8217;t think they are a good match.  They just need to be given that chance.  If you can make your candidates a little more comfortable, you might be surprised at how much better they do.  After all, the end goal is finding someone good to work with, not tripping people up on abstract or overly technical questions and yelling &#8220;gotcha&#8221; when they don&#8217;t produce the desired answer.</p>
]]></content:encoded>
			<wfw:commentRss>http://codegoop.com/2010/03/interview-the-process/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

