<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><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: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/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Frank's Java Development Blog</title>
	
	<link>http://javablog.franksalinas.net</link>
	<description>Java Enterprise Development &amp; Technology</description>
	<lastBuildDate>Sat, 24 Jul 2010 17:06:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/FranksJavaBlog" /><feedburner:info uri="franksjavablog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-sa/3.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><feedburner:emailServiceId>FranksJavaBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>GreenHopper: Agile Project Management for JIRA</title>
		<link>http://feedproxy.google.com/~r/FranksJavaBlog/~3/EszSzzZJNUQ/</link>
		<comments>http://javablog.franksalinas.net/2010/07/17/greenhopper-agile-project-management-for-jira/#comments</comments>
		<pubDate>Sat, 17 Jul 2010 14:46:57 +0000</pubDate>
		<dc:creator>Frank Salinas</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[GreenHopper]]></category>
		<category><![CDATA[JIRA]]></category>

		<guid isPermaLink="false">http://javablog.franksalinas.net/?p=917</guid>
		<description><![CDATA[This looks like a truly useful project management tool for JIRA. Check it out at: http://www.atlassian.com/software/greenhopper/ No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>This looks like a truly useful project management tool for JIRA. Check it out at: <a href="http://www.atlassian.com/software/greenhopper/">http://www.atlassian.com/software/greenhopper/</a></p>

<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div><p><a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F07%2F17%2Fgreenhopper-agile-project-management-for-jira%2F&amp;linkname=GreenHopper%3A%20Agile%20Project%20Management%20for%20JIRA" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F07%2F17%2Fgreenhopper-agile-project-management-for-jira%2F&amp;linkname=GreenHopper%3A%20Agile%20Project%20Management%20for%20JIRA" title="Delicious" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F07%2F17%2Fgreenhopper-agile-project-management-for-jira%2F&amp;linkname=GreenHopper%3A%20Agile%20Project%20Management%20for%20JIRA" title="Twitter" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F07%2F17%2Fgreenhopper-agile-project-management-for-jira%2F&amp;linkname=GreenHopper%3A%20Agile%20Project%20Management%20for%20JIRA" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F07%2F17%2Fgreenhopper-agile-project-management-for-jira%2F&amp;linkname=GreenHopper%3A%20Agile%20Project%20Management%20for%20JIRA" title="DZone" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/diigo?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F07%2F17%2Fgreenhopper-agile-project-management-for-jira%2F&amp;linkname=GreenHopper%3A%20Agile%20Project%20Management%20for%20JIRA" title="Diigo" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/diigo.png" width="16" height="16" alt="Diigo"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a> </p>

<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/GqUEQJWsOYbegNtCkp1MwJh0xRM/0/da"><img src="http://feedads.g.doubleclick.net/~a/GqUEQJWsOYbegNtCkp1MwJh0xRM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/GqUEQJWsOYbegNtCkp1MwJh0xRM/1/da"><img src="http://feedads.g.doubleclick.net/~a/GqUEQJWsOYbegNtCkp1MwJh0xRM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=EszSzzZJNUQ:8aHgfm8R2ts:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=EszSzzZJNUQ:8aHgfm8R2ts:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=EszSzzZJNUQ:8aHgfm8R2ts:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=EszSzzZJNUQ:8aHgfm8R2ts:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=EszSzzZJNUQ:8aHgfm8R2ts:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=EszSzzZJNUQ:8aHgfm8R2ts:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=EszSzzZJNUQ:8aHgfm8R2ts:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=EszSzzZJNUQ:8aHgfm8R2ts:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=EszSzzZJNUQ:8aHgfm8R2ts:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=EszSzzZJNUQ:8aHgfm8R2ts:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=EszSzzZJNUQ:8aHgfm8R2ts:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=EszSzzZJNUQ:8aHgfm8R2ts:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/FranksJavaBlog/~4/EszSzzZJNUQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://javablog.franksalinas.net/2010/07/17/greenhopper-agile-project-management-for-jira/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://javablog.franksalinas.net/2010/07/17/greenhopper-agile-project-management-for-jira/</feedburner:origLink></item>
		<item>
		<title>JavaOne and Oracle Develop 2010</title>
		<link>http://feedproxy.google.com/~r/FranksJavaBlog/~3/FMQ-_p-PE10/</link>
		<comments>http://javablog.franksalinas.net/2010/07/15/oracle-openworld-2010-registration/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 16:53:27 +0000</pubDate>
		<dc:creator>Frank Salinas</dc:creator>
				<category><![CDATA[JEE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Training]]></category>

		<guid isPermaLink="false">http://javablog.franksalinas.net/?p=912</guid>
		<description><![CDATA[Tomorrow is the last day for early-bird registration discounts. JavaOne and Oracle Develop 2010 No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>Tomorrow is the last day for early-bird registration discounts.</p>
<p><a title="JavaOne and Oracle Develop 2010" href="http://www.oracle.com/us/javaonedevelop/index.html">JavaOne and Oracle Develop 2010</a></p>

<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div><p><a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F07%2F15%2Foracle-openworld-2010-registration%2F&amp;linkname=JavaOne%20and%20Oracle%20Develop%202010" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F07%2F15%2Foracle-openworld-2010-registration%2F&amp;linkname=JavaOne%20and%20Oracle%20Develop%202010" title="Delicious" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F07%2F15%2Foracle-openworld-2010-registration%2F&amp;linkname=JavaOne%20and%20Oracle%20Develop%202010" title="Twitter" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F07%2F15%2Foracle-openworld-2010-registration%2F&amp;linkname=JavaOne%20and%20Oracle%20Develop%202010" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F07%2F15%2Foracle-openworld-2010-registration%2F&amp;linkname=JavaOne%20and%20Oracle%20Develop%202010" title="DZone" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/diigo?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F07%2F15%2Foracle-openworld-2010-registration%2F&amp;linkname=JavaOne%20and%20Oracle%20Develop%202010" title="Diigo" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/diigo.png" width="16" height="16" alt="Diigo"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a> </p>

<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/ehPneUBgB8KTSpQ08OuRoCLcmck/0/da"><img src="http://feedads.g.doubleclick.net/~a/ehPneUBgB8KTSpQ08OuRoCLcmck/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ehPneUBgB8KTSpQ08OuRoCLcmck/1/da"><img src="http://feedads.g.doubleclick.net/~a/ehPneUBgB8KTSpQ08OuRoCLcmck/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=FMQ-_p-PE10:6U8AELRdGDM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=FMQ-_p-PE10:6U8AELRdGDM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=FMQ-_p-PE10:6U8AELRdGDM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=FMQ-_p-PE10:6U8AELRdGDM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=FMQ-_p-PE10:6U8AELRdGDM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=FMQ-_p-PE10:6U8AELRdGDM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=FMQ-_p-PE10:6U8AELRdGDM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=FMQ-_p-PE10:6U8AELRdGDM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=FMQ-_p-PE10:6U8AELRdGDM:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=FMQ-_p-PE10:6U8AELRdGDM:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=FMQ-_p-PE10:6U8AELRdGDM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=FMQ-_p-PE10:6U8AELRdGDM:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/FranksJavaBlog/~4/FMQ-_p-PE10" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://javablog.franksalinas.net/2010/07/15/oracle-openworld-2010-registration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://javablog.franksalinas.net/2010/07/15/oracle-openworld-2010-registration/</feedburner:origLink></item>
		<item>
		<title>Best Practices: Avoid Returning Null</title>
		<link>http://feedproxy.google.com/~r/FranksJavaBlog/~3/HXYpMeDGb1o/</link>
		<comments>http://javablog.franksalinas.net/2010/06/09/avoid-returning-null/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 03:36:59 +0000</pubDate>
		<dc:creator>Frank Salinas</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Collections]]></category>
		<category><![CDATA[Null]]></category>
		<category><![CDATA[NullPointerException]]></category>
		<category><![CDATA[RuntimeException]]></category>

		<guid isPermaLink="false">http://javablog.franksalinas.net/?p=836</guid>
		<description><![CDATA[I recall the first oddity that struck me about Java programming is that it seems common practice to test returned objects for null. I find it frustrating and inefficient to scatter if conditions throughout my code just to see if I have a valid object instance returned.  Receiving null is confusing. When you make a [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>I recall the first oddity that struck me about Java programming is that it seems common practice to test returned objects for <code>null</code>. I find it frustrating and inefficient to scatter if conditions throughout my code just to see if I have a valid object instance returned. <span id="more-836"></span></p>
<p>Receiving null is confusing. When you make a function call and the result is null what does it mean? Was the data not found? Was there an exception in the function that was silently swallowed resulting in the return of a null object? You&#8217;re not really sure if null is an expected return value. If no exception is thrown then you just kind of assume that null is a valid return value. However, you can&#8217;t really do anything with the returned null object so what do you do now?</p>
<p>Here are a couple of alternatives to returning null:</p>
<h2>Use the Empty Collection Methods</h2>
<p>If you are working with returning collection objects from your function you should return an empty collection rather than a null object. This is very easy to do with the Collections class. There are three static methods available:</p>
<ul>
<li>Collections.emptyList()</li>
<li>Collections.emptySet()</li>
<li>Collections.emptyMap()</li>
</ul>
<p>An empty List is easily instantiated for return as shown here:</p>
<pre class="brush:java; smart-tabs:true; wrap-lines:false">   List&lt;String&gt; myList = Collections.emptyList();</pre>
<p>Returning an empty List eliminates the required check for null by the function caller. Now instead of having code which looks like this:</p>
<pre class="brush:java; smart-tabs:true; wrap-lines:false">   List&lt;String&gt; names = getNames();
   if(names != null) {
      for(String name : names) {
         System.out.println(name);
      }
   }</pre>
<p>You can simply write the following without worrying about a NullPointerException:</p>
<pre class="brush:java; smart-tabs:true; wrap-lines:false">   List&lt;String&gt; names = getNames();
   for(String name : names) {
      System.out.println(name);
   }</pre>
<p>This second example is much cleaner, easier to read and understand. Returning empty Collections is much safer as well since it avoids the potential run time exception: NullPointerException.</p>
<p>An unchecked exception represent defects in the program (bugs) - often invalid arguments passed to a non-private method. To quote from <em>The Java Programming Language</em>, by Gosling, Arnold, and Holmes : &#8220;Unchecked runtime exceptions represent conditions that, generally speaking, reflect errors in your program&#8217;s logic and cannot be reasonably recovered from at run time.&#8221;[1]</p>
<p>Certainly an empty collection is not a bug! So lets just return an empty collection rather than a null reference. In addition, testing for an empty collection is a lot more intuitive than testing for null.</p>
<pre class="brush:java; smart-tabs:true; wrap-lines:false">
   List&lt;String&gt; names = getNames();
   if(names.isEmpty()) {
      //throw an Exception
      //or do something else
      //or do nothing at all

   }
   </pre>
<h2>Throw an Exception</h2>
<p>It&#8217;s perfectly acceptable to throw a custom checked exception alerting the calling client that the requested object cannot be populated or retrieved. This approach is much more revealing and forces the calling client to handle the potential problem. It also eliminates the need to check the returned object for null.</p>
<p>A checked exception is guaranteed to be handled so you gain more control over your program. A RuntimeException may or may not be handled by the caller and will bubble up until either it is caught or reaches the top of the caller chain.</p>
<h2>Conclusion</h2>
<p>Nulls are useful under certain conditions when null values are expected. However, for the above conditions with collections and data retrieval I feel it has been abused. Use the empty collection and avoid returning null objects whenever possible. It will make code cleaner, easier to read and debug. </p>
<hr />Citations:</p>
<p>1. &#8220;checked versus uncheck exceptions&#8221; J<span style="text-decoration: underline;">avaPractices.com</span>. 2010 Hirondelle Systems. 6 June 2010 &lt;<a href="http://www.javapractices.com/topic/TopicAction.do?Id=129" target="_blank">http://www.javapractices.com/topic/TopicAction.do?Id=129</a>&gt;</p>
<hr />

<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div><p><a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F06%2F09%2Favoid-returning-null%2F&amp;linkname=Best%20Practices%3A%20Avoid%20Returning%20Null" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F06%2F09%2Favoid-returning-null%2F&amp;linkname=Best%20Practices%3A%20Avoid%20Returning%20Null" title="Delicious" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F06%2F09%2Favoid-returning-null%2F&amp;linkname=Best%20Practices%3A%20Avoid%20Returning%20Null" title="Twitter" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F06%2F09%2Favoid-returning-null%2F&amp;linkname=Best%20Practices%3A%20Avoid%20Returning%20Null" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F06%2F09%2Favoid-returning-null%2F&amp;linkname=Best%20Practices%3A%20Avoid%20Returning%20Null" title="DZone" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/diigo?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F06%2F09%2Favoid-returning-null%2F&amp;linkname=Best%20Practices%3A%20Avoid%20Returning%20Null" title="Diigo" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/diigo.png" width="16" height="16" alt="Diigo"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a> </p>

<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/WkHOnt01R-Vj-TgZP0NAG9bS7P8/0/da"><img src="http://feedads.g.doubleclick.net/~a/WkHOnt01R-Vj-TgZP0NAG9bS7P8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/WkHOnt01R-Vj-TgZP0NAG9bS7P8/1/da"><img src="http://feedads.g.doubleclick.net/~a/WkHOnt01R-Vj-TgZP0NAG9bS7P8/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=HXYpMeDGb1o:x9z7hKYeQ-E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=HXYpMeDGb1o:x9z7hKYeQ-E:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=HXYpMeDGb1o:x9z7hKYeQ-E:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=HXYpMeDGb1o:x9z7hKYeQ-E:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=HXYpMeDGb1o:x9z7hKYeQ-E:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=HXYpMeDGb1o:x9z7hKYeQ-E:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=HXYpMeDGb1o:x9z7hKYeQ-E:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=HXYpMeDGb1o:x9z7hKYeQ-E:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=HXYpMeDGb1o:x9z7hKYeQ-E:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=HXYpMeDGb1o:x9z7hKYeQ-E:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=HXYpMeDGb1o:x9z7hKYeQ-E:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=HXYpMeDGb1o:x9z7hKYeQ-E:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/FranksJavaBlog/~4/HXYpMeDGb1o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://javablog.franksalinas.net/2010/06/09/avoid-returning-null/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://javablog.franksalinas.net/2010/06/09/avoid-returning-null/</feedburner:origLink></item>
		<item>
		<title>Poll: Which MVC Framework Do You Use?</title>
		<link>http://feedproxy.google.com/~r/FranksJavaBlog/~3/odz0JxMA69I/</link>
		<comments>http://javablog.franksalinas.net/2010/04/30/poll-which-mvc-framework-do-you-use/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 17:14:38 +0000</pubDate>
		<dc:creator>Frank Salinas</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Struts]]></category>
		<category><![CDATA[Struts 2]]></category>

		<guid isPermaLink="false">http://javablog.franksalinas.net/?p=815</guid>
		<description><![CDATA[At work we&#8217;re looking into swapping out Struts with a different MVC framework. I&#8217;m curious as to which frameworks are most in use today. Please complete the poll below and feel free to post comments/recommendations on the subject. Share the link and spread the word, the more data received the better! No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>At work we&#8217;re looking into swapping out Struts with a different MVC framework. I&#8217;m curious as to which frameworks are most in use today. Please complete the poll below and feel free to post comments/recommendations on the subject. Share the link and spread the word, the more data received the better!<br />
<span id="more-815"></span></p>
<p><center><script type='text/javascript' language='javascript' charset='utf-8' src='http://s3.polldaddy.com/p/3133860.js'></script><noscript> <a href='http://answers.polldaddy.com/poll/3133860/'>View Poll</a></noscript></center></p>

<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div><p><a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F04%2F30%2Fpoll-which-mvc-framework-do-you-use%2F&amp;linkname=Poll%3A%20Which%20MVC%20Framework%20Do%20You%20Use%3F" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F04%2F30%2Fpoll-which-mvc-framework-do-you-use%2F&amp;linkname=Poll%3A%20Which%20MVC%20Framework%20Do%20You%20Use%3F" title="Delicious" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F04%2F30%2Fpoll-which-mvc-framework-do-you-use%2F&amp;linkname=Poll%3A%20Which%20MVC%20Framework%20Do%20You%20Use%3F" title="Twitter" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F04%2F30%2Fpoll-which-mvc-framework-do-you-use%2F&amp;linkname=Poll%3A%20Which%20MVC%20Framework%20Do%20You%20Use%3F" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F04%2F30%2Fpoll-which-mvc-framework-do-you-use%2F&amp;linkname=Poll%3A%20Which%20MVC%20Framework%20Do%20You%20Use%3F" title="DZone" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/diigo?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F04%2F30%2Fpoll-which-mvc-framework-do-you-use%2F&amp;linkname=Poll%3A%20Which%20MVC%20Framework%20Do%20You%20Use%3F" title="Diigo" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/diigo.png" width="16" height="16" alt="Diigo"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a> </p>

<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/10EQxECNyiauOMPr-WYXk4zmj1o/0/da"><img src="http://feedads.g.doubleclick.net/~a/10EQxECNyiauOMPr-WYXk4zmj1o/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/10EQxECNyiauOMPr-WYXk4zmj1o/1/da"><img src="http://feedads.g.doubleclick.net/~a/10EQxECNyiauOMPr-WYXk4zmj1o/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=odz0JxMA69I:iF01vdMM_Ms:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=odz0JxMA69I:iF01vdMM_Ms:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=odz0JxMA69I:iF01vdMM_Ms:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=odz0JxMA69I:iF01vdMM_Ms:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=odz0JxMA69I:iF01vdMM_Ms:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=odz0JxMA69I:iF01vdMM_Ms:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=odz0JxMA69I:iF01vdMM_Ms:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=odz0JxMA69I:iF01vdMM_Ms:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=odz0JxMA69I:iF01vdMM_Ms:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=odz0JxMA69I:iF01vdMM_Ms:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=odz0JxMA69I:iF01vdMM_Ms:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=odz0JxMA69I:iF01vdMM_Ms:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/FranksJavaBlog/~4/odz0JxMA69I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://javablog.franksalinas.net/2010/04/30/poll-which-mvc-framework-do-you-use/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://javablog.franksalinas.net/2010/04/30/poll-which-mvc-framework-do-you-use/</feedburner:origLink></item>
		<item>
		<title>Java Web Services: Getting Started</title>
		<link>http://feedproxy.google.com/~r/FranksJavaBlog/~3/6T_U9vYVxpg/</link>
		<comments>http://javablog.franksalinas.net/2010/03/09/java-web-services-getting-started/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 04:49:22 +0000</pubDate>
		<dc:creator>Frank Salinas</dc:creator>
				<category><![CDATA[JBoss]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[EJB]]></category>
		<category><![CDATA[JAX-RPC]]></category>
		<category><![CDATA[JAX-WS]]></category>
		<category><![CDATA[POJO]]></category>
		<category><![CDATA[Servlet]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Web Services]]></category>
		<category><![CDATA[WSDL]]></category>

		<guid isPermaLink="false">http://javablog.franksalinas.net/?p=640</guid>
		<description><![CDATA[When it came time for me to tackle my first web service implementation I ran into a lot of problems. Here I will write a series of articles to address the questions and problems I encountered in hopes of helping you get started in developing web services faster than I did. The following example will show [...]


Related posts:<ol><li><a href='http://javablog.franksalinas.net/2008/10/29/web-services-on-jboss/' rel='bookmark' title='Permanent Link: Web Services on JBoss'>Web Services on JBoss</a> <small>I&#8217;ve been working on a project which requires developing some...</small></li>
<li><a href='http://javablog.franksalinas.net/2009/03/01/the-ejb-specification-concurrency-and-batch-processing/' rel='bookmark' title='Permanent Link: The EJB Specification, Concurrency, and Batch Processing'>The EJB Specification, Concurrency, and Batch Processing</a> <small>The EJB specification does not leave much room for implementing...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>When it came time for me to tackle my first web service implementation I ran into a lot of problems. Here I will write a series of articles to address the questions and problems I encountered in hopes of helping you get started in developing web services faster than I did. The following example will show you how to create a web service using JAX-WS and packaged as a servlet.<span id="more-640"></span></p>
<h4>A Simple Service</h4>
<p>To start out you <span style="text-decoration: underline;">should</span> create an interface defining your business methods. I will keep the implementation extremely simple so we can focus on the details of web services. Here&#8217;s our interface named <code>SimpleServiceWS</code></p>
<pre class="brush:java; smart-tabs:true; wrap-lines:false">public interface SimpleServiceWS {

	public String simpleMethod();

}</pre>
<p>The next step is to create a plain java class (POJO) which implements this interface. I&#8217;ll name it <code>SimpleServiceImpl</code></p>
<pre class="brush:java; smart-tabs:true; wrap-lines:false">public class SimpleServiceImpl implements SimpleServiceWS {

	public String simpleMethod() {
		return "Simple response";
	}

}</pre>
<p><em><span style="color: #808080;"><span style="color: #000000;">Please note that it is not required to create and implement an interface and almost every web service example I found did not do so. I feel it is good practice and consistent with Java programming practices to program against interfaces.</span></span></em></p>
<p>What we have so far is just a plain Java class (POJO) that returns a simple string. Now we have to decorate our class with some annotations to make it behave as a web services.</p>
<pre class="brush:java; smart-tabs:true; wrap-lines:false">import javax.jws.WebService;

@WebService(
		serviceName="SimpleService",
		portName="SimpleServicePort",
		endpointInterface="net.franksalinas.javablog.SimpleServiceWS")
public class SimpleServiceImpl implements SimpleServiceWS {

	public String simpleMethod() {
		return "Simple response";
	}

}</pre>
<p>I added the <code>@WebService</code> annotation and supplied some values to the annotation attributes. You can simply add the <code>@WebService</code> annotation without specifying any of the attributes and they will pick up default values based on the class and package names. However, there is one exception. If you choose to define and implement an interface you must do two things:</p>
<ol>
<li>You must decorate the interface with the <code>@WebService</code> annotation.</li>
<li>You must also supply the <code>endpointInterface</code> annotation attribute with the fully qualified name of the interface in the implementation class.</li>
</ol>
<pre class="brush:java; smart-tabs:true; wrap-lines:false">import javax.jws.WebService;

@WebService()
public interface SimpleServiceWS {

	public String simpleMethod();

}</pre>
<p>As far as code goes this is all there is to it. The remaing steps describe how to package and deploy these objects.</p>
<h4>Package and Deploy</h4>
<p>As I mentioned above we will package and deploy these classes as a servlet implementation. I am most familiar with JBoss so that is the application server I will use but any servlet container should work fine.</p>
<p>Create a new xml file named <code>web.xml</code> and define the servlet mappings for the <code>SimpleServiceImpl</code> class as shown here.</p>
<pre class="brush:xml; smart-tabs:true; wrap-lines:false">&lt;?xml version="&gt;&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE web-app PUBLIC
	"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
	"http://java.sun.com/dtd/web-app_2_3.dtd"&gt;
&lt;web-app&gt;
	&lt;servlet&gt;
		&lt;servlet-name&gt;SimpleServiceWS&lt;/servlet-name&gt;
		&lt;servlet-class&gt;net.franksalinas.javablog.SimpleServiceImpl&lt;/servlet-class&gt;
	&lt;/servlet&gt;

	&lt;servlet-mapping&gt;
		&lt;servlet-name&gt;SimpleServiceWS&lt;/servlet-name&gt;
		&lt;url-pattern&gt;/SimpleService&lt;/url-pattern&gt;
	&lt;/servlet-mapping&gt;
&lt;/web-app&gt;</pre>
<p>Now create a <code>WEB-INF</code> directory and place this file there. Compile your Java files and place them in a folder named <code>classes</code>. Create a folder named <code>dist</code>. Copy the <code>WEB-INF</code> and <code>classes</code> directory to this new folder. Now create a JAR file named <code>SimpleService.war</code> containing the contents of <code>dist</code> directory. (Visit <a title="Sun WAR File Format (Wikipedia)" href="http://en.wikipedia.org/wiki/Sun_WAR_(file_format)" target="_blank">http://en.wikipedia.org/wiki/Sun_WAR_(file_format)</a> for more info on the WAR file structure.)</p>
<p>You should now have a WAR file with the following structure:</p>
<pre class="brush:xml; smart-tabs:true; wrap-lines:false">META-INF/
META-INF/MANIFEST.MF
WEB-INF/
WEB-INF/web.xml
classes/
classes/net/
classes/net/franksalinas/
classes/net/franksalinas/javablog/
classes/net/franksalinas/javablog/SimpleServiceImpl.class
classes/net/franksalinas/javablog/SimpleServiceWS.class</pre>
<p>Now you can copy this <code>SimpleService.war</code> file to your application server&#8217;s deployment directory <em>(&lt;jboss_home&gt;/server/default/deploy</em>) and start the server. Your web service will be deployed. On JBoss you can see the deployment and access the WSDL for the service at url http://127.0.0.1:8080/SimpleService/SimpleService?wsdl</p>
<p>That&#8217;s all there is to it!</p>
<p><em>Note that we did not implement the <code>javax.servlet.http.HttpServlet</code> interface in the service class. It is not required but may be considered good practice to do so depdending on your implementation.</em></p>
<h4>Summary</h4>
<p>In this example we created a simple web service using JAX-WS and packaged and deployed the implementation as a servlet configuration. We learned that web services are nothing more than plain old Java objects (POJOs) that are decorated with a few simple annotations and that servlet configurations do not require the web service class to implement the <code>javax.servlet.http.HttpServlet</code> interface. We covered packaging the code as a WAR file and deploying on the JBoss application server.</p>
<p>This is a very simple example and there&#8217;s a lot more material to cover. I hope you found this posting informative and helpful. You can download all the source code for this example here: <a href="http://javablog.franksalinas.net/wp-content/uploads/2010/02/SimpleService.zip">SimpleService.zip</a>.</p>
<p><a title="Sun WAR File Format (Wikipedia)" href="http://en.wikipedia.org/wiki/Sun_WAR_(file_format)" target="_blank"></a></p>

<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div><p><a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F03%2F09%2Fjava-web-services-getting-started%2F&amp;linkname=Java%20Web%20Services%3A%20Getting%20Started" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F03%2F09%2Fjava-web-services-getting-started%2F&amp;linkname=Java%20Web%20Services%3A%20Getting%20Started" title="Delicious" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F03%2F09%2Fjava-web-services-getting-started%2F&amp;linkname=Java%20Web%20Services%3A%20Getting%20Started" title="Twitter" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F03%2F09%2Fjava-web-services-getting-started%2F&amp;linkname=Java%20Web%20Services%3A%20Getting%20Started" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F03%2F09%2Fjava-web-services-getting-started%2F&amp;linkname=Java%20Web%20Services%3A%20Getting%20Started" title="DZone" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/diigo?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2010%2F03%2F09%2Fjava-web-services-getting-started%2F&amp;linkname=Java%20Web%20Services%3A%20Getting%20Started" title="Diigo" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/diigo.png" width="16" height="16" alt="Diigo"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a> </p>

<p>Related posts:<ol><li><a href='http://javablog.franksalinas.net/2008/10/29/web-services-on-jboss/' rel='bookmark' title='Permanent Link: Web Services on JBoss'>Web Services on JBoss</a> <small>I&#8217;ve been working on a project which requires developing some...</small></li>
<li><a href='http://javablog.franksalinas.net/2009/03/01/the-ejb-specification-concurrency-and-batch-processing/' rel='bookmark' title='Permanent Link: The EJB Specification, Concurrency, and Batch Processing'>The EJB Specification, Concurrency, and Batch Processing</a> <small>The EJB specification does not leave much room for implementing...</small></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/EEi9lZ0bV8equCNMkU82OUCDIg4/0/da"><img src="http://feedads.g.doubleclick.net/~a/EEi9lZ0bV8equCNMkU82OUCDIg4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/EEi9lZ0bV8equCNMkU82OUCDIg4/1/da"><img src="http://feedads.g.doubleclick.net/~a/EEi9lZ0bV8equCNMkU82OUCDIg4/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=6T_U9vYVxpg:0chfFAlsdYY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=6T_U9vYVxpg:0chfFAlsdYY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=6T_U9vYVxpg:0chfFAlsdYY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=6T_U9vYVxpg:0chfFAlsdYY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=6T_U9vYVxpg:0chfFAlsdYY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=6T_U9vYVxpg:0chfFAlsdYY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=6T_U9vYVxpg:0chfFAlsdYY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=6T_U9vYVxpg:0chfFAlsdYY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=6T_U9vYVxpg:0chfFAlsdYY:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=6T_U9vYVxpg:0chfFAlsdYY:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=6T_U9vYVxpg:0chfFAlsdYY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=6T_U9vYVxpg:0chfFAlsdYY:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/FranksJavaBlog/~4/6T_U9vYVxpg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://javablog.franksalinas.net/2010/03/09/java-web-services-getting-started/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://javablog.franksalinas.net/2010/03/09/java-web-services-getting-started/</feedburner:origLink></item>
		<item>
		<title>Java tip: How to read files quickly | Nadeau Software</title>
		<link>http://feedproxy.google.com/~r/FranksJavaBlog/~3/J67e-sZgyjA/</link>
		<comments>http://javablog.franksalinas.net/2009/11/25/java-tip-how-to-read-files-quickly-nadeau-software/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 20:10:06 +0000</pubDate>
		<dc:creator>Frank Salinas</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[BufferedInputStream]]></category>
		<category><![CDATA[FileChannel]]></category>
		<category><![CDATA[FileInputStream]]></category>
		<category><![CDATA[I/O]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://javablog.franksalinas.net/2009/11/25/java-tip-how-to-read-files-quickly-nadeau-software/</guid>
		<description><![CDATA[Here’s a good article comparing the performance of various File I/O implementations.&#160; I was particularly interested in the performance difference between the BufferedInputStream and the FileChannel. Java tip: How to read files quickly &#124; Nadeau Software No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>Here’s a good article comparing the performance of various File I/O implementations.&#160; I was particularly interested in the performance difference between the BufferedInputStream and the FileChannel. </p>
<p><a href="http://nadeausoftware.com/articles/2008/02/java_tip_how_read_files_quickly#BufferedInputStreamwithbytearrayreads" title="Java tip: How to read files quickly | Nadeau Software">Java tip: How to read files quickly | Nadeau Software</a></p>

<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div><p><a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F11%2F25%2Fjava-tip-how-to-read-files-quickly-nadeau-software%2F&amp;linkname=Java%20tip%3A%20How%20to%20read%20files%20quickly%20%7C%20Nadeau%20Software" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F11%2F25%2Fjava-tip-how-to-read-files-quickly-nadeau-software%2F&amp;linkname=Java%20tip%3A%20How%20to%20read%20files%20quickly%20%7C%20Nadeau%20Software" title="Delicious" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F11%2F25%2Fjava-tip-how-to-read-files-quickly-nadeau-software%2F&amp;linkname=Java%20tip%3A%20How%20to%20read%20files%20quickly%20%7C%20Nadeau%20Software" title="Twitter" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F11%2F25%2Fjava-tip-how-to-read-files-quickly-nadeau-software%2F&amp;linkname=Java%20tip%3A%20How%20to%20read%20files%20quickly%20%7C%20Nadeau%20Software" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F11%2F25%2Fjava-tip-how-to-read-files-quickly-nadeau-software%2F&amp;linkname=Java%20tip%3A%20How%20to%20read%20files%20quickly%20%7C%20Nadeau%20Software" title="DZone" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/diigo?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F11%2F25%2Fjava-tip-how-to-read-files-quickly-nadeau-software%2F&amp;linkname=Java%20tip%3A%20How%20to%20read%20files%20quickly%20%7C%20Nadeau%20Software" title="Diigo" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/diigo.png" width="16" height="16" alt="Diigo"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a> </p>

<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/RYgyY9RvEWz_lJAiRJ4MPiw_DpM/0/da"><img src="http://feedads.g.doubleclick.net/~a/RYgyY9RvEWz_lJAiRJ4MPiw_DpM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/RYgyY9RvEWz_lJAiRJ4MPiw_DpM/1/da"><img src="http://feedads.g.doubleclick.net/~a/RYgyY9RvEWz_lJAiRJ4MPiw_DpM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=J67e-sZgyjA:s-BWgmIuafc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=J67e-sZgyjA:s-BWgmIuafc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=J67e-sZgyjA:s-BWgmIuafc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=J67e-sZgyjA:s-BWgmIuafc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=J67e-sZgyjA:s-BWgmIuafc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=J67e-sZgyjA:s-BWgmIuafc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=J67e-sZgyjA:s-BWgmIuafc:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=J67e-sZgyjA:s-BWgmIuafc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=J67e-sZgyjA:s-BWgmIuafc:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=J67e-sZgyjA:s-BWgmIuafc:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=J67e-sZgyjA:s-BWgmIuafc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=J67e-sZgyjA:s-BWgmIuafc:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/FranksJavaBlog/~4/J67e-sZgyjA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://javablog.franksalinas.net/2009/11/25/java-tip-how-to-read-files-quickly-nadeau-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://javablog.franksalinas.net/2009/11/25/java-tip-how-to-read-files-quickly-nadeau-software/</feedburner:origLink></item>
		<item>
		<title>Use final</title>
		<link>http://feedproxy.google.com/~r/FranksJavaBlog/~3/_FTe08GbIqU/</link>
		<comments>http://javablog.franksalinas.net/2009/10/27/use-final-judiciously/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 04:19:07 +0000</pubDate>
		<dc:creator>Frank Salinas</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Final]]></category>

		<guid isPermaLink="false">http://javablog.franksalinas.net/?p=574</guid>
		<description><![CDATA[The final keyword is one that I find is under utilized. Use final in your projects as a means of defensive programming. If you are unfamiliar with this keyword here is a great article on its usage. Renaud Waldura&#8217;s The Final Word On the final Keyword . No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>The final keyword is one that I find is under utilized. Use final in your projects as a means of defensive programming. If you are unfamiliar with this keyword here is a great article on its usage.</p>
<p><a href="http://renaud.waldura.com/doc/java/final-keyword.shtml">Renaud Waldura&#8217;s The Final Word On the final Keyword </a>.</p>

<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div><p><a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F10%2F27%2Fuse-final-judiciously%2F&amp;linkname=Use%20final" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F10%2F27%2Fuse-final-judiciously%2F&amp;linkname=Use%20final" title="Delicious" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F10%2F27%2Fuse-final-judiciously%2F&amp;linkname=Use%20final" title="Twitter" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F10%2F27%2Fuse-final-judiciously%2F&amp;linkname=Use%20final" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F10%2F27%2Fuse-final-judiciously%2F&amp;linkname=Use%20final" title="DZone" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/diigo?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F10%2F27%2Fuse-final-judiciously%2F&amp;linkname=Use%20final" title="Diigo" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/diigo.png" width="16" height="16" alt="Diigo"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a> </p>

<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/To1_J_2R1r7udO7aDoBm_9n6Dww/0/da"><img src="http://feedads.g.doubleclick.net/~a/To1_J_2R1r7udO7aDoBm_9n6Dww/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/To1_J_2R1r7udO7aDoBm_9n6Dww/1/da"><img src="http://feedads.g.doubleclick.net/~a/To1_J_2R1r7udO7aDoBm_9n6Dww/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=_FTe08GbIqU:m3aEhmyHJR8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=_FTe08GbIqU:m3aEhmyHJR8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=_FTe08GbIqU:m3aEhmyHJR8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=_FTe08GbIqU:m3aEhmyHJR8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=_FTe08GbIqU:m3aEhmyHJR8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=_FTe08GbIqU:m3aEhmyHJR8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=_FTe08GbIqU:m3aEhmyHJR8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=_FTe08GbIqU:m3aEhmyHJR8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=_FTe08GbIqU:m3aEhmyHJR8:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=_FTe08GbIqU:m3aEhmyHJR8:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=_FTe08GbIqU:m3aEhmyHJR8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=_FTe08GbIqU:m3aEhmyHJR8:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/FranksJavaBlog/~4/_FTe08GbIqU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://javablog.franksalinas.net/2009/10/27/use-final-judiciously/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://javablog.franksalinas.net/2009/10/27/use-final-judiciously/</feedburner:origLink></item>
		<item>
		<title>EGL Community Edition 1.0</title>
		<link>http://feedproxy.google.com/~r/FranksJavaBlog/~3/bqj9Sk4Wom8/</link>
		<comments>http://javablog.franksalinas.net/2009/09/09/egl-community-edition-1-0/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 21:18:40 +0000</pubDate>
		<dc:creator>Frank Salinas</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[EGL]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://javablog.franksalinas.net/?p=563</guid>
		<description><![CDATA[IBM releases EGL Community Edition 1.0 on September 8, 2009. EGL is a high level language designed to simplify Rich Internet Application (RIA) and Web 2.0 development. EGL is an extensible language that generates standard JavaScript and AJAX code and is not a replacement for these technologies unlike Flex and Silverlight. EGL Community Edition 1.0 is an Eclipse based tool that [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>IBM releases EGL Community Edition 1.0 on September 8, 2009. EGL is a high level language designed to simplify Rich Internet Application (RIA) and Web 2.0 development. EGL is an extensible language that generates standard JavaScript and AJAX code and is not a replacement for these technologies unlike Flex and Silverlight.</p>
<p>EGL Community Edition 1.0 is an Eclipse based tool that is free for <a href="http://www-949.ibm.com/software/rational/cafe/community/egl/ce" target="_blank">download</a>. To learn more read the <a href="http://www-949.ibm.com/software/rational/cafe/docs/DOC-3249" target="_blank">Quick Overview</a>.</p>

<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div><p><a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F09%2F09%2Fegl-community-edition-1-0%2F&amp;linkname=EGL%20Community%20Edition%201.0" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F09%2F09%2Fegl-community-edition-1-0%2F&amp;linkname=EGL%20Community%20Edition%201.0" title="Delicious" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F09%2F09%2Fegl-community-edition-1-0%2F&amp;linkname=EGL%20Community%20Edition%201.0" title="Twitter" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F09%2F09%2Fegl-community-edition-1-0%2F&amp;linkname=EGL%20Community%20Edition%201.0" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F09%2F09%2Fegl-community-edition-1-0%2F&amp;linkname=EGL%20Community%20Edition%201.0" title="DZone" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/diigo?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F09%2F09%2Fegl-community-edition-1-0%2F&amp;linkname=EGL%20Community%20Edition%201.0" title="Diigo" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/diigo.png" width="16" height="16" alt="Diigo"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a> </p>

<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/q-OUvH2R_wC5XZLHxf0NwV4Kmjo/0/da"><img src="http://feedads.g.doubleclick.net/~a/q-OUvH2R_wC5XZLHxf0NwV4Kmjo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/q-OUvH2R_wC5XZLHxf0NwV4Kmjo/1/da"><img src="http://feedads.g.doubleclick.net/~a/q-OUvH2R_wC5XZLHxf0NwV4Kmjo/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=bqj9Sk4Wom8:6RmkbZjZScQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=bqj9Sk4Wom8:6RmkbZjZScQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=bqj9Sk4Wom8:6RmkbZjZScQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=bqj9Sk4Wom8:6RmkbZjZScQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=bqj9Sk4Wom8:6RmkbZjZScQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=bqj9Sk4Wom8:6RmkbZjZScQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=bqj9Sk4Wom8:6RmkbZjZScQ:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=bqj9Sk4Wom8:6RmkbZjZScQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=bqj9Sk4Wom8:6RmkbZjZScQ:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=bqj9Sk4Wom8:6RmkbZjZScQ:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=bqj9Sk4Wom8:6RmkbZjZScQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=bqj9Sk4Wom8:6RmkbZjZScQ:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/FranksJavaBlog/~4/bqj9Sk4Wom8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://javablog.franksalinas.net/2009/09/09/egl-community-edition-1-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://javablog.franksalinas.net/2009/09/09/egl-community-edition-1-0/</feedburner:origLink></item>
		<item>
		<title>Book Recommendation: The Art of Agile Development</title>
		<link>http://feedproxy.google.com/~r/FranksJavaBlog/~3/Vz6cr5UPeQE/</link>
		<comments>http://javablog.franksalinas.net/2009/06/27/book-recommendation-the-art-of-agile-development/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 19:11:54 +0000</pubDate>
		<dc:creator>Frank Salinas</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Recommended]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[SDLC]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://javablog.franksalinas.net/?p=541</guid>
		<description><![CDATA[I just finished reading The Art of Agile Development by James Shore and Shane Warden. I picked up the book because I wanted to find out more about agile development. I hear a lot of terms thrown around the office about scrum processes and agile development. However, as I paid more attention to the activity [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/gp/product/0596527675?ie=UTF8&amp;tag=franksalnet-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596527675"><img class=" alignleft" style="border: 0px initial initial;" title="The Art of Agile Development" src="http://javablog.franksalinas.net/wp-content/uploads/2009/06/51T8FQJDhL._SL160__thumb.jpg" border="0" alt="" width="126" height="164" /></a></p>
<p><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=franksalnet-20&amp;l=as2&amp;o=1&amp;a=0596527675" border="0" alt="" width="1" height="1" />I just finished reading <em><a href="http://www.amazon.com/gp/product/0596527675?ie=UTF8&amp;tag=franksalnet-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596527675">The Art of Agile Development</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=franksalnet-20&amp;l=as2&amp;o=1&amp;a=0596527675" border="0" alt="" width="1" height="1" /><br />
</em>by James Shore and Shane Warden. I picked up the book because I wanted to find out more about agile development. I hear a lot of terms thrown around the office about scrum processes and agile development. However, as I paid more attention to the activity within the work place I started to question the validity of our processes as being “agile”.</p>
<p><span id="more-541"></span>A scrum meeting which pushes almost an hour in time does not fit the definition of a stand-up scrum meeting. Developing formal requirements and functional specification documentation up front and scheduling around those processes fit in the “traditional” waterfall methodologies rather than agile methodologies. It seems to me that we are practicing traditional waterfall methodologies and masking it behind scrum terminology. I think there is room for improvement in our development processes and I want to learn as much as I can to help improve the process and speed up development.</p>
<p>The book provided exactly the information I was seeking. It&#8217;s loaded with information and thoroughly covers the entire software development process focusing on Extreme Programming (XP) methodologies. The XP lifecycle includes all the phases of the traditional software development life cycle (SDLC) of planning, analysis, design, code, test and deploy but eliminates formal documentation and reorganizes the phases into more efficient processes through the use of face-to-face collaboration, incremental design and parallel task execution.</p>
<p>XP emphasizes pair programming, test-driven development (TDD), iterative design, an open, collaborative workspace, and on-site customer support (e.g. Product Manager or other team members who are able to provide <span style="text-decoration: underline;">real</span> requirements). The authors walk you through adopting XP practices from planning workspaces, pair programming techniques, handling changing requirements and team organization along with commentary on alternatives to XP methods.</p>
<p>If you are interested in XP, or agile development in general, and want to get a solid understanding of how to work in or create an agile team this is the resource. I highly recommend it.</p>

<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div><p><a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F06%2F27%2Fbook-recommendation-the-art-of-agile-development%2F&amp;linkname=Book%20Recommendation%3A%20The%20Art%20of%20Agile%20Development" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F06%2F27%2Fbook-recommendation-the-art-of-agile-development%2F&amp;linkname=Book%20Recommendation%3A%20The%20Art%20of%20Agile%20Development" title="Delicious" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F06%2F27%2Fbook-recommendation-the-art-of-agile-development%2F&amp;linkname=Book%20Recommendation%3A%20The%20Art%20of%20Agile%20Development" title="Twitter" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F06%2F27%2Fbook-recommendation-the-art-of-agile-development%2F&amp;linkname=Book%20Recommendation%3A%20The%20Art%20of%20Agile%20Development" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F06%2F27%2Fbook-recommendation-the-art-of-agile-development%2F&amp;linkname=Book%20Recommendation%3A%20The%20Art%20of%20Agile%20Development" title="DZone" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/diigo?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F06%2F27%2Fbook-recommendation-the-art-of-agile-development%2F&amp;linkname=Book%20Recommendation%3A%20The%20Art%20of%20Agile%20Development" title="Diigo" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/diigo.png" width="16" height="16" alt="Diigo"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a> </p>

<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/Dwn-_3NRL6FrQlWcfshtrF1VwNk/0/da"><img src="http://feedads.g.doubleclick.net/~a/Dwn-_3NRL6FrQlWcfshtrF1VwNk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Dwn-_3NRL6FrQlWcfshtrF1VwNk/1/da"><img src="http://feedads.g.doubleclick.net/~a/Dwn-_3NRL6FrQlWcfshtrF1VwNk/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=Vz6cr5UPeQE:HTLtJqU_auo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=Vz6cr5UPeQE:HTLtJqU_auo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=Vz6cr5UPeQE:HTLtJqU_auo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=Vz6cr5UPeQE:HTLtJqU_auo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=Vz6cr5UPeQE:HTLtJqU_auo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=Vz6cr5UPeQE:HTLtJqU_auo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=Vz6cr5UPeQE:HTLtJqU_auo:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=Vz6cr5UPeQE:HTLtJqU_auo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=Vz6cr5UPeQE:HTLtJqU_auo:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=Vz6cr5UPeQE:HTLtJqU_auo:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=Vz6cr5UPeQE:HTLtJqU_auo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=Vz6cr5UPeQE:HTLtJqU_auo:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/FranksJavaBlog/~4/Vz6cr5UPeQE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://javablog.franksalinas.net/2009/06/27/book-recommendation-the-art-of-agile-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://javablog.franksalinas.net/2009/06/27/book-recommendation-the-art-of-agile-development/</feedburner:origLink></item>
		<item>
		<title>Five Essential Skills For Software Developers</title>
		<link>http://feedproxy.google.com/~r/FranksJavaBlog/~3/X9UtnE-JJIk/</link>
		<comments>http://javablog.franksalinas.net/2009/05/09/five-essential-skills-for-software-developers/#comments</comments>
		<pubDate>Sun, 10 May 2009 03:59:21 +0000</pubDate>
		<dc:creator>Frank Salinas</dc:creator>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://javablog.franksalinas.net/?p=343</guid>
		<description><![CDATA[There are a lot of software developers out there and the competition is high in the current job market. The economy is in a state of flux and the unemployment rate continues to rise. It&#8217;s important to develop a set of skills that distinguish you from the rest of the pack and I believe maintaining [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>There are a lot of software developers out there and the competition is high in the current job market. The economy is in a state of flux and the <a href="http://www.google.com/publicdatads=usunemployment&amp;met=unemployment_rate&amp;tdim=true&amp;q=unemployment+rate#met=unemployment_rate&amp;idim=state:ST060000&amp;tdim=true" target="_blank">unemployment rate </a>continues to rise. It&#8217;s important to develop a set of skills that distinguish you from the rest of the pack and I believe maintaining a well rounded set of skills is the best way to do that. Here are five essential skills to keep you on top of the game.<span id="more-343"></span></p>
<ol>
<li>Technical Knowledge</li>
<li>Verbal and Written Communication</li>
<li>White Board</li>
<li>Time Management</li>
<li>Social Interaction</li>
</ol>
<h2>Technical Knowledge</h2>
<p>As a software developer this is a set of skills which is constantly evaluated and tested by managers and co-workers. It&#8217;s a topic of your performance review and is the most highlighted topic on your resume. If you fluffed up your resume to land that job you&#8217;d better study hard nights and weekends to deliver the goods; this is not a skill you can fake for long.</p>
<p>Keeping up with the latest technology is tough and requires many hours of personal time to read about and play with the latest and greatest of technology X. Technology moves too fast to keep up with it all so narrow your focus to specific areas of interest and become an expert those areas. Remember that technology is only a tool for implementing software designs. The selected technology, or programming language, should not dictate your software design rather your software design should dictate which technology you use to best implement the design. Whatever you do, target technical skills that you find interesting and maximize your marketability</p>
<p>While it&#8217;s fine to specialize you also want to remain flexible. A developer who has a solid understanding and the ability to work in all layers of an application from the user interface to the back end database code is a valuable team member. More importantly, become an expert on the application you work on. If you find a weak area within your team, take the opportunity to become the expert. Build relationships and talk with developers that work on other areas of the application to increase general knowledge of the overall product. The more you know, the more valuable you are to the company.</p>
<h2>Verbal and Written Communication</h2>
<p>Developers must be able to communicate software designs clearly and effectively with managers, business analyst and other team members. The ability to analyze business requirements and produce functional specification and design documentation is critical. Documentation should be written concisely covering all the business requirements. At times, it may be necessary to present your software design to a larger group in the form of a presentation. Presentations require strong verbal communication skills and the use of visual aids are beneficial. The ability to communicate your ideas clearly in front of a group of people is essential to career advancement.</p>
<h2>White Board</h2>
<p>I&#8217;ve written thousands of pages of documentation in the form of functional specifications and architectural design documents using Word, Visio and PowerPoint. While these documents are great for presentations and getting a project off the ground I&#8217;ve found that most people don&#8217;t actually read them (particularly the executives). This is when a quick, high-level overview of the design described pictorially on a white board is the most effective and efficient form of communication. As the old saying goes&#8230;&#8221;A picture is worth a thousand words&#8221;.</p>
<p>There is some skill required to be a good &#8220;white boarder&#8221;. I&#8217;ve worked with engineers who&#8217;s white board skills are horrible. While verbally communicating the design, they attempt to use the white board as a visual aid but nothing of substance is ever drawn. A series of dots, boxes, circles, lines and squigglies (which are supposed to represent text) are produced which result in something resembling a heaping, multi-colored plate of spaghetti (I myself am guilty of this). If you come back to the board the next day to review the drawing it is completely unreadable and has no meaning at all. Slow down and try to remain aware of what you are communicating. It is easy to become so involved in what you are verbalizing that the visual aspect of the white board suffers. I&#8217;ve always been impressed with people who can use the white board effectively. They tend to speak clearly and produce clean, easy to understand diagrams.</p>
<h2>Time Management</h2>
<p>Time management is an essential skill in the developers tool belt. A developer who has good time management skills can consistently deliver projects on time. This, in turn, will earn you the respect and confidence of project managers. Effective time management requires the ability to multi-task and delegate. Multi-tasking allows the developer to juggle multiple task at one time. Delegation enables multi-tasking by allowing the developer to distribute and offload tasks to alternate resources. Think of multi-tasking and delegation as concurrency in the work place, each employee/department is a worker thread, delegate a task and move on to the next.</p>
<p>Make the most of your time at work <span style="text-decoration: underline;">while at work</span>. Do not bring work home unless you absolutely have to. If you find yourself bringing work home often then you are probably not utilizing your time at work efficiently. Create a todo list each day and methodically check off each task as they are completed. Microsoft Outlook has a task list feature which allows you to set reminders and completion dates. This is a great way to keep things moving. If you are working from a project plan, check it daily to make sure you are completing task on time in conjunction with the projected completion date. Keep interested parties up to date on your progress and completion of major milestones.</p>
<h2>Social Interaction</h2>
<p>At the end of the day this is just a job, a way to make money and pay the bills. Take some time to relax and associate with your co-workers in a social environment. Eating together is a great way to bond with people so try getting a group together for lunch or an after work drink and appetizers. Keep the work talk light and spend more time getting to know each other on a personal level. Socializing with your co-workers can help you in the work place. Allowing others to get to know you on a personal level may make them feel more comfortable and trusting. Developing a trusting relationship with your co-workers can increase communication, and efficiency in the office. Social interaction, along with demonstrated competence, is a great way to build up your referral network.</p>

<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div><p><a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F05%2F09%2Ffive-essential-skills-for-software-developers%2F&amp;linkname=Five%20Essential%20Skills%20For%20Software%20Developers" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F05%2F09%2Ffive-essential-skills-for-software-developers%2F&amp;linkname=Five%20Essential%20Skills%20For%20Software%20Developers" title="Delicious" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F05%2F09%2Ffive-essential-skills-for-software-developers%2F&amp;linkname=Five%20Essential%20Skills%20For%20Software%20Developers" title="Twitter" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F05%2F09%2Ffive-essential-skills-for-software-developers%2F&amp;linkname=Five%20Essential%20Skills%20For%20Software%20Developers" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a href="http://www.addtoany.com/add_to/dzone?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F05%2F09%2Ffive-essential-skills-for-software-developers%2F&amp;linkname=Five%20Essential%20Skills%20For%20Software%20Developers" title="DZone" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/dzone.png" width="16" height="16" alt="DZone"/></a> <a href="http://www.addtoany.com/add_to/diigo?linkurl=http%3A%2F%2Fjavablog.franksalinas.net%2F2009%2F05%2F09%2Ffive-essential-skills-for-software-developers%2F&amp;linkname=Five%20Essential%20Skills%20For%20Software%20Developers" title="Diigo" rel="nofollow" target="_blank"><img src="http://javablog.franksalinas.net/wp-content/plugins/add-to-any/icons/diigo.png" width="16" height="16" alt="Diigo"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a> </p>

<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/6pis9CKsRq1WZibksSqwOdLbg54/0/da"><img src="http://feedads.g.doubleclick.net/~a/6pis9CKsRq1WZibksSqwOdLbg54/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/6pis9CKsRq1WZibksSqwOdLbg54/1/da"><img src="http://feedads.g.doubleclick.net/~a/6pis9CKsRq1WZibksSqwOdLbg54/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=X9UtnE-JJIk:LZo2Nx8bQec:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=X9UtnE-JJIk:LZo2Nx8bQec:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=X9UtnE-JJIk:LZo2Nx8bQec:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=X9UtnE-JJIk:LZo2Nx8bQec:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=X9UtnE-JJIk:LZo2Nx8bQec:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=X9UtnE-JJIk:LZo2Nx8bQec:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=X9UtnE-JJIk:LZo2Nx8bQec:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=X9UtnE-JJIk:LZo2Nx8bQec:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=X9UtnE-JJIk:LZo2Nx8bQec:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=X9UtnE-JJIk:LZo2Nx8bQec:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/FranksJavaBlog?a=X9UtnE-JJIk:LZo2Nx8bQec:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/FranksJavaBlog?i=X9UtnE-JJIk:LZo2Nx8bQec:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/FranksJavaBlog/~4/X9UtnE-JJIk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://javablog.franksalinas.net/2009/05/09/five-essential-skills-for-software-developers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://javablog.franksalinas.net/2009/05/09/five-essential-skills-for-software-developers/</feedburner:origLink></item>
	</channel>
</rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)

Served from: javablog.franksalinas.net @ 2010-08-28 11:22:10 -->
