<?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>RenatoOnSnails Weblog</title>
	<atom:link href="http://renatoonsnails.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://renatoonsnails.wordpress.com</link>
	<description>Blog sobre criação de software, com foco principal em Java e métodos de desenvolvimento</description>
	<lastBuildDate>Tue, 23 Dec 2008 01:56:48 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='renatoonsnails.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>RenatoOnSnails Weblog</title>
		<link>http://renatoonsnails.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://renatoonsnails.wordpress.com/osd.xml" title="RenatoOnSnails Weblog" />
	<atom:link rel='hub' href='http://renatoonsnails.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Cloud computing in Plain English</title>
		<link>http://renatoonsnails.wordpress.com/2008/12/22/cloud-computing-in-plain-english/</link>
		<comments>http://renatoonsnails.wordpress.com/2008/12/22/cloud-computing-in-plain-english/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 01:48:09 +0000</pubDate>
		<dc:creator>renato</dc:creator>
				<category><![CDATA[desenvolvimento de software]]></category>
		<category><![CDATA[cloud computing]]></category>

		<guid isPermaLink="false">http://renatoonsnails.wordpress.com/?p=50</guid>
		<description><![CDATA[Encontrei um vídeo bem legal em inglês falando sobre Cloud Computing: Cloud computing é um termo que está sendo bem falado ultimamente. Um exemplo desse serviço é o Amazon Webservices.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renatoonsnails.wordpress.com&amp;blog=3725102&amp;post=50&amp;subd=renatoonsnails&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Encontrei um vídeo bem legal em inglês falando sobre Cloud Computing:</p>
<span style="text-align:center; display: block;"><a href="http://renatoonsnails.wordpress.com/2008/12/22/cloud-computing-in-plain-english/"><img src="http://img.youtube.com/vi/XdBd14rjcs0/2.jpg" alt="" /></a></span>
<p>Cloud computing é um termo que está sendo bem falado ultimamente. Um exemplo desse serviço é o <a href="http://aws.amazon.com/">Amazon Webservices</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/renatoonsnails.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/renatoonsnails.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/renatoonsnails.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/renatoonsnails.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/renatoonsnails.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/renatoonsnails.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/renatoonsnails.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/renatoonsnails.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/renatoonsnails.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/renatoonsnails.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/renatoonsnails.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/renatoonsnails.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/renatoonsnails.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/renatoonsnails.wordpress.com/50/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renatoonsnails.wordpress.com&amp;blog=3725102&amp;post=50&amp;subd=renatoonsnails&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://renatoonsnails.wordpress.com/2008/12/22/cloud-computing-in-plain-english/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/08a572e850ed43a892f61fe51c59fbd9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">renatoonsnails</media:title>
		</media:content>
	</item>
		<item>
		<title>Integrando Apache com Glassfish</title>
		<link>http://renatoonsnails.wordpress.com/2008/09/25/integrando-apache-com-glassfish/</link>
		<comments>http://renatoonsnails.wordpress.com/2008/09/25/integrando-apache-com-glassfish/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 01:50:34 +0000</pubDate>
		<dc:creator>renato</dc:creator>
				<category><![CDATA[ferramentas]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[httpd]]></category>
		<category><![CDATA[mod_jk]]></category>

		<guid isPermaLink="false">http://renatoonsnails.wordpress.com/?p=43</guid>
		<description><![CDATA[Após fazer a migração das minhas aplicações do Tomcat para o Glassfish ainda faltou fazer com que o Apache (httpd) redirecionasse requisições para o Glassfish. Isto é útil quando temos aplicações (em PHP, por exemplo) que rodam no Apache e ainda queremos usar a porta http default 80 para aplicações desenvolvidas em Java rodando no [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renatoonsnails.wordpress.com&amp;blog=3725102&amp;post=43&amp;subd=renatoonsnails&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Após fazer a migração das minhas aplicações do Tomcat para o Glassfish ainda faltou fazer com que o Apache (httpd) redirecionasse requisições para o Glassfish. Isto é útil quando temos aplicações (em PHP, por exemplo) que rodam no Apache e ainda queremos usar a porta http default 80 para aplicações desenvolvidas em Java rodando no Glassfish.</p>
<p>Para habilitar no Glassfish (versão v2) a integração com o Apache, temos que copiar os jars commons-modeler, commons-logging e tomcat-ajp de uma instalação existente do Tomcat (importante: não pode ser a última versão do Tomcat que não funciona, eu usei a 5.5.17) para o diretório $GLASSFISH_HOME/lib. No meu caso comecei a ter problemas com o log4j e tive que tirá-lo do pacote da minha aplicação e colocá-lo no diretório lib também para o servidor inicializar sem erro. Só que minha aplicação parou de mostrar os logs do log4j, isso ainda é um problema que tenho que contornar.</p>
<p>Após ter copiado os jars, ainda temos que definir uma propriedade na inicialização do Glassfish que definirá a porta utilizada pelo mod_jk do Apache para se comunicar com o Glassfish:</p>
<p><code>-Dcom.sun.enterprise.web.connector.enableJK=8009</code></p>
<p>Isso pode ser feito pela interface de administração (por exemplo, http://localhost:4848) ou usando o comando:</p>
<p><code>$GLASSFISH_HOME/bin/asadmin create-jvm-options -Dcom.sun.enterprise.web.connector.enableJK=8009</code></p>
<p>Não vou explicar a parte do Apache que utilizaria o mod_jk, é só procurar no Google como faz a integração Tomcat com Apache que é igual.</p>
<p>Se alguém quiser mais detalhes, ver em essa página em inglês: <a href="http://weblogs.java.net/blog/jfarcand/archive/2006/03/running_glassfi_1.html">Running GlassFish with Apache httpd</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/renatoonsnails.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/renatoonsnails.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/renatoonsnails.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/renatoonsnails.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/renatoonsnails.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/renatoonsnails.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/renatoonsnails.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/renatoonsnails.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/renatoonsnails.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/renatoonsnails.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/renatoonsnails.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/renatoonsnails.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/renatoonsnails.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/renatoonsnails.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renatoonsnails.wordpress.com&amp;blog=3725102&amp;post=43&amp;subd=renatoonsnails&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://renatoonsnails.wordpress.com/2008/09/25/integrando-apache-com-glassfish/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/08a572e850ed43a892f61fe51c59fbd9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">renatoonsnails</media:title>
		</media:content>
	</item>
		<item>
		<title>Netbeans 6.1, Glassfish v2 e Maven 2</title>
		<link>http://renatoonsnails.wordpress.com/2008/08/22/netbeans-61-glassfish-v2-e-maven-2/</link>
		<comments>http://renatoonsnails.wordpress.com/2008/08/22/netbeans-61-glassfish-v2-e-maven-2/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 22:59:50 +0000</pubDate>
		<dc:creator>renato</dc:creator>
				<category><![CDATA[ferramentas]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[glassfish]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[netbeans]]></category>

		<guid isPermaLink="false">http://renatoonsnails.wordpress.com/?p=39</guid>
		<description><![CDATA[Aqui tenho 2 aplicações web que utilizam uma base comum, e queria que o Spring inicializasse somente uma vez. Como o Spring que gerencia a utilização do Hibernate eu criaria somente um sessionFactory e também unificaria o cache. Procurando na net descobri um artigo onde ensinava a fazer isso, mas eu precisaria empacotar minha aplicação [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renatoonsnails.wordpress.com&amp;blog=3725102&amp;post=39&amp;subd=renatoonsnails&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Aqui tenho 2 aplicações web que utilizam uma base comum, e queria que o Spring inicializasse somente uma vez. Como o Spring que gerencia a utilização do Hibernate eu criaria somente um sessionFactory e também unificaria o cache. Procurando na net descobri um <a href="http://blog.springsource.com/main/2007/06/11/using-a-shared-parent-application-context-in-a-multi-war-spring-application/">artigo</a> onde ensinava a fazer isso, mas eu precisaria empacotar minha aplicação como um ear. Como o Tomcat que eu utilizava atualmente não suporta ears, depois de testar rapidamente JBoss, Geronimo e Glassfish acabei optando pelo <a href="https://glassfish.dev.java.net/">Glassfish</a>. Não foi nenhuma pesquisa muito profunda, o Glassfish foi o que eu consegui fazer funcionar mais rapidamente minha aplicação e eu gostei da interface de administração.</p>
<p>Na configuração do Glassfish eu precisei criar o Realm de Segurança (e um <em>sun-web.xml</em> que vai no war para mapear os <em>roles</em>), os DataSources para conexão com o MySQL e configurar o JMS. A vantagem que ele já tem um servidor JMS integrado e quando eu utilizava o Tomcat dependia do ActiveMQ rodando em separado, mais uma razão para eu mudar para um servidor de aplicação.</p>
<p>Daí parti para integrar o Glassfish com o Eclipse, mas o plugin do Glassfish não estava funcionando. Resolvi testar o <a href="http://www.netbeans.org/">Netbeans</a> que tem uma ótima integração com o Glassfish (é tudo da Sun <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ). Só precisei instalar os plugins do <a href="http://maven.apache.org/">Maven</a> (dentro dele tem uma opção de instalar plugins) e importar meus projetos foi extremamente fácil.</p>
<p>Agora para fazer o deploy do meu projeto Maven no Glassfish eu não consegui de um jeito bom, estou fazendo pela linha de comando mesmo usando o comando <em>asadmin</em> (criei um shell script pra isso). O Glassfish eu rodo por dentro do Netbeans, perto de onde tem a estrutura do projeto tem uma aba Serviços. Ali tem Servidores e dentro o Glassfish, só clicar com o botão direito e mandar rodar ou parar.</p>
<p>Meu ear ficou com 2 wars dentro e com todos os jars comuns aos dois wars. Cada war tem somente os jars específicos utilizados somente neles. Depois de alguns problemas com classloaders consegui fazer a minha aplicação funcionar. Tive que colocar a opção <em>class-loader delegate=&#8221;false&#8221;</em> nos meus arquivos<em> sun-web.xml</em> e tomar cuidado para que cada dependência que fosse procurada ou estivesse no mesmo classloader ou no classloader pai. Para saber mais sobre a &#8220;hierarquia&#8221; de classloaders é só dar uma olhada na documentação do Glassfish.</p>
<p>Fica aqui o relato que talvez ajude alguém, não entrei em muitos detalhes para não ficar muito extenso. Me surpreendi com a qualidade do Glassfish e do Netbeans que não via fazia muito tempo. E pensar que eu odiava servidor da Sun (iPlanet argh!!).</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/renatoonsnails.wordpress.com/39/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/renatoonsnails.wordpress.com/39/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/renatoonsnails.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/renatoonsnails.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/renatoonsnails.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/renatoonsnails.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/renatoonsnails.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/renatoonsnails.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/renatoonsnails.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/renatoonsnails.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/renatoonsnails.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/renatoonsnails.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/renatoonsnails.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/renatoonsnails.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/renatoonsnails.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/renatoonsnails.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renatoonsnails.wordpress.com&amp;blog=3725102&amp;post=39&amp;subd=renatoonsnails&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://renatoonsnails.wordpress.com/2008/08/22/netbeans-61-glassfish-v2-e-maven-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/08a572e850ed43a892f61fe51c59fbd9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">renatoonsnails</media:title>
		</media:content>
	</item>
		<item>
		<title>Encontre bugs no Java com FindBugs</title>
		<link>http://renatoonsnails.wordpress.com/2008/08/08/encontre-bugs-no-java-com-findbugs/</link>
		<comments>http://renatoonsnails.wordpress.com/2008/08/08/encontre-bugs-no-java-com-findbugs/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 16:13:48 +0000</pubDate>
		<dc:creator>renato</dc:creator>
				<category><![CDATA[ferramentas]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[findbugs]]></category>

		<guid isPermaLink="false">http://renatoonsnails.wordpress.com/?p=33</guid>
		<description><![CDATA[Nem me lembro como ouvi falar do FindBugs, mas agora acho uma ferramenta essencial. O que ele faz é vasculhar todo o seu código e mostrar lugares onde possam existir possíveis bugs. Sabe aqueles lugares que não foram testados direitos, que são pouco utilizados e que ninguém percebeu que tem um erro ali? O FindBugs [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renatoonsnails.wordpress.com&amp;blog=3725102&amp;post=33&amp;subd=renatoonsnails&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Nem me lembro como ouvi falar do <a href="http://findbugs.sourceforge.net/">FindBugs</a>, mas agora acho uma ferramenta essencial. O que ele faz é vasculhar todo o seu código e mostrar lugares onde possam existir possíveis <em>bugs</em>. Sabe aqueles lugares que não foram testados direitos, que são pouco utilizados e que ninguém percebeu que tem um erro ali? O FindBugs pode te ajudar com isso.</p>
<p>Por exemplo, ele acha comparações de String usando == (o certo seria usar o método <em>equals</em>). Outro exemplo, no meu código eu tinha uma lista de estados e estava vendo se ela tinha uma cidade. O código compilava, mas o que eu queria realmente era saber se na lista de estados tinha um estado e não uma cidade! (pra achar bugs desse tipo acho que só a partir do Java 5 onde as Collections podem ter tipos)</p>
<p>E para cada tipo de aviso ele dá uma explicação do porque. Com isso você pode além de achar os <em>bugs </em>aprender mais coisas sobre a linguagem Java.</p>
<p>Outra coisa legal do FindBugs é a integração com outras ferramentas. Pode usá-lo como plugin do Eclipse ou com o Maven para gerar relatórios do projeto.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/renatoonsnails.wordpress.com/33/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/renatoonsnails.wordpress.com/33/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/renatoonsnails.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/renatoonsnails.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/renatoonsnails.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/renatoonsnails.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/renatoonsnails.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/renatoonsnails.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/renatoonsnails.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/renatoonsnails.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/renatoonsnails.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/renatoonsnails.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/renatoonsnails.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/renatoonsnails.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/renatoonsnails.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/renatoonsnails.wordpress.com/33/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renatoonsnails.wordpress.com&amp;blog=3725102&amp;post=33&amp;subd=renatoonsnails&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://renatoonsnails.wordpress.com/2008/08/08/encontre-bugs-no-java-com-findbugs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/08a572e850ed43a892f61fe51c59fbd9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">renatoonsnails</media:title>
		</media:content>
	</item>
		<item>
		<title>Criando arquivos Excel com tabelas dinâmicas em Java</title>
		<link>http://renatoonsnails.wordpress.com/2008/07/25/criando-arquivos-excel-com-tabelas-dinamicas-em-java/</link>
		<comments>http://renatoonsnails.wordpress.com/2008/07/25/criando-arquivos-excel-com-tabelas-dinamicas-em-java/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 13:30:15 +0000</pubDate>
		<dc:creator>renato</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[poi]]></category>
		<category><![CDATA[tabelas dinamicas]]></category>

		<guid isPermaLink="false">http://renatoonsnails.wordpress.com/?p=24</guid>
		<description><![CDATA[Estava com esse problema recentemente e vou dar dicas sobre o que pode ser feito: Criar um arquivo usando o próprio Excel que servirá de template. Escrever os dados e dar nome ao range de dados (&#8220;Name a Range&#8221; no Excel em Inglês). Neste template definir as tabelas dinâmicas (pivot tables) usando o range definido [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renatoonsnails.wordpress.com&amp;blog=3725102&amp;post=24&amp;subd=renatoonsnails&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Estava com esse problema recentemente e vou dar dicas sobre o que pode ser feito:</p>
<ul>
<li>Criar um arquivo usando o próprio Excel que servirá de template. Escrever os dados e dar nome ao <em>range</em> de dados (&#8220;<em>Name a Range</em>&#8221; no Excel em Inglês).</li>
<li>Neste template definir as tabelas dinâmicas (pivot tables) usando o <em>range</em> definido no item anterior (não utilizar seleção manual de células). Entrando nas opções da tabela dinâmica, marcar a opção para fazer refresh ao abrir o documento.</li>
<li>Utilizando o <a href="http://poi.apache.org">POI</a>, escrever os comandos no java que abra o arquivo template, insira os dados reais por cima dos dados de exemplo, reajuste o <em>named range </em>de células para refletir a quantidade de linhas que tem os dados inseridos e salvar o arquivo com outro nome.</li>
</ul>
<p>Expliquei bem por cima o que tem que fazer para ajudar aqueles que não tem nenhuma idéia. Outra coisa é que o POI deu problema ao tentar abrir um arquivo meu que tinha filtros, então devemos tirar todos os filtros do arquivo Excel. Uma coisa que não sei é se as tabelas dinâmicas feitas vão funcionar no Open Office.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/renatoonsnails.wordpress.com/24/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/renatoonsnails.wordpress.com/24/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/renatoonsnails.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/renatoonsnails.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/renatoonsnails.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/renatoonsnails.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/renatoonsnails.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/renatoonsnails.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/renatoonsnails.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/renatoonsnails.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/renatoonsnails.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/renatoonsnails.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/renatoonsnails.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/renatoonsnails.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/renatoonsnails.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/renatoonsnails.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renatoonsnails.wordpress.com&amp;blog=3725102&amp;post=24&amp;subd=renatoonsnails&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://renatoonsnails.wordpress.com/2008/07/25/criando-arquivos-excel-com-tabelas-dinamicas-em-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/08a572e850ed43a892f61fe51c59fbd9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">renatoonsnails</media:title>
		</media:content>
	</item>
		<item>
		<title>Integrando Stripes com Jasper Reports</title>
		<link>http://renatoonsnails.wordpress.com/2008/07/16/integrando-stripes-com-jasper-reports/</link>
		<comments>http://renatoonsnails.wordpress.com/2008/07/16/integrando-stripes-com-jasper-reports/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 02:33:46 +0000</pubDate>
		<dc:creator>renato</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[jasper reports]]></category>
		<category><![CDATA[stripes]]></category>

		<guid isPermaLink="false">http://renatoonsnails.wordpress.com/?p=18</guid>
		<description><![CDATA[Vou falar aqui de como fazer a integração do Jasper Reports com o Stripes. Mais especificamente de como fazer o método num ActionBean do Stripes. Uma das maneiras de se gerar relatórios com o Jasper é utilizando um OutputStream que conterá o relatório gerado. Sabendo disso, segue um exemplo de método de um ActionBean do [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renatoonsnails.wordpress.com&amp;blog=3725102&amp;post=18&amp;subd=renatoonsnails&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Vou falar aqui de como fazer a integração do <a href="http://www.jasperforge.org">Jasper Reports</a> com o <a href="http://www.stripesframework.org">Stripes</a>. Mais especificamente de como fazer o método num <em>ActionBean</em> do Stripes.</p>
<p>Uma das maneiras de se gerar relatórios com o Jasper é utilizando um <em>OutputStream</em> que conterá o relatório gerado. Sabendo disso, segue um exemplo de método de um <em>ActionBean</em> do Stripes que exporta um pdf, por exemplo:</p>
<pre>public Resolution exportaPdf() {
  ByteArrayOuputStream output = new ByteArrayOutputStream();

  geraRelatorioPdf(output);

  return new StreamingResolution("application/pdf",
                    new ByteArrayInputStream(output.toByteArray()))
                    .setFileName("relatorio.pdf");
}</pre>
<p>Este método ao ser chamado da tela, irá gerar o relatório em <em>output</em> e retornará um <em>StreamingResolution</em> com os dados do relatório, fazendo com que o navegador apresente a janela pedindo para salvar o arquivo.</p>
<p>Caso se deseje exibir no navegador um relatório gerado em html, podemos fazer de forma semelhante:</p>
<pre>public Resolution exibeRelatorioHtml() {
  ByteArrayOuputStream output = new ByteArrayOutputStream();

  geraRelatorioHtml(output);

  return new StreamingResolution("text/html",
                     new ByteArrayInputStream(output.toByteArray()));
}</pre>
<p>Em ambos os casos, utilizei os métodos geraRelatorio somente para simplificar a explicação do <em>ActionBean</em>. Estes métodos que se utilizariam do Jasper Reports para a confecção dos relatórios.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/renatoonsnails.wordpress.com/18/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/renatoonsnails.wordpress.com/18/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/renatoonsnails.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/renatoonsnails.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/renatoonsnails.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/renatoonsnails.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/renatoonsnails.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/renatoonsnails.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/renatoonsnails.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/renatoonsnails.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/renatoonsnails.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/renatoonsnails.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/renatoonsnails.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/renatoonsnails.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/renatoonsnails.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/renatoonsnails.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renatoonsnails.wordpress.com&amp;blog=3725102&amp;post=18&amp;subd=renatoonsnails&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://renatoonsnails.wordpress.com/2008/07/16/integrando-stripes-com-jasper-reports/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/08a572e850ed43a892f61fe51c59fbd9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">renatoonsnails</media:title>
		</media:content>
	</item>
		<item>
		<title>Acentuação no macbook</title>
		<link>http://renatoonsnails.wordpress.com/2008/07/14/acentuacao-no-macbook/</link>
		<comments>http://renatoonsnails.wordpress.com/2008/07/14/acentuacao-no-macbook/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 12:17:50 +0000</pubDate>
		<dc:creator>renato</dc:creator>
				<category><![CDATA[offtopic]]></category>
		<category><![CDATA[acentuacao]]></category>
		<category><![CDATA[macbook]]></category>

		<guid isPermaLink="false">http://renatoonsnails.wordpress.com/?p=16</guid>
		<description><![CDATA[Option + E &#8211; Acento agudo Option + ` &#8211; Acento grave Option + I - Acento circunflexo Option + N - Til Option + C - C cedilha<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renatoonsnails.wordpress.com&amp;blog=3725102&amp;post=16&amp;subd=renatoonsnails&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><em>Option + E</em></strong> &#8211; Acento agudo</p>
<p><strong><em>Option + `</em></strong> &#8211; Acento grave</p>
<p><strong><em>Option + I</em> </strong>- Acento circunflexo</p>
<p><strong><em>Option + N</em> </strong>- Til</p>
<p><strong><em>Option + C</em> </strong>- C cedilha</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/renatoonsnails.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/renatoonsnails.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/renatoonsnails.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/renatoonsnails.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/renatoonsnails.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/renatoonsnails.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/renatoonsnails.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/renatoonsnails.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/renatoonsnails.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/renatoonsnails.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/renatoonsnails.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/renatoonsnails.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/renatoonsnails.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/renatoonsnails.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/renatoonsnails.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/renatoonsnails.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renatoonsnails.wordpress.com&amp;blog=3725102&amp;post=16&amp;subd=renatoonsnails&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://renatoonsnails.wordpress.com/2008/07/14/acentuacao-no-macbook/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/08a572e850ed43a892f61fe51c59fbd9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">renatoonsnails</media:title>
		</media:content>
	</item>
		<item>
		<title>Subversion no Eclipse 3.4 Ganymede</title>
		<link>http://renatoonsnails.wordpress.com/2008/07/14/subversion-no-eclipse-34-ganymede/</link>
		<comments>http://renatoonsnails.wordpress.com/2008/07/14/subversion-no-eclipse-34-ganymede/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 12:15:18 +0000</pubDate>
		<dc:creator>renato</dc:creator>
				<category><![CDATA[ferramentas]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[ganymede]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[subversive]]></category>

		<guid isPermaLink="false">http://renatoonsnails.wordpress.com/?p=15</guid>
		<description><![CDATA[O plugin subversive agora faz parte do Eclipse como um componente opcional. Para instalá-lo deve-se entrar em Help, Software Updates e escolher a opção Available Software. Clicar na seta do lado do Ganymede para abrir as categorias, escolher a categoria Collaboration Tools e selecionar a opção SVN Team Provider. Ainda ficarão faltando os conectores SVN [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renatoonsnails.wordpress.com&amp;blog=3725102&amp;post=15&amp;subd=renatoonsnails&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>O plugin subversive agora faz parte do Eclipse como um componente opcional. Para instalá-lo deve-se entrar em Help, Software Updates e escolher a opção Available Software. Clicar na seta do lado do Ganymede para abrir as categorias, escolher a categoria Collaboration Tools e selecionar a opção SVN Team Provider.</p>
<p>Ainda ficarão faltando os conectores SVN que devem ser baixados do site da Polarion (empresa que faz o subversive). Para isso devemos usar, ainda em Software Updates do Eclipse, o botão Add Site e colocar a seguinte url:</p>
<p><a href="http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/">http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/</a></p>
<p>Assim aparecerá na janela o site adicionado e será possível selecionar os conectores. Eu selecionei todos, acho que é possível escolher um diferente do default após a instalação caso queira mudar.</p>
<p>Depois de feito tudo isso é só mandar instalar e reiniciar o Eclipse.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/renatoonsnails.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/renatoonsnails.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/renatoonsnails.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/renatoonsnails.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/renatoonsnails.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/renatoonsnails.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/renatoonsnails.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/renatoonsnails.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/renatoonsnails.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/renatoonsnails.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/renatoonsnails.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/renatoonsnails.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/renatoonsnails.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/renatoonsnails.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/renatoonsnails.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/renatoonsnails.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renatoonsnails.wordpress.com&amp;blog=3725102&amp;post=15&amp;subd=renatoonsnails&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://renatoonsnails.wordpress.com/2008/07/14/subversion-no-eclipse-34-ganymede/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/08a572e850ed43a892f61fe51c59fbd9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">renatoonsnails</media:title>
		</media:content>
	</item>
		<item>
		<title>Teclas &#8220;faltando&#8221; no macbook</title>
		<link>http://renatoonsnails.wordpress.com/2008/06/29/teclas-faltando-no-macbook/</link>
		<comments>http://renatoonsnails.wordpress.com/2008/06/29/teclas-faltando-no-macbook/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 02:07:22 +0000</pubDate>
		<dc:creator>renato</dc:creator>
				<category><![CDATA[offtopic]]></category>
		<category><![CDATA[macbook]]></category>

		<guid isPermaLink="false">http://renatoonsnails.wordpress.com/?p=14</guid>
		<description><![CDATA[Recentemente adquiri um macbook e por nunca ter usado um estranhei a falta das teclas home, end, page up, page down e backspace. Os atalhos para essa funcoes sao (podem ver que nao aprendi a acentuar ainda ): Home &#8211; tecla command + seta para esquerda End &#8211; tecla command + seta para direita Page [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renatoonsnails.wordpress.com&amp;blog=3725102&amp;post=14&amp;subd=renatoonsnails&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Recentemente adquiri um macbook e por nunca ter usado um estranhei a falta das teclas <em>home</em>, <em>end</em>, <em>page up</em>, <em>page down </em>e<em> backspace</em>. Os atalhos para essa funcoes sao (podem ver que nao aprendi a acentuar ainda <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ):</p>
<p><em><strong>Home</strong></em> &#8211; tecla <em>command</em> + seta para esquerda</p>
<p><em><strong>End</strong></em> &#8211; tecla <em>command</em> + seta para direita</p>
<p><strong><em>Page up</em></strong> &#8211; tecla <em>fn</em> + seta para cima</p>
<p><em><strong>Page down</strong></em> &#8211; tecla <em>fn</em> + seta para baixo</p>
<p><strong><em>Backspace</em></strong> &#8211; tecla <em>delete</em></p>
<p><em><strong>Delete</strong></em> &#8211; tecla <em>fn</em> + tecla <em>delete</em></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/renatoonsnails.wordpress.com/14/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/renatoonsnails.wordpress.com/14/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/renatoonsnails.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/renatoonsnails.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/renatoonsnails.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/renatoonsnails.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/renatoonsnails.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/renatoonsnails.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/renatoonsnails.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/renatoonsnails.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/renatoonsnails.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/renatoonsnails.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/renatoonsnails.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/renatoonsnails.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/renatoonsnails.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/renatoonsnails.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renatoonsnails.wordpress.com&amp;blog=3725102&amp;post=14&amp;subd=renatoonsnails&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://renatoonsnails.wordpress.com/2008/06/29/teclas-faltando-no-macbook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/08a572e850ed43a892f61fe51c59fbd9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">renatoonsnails</media:title>
		</media:content>
	</item>
		<item>
		<title>Cobertura de testes 100% não indica software perfeito</title>
		<link>http://renatoonsnails.wordpress.com/2008/06/17/cobertura-de-testes-100-nao-indica-software-perfeito/</link>
		<comments>http://renatoonsnails.wordpress.com/2008/06/17/cobertura-de-testes-100-nao-indica-software-perfeito/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 01:17:00 +0000</pubDate>
		<dc:creator>renato</dc:creator>
				<category><![CDATA[desenvolvimento de software]]></category>
		<category><![CDATA[ferramentas]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[testes]]></category>
		<category><![CDATA[cobertura]]></category>
		<category><![CDATA[software perfeito]]></category>

		<guid isPermaLink="false">http://renatoonsnails.wordpress.com/?p=13</guid>
		<description><![CDATA[Existem ferramentas que mostram a cobertura do código conseguida pelos testes automatizados (por exemplo, uma de Java é o Cobertura, que pode ser integrado com Ant e Maven inclusive). Quanto mais código testado melhor e a ferramenta de cobertura vai mostrar as linhas de código por onde os testes estão passando. Olhando os resultados você [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renatoonsnails.wordpress.com&amp;blog=3725102&amp;post=13&amp;subd=renatoonsnails&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Existem ferramentas que mostram a cobertura do código conseguida pelos testes automatizados (por exemplo, uma de Java é o <a href="http://cobertura.sourceforge.net/">Cobertura</a>, que pode ser integrado com Ant e Maven inclusive). Quanto mais código testado melhor e a ferramenta de cobertura vai mostrar as linhas de código por onde os testes estão passando. Olhando os resultados você poderia ver que algum <em>else</em> não está sendo executado nos testes e escrever um teste que passe nesse <em>else</em>.</p>
<p>Mas se por um acaso alguém conseguisse uma cobertura de 100% de testes, o que é difícil (<em>Exceptions</em> de diversos tipos que são difíceis de testar) e não prático (<em>setters</em> e <em>getters</em> simples não precisam ser testados, não tem muito o que dar errado), não teria um software perfeito.</p>
<p>E por que isso? A cobertura pode dar 100%, só que quando tem alguma coisa faltando também é um erro. Posso ter esquecido de escrever algum <em>if</em> no código. Código que não existe não aparece na cobertura.</p>
<p>Outra coisa, os erros podem ocorrer com cada combinação de decisões que o software toma. Um teste pode entrar num <em>if</em>, outro teste pode entrar em outro, mas um bug pode acontecer justamente quando se entra nos dois.</p>
<p>Além dessas razões, só passar pelo código é apenas uma parte do teste. A outra são os <em>assertions</em>, os trechos de códigos exercitados devem ter uma confirmação do teste que o retorno do resultado é correto.</p>
<p>Então, a lição que fica é, não tente uma cobertura de 100% porque vai ser muito difícil e também porque isso não vai indicar um software perfeito. Use a cobertura de testes para encontrar trechos chaves do código que deveriam ser testados, mas não estão sendo.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/renatoonsnails.wordpress.com/13/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/renatoonsnails.wordpress.com/13/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/renatoonsnails.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/renatoonsnails.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/renatoonsnails.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/renatoonsnails.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/renatoonsnails.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/renatoonsnails.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/renatoonsnails.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/renatoonsnails.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/renatoonsnails.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/renatoonsnails.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/renatoonsnails.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/renatoonsnails.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/renatoonsnails.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/renatoonsnails.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renatoonsnails.wordpress.com&amp;blog=3725102&amp;post=13&amp;subd=renatoonsnails&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://renatoonsnails.wordpress.com/2008/06/17/cobertura-de-testes-100-nao-indica-software-perfeito/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/08a572e850ed43a892f61fe51c59fbd9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">renatoonsnails</media:title>
		</media:content>
	</item>
	</channel>
</rss>
