<?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>Codeskine</title>
	<atom:link href="http://www.codeskine.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.codeskine.com</link>
	<description>whose line is it anyway?</description>
	<lastBuildDate>Thu, 08 Sep 2011 16:27:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>What’s in your (digital) wallet?</title>
		<link>http://www.codeskine.com/2011/09/what%e2%80%99s-in-your-digital-wallet/</link>
		<comments>http://www.codeskine.com/2011/09/what%e2%80%99s-in-your-digital-wallet/#comments</comments>
		<pubDate>Thu, 08 Sep 2011 16:08:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[NYC]]></category>

		<guid isPermaLink="false">http://www.codeskine.com/?p=184</guid>
		<description><![CDATA[I got my first wallet when I was about seven years old and still can remember how kids judged each other for how much (useless) stuff you had in your wallet, but with the pass of the time my wallet has been shrinking, now I&#8217;m quite sure it will disappear at some point in the [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.codeskine.com/2011/09/what%e2%80%99s-in-your-digital-wallet/" title="Permanent link to What’s in your (digital) wallet?"><img class="post_image aligncenter remove_bottom_margin frame" src="http://www.codeskine.com/wp-content/uploads/2011/09/digital_wallet.jpg" width="500" height="332" alt="Post image for What’s in your (digital) wallet?" /></a>
</p><p>I got my first wallet when I was about seven years old and still can remember how kids judged each other for how much (useless) stuff you had in your wallet, but with the pass of the time my wallet has been shrinking, now I&#8217;m quite sure it will disappear at some point in the eight to ten years, been replaced by an smartphone. I might keep a wallet, but just as a physical backup of my digital one. But let’s check how far we are from a complete digital wallet based on what you have in your wallet right now:</p>
<p><strong>Pictures:</strong> Already checked, all smartphones and most of ‘dumb-phones’ can store pictures of your SO, babies and lolcats.</p>
<p><strong>Cash:</strong> This might be most harder item to digitalize, some ideas for digital cash are on the table like <a title="bitcoin website" href="http://bitcoin.org/" target="_blank">Bitcoin</a>, but we will need years of legal and financial discussions before see these type currencies going mainstream.</p>
<p><strong>Credit -Debit Cards</strong>: Most of the US banks already have a mobile app, which can be potentiated with NFC technologies to act as banking cards, also services like <a title="square app" href="https://squareup.com/" target="_blank">Square</a>, <a title="paypal website" href="http://paypal.com" target="_blank">Paypal</a>, <a title="venmo" href="http://venmo.com" target="_blank">Venmo</a> , <a title="Serve" href="http://www.serve.com/" target="_blank">Serve </a>and <a title="Google wallet" href="http://www.google.com/wallet/" target="_blank">Google Wallet</a> are available and can provide an alternative to plastic, we will need to wait for the commerce to start adopting such services.</p>
<p><strong>Driver Licenses:</strong>  I would love to see digital driver licenses around, but I couldn’t find any state or federal initiative towards this idea, again NFC and Bluetooth technologies could help this to happen.  Meanwhile keep your driver license in a money clip with your cash.</p>
<p><strong>Other Ids:</strong>  Student IDs, library cards and other forms of identification might be easier to implement by particular entities and might help to push for driver licenses and other official identifications.</p>
<p><strong>Commuting cards</strong>: Depending on your city, this can be a couple of years away or a couple of decades away. For the MTA case (New York City) some stations are equipped with PayPass sensors to accept credit card payments. But moving this idea to the mobile space might require a considerable infrastructure investment. but if already works with E-Z Pass to pay tolls why it can&#8217;t be developed for trains and buses?</p>
<p><strong>Business cards</strong>: We do love well-designed business cards, right? But they got outdated pretty easy and are difficult to organize.The digital wallet is a good place for them, right now we can use at least three services for digital business cards: <a href="bu.mp/" target="_blank">Bump</a>, <a href="hashable.com/" target="_blank">Hashable</a> and <a href="http://www.linkedin.com/ " target="_blank">LinkedIn app</a>.</p>
<p>In conclusion, wallets would be endangered as the NFC technologies blossom and government agencies move forward to digital services.  I hope my wallet can soon rest in peace next to my wristband watch also retired for my smartphone a year ago.</p>
<p>&nbsp;</p>
<h5>&#8230; and please forgive my grammar.</h5>
<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=What%E2%80%99s+in+your+%28digital%29+wallet%3F+http%3A%2F%2Fis.gd%2FJOBQ8R" title="Post to Twitter"><img class="nothumb" src="http://www.codeskine.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=What%E2%80%99s+in+your+%28digital%29+wallet%3F+http%3A%2F%2Fis.gd%2FJOBQ8R" title="Post to Twitter">Tweet This Post</a></p></div>]]></content:encoded>
			<wfw:commentRss>http://www.codeskine.com/2011/09/what%e2%80%99s-in-your-digital-wallet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developers against poverty</title>
		<link>http://www.codeskine.com/2011/02/developers-against-poverty/</link>
		<comments>http://www.codeskine.com/2011/02/developers-against-poverty/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 16:42:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[charity water]]></category>

		<guid isPermaLink="false">http://codeskine.com/?p=163</guid>
		<description><![CDATA[If you are reading me, you are mostly a developer or someone who spend most of the they in a computer. If you are thirsty, it&#8217;s easy to grab some water from the cooler or from the tap. But, outside of our &#8216;normal&#8217; lives, millions of people need to walk miles just for a clean [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>If you are reading me, you are mostly a developer or someone who spend most of the they in a computer. If you are thirsty, it&#8217;s easy to grab some water from the cooler or from the tap.</p>
<p>But, outside of our &#8216;normal&#8217; lives, millions of people need to walk miles just for a clean and safe water resource or get sick drinking contaminated water. put in their shoes for a minute&#8230; hard to live that way, right?</p>
<p>So this is my proposal: Instead of buying that hyped bottled water or the fancy Starbucks coffee, only for a day, donate the money to the charity:water.</p>
<p>For more info and donations visit <a title="developers against poverty." href="http://developersagainstpoverty.org" target="_blank">http://developersagainstpoverty.org</a></p>
<p style="text-align: center;"><iframe src="http://player.vimeo.com/video/2942875?title=0&amp;byline=0&amp;portrait=0" width="400" height="225" frameborder="0"></iframe>
<p><a href="http://vimeo.com/2942875">charity: water promo featuring &#8220;Time Bomb&#8221; by Beck</a> from <a href="http://vimeo.com/charitywater">charity: water</a> on <a href="http://vimeo.com">Vimeo</a>.</p></p>
<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Developers+against+poverty+http%3A%2F%2Fis.gd%2FygjIez" title="Post to Twitter"><img class="nothumb" src="http://www.codeskine.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Developers+against+poverty+http%3A%2F%2Fis.gd%2FygjIez" title="Post to Twitter">Tweet This Post</a></p></div>]]></content:encoded>
			<wfw:commentRss>http://www.codeskine.com/2011/02/developers-against-poverty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kind of busy&#8230;</title>
		<link>http://www.codeskine.com/2010/11/kind-of-busy/</link>
		<comments>http://www.codeskine.com/2010/11/kind-of-busy/#comments</comments>
		<pubDate>Sat, 27 Nov 2010 04:21:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://codeskine.com/?p=161</guid>
		<description><![CDATA[Hi there, Between my job, the crossfindr app, the lego project and the upcoming &#8216;Ignite Medellin&#8216;; I have been a little busy to update my blog&#8230; I&#8217;m trying to write a post about what I learnt building Crossfindr, but meanwhile check out my current projects: Crossfindr app Ignite Medellin Clone 77 Project My memebox Tweet [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Hi there,</p>
<p>Between my job, the <em>crossfindr app</em>, the <em>lego project</em> and the upcoming &#8216;<em>Ignite Medellin</em>&#8216;; I have been a little busy to update my blog&#8230; I&#8217;m trying to write a post about what I learnt building Crossfindr, but meanwhile check out my current projects:</p>
<p><a href="http://www.crossfindr.info" target="_blank">Crossfindr app</a></p>
<p><a href="http://www.ignitemedellin.com" target="_blank">Ignite Medellin</a></p>
<p><a href="http://clone77.posterous.com" target="_blank">Clone 77 Project</a></p>
<p><a href="http://billyto.posterous.com" target="_blank">My memebox</a></p>
<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Kind+of+busy%E2%80%A6+http%3A%2F%2Fis.gd%2FpetYWP" title="Post to Twitter"><img class="nothumb" src="http://www.codeskine.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Kind+of+busy%E2%80%A6+http%3A%2F%2Fis.gd%2FpetYWP" title="Post to Twitter">Tweet This Post</a></p></div>]]></content:encoded>
			<wfw:commentRss>http://www.codeskine.com/2010/11/kind-of-busy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Got Cache?</title>
		<link>http://www.codeskine.com/2010/04/got-cache/</link>
		<comments>http://www.codeskine.com/2010/04/got-cache/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 16:16:49 +0000</pubDate>
		<dc:creator>Billy T.</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[ehcache web]]></category>

		<guid isPermaLink="false">http://codeskine.com/?p=152</guid>
		<description><![CDATA[Once upon a time, I had a Servlet making expensive queries, about 3 seconds per request, using plain JDBC. Something to worry about if you already know that the servlet is placed in a high traffic website, and high means more than 10 million hits daily. Obviously without any cache mechanism in the middle the [...]]]></description>
			<content:encoded><![CDATA[<p></p><div>
<div>
<p style="text-align: justify;">Once upon a time, I had a Servlet making expensive queries, about 3 seconds per request, using plain JDBC. Something to worry about if you already know that the servlet is placed in a high traffic website, and high means more than 10 million hits daily. Obviously without any cache mechanism in the middle the solution would be far from being acceptable to move to production.</p>
<p style="text-align: justify;">To help to prevent this issue, Servlets can use a filter cache that  would process all the incoming requests and evaluate if a cache entry is  available to return or a db call should be made.</p>
<p style="text-align: justify;">So, here is an implementation example using eh-cache web on a fictional &#8220;<em>myServlet</em>&#8220;:</p>
<h3 style="text-align: justify;"><a name="GotCache?(Servlets)-1.Howtosetupthecache:"></a>1. How to  set up the cache:</h3>
<p style="text-align: justify;">If you project is using maven, be sure to add the ehcache-web  dependency:</p>
<p style="text-align: justify;">
<pre class="brush:xml">&lt;dependency&gt;
&lt;groupId&gt;net.sf.ehcache&lt;/groupId&gt;
&lt;artifactId&gt;ehcache-web&lt;/artifactId&gt;
&lt;version&gt;2.0.0&lt;/version&gt;
&lt;/dependency&gt;</pre>
<p style="text-align: justify;">
<p style="text-align: justify;">Probably you will need to add the slf4j dependency as well, if you  are interested in log the cache manager messages.</p>
<p style="text-align: justify;">
<pre class="brush:xml">&lt;dependency&gt;
&lt;groupId&gt;net.sf.ehcache&lt;/groupId&gt;
&lt;artifactId&gt;ehcache-web&lt;/artifactId&gt;
&lt;version&gt;2.0.0&lt;/version&gt;
&lt;/dependency&gt;</pre>
<p style="text-align: justify;">If you are not using maven, be sure to add the corresponding jar  files to your classpath (including .jar dependencies).</p>
<p style="text-align: justify;">then create or edit your <em>ehcache.xml</em> file, adding a new  cache object. i.e.</p>
<p style="text-align: justify;">
<pre class="brush:xml">&lt;cache name="CachePageCachingFilter"
maxElementsInMemory="500"
eternal="false"
timeToIdleSeconds="300"
timeToLiveSeconds="300"  //5 minutes
overflowToDisk="true"&gt;
&lt;/cache&gt;</pre>
<p style="text-align: justify;">the <em>ehcache.xml</em>, should be placed inside your classpath, i.e. <em>/src/main/resources</em> folder.</p>
<h3 style="text-align: justify;">2. Create your cache servlet filter:</h3>
<p style="text-align: justify;">Basically, you need to create a filter that extends <strong>net.sf.ehcache.constructs.web.filter.CachingFilter</strong> class, you can see a good example of how to do this in the provided  class net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter . its  likely override protected String <strong>calculateKey(HttpServletRequest  httpRequest)</strong> method, in order to give a specific order to your  request parameters or add more information to the cache key.</p>
<h3 style="text-align: justify;"><a name="GotCache?(Servlets)-3.Setupthefilter:"></a>3.Set up the  filter:</h3>
<p style="text-align: justify;">As any other servlet filter, it must be configured in the web.xml  file, first declaring it:</p>
<p style="text-align: justify;">
<pre class="brush:xml">&lt;filter&gt;
&lt;display-name&gt;CacheFilter&lt;/display-name&gt;
&lt;filter-name&gt;CacheFilter&lt;/filter-name&gt;
&lt;filter-class&gt;billyto.examples.MyCacheFilter&lt;/filter-class&gt;
&lt;!--    &lt;filter-class&gt;net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter&lt;/filter-class&gt;  --&gt;
&lt;init-param&gt;
&lt;param-name&gt;suppressStackTraces&lt;/param-name&gt;
&lt;param-value&gt;false&lt;/param-value&gt;
&lt;/init-param&gt;
&lt;init-param&gt;
&lt;param-name&gt;cacheName&lt;/param-name&gt;
&lt;param-value&gt;CachePageCachingFilter&lt;/param-value&gt;   &lt;!-- same name as ehcache.xml --&gt;
&lt;/init-param&gt;
&lt;/filter&gt;</pre>
<p style="text-align: justify;">and then, mapping it <strong>BEFORE</strong> your servlet mapping. i.e</p>
<p style="text-align: justify;">
<pre class="brush:xml">&lt;filter-mapping&gt;
&lt;filter-name&gt;CacheFilter&lt;/filter-name&gt;
&lt;url-pattern&gt;/example/retrieve-data&lt;/url-pattern&gt;
&lt;dispatcher&gt;REQUEST&lt;/dispatcher&gt;
&lt;dispatcher&gt;INCLUDE&lt;/dispatcher&gt;
&lt;dispatcher&gt;FORWARD&lt;/dispatcher&gt;
&lt;/filter-mapping&gt;

&lt;servlet&gt;
&lt;display-name&gt;MyServlet&lt;/display-name&gt;
&lt;servlet-name&gt;MyServlet&lt;/servlet-name&gt;
&lt;servlet-class&gt;billyto.example.MyServlet&lt;/servlet-class&gt;
&lt;/servlet&gt;
&lt;servlet-mapping&gt;
&lt;servlet-name&gt;MyServlet&lt;/servlet-name&gt;
&lt;url-pattern&gt;/example/retrieve-data&lt;/url-pattern&gt;
&lt;/servlet-mapping&gt;</pre>
<h3 style="text-align: justify;"><a name="GotCache?(Servlets)-4.tryit."></a>4. Try it.</h3>
<p style="text-align: justify;">You can include a date in your servlet response, and check if the time is changing between request(no cache) or if it remains the same (cached response).</p>
<p style="text-align: justify;">Additionally if you need to condition the cache calling, you can also override the method:  <em>protected void doFilter(final HttpServletRequest request, final HttpServletResponse response,final FilterChain chain) </em>And set some logic to execute the cache, invoking super.doFilter(&#8230;) or  moving the execution to the next chain level with chain.doFilter(&#8230;)</p>
<p style="text-align: justify;">EHCache have pretty good documentation and active forums, for more information you can go <a rel="nofollow" href="http://ehcache.org/documentation/web_caching.html">here</a>.</p>
</div>
</div>
<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Got+Cache%3F+http%3A%2F%2Fis.gd%2FKiRNBg" title="Post to Twitter"><img class="nothumb" src="http://www.codeskine.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Got+Cache%3F+http%3A%2F%2Fis.gd%2FKiRNBg" title="Post to Twitter">Tweet This Post</a></p></div>]]></content:encoded>
			<wfw:commentRss>http://www.codeskine.com/2010/04/got-cache/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>More on java best practices</title>
		<link>http://www.codeskine.com/2010/02/more-on-java-best-practices/</link>
		<comments>http://www.codeskine.com/2010/02/more-on-java-best-practices/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 23:40:10 +0000</pubDate>
		<dc:creator>Billy T.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://codeskine.com/?p=146</guid>
		<description><![CDATA[Continuing with the ‘Java good practices’ series, Timothy Fagan at NYC Java meet up, brought us an interesting discussion about code complexity. For many people it could sound as a ‘Capitan obvious’ advise, although all of us at some point made one of these mistakes bad decisions, when writing software. So, this is what I [...]]]></description>
			<content:encoded><![CDATA[<p></p><p style="text-align: justify;">Continuing with the ‘Java good practices’ series, Timothy Fagan at NYC Java meet up, brought us an interesting discussion about code complexity. For many people it could sound as a ‘<a href="http://www.urbandictionary.com/define.php?term=captain+obvious" target="_blank">Capitan obvious</a>’ advise, although all of us at some point made one of these <span style="text-decoration: line-through;"><em>mistakes</em></span> bad decisions, when writing software. So, this is what I learn from the talk, including some personal points of view.</p>
<p style="text-align: justify;"><strong>Be simple.</strong></p>
<p style="text-align: justify;">Minimalism is just beautiful, why don’t apply it to code? The most comprehensible and short a method is, the more easy to debug and maintain it will be; people would prefer to work with defective and understandable code than working with perfect and incomprehensible code.  In the first case you can fix the code without any problem, in the second case, if you want to modify the code, you will need to spend some extra time deciphering how it is supposed to work.  I like to think methods are la Haikus, short in length and powerful in meaning.  (Ok some haikus are really difficult to interpret what would make this a bad analogy, but let’s stick to the easy ones)</p>
<p style="text-align: justify;"><strong>Reduce possible execution paths</strong></p>
<p style="text-align: justify;"><a href="http://en.wikipedia.org/wiki/Cyclomatic_complexity" target="_blank">Cyclomatic complexity</a> is defined by wikipedia as “the count of the number of linearly independent paths through the source code”, what means, the more decision points you code have, the more complex it is to read, test and finally execute; the advice here is, if you have a lot of conditions in a single method, probably you would be likely to refactor your code, grouping conditions, moving responsibilities to another method/class or removing unnecessary validations.</p>
<p style="text-align: justify;">For example <em><span style="color: #008000;">System.getProperties() !=null</span></em><em> , </em>consider that the JVM will never return you a null object, so this checking its unnecessary.</p>
<pre style="text-align: justify;"><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;">Also try to reduce the number of return statements in your methods, some authors recommend to have just one return at the end of the method, but sometimes you can make your code faster if  write an early return for the most common execution scenarios.</span></pre>
<p style="text-align: justify;"><strong>Be positive.</strong></p>
<p style="text-align: justify;"><strong><span style="font-weight: normal;">Seems like human brains are shaped to assert to ‘true’ statements, therefore you should code your Boolean conditions asking if the value is true, it would be easy to read for the fellow maintenance developer.</span></strong></p>
<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=More+on+java+best+practices+http%3A%2F%2Fis.gd%2FbUvh2m" title="Post to Twitter"><img class="nothumb" src="http://www.codeskine.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=More+on+java+best+practices+http%3A%2F%2Fis.gd%2FbUvh2m" title="Post to Twitter">Tweet This Post</a></p></div>]]></content:encoded>
			<wfw:commentRss>http://www.codeskine.com/2010/02/more-on-java-best-practices/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Spring Framework 3.0 (someone else already wrote the review!!!)</title>
		<link>http://www.codeskine.com/2010/02/spring-framework-3-0-someone-else-already-wrote-the-review/</link>
		<comments>http://www.codeskine.com/2010/02/spring-framework-3-0-someone-else-already-wrote-the-review/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 21:39:50 +0000</pubDate>
		<dc:creator>Billy T.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[kindle]]></category>
		<category><![CDATA[spring]]></category>

		<guid isPermaLink="false">http://codeskine.com/?p=140</guid>
		<description><![CDATA[I’m promise last week to write about the Spring framework the last version 3.0, base on the NYC’s java meet up talk by Mark Pollack who is a Springsource insider. But looking my notes and the website I found a  blog entry from Juergen Hollen, another SpringSource fellow that can give us an overview about [...]]]></description>
			<content:encoded><![CDATA[<p></p><p style="text-align: justify;">I’m promise last week to write about the <em>Spring framework</em> the last version 3.0, base on the NYC’s java meet up talk by <a href="http://www.springsource.com/people/mpollack" target="_blank">Mark Pollack</a> who is a <em>Springsource</em> insider. But looking my notes and the website I found a  blog entry from <a title="Juergen Hollen blog." href="http://blog.springsource.com/author/juergenh/" target="_blank">Juergen Hollen</a>, another <em>SpringSource</em> fellow that can give us an overview about <em>Spring Framework </em>3.0 in a more detailed way.</p>
<p style="text-align: justify;">I hate to write things that wouldn’t create new ideas to the community, so if you want to know what’s new on Spring 3.0, check the official Springsource entry <a href="http://blog.springsource.com/2009/12/16/spring-framework-3-0-goes-ga/" target="_blank">HERE</a>, and even better give these new features a try. I&#8217;m doing some tests with the REST support, it&#8217;s really simple but I have the feeling that its more oriented to Spring MVC users than a separate module inside <em>Spring</em>.</p>
<p style="text-align: justify;">In my opinion, knowing Spring it’s a valuable tool for Java (and .NET) developers, the framework can help you to reduce development time and complexity, gives you more control over configuration (annotations over xml files) and surely it will give an advantage when you look for a new position.</p>
<p style="text-align: justify;">In other news, Amazon have a new Kindle development program, I’m still not sure what type of applications could be potentially successful for the device, even I don’t have kindle (yet?).  But it’s worthy to give it a try; I’m start seeing a lot of kindles in the NYC subway lately.</p>
<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Spring+Framework+3.0+%28someone+else+already+wrote+the+review%21%21%21%29+http%3A%2F%2Fis.gd%2FX8auyu" title="Post to Twitter"><img class="nothumb" src="http://www.codeskine.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Spring+Framework+3.0+%28someone+else+already+wrote+the+review%21%21%21%29+http%3A%2F%2Fis.gd%2FX8auyu" title="Post to Twitter">Tweet This Post</a></p></div>]]></content:encoded>
			<wfw:commentRss>http://www.codeskine.com/2010/02/spring-framework-3-0-someone-else-already-wrote-the-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java best practices Thoughts about last Java meet-up @ NYC</title>
		<link>http://www.codeskine.com/2010/02/java-best-practices-thoughts-about-last-java-meet-up-nyc/</link>
		<comments>http://www.codeskine.com/2010/02/java-best-practices-thoughts-about-last-java-meet-up-nyc/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 01:49:47 +0000</pubDate>
		<dc:creator>Billy T.</dc:creator>
				<category><![CDATA[NYC]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://codeskine.com/?p=131</guid>
		<description><![CDATA[Last week&#8217;s Java meetup in NYC brought to great speakers, first Timothy Fagan, talking about Java best practices and later Mark Pollack from Spring source gave us an overview about what&#8217;s new on Spring 3.0 The talk about Java best practices wasn&#8217;t something new, but it was a nice reminder about the basics things you [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Last week&#8217;s <a href="http://www.meetup.com/nycjava/">Java meetup in NYC</a> brought to great speakers, first Timothy Fagan, talking about Java best practices and later Mark Pollack from Spring source gave us an overview about what&#8217;s new on Spring 3.0</p>
<p>The talk about Java best practices wasn&#8217;t something new, but it was a nice reminder about the basics things you as a developer should have in mind when write software; here we have some rants:</p>
<p><strong>Who&#8217;s your real audience:</strong></p>
<ul>
<li><strong>The compiler:</strong> well, if the compiler throws errors and warnings, obviously it doesn&#8217;t understand what you are trying to code. Sometimes your IDE will help you to make your code more &#8220;compiler friendly&#8221;, but this is the most important audience you need to talk to&#8230; if not, your software would never see the light.</li>
<li><strong>You:</strong> I agree with this point, lot of many times I&#8217;ve returned after some months to an old code and I cannot believe I wrote it.</li>
<li><strong>The fellow maintenance developer:</strong> Most of the time, you are not the developer that would maintain the software and probably you won&#8217;t be able for the maintenance developer, therefore, don&#8217;t make a fellow developer to hate you in the distance.</li>
</ul>
<p>Indeed, the first steps to write friendly code are:</p>
<p><strong>Use naming standards and be logical:</strong> Java have conventions about how to write classes, variables and methods; spend some time reading <a href="http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html" target="_blank">the documentation</a> , also some companies have their own specific standards and write names that reflect the intention of the code. Like:</p>
<pre>int clientSize=10</pre>
<p>instead of</p>
<pre>int i=10</pre>
<p>And please don&#8217;t be evil, I&#8217;ve saw code like this before (no kidding):</p>
<pre>boolean _true=false;</pre>
<p><strong>Use the language helpers:</strong> Simple, start using generics, annotations,auto-boxing and new methods/classes from your java version. Sadly, the companies upgrade the Java versions, but don&#8217;t upgrade the Java code itself, my humble advice try to refactor some classes to start learning the new tricks. You can be totally sure your code will be faster also.</p>
<p><strong>Comment your code: </strong>Big discussion here, basically we have to points of view, comment as much as necessary to let the others know your intentions, or don&#8217;t write comments but make your code already understandable using good naming conventions, short methods, patterns, unit testing, annotations and assertions*.</p>
<p>*(assertions would make your comments executable, and you can turn them on/off depending the environments BUT remember to be careful with this property on production instances, you never want to show them to the final user).</p>
<p>Thats all for today, I have to take the train now (The N line is getting crowd lately). I hope this points would make you think about your code wisely. As I said before, there is nothing new here, but it&#8217;s a nice reminder.</p>
<p><a href="http://codeskine.com/wp-content/uploads/2010/02/mosaico-2-e1265076380165.jpg"><img class="alignnone size-full wp-image-137" title="Java meetup NYC" src="http://codeskine.com/wp-content/uploads/2010/02/mosaico-2-e1265076380165.jpg" alt="" width="637" height="284" /></a></p>
<p><em>next post, the new features in spring 3.0</em></p>
<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Java+best+practices+Thoughts+about+last+Java+meet-up+%40+NYC+http%3A%2F%2Fis.gd%2F9me7vD" title="Post to Twitter"><img class="nothumb" src="http://www.codeskine.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Java+best+practices+Thoughts+about+last+Java+meet-up+%40+NYC+http%3A%2F%2Fis.gd%2F9me7vD" title="Post to Twitter">Tweet This Post</a></p></div>]]></content:encoded>
			<wfw:commentRss>http://www.codeskine.com/2010/02/java-best-practices-thoughts-about-last-java-meet-up-nyc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2010 CFQ Goals Challenge.</title>
		<link>http://www.codeskine.com/2010/01/2010-cfq-goals-challenge/</link>
		<comments>http://www.codeskine.com/2010/01/2010-cfq-goals-challenge/#comments</comments>
		<pubDate>Sat, 16 Jan 2010 18:13:07 +0000</pubDate>
		<dc:creator>Billy T.</dc:creator>
				<category><![CDATA[CrossFit]]></category>

		<guid isPermaLink="false">http://codeskine.com/?p=122</guid>
		<description><![CDATA[It&#8217;s going to be 9 months since I drop out the regular gym and joined the Queens Crossfit guys, and today we started a 12 weeks challenge, the idea is pretty simple, chose your three goals, write a plan to acomplish them and put 30 dollars in the buck, those three participants that make the [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>It&#8217;s going to be 9 months since I drop out the regular gym and joined the Queens Crossfit guys, and today we started a 12 weeks challenge, the idea is pretty simple, chose your three goals, write a plan to acomplish them and put 30 dollars in the buck, those three participants that make the goals at the end of the 12 weeks periods, get the money&#8230;</p>
<p>So here are my goals:</p>
<p>- 20 consecutive <a href="http://www.youtube.com/watch?v=2TfjmxeUsIs" target="_blank">double-unders</a>, currently 3.<br />
- 12 consecutive <a href="http://www.youtube.com/watch?v=dtZJ4oFtwfU" target="_blank">kipping pull-ups</a>, now can do 3 good ones.<br />
- 10 <a href="http://www.youtube.com/watch?v=m4fqp4wBNGs" target="_blank">ring dips</a>, my number in this one varies between 0 and 1 now.</p>
<p>- Bonus Goal: (This one is not physical but kind of brain consuming) Take the Java Architect certification update by the end of the Challenge.</p>
<p>Plan:<br />
- Go to the WOD as much as I can, always more than 3 times at week.<br />
- Jump rope @home for 10 mins a day.<br />
- Focus on upper-body strength on the workouts.<br />
- Keep the Billeo* diet<br />
- Hit the streets at least once at week.</p>
<p>*(Billy cheats paleo&#8230; I will write about this in other post)</p>
<p>More Information about Crossfit <a href="http://crossfitqueensny.com/events/goals-challenge/" target="_blank">here</a>.</p>
<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=2010+CFQ+Goals+Challenge.+http%3A%2F%2Fis.gd%2Fepb0yF" title="Post to Twitter"><img class="nothumb" src="http://www.codeskine.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=2010+CFQ+Goals+Challenge.+http%3A%2F%2Fis.gd%2Fepb0yF" title="Post to Twitter">Tweet This Post</a></p></div>]]></content:encoded>
			<wfw:commentRss>http://www.codeskine.com/2010/01/2010-cfq-goals-challenge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amazon recommends&#8230;  Arabic.</title>
		<link>http://www.codeskine.com/2009/10/amazon-recommends-arabic/</link>
		<comments>http://www.codeskine.com/2009/10/amazon-recommends-arabic/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 13:21:12 +0000</pubDate>
		<dc:creator>Billy T.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://codeskine.com/?p=102</guid>
		<description><![CDATA[Here is the last amazon recommendation I&#8217;ve got in my email: &#8220;As someone who has purchased or rated Regular Expression Pocket Reference Regular Expressions for Perl, Ruby, PHP, Python, C, Java and .NET (Pocket Reference (O&#8217;Reilly)) : by Tony Stubblebine or other books in the APIs &#038; Operating Environments > Unicode category, you might like [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.codeskine.com/2009/10/amazon-recommends-arabic/" title="Permanent link to Amazon recommends&#8230;  Arabic."><img class="post_image alignleft remove_bottom_margin" src="http://ecx.images-amazon.com/images/I/41gnJYNV5oL._SL160_.jpg" width="109" height="160" alt="Arabic book from amazon.com" /></a>
</p><p>Here is the last amazon recommendation I&#8217;ve got in my email:</p>
<p><em>&#8220;As someone who has purchased or rated <strong>Regular Expression Pocket Reference Regular Expressions for Perl, Ruby, PHP, Python, C, Java and .NET (Pocket Reference (O&#8217;Reilly)) </strong>: by Tony Stubblebine or other books in the APIs &#038; Operating Environments > Unicode category, you might like to know that <strong>Arabic Alphabet: Arabic alphabet, Abjad numerals, ?i?rab, Arabic diacritics, Arabic numerals, History of the Arabic alphabet, Arabic Unicode, Islamic calligraphy, &#8230; Romanization of Arabic, Arabic chat alphabet</strong> is now available.&#8221;</em></p>
<p>Everybody knows how complex regular expression can turn, but to associate a regex book with a Arabic Alphabet book is non-sense at least for normal developers, I wonder how many developers are learning regex and arabic at the same time, or maybe it not that crazy if you convert both to unicode.</p>
<p>I would love to know how the amazon recommendation engine brought this cross reference to my email.</p>
<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Amazon+recommends%E2%80%A6+Arabic.+http%3A%2F%2Fis.gd%2FnfxoHs" title="Post to Twitter"><img class="nothumb" src="http://www.codeskine.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Amazon+recommends%E2%80%A6+Arabic.+http%3A%2F%2Fis.gd%2FnfxoHs" title="Post to Twitter">Tweet This Post</a></p></div>]]></content:encoded>
			<wfw:commentRss>http://www.codeskine.com/2009/10/amazon-recommends-arabic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tonight is fight gone bad 4</title>
		<link>http://www.codeskine.com/2009/09/tonight-is-fight-gone-bad-4/</link>
		<comments>http://www.codeskine.com/2009/09/tonight-is-fight-gone-bad-4/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 13:50:51 +0000</pubDate>
		<dc:creator>Billy T.</dc:creator>
				<category><![CDATA[CrossFit]]></category>

		<guid isPermaLink="false">http://codeskine.com/?p=100</guid>
		<description><![CDATA[The Rules for Fight Gone Bad In this workout you spend one minute at each of five stations, resulting in a a five-minute round after which a one-minute break is allowed before repeating. This event calls for three rounds. The clock does not reset or stop between exercises. On call of ‘rotate,’ the athletes must [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>The Rules for <a href="http://www.fgb4.org/">Fight Gone Bad</a></p>
<p>In this workout you spend one minute at each of five stations, resulting in a a five-minute round after which a one-minute break is allowed before repeating. This event calls for three rounds. The clock does not reset or stop between exercises. On call of ‘rotate,’ the athletes must move to the next station immediately. One point is given for each rep, except on the rower, where each calorie is one point. The stations are:</p>
<p>1. Wall-ball, 10 ft target (Reps)<br />
2. Sumo deadlift high-pull (Reps)<br />
3. Box jump (Reps)<br />
4. Push-press (Reps)<br />
5. Row (Calories)</p>
<p><a href="http://crossfitqueensny.com/2009/09/23/fight-night-fight-gone-bad-4/">Here is more information about Crossfit and fight gone bad event. </a></p>
<p>&#8220;Always Outnumbered, Never Outgunned&#8221;</p>
<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Tonight+is+fight+gone+bad+4+http%3A%2F%2Fis.gd%2FbPcyFN" title="Post to Twitter"><img class="nothumb" src="http://www.codeskine.com/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Tonight+is+fight+gone+bad+4+http%3A%2F%2Fis.gd%2FbPcyFN" title="Post to Twitter">Tweet This Post</a></p></div>]]></content:encoded>
			<wfw:commentRss>http://www.codeskine.com/2009/09/tonight-is-fight-gone-bad-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

