<?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>codificando.com &#187; testes</title>
	<atom:link href="http://codificando.com/tag/testes/feed/" rel="self" type="application/rss+xml" />
	<link>http://codificando.com</link>
	<description>Desenvolvimento de Software com qualidade</description>
	<lastBuildDate>Tue, 31 Jan 2012 09:49:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Os desafios do Novo Player de Vídeos da Globo.com</title>
		<link>http://codificando.com/2010/12/os-desafios-novo-player-de-vdeos-da-globocom/</link>
		<comments>http://codificando.com/2010/12/os-desafios-novo-player-de-vdeos-da-globocom/#comments</comments>
		<pubDate>Wed, 08 Dec 2010 02:14:44 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[engenharia]]></category>
		<category><![CDATA[gestão]]></category>
		<category><![CDATA[infra]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[pensamentos]]></category>
		<category><![CDATA[testes]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=698</guid>
		<description><![CDATA[Faz aproximadamente 4 meses que mudei para a equipe de Webmedia da globo.com. Nessa ida, eu esperava alguns desafios um pouco diferentes, o que acabou acontecendo logo no começo. Indo direto ao ponto, meu primeiro projeto importante foi desenvolver junto com &#8230; <a href="http://codificando.com/2010/12/os-desafios-novo-player-de-vdeos-da-globocom/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Faz aproximadamente 4 meses que mudei para a equipe de <a href="http://video.globo.com/">Webmedia</a> da <a href="http://globo.com">globo.com</a>. Nessa ida, eu esperava alguns desafios um pouco diferentes, o que acabou acontecendo logo no começo.</p>
<p><a href="http://codificando.com/wp-content/uploads/2010/12/player_globo.jpg"><img class="size-full wp-image-701" title="Novo Player Globo.com" src="http://codificando.com/wp-content/uploads/2010/12/player_globo.jpg" alt="Novo Player Globo.com" width="638" height="359" /></a></p>
<p>Indo direto ao ponto, meu primeiro projeto importante foi desenvolver junto com meu time um novo player de vídeos para a <a href="http://globo.com">globo.com</a>, o qual chamamos de Player 2.0. Pra mim isso era algo totalmente novo, pois <a href="http://codificando.com/2009/02/bbb9-e-o-brother-que-voce-nao-gosta-no-ar/" target="_blank">meu contato com desenvolvimento Flash/ActionScript havia sido muito pouco, num projeto no início de 2009</a>. Como a maioria já sabe, o desenvolvimento de um Player de Vídeos hoje em dia precisa necessariamente ser feito em flash, pois é o runtime que tem o maior alcance de usuários. A parte de vídeos do <a href="http://www.w3.org/TR/html5/">html5</a> ainda tem diversas lacunas a serem preenchidas e é necessário ainda um bom tempo para que a &#8220;massa&#8221; de usuários tenham seus browsers atualizados com suporte a essa tecnologia.</p>
<p>Nesse desenvolvimento do Player, pude perceber juntamente com meu time que desenvolver na <a href="http://www.adobe.com/flashplatform/">plataforma do Flash</a> já é o um grande desafio, pois a plataforma e o runtime tem alguns detalhes que você precisa entender e saber lidar, caso contrário você vai ter muita dor de cabeça.</p>
<h2>Runtime e Sistema Operacional</h2>
<p>Quando você desenvolve alguma coisa em Flash, especialmente um Player de Vídeos, um ponto onde é preciso tomar bastante cuidade é com o <a href="http://en.wikipedia.org/wiki/Adobe_Flash_Player">Runtime do Flash (vulgo Flash Player)</a>. O Runtime pode ter comportamentos diferentes em diferentes versões do próprio runtime e também do sistema operacional. Por algumas vezes nós passamos por situações onde percebemos que o Player não estava funcionando em uma versão específica do Runtime no Internet Explorer 6 no Windows XP. Isso causou uma certa correria, mas felizmente conseguimos resolver o problema antes de colocar no ar e não houve impacto.</p>
<p>Lições aprendidas e tivemos tomar algumas medidas, entre elas testar em Linux, Windows e Mac e nos principais browsers e Runtimes do Flash como parte do nosso Definition of Done (DoD). Na prática, hoje uma estória não é dada como pronta se não tivermos certeza que o que foi feito funciona nos diversos environments pré estabelecidos. No início isso era parte do DoD do Sprint, mas após passarmos por uma situação, onde achamos um problema no IE6 (pra variar) bem no último dia do sprint, e que iria colocar todo esse Sprint por água abaixo, movemos esse item do DoD do Sprint para o DoD das estórias. Acabamos resolvendo o problema sem impactar no sprint, mas o desfecho poderia ter sido outro.</p>
<h2>Testes Automatizados</h2>
<p>Nos tempos atuais, é quase unânime a importância de testes automatizados no desenvolvimento de software. Todo programador deveria saber os princípios de testes automatizados e aplicá-los no seu dia a dia. Infelizmente, existem alguns environments que não facilitam muito esse tipo de prática. Nesses casos, é necessário lidar com o problema de maneira pragmática, caso contrário as coisas não andam. Diferentemente de outras tecnologias, neste caso não podemos escolher alguma opção diferente, pois a opção é uma só (o Flash).</p>
<p>No desenvolvimento do Player, nós usamos o <a href="http://flexunit.org/">FlexUnit</a> como ferramenta principal de testes automatizados. Dentro do que ele se propõe, faz seu trabalho bem feito, e facilita bastante os testes. Tem suporte a <a href="http://docs.flexunit.org/index.php?title=Writing_an_AsyncTest">testes assíncronos</a>, e sua <a href="http://docs.flexunit.org/">documentação explica bem as principais funcionalidades</a>.</p>
<p>Uma coisa que tem nos atrapalhado bastante são os frameworks de <a href="http://xunitpatterns.com/Test%20Double.html">test doubles</a>. Nenhum dos frameworks que testamos funcionou no nosso ambiente. Aqui, algo que percebemos no densenvolvimento para Flash foi que cada tutorial na internet pode funcionar numa minor/revision version do runtime e na outra aquele tutorial já não funciona. É bem complicado e custei a aceitar, mas é assim que funciona nesse environment. Ainda não descarto a possibilidade de que poderiamos insistir mais pra conseguir alguma coisa melhor, ou que não soubemos fazer direito, mas não poderiamos ficar empacados nisso, sem mover nosso projeto pra frente.</p>
<p>Mesmo com essas dificuldades, estamos conseguindo fazer uma quantidade boa de testes e isso tem nos ajudado muito.</p>
<h2>Continous Integration Server</h2>
<p>Outro desafio bem complicado que tivemos foi ter um build server funcionando bem e rodando nossos testes automatizados. Mais uma vez os tutoriais da internet acabam não funcioando direito. Pra piorar, pra você rodar testes ActionScript 3, que é a linguagem do Flash, é necessário levantar uma instância do FlashPlayer, que precisa de um <a href="http://en.wikipedia.org/wiki/X_Window_System">Servidor X</a>. Essa instância vezes não fecha, fica travada, ou apresenta alguns problemas que nada tem a ver com os testes da aplicação. Custamos a perceber isso, mas foi o que aconteceu.</p>
<p>No fim das contas, hoje temos nosso servidor de build e integração contínua funcionando bem, e com poucos problemas.</p>
<h2>Estratégia de Migração</h2>
<p>Fazer uma mudança no Player de Vídeos da <a href="http://globo.com">globo.com</a> não é uma tarefa simples. Não poderíamos simplesmente colocar um Player novo no lugar do antigo e ver o que aconteceria. Além de ser um baita risco seria uma baita irresponsabilidade. Precisavamos então pensar numa estratégia &#8230;</p>
<p>Antes  do momento de colocar o primeiro release no ar, decidimos usar um catálogo de vídeos com acesso bem pequeno. Para isso, criamos uma opção que ativa/desativa a versão nova em cada catálogo, individualmente. Dessa forma, poderiamos voltar para a versão antiga IMEDIATAMENTE, em caso de algum problema.</p>
<p>Essa estratégia foi perfeita, pois conseguimos pegar diversos pontos de melhoria, e fazer os ajustes necesários sem gerar impacto para os usuários. Com os ajustes feitos e uma nova versão no ar, resolvemos então <a href="http://ascariocas.globo.com/videos/" target="_blank">colocar em mais um catálogo de vídeos</a>, dessa vez um com mais acessos. Nesse momento nosso player ainda não suportava vídeos ao vivo, portanto ainda não podiamos colocar em catálogos como o do <a href="http://globonews.globo.com/videos/v/globo-news-ao-vivo/61910" target="_blank">Globo News</a>, pois caso contrário teriamos problemas. Isso provou como a nossa escolha de criar uma opcão de ir habilitando sob demanda se mostrou bastante acertada, pois assim que terminamos a funcionalidade de vídeos ao vivo, habilitamos essa nova versão do Player para o <a href="http://globonews.globo.com/videos/v/globo-news-ao-vivo/61910" target="_blank">Globo News</a>.</p>
<p>Hoje, estamos já com quase todos os catálogos de vídeos usando esse Novo Player. Em breve, todos os vídeos da Globo.com serão servidos por ele. Isso só não aconteceu ainda porque temos algumas estórias com alguns detalhes que tornam viável a substituição completa do Player que está no ar hoje. O mais interessante de tudo é que estamos tendo impacto e stress zero, graças e estratégia bem traçada por todo nosso time.</p>
<h2>Conclusão</h2>
<p>Esse começo na equipe de Webmedia está sendo ótimo. Criar um Player de Vídeos do zero tem sido uma experiência fantástica, apesar de todas as dificuldades.</p>
<p>Algumas das coisas mais importantes que estou tirando de lição desse projeto é que (1) nem sempre dá pra fazer tudo certinho com todos os testes automatizados, etc, etc etc, (2) as vezes estamos num vendor lock-in onde não dá pra sair e ai você tem que saber superar com os problemas do enviroment dessa tecnologia e (3) migrar uma aplicação que afeta quase todos os sites de uma empresa do tamanho da <a href="http://globo.com">globo.com</a> sem causar impacto em ninguém é difícil, mas não impossível.
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2010/12/os-desafios-novo-player-de-vdeos-da-globocom/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>JBehave Brasil &#8211; BDD em Java no nosso idioma</title>
		<link>http://codificando.com/2009/04/jbehave-brasil-bdd-em-java-no-nosso-idioma/</link>
		<comments>http://codificando.com/2009/04/jbehave-brasil-bdd-em-java-no-nosso-idioma/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 19:00:52 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jruby]]></category>
		<category><![CDATA[pragmatic]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[testes]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[engenharia]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=67</guid>
		<description><![CDATA[No mês passado, resolvi aplicar BDD em um projeto Java que estava desenvolvendo. Atualmente, existem ferramentas em outras linguagens que podem ser usadas para esse fim. Por uma série de razões, resolvi usar o JBehave para resolver o meu problema &#8230; <a href="http://codificando.com/2009/04/jbehave-brasil-bdd-em-java-no-nosso-idioma/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>No mês passado, resolvi aplicar <a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development" target="_blank">BDD</a> em um projeto Java que estava desenvolvendo. Atualmente, existem <a href="http://wiki.github.com/aslakhellesoy/cucumber/jruby-and-java" target="_blank">ferramentas</a> em <a href="http://jtestr.codehaus.org/" target="_blank">outras linguagens</a> que podem ser usadas para esse fim. Por uma série de razões, resolvi usar o <a href="http://jbehave.org/" target="_blank">JBehave</a> para resolver o meu problema nesse projeto em específico (lembre-se, não existe bala de prata). Acontece que o JBehave é todo em Inglês e não dá suporte a i18n.</p>
<p>Quando comecei a usa-lo no meu projeto, logo percebi que usar em inglês não seria legal, pois o projeto só fazia sentido no Brasil e portanto o interessante era escrever os cenários em português. A partir desse momento, comecei a escrever algumas classes pra fornecer esse suporte. Felizmente, as classes <a href="http://jbehave.org/javadoc/latest/core/org/jbehave/scenario/Scenario.html">Scenario</a> e <a href="http://jbehave.org/javadoc/latest/core/org/jbehave/scenario/steps/Steps.html" target="_blank">Steps</a> permitem fácil extensão para resolver esse problema. Após as modificações necessárias, o arquivo de cenário passou a se chamar <strong>nome.cenario</strong> e o texto no arquivo ficou da seguinte forma:</p>
<pre class="brush: xml; title: ;">

Como um Bom testador
Eu quero testar todo meu sistema
Para garantir a qualidade

Cenário: Nome em português do Brasil

Dado que eu quero rodar o Jbehave em português do Brasil
Quando eu usar o meu idioma
E estiver testando
Então tudo deve funcionar
E eu sou feliz
</pre>
<p>Feito isso, achei legal disponibilizar uma biblioteca para que outros desenvolvedores que precisem usar o <a href="http://jbehave.org/" target="_blank">JBehave</a> no nosso idioma possam faze-lo de forma trivial. Nesse momento nasceu o projeto <a href="http://github.com/emerleite/jbehave-br" target="_blank">jbehave-br</a>, extraido desse projeto e disponibilizado no GitHub <a href="http://github.com/emerleite/jbehave-br" target="_blank">aqui</a>. O projeto é muito simples e pequeno, com o objetivo de resolver especificamente esse problema e nada mais.</p>
<p>[UPDATE] O Jbehave agora suporta internacionalização e refatorei essa biblioteca para se aproveitar disso. Está totalmente compatível com a versão 2.5[/UPDATE]
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2009/04/jbehave-brasil-bdd-em-java-no-nosso-idioma/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Os 5 níveis do desenvolvedor nos testes automatizados</title>
		<link>http://codificando.com/2009/01/os-5-niveis-do-desenvolvedor-nos-testes-automatizados/</link>
		<comments>http://codificando.com/2009/01/os-5-niveis-do-desenvolvedor-nos-testes-automatizados/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 16:40:53 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[cursos]]></category>
		<category><![CDATA[engenharia]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[testes]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=57</guid>
		<description><![CDATA[Alguns acontecimentos me fizeram refletir um pouco sobre a relação entre o desenvolvedor de software e os testes automatizados. Muitas vezes parei pra explicar pra vários colegas de trabalho sobre a importância do assunto, fiz pair-programmming pra ensinar como se &#8230; <a href="http://codificando.com/2009/01/os-5-niveis-do-desenvolvedor-nos-testes-automatizados/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Alguns acontecimentos me fizeram refletir um pouco sobre a relação entre o desenvolvedor de software e os <a href="http://pt.wikipedia.org/wiki/Testes_automatizados">testes automatizados</a>.</p>
<p>Muitas vezes parei pra explicar pra vários colegas de trabalho sobre a importância do assunto, fiz <a href="http://www.improveit.com.br/xp/praticas/programacao_par">pair-programmming</a> pra ensinar como se faz, em fim, investi muito tempo pra ajudar diversas pessoas com isso. Por incrível que pareça, tem muiiiiiita gente que ainda não entendeu muito bem. Portanto, resolvi classificar a relação entre o desenvolvedor e os <a href="http://pt.wikipedia.org/wiki/Testes_automatizados">testes automatizados</a> em 5 níveis.</p>
<p>São eles:</p>
<ol>
<li><strong>Ignorante:</strong> Esse é o nível no qual o desenvolvedor não sabe direito o que são testes automatizados ou sequer ouviu falar sobre o assunto (acredite, ainda tem gente assim em pleno 2009).</li>
<li><strong>Indiferente: </strong>Nesse nível, o desenvolvedor já sabe o que é, mas acha que essa prática/tecnica não serve pra nada. Apenas toma tempo e atrasa a entrega do produto que está sendo desenvolvido. A sensação dele é que sem os testes a entrega seria mais rápida (e a quantidade de bugs tb vão aparecer mais rápido).<img class="alignright" src="http://codificando.com/wp-content/uploads/2009/01/escada.jpg" alt="" width="275" height="201" /></li>
<li><strong>Prequiçoso</strong>: Nesse nível eu encontro muita gente. É nesse nível onde a ficha caiu mas o camarada não toma coragem pra aprender a fazer os testes automatizados. Ainda existe o medo de perder muito tempo com essa prática e a preguiça impera, impedindo o progresso.</li>
<li><strong>Decidido: </strong>Esse pra mim é o nível mais importante. É nessa hora que o desenvolvedor se dá conta que não dá mais pra desenvolver software sem testes automatizados. É nessa hora que o cara pensa: &#8220;como eu pude desenvolver sem testes até hoje?&#8221;. É nesse momento que inicia-se o aprendizado.</li>
<li><strong>Profissional: </strong>Nesse nível, o desenvolvedor já não se sente mais confortável desenvolvendo sem testes automatizados. Desenvolver sem testes o incomoda profundamente. Nesse momento o mesmo está maduro quanto a importância dos testes e a aplicação na prática. O mesmo começa a se tornar um evangelista para os demais desenvolvedores e sempre que pode, fala sobre o assunto. Nesse momento o desenvolvedor pode realmente dizer que é um profissional, pois hoje em dia não se admite mais desenvolver sem ter testes automatizados que garantam qualidade daquilo que se desenvolve.</li>
</ol>
<p><strong><em>Em qual nível você está?</em></strong>
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2009/01/os-5-niveis-do-desenvolvedor-nos-testes-automatizados/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Código do Pânico</title>
		<link>http://codificando.com/2008/09/codigo-do-panico/</link>
		<comments>http://codificando.com/2008/09/codigo-do-panico/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 00:23:21 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[engenharia]]></category>
		<category><![CDATA[pragmatic]]></category>
		<category><![CDATA[testes]]></category>
		<category><![CDATA[tdd]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=37</guid>
		<description><![CDATA[Certa vez, passei por uma situação que acredito que você já passou um dia na sua vida profissional. Tive que implementar uma funcionalidade nova num projeto e precisava alterar diversas partes do código desse projeto para implementar essa funcionalidade. Infelizmente &#8230; <a href="http://codificando.com/2008/09/codigo-do-panico/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Certa vez, passei por uma situação que acredito que você já passou um dia na sua vida profissional. Tive que implementar uma funcionalidade nova num projeto e precisava alterar diversas partes do código desse projeto para implementar essa funcionalidade. Infelizmente esse projeto não tem uma boa cobertura de <a href="http://en.wikipedia.org/wiki/Test_automation" target="_blank">testes automatizados</a>. Existem até alguns testes, mas não o suficiente.</p>
<p>Dentro do &#8220;possível&#8221;, adicionei testes no projeto para melhorar o nível de confiança nas alterações e conseguir trabalhar um pouco mais sossegado quanto a qualidade do que estava sendo desenvolvido. Aproveitei a oportunidade para estimular meus colegas no uso de testes automatizados. Eu poderia simplesmente ignorar os testes e manter o &#8220;padrão&#8221; atual do projeto, mas como bem disse uma vez o <a href="http://gc.blog.br" target="_blank">Guilherme Chapiewski</a> num excelente <a href="http://gc.blog.br/2008/03/30/test-infection-por-onde-comecar/" target="_blank">post sobre inclusão de testes num projeto</a>, no momento em que comecei a modificar o código desse projeto foi o momento em que comecei a colocar testes nele.</p>
<p>Nessa experiência, enumerei 3 sintomas que podem ser um indício de que seu código está virando o <strong>Código do Pânico</strong>. São eles:</p>
<ol>
<li>Classes/Metodos/Atributos que aparentemente não são mais usados não são removidos, pois não existe certeza de que a remoção deles não vai causar problema.</li>
<li>Existe um medo enorme em modificar um método. Geralmente cria-se outro que faz &#8220;quase a mesma coisa&#8221; e com um nome parecido, pois estragar aquele método pode gerar até uma demissão.</li>
<li>Desenvolvedores adicionam gambiarras (ou bacalhau pra quem prefere) sem a menor pena, afinal de contas, <a href="http://desciclo.pedia.ws/wiki/POG" target="_blank">o código já está cheio delas mesmo</a>.</li>
</ol>
<p>A maioria dos problemas que tornam o código do seu projeto um <strong>Código do Pânico</strong> se resolvem com praticas como <a href="http://www.improveit.com.br/xp/praticas/tdd" target="_blank">TDD</a>, mantendo uma boa <a href="http://en.wikipedia.org/wiki/Test_suite" target="_blank">suite de testes</a> e também <a href="http://en.wikipedia.org/wiki/Fixing_Broken_Windows" target="_blank">retirando as gambiarras do seu código</a>, que quando não removidas, estimulam outros desenvolvedores a adicionar mais um pouco sempre que a pressa pede.</p>
<p>O quanto você tem medo de alterar o código do seu projeto?
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2008/09/codigo-do-panico/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

