<?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>Vinicius Gomes</title>
	<atom:link href="http://vvgomes.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://vvgomes.wordpress.com</link>
	<description>Blog</description>
	<lastBuildDate>Sat, 29 Oct 2011 02:54:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='vvgomes.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Vinicius Gomes</title>
		<link>http://vvgomes.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://vvgomes.wordpress.com/osd.xml" title="Vinicius Gomes" />
	<atom:link rel='hub' href='http://vvgomes.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Become an User</title>
		<link>http://vvgomes.wordpress.com/2010/10/08/become-a-user/</link>
		<comments>http://vvgomes.wordpress.com/2010/10/08/become-a-user/#comments</comments>
		<pubDate>Fri, 08 Oct 2010 05:42:29 +0000</pubDate>
		<dc:creator>vvgomes</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://viniciusv.wordpress.com/?p=124</guid>
		<description><![CDATA[There is a single technique to get inside your users&#8217; requirements that isn&#8217;t used often enough: become an user. Are you writing a system for the help desk? Spend a couple of days monitoring the phones with an experienced support person. Are you automating a manual stock control system? Work in the warehouse for a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vvgomes.wordpress.com&amp;blog=21320140&amp;post=124&amp;subd=vvgomes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<blockquote><p>There is a single technique to get inside your users&#8217; requirements that isn&#8217;t used often enough: <strong>become an user</strong>. Are you writing a system for the help desk? Spend a couple of days monitoring the phones with an experienced support person. Are you automating a manual stock control system? Work in the warehouse for a week. As well as giving you insight into how the system will really be used, you&#8217;d be amazed at how the request <q>May I sit in for a week while you do your job?</q> helps build trust and establishes a basis for communication with your users.</p>
<p>(&#8230;)</p>
<p>The requirements mining process is also the time to start to build a rapport with your user base, learning their expectations and hopes for the system you are building.</p></blockquote>
<p>From <a href="http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X/ref=sr_1_1?ie=UTF8&amp;qid=1286507269&amp;sr=8-1">The Pragmatic Programmer</a>, by <a href="http://blog.toolshed.com/">Andy Hunt</a> &amp; <a href="http://pragdave.blogs.pragprog.com/">David Thomas</a>.</p>
<p>Although I have had few opportunities to practice such technique, I strongly believe invest some time with the actual user can be way better than spend lots of hours in verbose and boring meetings with managers.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vvgomes.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vvgomes.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vvgomes.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vvgomes.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vvgomes.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vvgomes.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vvgomes.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vvgomes.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vvgomes.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vvgomes.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vvgomes.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vvgomes.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vvgomes.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vvgomes.wordpress.com/124/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vvgomes.wordpress.com&amp;blog=21320140&amp;post=124&amp;subd=vvgomes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vvgomes.wordpress.com/2010/10/08/become-a-user/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e629ef75f1fdd2cdbc130bc136077fd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vvgomes</media:title>
		</media:content>
	</item>
		<item>
		<title>One Line If</title>
		<link>http://vvgomes.wordpress.com/2010/10/06/one-line-if/</link>
		<comments>http://vvgomes.wordpress.com/2010/10/06/one-line-if/#comments</comments>
		<pubDate>Wed, 06 Oct 2010 19:00:18 +0000</pubDate>
		<dc:creator>vvgomes</dc:creator>
				<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://viniciusv.wordpress.com/?p=48</guid>
		<description><![CDATA[I believe that every block inside an if/else statement should have one line length. Even if you have a simple three lines block logic, it could be named and extracted to a helper method, in order to improve readability and cleanness. The more conditional blocks an algorithm has, the greater is its cyclomatic complexity, which [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vvgomes.wordpress.com&amp;blog=21320140&amp;post=48&amp;subd=vvgomes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I believe that every block inside an <code>if/else</code> statement should have one line length. Even if you have a simple three lines block logic, it could be named and extracted to a helper method, in order to improve readability and cleanness.</p>
<p>The more conditional blocks an algorithm has, the greater is its <a href="http://en.wikipedia.org/wiki/Cyclomatic_complexity">cyclomatic complexity</a>, which means the number of possible paths that algorithm can follow. Then, when you&#8217;re reading and understanding a piece of code, everytime you face an <code>if</code> statement, you have to save the current flow in your mental stack and then start to read the conditional block till its end in order to figure out what that block is about. The bad news is that, as my friend <a href="http://www.filipesabella.com/">Filipe Sabella</a> says, unfortunately, you can store no more than <strong>seven</strong> things in your mental stack. Let&#8217;s take a look at the following code:</p>
<pre class="brush: jscript;">
var guess = function(letter) {
  if(hiddenWord.reveal(letter)) {
    hiddenWord.render();
    if(hiddenWord.isEverythingRevealed()) {
      alert('You Kick Asses!');
      nextLevel();
    }
  }
  else {
    image.showNext();
    if(--chances == 0) {
      alert('Looooser!');
      gameOver();
    }
  }
};
</pre>
<p>The above Javascript function implements a guessing procedure in a <a href="http://en.wikipedia.org/wiki/Hangman_%28game%29">Hangman</a> game. You probably didn&#8217;t figure it out before to finish reading the entire code. That&#8217;s because you had to understand the <strong>implementation</strong> details in order to figure out the <strong>intention</strong> behind each conditional block. In the end of this process, you have probably named those blocks implicitly in your mind.</p>
<p>Now, let&#8217;s take the more external <code>if/else</code> blocks and give them names according to the intention behind them. Thinking about the Hangman game, when the player guess a letter, two things can happen:</p>
<ul>
<li>If the hidden word has that letter, he did a <strong>hit</strong>;</li>
<li>Otherwise, he did a <strong>mistake</strong>.</li>
</ul>
<p>So, let&#8217;s say the same thing using Javascript language instead of English:</p>
<pre class="brush: jscript;">
var guess = function(letter) {
  if(hiddenWord.reveal(letter))
    hit();
  else
    mistake();
};

var hit = function() {
  hiddenWord.render();
  if(hiddenWord.isEverythingRevealed()) {
    alert('You Kick Asses!');
    nextLevel();
  }
};

var mistake = function() {
  image.showNext();
  if(--chances == 0) {
    alert('Looooser!');
    gameOver();
  }
};
</pre>
<p>The new version of the <code>guess</code> function has explicit names for each alternative computation. We can now read and understand it more quickly, in a single flow, without to store things in our mental stack. Observe that in this new version, the reader get the intention <strong>before</strong> to enter in the implementation details (actually, we don&#8217;t even need to know the implementation at this point).</p>
<p>We can go further and use the Javascript ternary conditional operator to make the <code>guess</code> function more straightforward.</p>
<pre class="brush: jscript;">
var guess = function(letter) {
  hiddenWord.reveal(letter) ? hit() : mistake();
};
</pre>
<p>Pretty simple, don&#8217;t you think?</p>
<p>We can also keep going on this process and apply the same technique on the <code>hit</code> and <code>mistake</code> functions. So, let&#8217;s take the conditional blocks inside these functions and think about their underlying intentions in order to be able to give them proper names:</p>
<ul>
<li>The <code>hit</code> function has a conditional block describing the behaviour the game should follow when the player <strong>wins</strong> the match;</li>
<li>The <code>mistake</code> function has a conditional block describing the behaviour the game should follow when the player has no more chances and then <strong>loses</strong> the game.</li>
</ul>
<p>Using those names to represent the conditional blocks, we gonna achieve the following result:</p>
<pre class="brush: jscript;">
var guess = function(letter) {
  hiddenWord.reveal(letter) ? hit() : mistake();
};

var hit = function() {
  hiddenWord.render();
  if(hiddenWord.isEverythingRevealed())
    win();
};

var mistake = function() {
  image.showNext();
  if(--chances == 0)
    lose();
};

var win = function() {
  alert('You Kick Asses!');
  nextLevel();
};

var lose = function() {
  alert('Looooser!');
  gameOver();
};
</pre>
<p>Now, as you can see, the whole code has only one-line <code>if</code>s, and the intention behind each conditional path is explicitly named. As well as giving a better reading, we have improved the maintenance by giving a very clear place for each chunk of work. For instance, if you need to change the win behaviour, you just go directly to the <code>win</code> function and do your changes.</p>
<h3>Conclusion</h3>
<p>I believe that by using one-line <code>if</code>s you can make your code more <a href="http://en.wikipedia.org/wiki/Literate_programming">literate</a> and descriptive, allowing readers get the overall picture at first and get deeper in details only if they need. Compare the above version of the whole code with the first single <code>guess</code> function. Note that in the last version the reading flows more naturally, as if the code was telling you a story.</p>
<p>Moreover, this approach makes software development cheaper and programmers more productive. Given that the <a href="http://www.amazon.com/Implementation-Patterns-Kent-Beck/dp/0321413091/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1284475920&amp;sr=8-1">major cost is software development is the maintenance</a>, reading and understanding code in a more effective way could give you significative financial improvements.</p>
<p>Finally, an additional award one-line <code>if</code>s give us which I love is, for languages based on C syntax (like Java, Javascript, and C#), <strong>you don&#8217;t need to use curly braces</strong>. As well as helping to reduce the syntax noise (and give your code a Python flavour), it also makes the code more aesthetic and comfortable to the reader eyes.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vvgomes.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vvgomes.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vvgomes.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vvgomes.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vvgomes.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vvgomes.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vvgomes.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vvgomes.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vvgomes.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vvgomes.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vvgomes.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vvgomes.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vvgomes.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vvgomes.wordpress.com/48/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vvgomes.wordpress.com&amp;blog=21320140&amp;post=48&amp;subd=vvgomes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vvgomes.wordpress.com/2010/10/06/one-line-if/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e629ef75f1fdd2cdbc130bc136077fd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vvgomes</media:title>
		</media:content>
	</item>
		<item>
		<title>Don&#039;t use XML: build a DSL instead</title>
		<link>http://vvgomes.wordpress.com/2009/09/08/dont-use-xml-build-a-dsl-instead/</link>
		<comments>http://vvgomes.wordpress.com/2009/09/08/dont-use-xml-build-a-dsl-instead/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 17:22:33 +0000</pubDate>
		<dc:creator>vvgomes</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[dsl]]></category>

		<guid isPermaLink="false">http://viniciusv.wordpress.com/?p=37</guid>
		<description><![CDATA[Knowing about computer languages and language technology such as ANTLR will make your coding life much easier. Don&#8217;t be afraid to build a human-readable configuration file (I implore everyone to please stop using XML as a human interface!) or to build domain specific languages to make yourself more efficient. Designing new languages, when appropriate, is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vvgomes.wordpress.com&amp;blog=21320140&amp;post=37&amp;subd=vvgomes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<blockquote><p>Knowing about computer languages and language technology such as ANTLR will make your coding life much easier. Don&#8217;t be afraid to build a human-readable configuration file (I implore everyone to please stop using XML as a human interface!) or to build domain specific languages to make yourself more efficient. Designing new languages, when appropriate, is the hallmark of a sophisticated developer.</p></blockquote>
<p> Terence Parr, in his <a href="http://www.amazon.com/Definitive-ANTLR-Reference-Domain-Specific-Programmers/dp/0978739256">ANTLR book</a>.</p>
<p>To develop an external DSL can be fun if you have a great tool like ANTLR in hands.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vvgomes.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vvgomes.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vvgomes.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vvgomes.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vvgomes.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vvgomes.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vvgomes.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vvgomes.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vvgomes.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vvgomes.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vvgomes.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vvgomes.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vvgomes.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vvgomes.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vvgomes.wordpress.com&amp;blog=21320140&amp;post=37&amp;subd=vvgomes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vvgomes.wordpress.com/2009/09/08/dont-use-xml-build-a-dsl-instead/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e629ef75f1fdd2cdbc130bc136077fd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vvgomes</media:title>
		</media:content>
	</item>
		<item>
		<title>Proudhon</title>
		<link>http://vvgomes.wordpress.com/2009/08/19/proudhon/</link>
		<comments>http://vvgomes.wordpress.com/2009/08/19/proudhon/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 04:59:04 +0000</pubDate>
		<dc:creator>vvgomes</dc:creator>
				<category><![CDATA[random]]></category>
		<category><![CDATA[anarchism]]></category>

		<guid isPermaLink="false">http://viniciusv.wordpress.com/?p=15</guid>
		<description><![CDATA[Se se observa a evolução que a educação dos indivíduos segue, nota-se, nas escolas primárias, a ação de governar como sendo a mais forte; e nas escolas de um nível mais elevado, vê-se a ação de governar as crianças diminuir sempre de intensidade, enquanto o ensino representa um papel cada vez mais importante. Aconteceu o [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vvgomes.wordpress.com&amp;blog=21320140&amp;post=15&amp;subd=vvgomes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<blockquote><p>Se se observa a evolução que a educação dos indivíduos segue, nota-se, nas escolas primárias, a ação de governar como sendo a mais forte; e nas escolas de um nível mais elevado, vê-se a ação de governar as crianças diminuir sempre de intensidade, enquanto o ensino representa um papel cada vez mais importante. Aconteceu o mesmo com a educação da sociedade. A ação militar, isto é, feudal (governamental), teve de ser mais forte em sua origem; e o poder administrativo deve necessariamente acabar por dominar o poder militar.</p>
<p>(&#8230;)</p>
<p>Em conseqüência de uma revolução que aboliu o sistema feudal, a sociedade exige se desenvolver, harmonizar suas potências econômicas; desde este momento torna-se inevitável que o governo, negado em teoria, se destrua progressivamente na prática.</p></blockquote>
<p><img class="alignright" title="Proudhon" src="http://upload.wikimedia.org/wikipedia/commons/thumb/7/7f/Proudhon-children.jpg/200px-Proudhon-children.jpg" alt="" width="200" height="153" />Proudhon, em seu excelente livro <q><a href="http://www.submarino.com.br/produto/1/53671/propriedade+e+um+roubo:+e+outros+escritos+anarquistas,+a">A Propiedade é um Roubo</a></q>.</p>
<blockquote><p>Em lugar de um milhão de leis, uma única é suficiente: não faça a outro o que vós não quereis que vos faça; faça a outro como desejais que vos seja feito. Mas é evidente que isto não é uma lei; é a fórmula elementar da justiça, a regra de todas as convenções. A simplificação legislativa nos reconduz à idéia de contrato, conseqüentemente, à negação da autoridade. Efetivamente, e a lei é única, se ela resolve todas as antinomias da sociedade, se ela é consentida e votada por todo mundo, ela é adequada ao contrato social. Ao promulgá-la, vós proclamais o fim do governo. O que vos impede de aplicar esta simplificação imediatamente?</p></blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vvgomes.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vvgomes.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vvgomes.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vvgomes.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vvgomes.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vvgomes.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vvgomes.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vvgomes.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vvgomes.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vvgomes.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vvgomes.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vvgomes.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vvgomes.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vvgomes.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vvgomes.wordpress.com&amp;blog=21320140&amp;post=15&amp;subd=vvgomes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vvgomes.wordpress.com/2009/08/19/proudhon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e629ef75f1fdd2cdbc130bc136077fd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vvgomes</media:title>
		</media:content>

		<media:content url="http://upload.wikimedia.org/wikipedia/commons/thumb/7/7f/Proudhon-children.jpg/200px-Proudhon-children.jpg" medium="image">
			<media:title type="html">Proudhon</media:title>
		</media:content>
	</item>
		<item>
		<title>Singleton</title>
		<link>http://vvgomes.wordpress.com/2009/07/09/singleton/</link>
		<comments>http://vvgomes.wordpress.com/2009/07/09/singleton/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 19:00:34 +0000</pubDate>
		<dc:creator>vvgomes</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[patterns]]></category>
		<category><![CDATA[tdd]]></category>

		<guid isPermaLink="false">http://viniciusv.wordpress.com/?p=7</guid>
		<description><![CDATA[How do you provide global variables in languages without global variables? Don&#8217;t. Your programs will thank you for taking the time about design instead. Beck, in Test-Driven Development By Example. The best Singleton pattern definition I have seen so far.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vvgomes.wordpress.com&amp;blog=21320140&amp;post=7&amp;subd=vvgomes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<blockquote><p>How do you provide global variables in languages without global variables? Don&#8217;t. Your programs will thank you for taking the time about design instead.</p></blockquote>
<p style="text-align:left;">Beck, in Test-Driven Development By Example.</p>
<div id="result_box" dir="ltr">The best Singleton pattern definition I have seen so far.</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vvgomes.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vvgomes.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vvgomes.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vvgomes.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vvgomes.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vvgomes.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vvgomes.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vvgomes.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vvgomes.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vvgomes.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vvgomes.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vvgomes.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vvgomes.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vvgomes.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vvgomes.wordpress.com&amp;blog=21320140&amp;post=7&amp;subd=vvgomes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vvgomes.wordpress.com/2009/07/09/singleton/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e629ef75f1fdd2cdbc130bc136077fd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vvgomes</media:title>
		</media:content>
	</item>
	</channel>
</rss>
