<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Felipe Coury's Java Corner</title>
	<atom:link href="http://felipecoury.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://felipecoury.wordpress.com</link>
	<description>A serialization of my programming ideas and day-by-day experiences</description>
	<lastBuildDate>Sun, 23 Oct 2011 19:25:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='felipecoury.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Felipe Coury's Java Corner</title>
		<link>http://felipecoury.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://felipecoury.wordpress.com/osd.xml" title="Felipe Coury&#039;s Java Corner" />
	<atom:link rel='hub' href='http://felipecoury.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Flat files in Java made easy: JFileHelpers</title>
		<link>http://felipecoury.wordpress.com/2008/06/07/flat-files-in-java-made-easy-jfilehelpers/</link>
		<comments>http://felipecoury.wordpress.com/2008/06/07/flat-files-in-java-made-easy-jfilehelpers/#comments</comments>
		<pubDate>Sat, 07 Jun 2008 19:32:15 +0000</pubDate>
		<dc:creator>Felipe Coury</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://felipecoury.wordpress.com/?p=10</guid>
		<description><![CDATA[It&#8217;s almost certain every Java programmer out there had to deal with handling of delimited or fixed length flat files at one moment of his career. I have just created a library that makes it easier to work with that: JFileHelpers. It uses the awesomeness of Java annotations to allow you to handle flat files [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipecoury.wordpress.com&amp;blog=358437&amp;post=10&amp;subd=felipecoury&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://felipecoury.files.wordpress.com/2008/06/jfilehelpers.png"><img src="http://felipecoury.files.wordpress.com/2008/06/jfilehelpers.png?w=200&#038;h=50" alt="" width="200" height="50" class="alignright size-full wp-image-11" /></a>It&#8217;s almost certain every Java programmer out there had to deal with handling of delimited or fixed length flat files at one moment of his career. </p>
<p>I have just created a library that makes it easier to work with that: <a href="http://www.jfilehelpers.com">JFileHelpers</a>. It uses the awesomeness of Java annotations to allow you to handle flat files with minimum changed to existing code. It&#8217;s a port of the awesome <a href="http://www.filehelpers.com">FileHelpers</a> C# library, by Marcos Meli. </p>
<p>We are also <a href="http://www.jfilehelpers.com/feedback_en.php">looking for developers</a> who would be interested on joining the team. If you&#8217;re not available, you can also help by using the library, and giving <a href="http://www.jfilehelpers.com/feedback_en.php">feedback</a> on features you&#8217;d like to see implemented.</p>
<p>Hope you like it, I would really like to hear your opinions on the library.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/felipecoury.wordpress.com/10/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/felipecoury.wordpress.com/10/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipecoury.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipecoury.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipecoury.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipecoury.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipecoury.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipecoury.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipecoury.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipecoury.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipecoury.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipecoury.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipecoury.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipecoury.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipecoury.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipecoury.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipecoury.wordpress.com&amp;blog=358437&amp;post=10&amp;subd=felipecoury&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://felipecoury.wordpress.com/2008/06/07/flat-files-in-java-made-easy-jfilehelpers/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c4ceadae4f61dac8ff3ababc3faa6c42?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Felipe Coury</media:title>
		</media:content>

		<media:content url="http://felipecoury.files.wordpress.com/2008/06/jfilehelpers.png" medium="image" />
	</item>
		<item>
		<title>Java Closures</title>
		<link>http://felipecoury.wordpress.com/2007/04/09/java-closures/</link>
		<comments>http://felipecoury.wordpress.com/2007/04/09/java-closures/#comments</comments>
		<pubDate>Mon, 09 Apr 2007 14:10:22 +0000</pubDate>
		<dc:creator>Felipe Coury</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://felipecoury.wordpress.com/2007/04/09/java-closures/</guid>
		<description><![CDATA[Click here to read this article in Portuguese. I quited, long time ago, trying to keep pace with latest tech trends on programming languages. I remember when I started programming, using Clipper, all the news you could get was either by buying a book or a magazine. Today, when you visit a Digg-like website for [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipecoury.wordpress.com&amp;blog=358437&amp;post=8&amp;subd=felipecoury&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://felipecourypt.wordpress.com/2007/04/09/java-closures/"><em>Click here to read this article in Portuguese.</em></a></p>
<p>I quited, long time ago, trying to keep pace with latest tech trends on programming languages. I remember when I started programming, using Clipper, all the news you could get was either by buying a book or a magazine. </p>
<p>Today, when you visit a Digg-like website for programming news, you&#8217;ll probably end up finding 3 new and completely revolutionary AJAX toolkits, two articles saying why language x sucks and other three saying it is the best thing since sliced bread, new languages, benchmarks, etc&#8230; This scenario obligates you to filter new technology and just investigate whatever you think will be important for your skill set. It&#8217;s either that or getting really mad and/or shallow.</p>
<p>Well, some time ago I began to read about <em>Java Closures</em> but never figured out what it was and I really didn&#8217;t want to bother about it. Yes, but that was before I found <a href="http://video.google.com/videosearch?q=user%3A%22Google+engEDU%22&amp;num=10&amp;so=0&amp;hl=en&amp;start=0">Google Tech Talks</a>, and of more interest, the <a href="http://video.google.com/videosearch?q=advanced+topics+in+programming+languages&amp;aq=t">Advanced Topics on Programming Languages</a> series. I watched a 2-hour talk about Java Closures and finally understood it. Actually it was more than that, I started to like Java Closures.</p>
<p>The principle behind Closures isn&#8217;t new. It&#8217;s about having <em>code blocks</em> in form of variables. I remember that we had that in Clipper back in 1996. But the new Java Proposal goes beyond, allowing some syntax changes that, in my understanding, makes all the difference. I&#8217;ll try to give a brief explanation on what I understood on the topic.</p>
<p>If you ever messed with JDBC or Sockets code, you know there are a lot of boring code to write, something like:</p>
<pre>
public List getCustomers() {
	List result = new ArrayList();
	Connection conn;
	Statement s;
	ResultSet rs;

	try {
		conn = ConnectionPool.getConnection();
		s = c.createStatement();
		rs = s.executeQuery("SELECT * FROM CUSTOMER");

		while (rs.next()) {
			// ...
		}
	} catch (SQLException e) {
		System.out.println("Error...");
		e.printStackTrace();
	} finally {
		if (conn != null) {
			try {
				conn.close();
			} catch (SQLException e) {
			}
		}
		if (rs != null) {
			try {
				rs.close();
			} catch (SQLException e) {
			}
		}
		if (c != null) {
			try {
				c.close();
			} catch (SQLException e) {
			}
		}
	}
}
</pre>
<p>On this code you notice you have 37 lines but business logic is concentrated on lines 7 to 13, or 16% of the code here is business logic. So, when a friend of mine says he doesn&#8217;t like Java because it is a bureaucratic language, I have to give in. Imagine having hundrets of data access methods like this on your code. Isn&#8217;t it really a lot of duplicated code? Shouldn&#8217;t it have a better way of doing this?</p>
<p>Well&#8230; Closures to the rescue! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  What if we could write something like:</p>
<pre>
public List getCustomers() {
	Connection conn;
	Statement s;
	ResultSet rs;

	with(conn, s, rs, { =&gt;
		conn = ConnectionPool.getConnection();
		s = c.createStatement();
		rs = s.executeQuery("SELECT * FROM CUSTOMER");

		if (rs.next()) {
			// ...
		}
	});
}
</pre>
<p>That&#8217;s the new java construct that is being planned to be implemented on <a href="https://jdk7.dev.java.net/">JDK7 codename Dolphin</a>. But even better than what we have above, there is an additional construct, called control abstraction syntax. Take a look:</p>
<pre>
public List getCustomers() {
	Connection conn;
	Statement s;
	ResultSet rs;

	with (conn, s, rs) {
		conn = ConnectionPool.getConnection();
		s = c.createStatement();
		rs = s.executeQuery("SELECT * FROM CUSTOMER");

		if (rs.next()) {
			// ...
		}
	}
}
</pre>
<p>This snippet of code is translated to the <em>exact same thing</em> as before. This new construct states that a method invocation with a trailing <em>code block</em> is automagically translated into a closure in compile time. Look how elegant and straightforward this method now is. When you read it, you don&#8217;t get distracted by a lot of statements that has nothing to do with business logic.</p>
<p>What about the <code>with</code> method? How would it look like? </p>
<pre>
public void with(Connection c, Statement s, ResultSet rs, { =&gt; void } block) {
	try {
		block.invoke();
	} catch (SQLException e) {
		System.out.println("Error...");
		e.printStackTrace();
	} finally {
		if (rs != null) {
			try {
				rs.close();
			} catch (SQLException e) {
			}
		}
		if (s != null) {
			try {
				s.close();
			} catch (SQLException e) {
			}
		}
		if (c != null) {
			try {
				c.close();
			} catch (SQLException e) {
			}
		}
	}
}
</pre>
<p>The last parameter on that method is the new closure construct. Closures can take parameters and have a return value as well as optionally throw exceptions. Here are some sample closure types:</p>
<pre>
{int =&gt; int}

{int, int =&gt; int}

{String =&gt; int throws NumberFormatException}

{ =&gt; void }

{T =&gt; U}
</pre>
<p>And implementations:</p>
<pre>
{int x =&gt; x+1}

{int x, int y =&gt; x+y}

{String x =&gt; Integer.parseInt(x)}

{=&gt; System.out.println("Hello world");}

{int, int =&gt; int} sum = {int x, int y =&gt; x+y}; // sums up x and y
</pre>
<p>This article is intended to get you started on java closures. For more in-depth understanding watch the first class presentation by Neal Gafter, one of the authors of the <a href="http://www.javac.info/closures-v05.html">closures specification</a>. <a href="http://video.google.com/url?docid=4051253555018153503&amp;esrc=sr2&amp;ev=v&amp;q=advanced+topics+in+programming+languages&amp;vidurl=http://video.google.com/videoplay%3Fdocid%3D4051253555018153503%26q%3Dadvanced%2Btopics%2Bin%2Bprogramming%2Blanguages&amp;usg=AL29H23B0twspU8rvkyl0TqfpyTHth-8lg">Here is the link.</a></p>
<p>Related links:</p>
<li><a href="http://www.javac.info">Neal Gafter site about closures</a></li>
<li><a href="http://gafter.blogspot.com/">Neal Gafter blog</a></li>
<li><a href="http://blogs.sun.com/ahe/">Peter Ahé&#8217;s Weblog</a> (other author of the specification)</li>
<li><a href="http://blogs.sun.com/jag/entry/the_black_hole_theory_of">James Gosling, about closures</a></li>
<li>Article: <a href="http://blogs.sun.com/gbracha/entry/achieving_closure">Achieving Closures</a></li>
<li><a href="http://en.wikipedia.org/wiki/Closure_(computer_science)">Wikipedia Article on Closures</a></li>
<li><a href="http://www.infoq.com/interviews/joshua-bloch">Joshua Bloch on Closures, Resource Management, Google</a> has some good arguments on Closures</li>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/felipecoury.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/felipecoury.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipecoury.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipecoury.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipecoury.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipecoury.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipecoury.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipecoury.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipecoury.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipecoury.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipecoury.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipecoury.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipecoury.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipecoury.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipecoury.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipecoury.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipecoury.wordpress.com&amp;blog=358437&amp;post=8&amp;subd=felipecoury&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://felipecoury.wordpress.com/2007/04/09/java-closures/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c4ceadae4f61dac8ff3ababc3faa6c42?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Felipe Coury</media:title>
		</media:content>
	</item>
		<item>
		<title>Change is a good thing &#8211; almost always</title>
		<link>http://felipecoury.wordpress.com/2006/10/19/change-is-a-good-thing-almost-always/</link>
		<comments>http://felipecoury.wordpress.com/2006/10/19/change-is-a-good-thing-almost-always/#comments</comments>
		<pubDate>Thu, 19 Oct 2006 12:24:04 +0000</pubDate>
		<dc:creator>Felipe Coury</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://felipecoury.wordpress.com/2006/10/19/change-is-a-good-thing-almost-always/</guid>
		<description><![CDATA[Hey there readears, I guess it&#8217;s been a long time, right? Yeah, lots of things happened since last post, good things indeed. I have quit my previous job to join the Big Blue. Yeah, you know, IBM&#8230; I was a little bit skeptic about changing jobs, mostly because I didn&#8217;t know exactly what I was [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipecoury.wordpress.com&amp;blog=358437&amp;post=7&amp;subd=felipecoury&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hey there readears,</p>
<p>I guess it&#8217;s been a long time, right? Yeah, lots of things happened since last post, good things indeed. I have quit my previous job to join the Big Blue. Yeah, you know, IBM&#8230; I was a little bit skeptic about changing jobs, mostly because I didn&#8217;t know exactly what I was going to find here, what kind of project I would be involved on.</p>
<p>Well, for my surprise the first thing that I received when I started was an excellent trainning on the WebSphere Integration Developer or the WID Tools as IBMers like to call it (yes, they just LOVE letter soups!). And along came the concept of SOA (Services Oriented Architecture), what seems to be the buzzword on the corporate world for the moment. I gotta admit it&#8217;s a good concept, but I have been hearing about that for almost 10 years now. SOA mixes WebServices with Workflow tools in a nice way. All you have to do is draw your process and there you go. Well, from a management point of view, that&#8217;s kinda true. But behind the scenes, as we all know, there are some hard work. And thanks god there is, imagine if all costumers could build their applications just by pointing and clicking &#8211; I would not be hired right now!</p>
<p>Aside of that, I am involved on a great project, with lots of smart people involved and an excellent team. My manager is reasonable, likes to be involved and the other developers are quite open to hear what you have to say.</p>
<p>Well, those are the news from the front so far&#8230; In minutes I&#8217;ll get back to the action with an article about Java and ActiveX interop. See you all by then.</p>
<p>Cheers!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/felipecoury.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/felipecoury.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipecoury.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipecoury.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipecoury.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipecoury.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipecoury.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipecoury.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipecoury.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipecoury.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipecoury.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipecoury.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipecoury.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipecoury.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipecoury.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipecoury.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipecoury.wordpress.com&amp;blog=358437&amp;post=7&amp;subd=felipecoury&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://felipecoury.wordpress.com/2006/10/19/change-is-a-good-thing-almost-always/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c4ceadae4f61dac8ff3ababc3faa6c42?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Felipe Coury</media:title>
		</media:content>
	</item>
		<item>
		<title>Google Code Search: we&#8217;re human after all</title>
		<link>http://felipecoury.wordpress.com/2006/10/05/google-search-were-human-after-all/</link>
		<comments>http://felipecoury.wordpress.com/2006/10/05/google-search-were-human-after-all/#comments</comments>
		<pubDate>Thu, 05 Oct 2006 19:11:43 +0000</pubDate>
		<dc:creator>Felipe Coury</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://felipecoury.wordpress.com/2006/10/05/google-search-were-human-after-all/</guid>
		<description><![CDATA[Well, I have to confess that sometimes I feel bad for my and for other people&#8217;s code. But after searching Google Code, I guess everybody&#8217;s normal. Check some fun results, when you: Can&#8217;t seem to find use for code Didn&#8217;t have the required insight Want to remove some coding, but didn&#8217;t got the guts or [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipecoury.wordpress.com&amp;blog=358437&amp;post=6&amp;subd=felipecoury&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.digg.com"><img src="http://digg.com/img/badges/180x35-digg-button.gif" alt="Digg!" border="0" height="35" width="180" /><br />
</a><br />
Well, I have to confess that sometimes I feel bad for my and for other people&#8217;s code. But after searching Google Code, I guess everybody&#8217;s normal. Check some fun results, when you:</p>
<ul>
<li>Can&#8217;t seem to <a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=%22what+is+this%22&amp;btnG=Search">find</a> <a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=%22wtf%22&amp;btnG=Search">use</a> <a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=%22no+idea%22&amp;btnG=Search">for code</a></li>
</ul>
<ul>
<li> Didn&#8217;t have the <a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=%22ugly+code%22&amp;btnG=Search">required</a> insight</li>
</ul>
<ul>
<li> Want to <a href="http://www.google.com/codesearch?q=+%22never+reach%22&amp;start=10&amp;sa=N">remove</a> <a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=%22if+%28false%29%22&amp;btnG=Search">some coding</a>, but didn&#8217;t got the guts or second guessed</li>
</ul>
<ul>
<li> Find one of those <a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=%22never+reach%22&amp;btnG=Search">just to have conditions</a></li>
</ul>
<ul>
<li> Are just <a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=%22fucker%22&amp;btnG=Search">mad</a> <a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=%22prick%22&amp;btnG=Search">mad</a> <a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=%22fucking%22&amp;btnG=Search">mad</a></li>
</ul>
<ul>
<li> Are really on the mood to create <a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=%22john+doe%22&amp;btnG=Search">sample data</a></li>
</ul>
<p>Have Fun!!!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/felipecoury.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/felipecoury.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipecoury.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipecoury.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipecoury.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipecoury.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipecoury.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipecoury.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipecoury.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipecoury.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipecoury.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipecoury.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipecoury.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipecoury.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipecoury.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipecoury.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipecoury.wordpress.com&amp;blog=358437&amp;post=6&amp;subd=felipecoury&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://felipecoury.wordpress.com/2006/10/05/google-search-were-human-after-all/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c4ceadae4f61dac8ff3ababc3faa6c42?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Felipe Coury</media:title>
		</media:content>

		<media:content url="http://digg.com/img/badges/180x35-digg-button.gif" medium="image">
			<media:title type="html">Digg!</media:title>
		</media:content>
	</item>
		<item>
		<title>Eclipse, your way</title>
		<link>http://felipecoury.wordpress.com/2006/08/16/eclipse-your-way/</link>
		<comments>http://felipecoury.wordpress.com/2006/08/16/eclipse-your-way/#comments</comments>
		<pubDate>Wed, 16 Aug 2006 11:36:26 +0000</pubDate>
		<dc:creator>Felipe Coury</dc:creator>
				<category><![CDATA[IDE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">https://felipecoury.wordpress.com/2006/08/16/eclipse-your-way/</guid>
		<description><![CDATA[Recently I found a great website called easyeclipse.org that has many specialized versions of Eclipse. For instance, if you are a Web developer, EasyEclipse Server Java should do the trick for you. The catch is that they offer versions with the most useful plug-ins pre-configured into the distribution. In addition, you also can download self-installing [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipecoury.wordpress.com&amp;blog=358437&amp;post=5&amp;subd=felipecoury&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Recently I found a great website called <a href="http://www.easyeclipse.org">easyeclipse.org</a> that has many specialized versions of Eclipse. For instance, if you are a Web developer, EasyEclipse Server Java should do the trick for you.</p>
<p>The catch is that they offer versions with the most useful plug-ins pre-configured into the distribution. In addition, you also can download self-installing plug-ins from the website.</p>
<p><b>PROS</b></p>
<ul>
<li>Out-of-the-box configuration</li>
<li>MacOS, Linux and Win32 automated installation</li>
<li>Download, click, install plug-ins</li>
<li>Multiple languages versions, like LAMP, PHP, Ruby on Rail, Python, &#8230;</li>
</ul>
<p><b>CONS</b></p>
<ul>
<li>Based on rather old 3.1 version</li>
</ul>
<p>So, that&#8217;s it. Let&#8217;s just hope they make the migration to 3.2. When they do I will most likely start to use it as my default IDE.</p>
<p>See ya next time!</p>
<p><b>Update:</b> Cool! EasyEclipse.org&#8217;s member Phillip just sent the link to the 3.2 <a href="http://sourceforge.net/project/showfiles.php?group_id=131065&amp;package_id=151180&amp;release_id=409211">beta preview</a>. Keep up the good job!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/felipecoury.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/felipecoury.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipecoury.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipecoury.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipecoury.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipecoury.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipecoury.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipecoury.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipecoury.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipecoury.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipecoury.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipecoury.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipecoury.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipecoury.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipecoury.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipecoury.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipecoury.wordpress.com&amp;blog=358437&amp;post=5&amp;subd=felipecoury&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://felipecoury.wordpress.com/2006/08/16/eclipse-your-way/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c4ceadae4f61dac8ff3ababc3faa6c42?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Felipe Coury</media:title>
		</media:content>
	</item>
		<item>
		<title>Coding best practices: thinking about it</title>
		<link>http://felipecoury.wordpress.com/2006/08/15/coding-best-practices-thinking-about-it/</link>
		<comments>http://felipecoury.wordpress.com/2006/08/15/coding-best-practices-thinking-about-it/#comments</comments>
		<pubDate>Tue, 15 Aug 2006 20:13:10 +0000</pubDate>
		<dc:creator>Felipe Coury</dc:creator>
				<category><![CDATA[Best practices]]></category>
		<category><![CDATA[Coding standards]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">https://felipecoury.wordpress.com/2006/08/15/coding-best-practices-thinking-about-it/</guid>
		<description><![CDATA[Today I have joined a discussion that emerged on our development team: whether to use multiple return statements within the same method. Well, back when I was a terrible newbie programmer using Clipper as the main development language, someone convinced me that every function (that was the name for a procedural equivalent of today&#8217;s object&#8217;s [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipecoury.wordpress.com&amp;blog=358437&amp;post=4&amp;subd=felipecoury&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today I have joined a discussion that emerged on our development team: whether to use multiple <code>return</code> statements within the same method.</p>
<p>Well, back when I was a <strike>terrible</strike> newbie programmer using <a href="http://en.wikipedia.org/wiki/Clipper_programming_language" target="_blank">Clipper</a> as the main development language, someone convinced me that every function (that was the name for a procedural equivalent of today&#8217;s object&#8217;s methods) needed one unique return point. I stickied to it but never questioned myself ever again if this is really a good thing to do. Nowadays I got myself doing just the opposite: using multiple return points and when I analyzed it, I found that really better. I&#8217;ll explain.</p>
<p>Imagine the following method that searches for a particular object within an ArrayList:</p>
<pre><big><font color="#7f0055"><b>private </b></font><font color="#7f0055"><b>boolean </b></font><font color="#000000">userExists</font><font color="#000000">(</font><font color="#000000">String name</font><font color="#000000">) {</font>
<font color="#ffffff">  </font><font color="#7f0055"><b>boolean </b></font><font color="#000000">found = </font><font color="#7f0055"><b>false</b></font><font color="#000000">;</font>
<font color="#ffffff">  </font><font color="#7f0055"><b>for </b></font><font color="#000000">(</font><font color="#000000">User u : </font><font color="#7f0055"><b>this</b></font><font color="#000000">.getAllUsers</font><font color="#000000">()) {</font>
<font color="#ffffff">    </font><font color="#7f0055"><b>if </b></font><font color="#000000">(</font><font color="#000000">u != </font><font color="#7f0055"><b>null </b></font><font color="#000000">&amp;&amp; name.equals</font><font color="#000000">(</font><font color="#000000">u.getName</font><font color="#000000">())) {</font>
<font color="#ffffff">      </font><font color="#000000">found = </font><font color="#7f0055"><b>true</b></font><font color="#000000">;</font>
<font color="#ffffff">      </font><font color="#7f0055"><b>break</b></font><font color="#000000">;</font>
<font color="#ffffff">    </font><font color="#000000">}</font>
<font color="#ffffff">  </font><font color="#000000">}</font>
<font color="#ffffff">  </font><font color="#7f0055"><b>return </b></font><font color="#000000">found;</font>
<font color="#000000">} </font></big></pre>
<p>Doesn&#8217;t this method seems a lot cleaner and easier to understand than:</p>
<pre><big><font color="#7f0055"><b>private </b></font><font color="#7f0055"><b>boolean </b></font><font color="#000000">userExists</font><font color="#000000">(</font><font color="#000000">String name</font><font color="#000000">) {</font>
<font color="#ffffff">  </font><font color="#7f0055"><b>for </b></font><font color="#000000">(</font><font color="#000000">User u : </font><font color="#7f0055"><b>this</b></font><font color="#000000">.getAllUsers</font><font color="#000000">()) {</font>
<font color="#ffffff">    </font><font color="#7f0055"><b>if </b></font><font color="#000000">(</font><font color="#000000">u != </font><font color="#7f0055"><b>null </b></font><font color="#000000">&amp;&amp; name.equals</font><font color="#000000">(</font><font color="#000000">u.getName</font><font color="#000000">())) {</font>
<font color="#ffffff">      </font><font color="#7f0055"><b>return true</b></font><font color="#000000">;</font>
<font color="#ffffff">    </font><font color="#000000">}</font>
<font color="#ffffff">  </font><font color="#000000">}</font>
<font color="#ffffff">  </font><font color="#7f0055"><b>return false</b></font><font color="#000000">;</font>
<font color="#000000">} </font></big></pre>
<p>There are other cases where I can see the code begging for an immediate return <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  like:</p>
<pre><big><font color="#7f0055"><b>private </b></font><font color="#7f0055"><b>void </b></font><font color="#000000">loadUsers</font><font color="#000000">() {</font>
<font color="#ffffff">  </font><font color="#7f0055"><b>if </b></font><font color="#000000">(</font><font color="#000000">usersLoaded</font><font color="#000000">) {</font>
<font color="#ffffff">    </font><font color="#7f0055"><b>return</b></font><font color="#000000">;</font>
<font color="#ffffff">  </font><font color="#000000">}</font>

<font color="#ffffff">  </font><font color="#3f7f5f">// do all the lengthy user loading...</font>
<font color="#ffffff">  </font><font color="#000000">(</font><font color="#000000">...</font><font color="#000000">)</font>
<font color="#000000">}</font></big></pre>
<p>In my opinion, the early return when the users are already loaded are easier to interpret and easy to review by another coder than:</p>
<pre><big><font color="#7f0055"><b>private </b></font><font color="#7f0055"><b>void </b></font><font color="#000000">loadUsers</font><font color="#000000">() {</font>
<font color="#ffffff">  </font><font color="#7f0055"><b>if </b></font><font color="#000000">(</font><font color="#000000">!usersLoaded</font><font color="#000000">) {</font>
<font color="#ffffff">    </font><font color="#3f7f5f">// do all the lengthy user loading...</font>
<font color="#ffffff">    </font><font color="#000000">(</font><font color="#000000">...</font><font color="#000000">)</font>
<font color="#ffffff">  </font><font color="#000000">}</font>
<font color="#ffffff">  </font><font color="#7f0055"><b>return</b></font><font color="#000000">;</font>
<font color="#000000">}</font></big></pre>
<p>I really don&#8217;t think it&#8217;s a <i>major</i> problem and using one or the other is pretty acceptable but I&#8217;d like to hear from you what you think about it so please leave a comment about it if you can. Thanks.</p>
<p><b>Update:</b> A friend of mine just e-mailed me an <a href="http://onthethought.blogspot.com/2004/12/multiple-return-statements.html" target="_blank">article</a> that addresses the same issue.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/felipecoury.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/felipecoury.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipecoury.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipecoury.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipecoury.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipecoury.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipecoury.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipecoury.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipecoury.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipecoury.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipecoury.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipecoury.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipecoury.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipecoury.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipecoury.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipecoury.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipecoury.wordpress.com&amp;blog=358437&amp;post=4&amp;subd=felipecoury&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://felipecoury.wordpress.com/2006/08/15/coding-best-practices-thinking-about-it/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c4ceadae4f61dac8ff3ababc3faa6c42?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Felipe Coury</media:title>
		</media:content>
	</item>
		<item>
		<title>Changing colors of an image in real time</title>
		<link>http://felipecoury.wordpress.com/2006/08/15/changing-colors-of-an-image-in-real-time/</link>
		<comments>http://felipecoury.wordpress.com/2006/08/15/changing-colors-of-an-image-in-real-time/#comments</comments>
		<pubDate>Tue, 15 Aug 2006 19:34:07 +0000</pubDate>
		<dc:creator>Felipe Coury</dc:creator>
				<category><![CDATA[J2ME]]></category>

		<guid isPermaLink="false">https://felipecoury.wordpress.com/2006/08/15/changing-colors-of-an-image-in-real-time/</guid>
		<description><![CDATA[Recently I needed the ability to change colors of a picture in real-time. I was developing a game where I needed to paint the player costumes many times within the game. I have researched on the internet and didn&#8217;t find any J2ME code available. I digged all around for an algorithm to do that and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipecoury.wordpress.com&amp;blog=358437&amp;post=3&amp;subd=felipecoury&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Recently I needed the ability to change colors of a picture in real-time. I was developing a game where I needed to paint the player costumes many times within the game. I have researched on the internet and didn&#8217;t find any J2ME code available.</p>
<p>I digged all around for an algorithm to do that and found a way to do it.</p>
<p><span id="more-3"></span>After reading some codes that did the trick in other languages, I finally figured out how to create a routine to change the colors. The basics behind it is the following:</p>
<p>The MIDP 2.0 API has the ability to extract an array of RBG data from an image by calling the <code>Image</code>&#8216;s <code>getRGB()</code> method. This method takes the following parameters:</p>
<p><code>getRGB(int[] rgbData, int offset, int scanlength, int x, int y, int width, int height)</code></p>
<p>Where:</p>
<dl>
<dd><code>rgbData</code> &#8211; an array of integers in which the ARGB pixel data is  stored</dd>
<dd><code>offset</code> &#8211; the index into the array where the first ARGB value  is stored</dd>
<dd><code>scanlength</code> &#8211; the relative offset in the array between  corresponding pixels in consecutive rows of the region</dd>
<dd><code>x</code> &#8211; the x-coordinate of the upper left corner of the region</dd>
<dd><code>y</code> &#8211; the y-coordinate of the upper left corner of the region</dd>
<dd><code>width</code> &#8211; the width of the region</dd>
<dd><code>height</code> &#8211; the height of the region</dd>
</dl>
<p>So, to get all image data you need:</p>
<pre>int[] raw = new int[image.getWidth() * image.getHeight()];
image.getRGB(raw, 0, image.getWidth(), 0, 0, image.getWidth(), image.getHeight());</pre>
<p>What you have now is an array of integers representing each pixel of the image in the AARRGGBB format where RR is red, GG is green, BB is blue and the leading AA is alpha). The alpha attibute defines the opacity of that particular pixel and 00 means completly transparent and FF (255) means completly opaque (solid).</p>
<p>So, to change colors we need to change all pixels that matches an RGB value regardless of what the alpha byte is. To do that we need to &#8220;mask&#8221; the pixel value with the &#8220;&amp;&#8221; operator. The first mask we need is to extract (and later on preserve) the alpha value. This mask is 0xff000000 and, as you probably noticed, the ff matches the AA position on the integer (it is the leftmost byte on the integer).</p>
<p>Once we have the alpha value, we need to mask the integer again to extract the RGB color. The mask to do that is the <font>opposite</font> of the previous mask: 0x00ffffff. This mask drops the leftmost byte and extracts the desired RGB value.</p>
<p>Now that you have the alpha value and the RGB value, all you need to do is iterate throughout the pixels array and match the RGB color with the one you are replacing. This step is illustrated on the following snippet:</p>
<pre><font color="#ffffff">        </font><font color="#3f7f5f">// check each color to replace</font>
<font color="#ffffff">        </font><font color="#7f0055"><b>for </b></font><font color="#000000">(</font><font color="#7f0055"><b>int </b></font><font color="#000000">j = </font><font color="#990000">0</font><font color="#000000">; j &lt; maskedOldColor.length; j++</font><font color="#000000">) {</font>
<font color="#ffffff">            </font><font color="#7f0055"><b>if </b></font><font color="#000000">(</font><font color="#000000">currentMaskedPixel == maskedOldColor</font><font color="#000000">[</font><font color="#000000">j</font><font color="#000000">]) {</font>
<font color="#ffffff">                </font><font color="#000000">raw</font><font color="#000000">[</font><font color="#000000">i</font><font color="#000000">] </font><font color="#000000">= </font><font color="#000000">(</font><font color="#000000">currentPixel &amp; alphaOnlyBitmask</font><font color="#000000">) </font><font color="#000000">| maskedNewColor</font><font color="#000000">[</font><font color="#000000">j</font><font color="#000000">]</font><font color="#000000">;</font>
<font color="#ffffff">                </font><font color="#7f0055"><b>break</b></font><font color="#000000">;</font>
<font color="#ffffff">            </font><font color="#000000">}</font>
<font color="#ffffff">        </font><font color="#000000">}</font></pre>
<p>Well, I think you got the idea. Anyway, this is my first post and I&#8217;d like to know what you think about it so please: comment it!</p>
<p>Regards,</p>
<p>Felipe.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/felipecoury.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/felipecoury.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipecoury.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipecoury.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipecoury.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipecoury.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipecoury.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipecoury.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipecoury.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipecoury.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipecoury.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipecoury.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipecoury.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipecoury.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipecoury.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipecoury.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipecoury.wordpress.com&amp;blog=358437&amp;post=3&amp;subd=felipecoury&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://felipecoury.wordpress.com/2006/08/15/changing-colors-of-an-image-in-real-time/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c4ceadae4f61dac8ff3ababc3faa6c42?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Felipe Coury</media:title>
		</media:content>
	</item>
	</channel>
</rss>
