<?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"
	>

<channel>
	<title>Diego Plentz</title>
	<atom:link href="http://plentz.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://plentz.org</link>
	<description>plentiful thoughts from my empty head</description>
	<pubDate>Fri, 22 Aug 2008 12:22:49 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>E a privacidade, Anatel?</title>
		<link>http://plentz.org/2008/08/21/e-a-privacidade-anatel/</link>
		<comments>http://plentz.org/2008/08/21/e-a-privacidade-anatel/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 14:43:53 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
		
		<category><![CDATA[News]]></category>

		<category><![CDATA[adsl]]></category>

		<category><![CDATA[anatel]]></category>

		<category><![CDATA[brturbo]]></category>

		<category><![CDATA[segurança]]></category>

		<category><![CDATA[telefonia]]></category>

		<guid isPermaLink="false">http://plentz.org/?p=175</guid>
		<description><![CDATA[
Faz dois meses que tento cancelar o BrTurbo. Após me dar conta que eu estava pagando 25 reais por mês para ter um login e poder logar na internet. Procurando um pouco, acabei achando 2 alternativas. O PS5 e o ADSLResidencial. Como o ADSLResidencial era mais barato, optei por ele. Dois minutos para criar um [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/photos/darwinbell/544550430/" title="messed up"><img src="http://farm2.static.flickr.com/1185/544550430_a531b9cb64_m.jpg" alt="messed up" class="pc_img" height="240" width="188" style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;"/></a><br />
Faz dois meses que tento cancelar o BrTurbo. Após me dar conta que eu estava pagando 25 reais por mês para ter um login e poder logar na internet. Procurando um pouco, acabei achando 2 alternativas. O <a href="http://www.ps5.com.br/">PS5</a> e o <a href="http://www.adslresidencial.com.br/">ADSLResidencial</a>. Como o <a href="http://www.adslresidencial.com.br/">ADSLResidencial</a> era mais barato, optei por ele. Dois minutos para criar um usuário e já sair funcionando. Troquei o login no modem e funcionou de imediato. O boleto paguei 2 dias depois (criei o login no final de semana). Perfeito. Agora &#8220;basta&#8221; cancelar o BrTurbo. Depois de uma novela de 2 meses, continuo sem conseguir cancelar. Como não teve jeito de fazer pelos meios tradicionais, resolvi abrir um chamado na <a href="http://www.anatel.gov.br/">Anatel</a>. A novela toda pode ser acompanhada <a href="http://sistemas.anatel.gov.br/focus/FaleConosco/MostrarDetalheSolicitacao.asp?idtSolicitacao=7094023">aqui</a>.</p>
<p>Mas perai. Qualquer um consegue acessar o <strong>meu</strong> chamado na <a href="http://www.anatel.gov.br/">Anatel</a>? E se eu trocar o número do chamado? Vamos ver. <a href="http://sistemas.anatel.gov.br/focus/FaleConosco/MostrarDetalheSolicitacao.asp?idtSolicitacao=7094111">http://sistemas.anatel.gov.br/focus/FaleConosco/MostrarDetalheSolicitacao.asp?idtSolicitacao=7094111</a>. Excelente. Chamados públicos e com id sequencial. Parabéns equipe Anatel. Muito bom.</p>
<p>Ou seja, <strong>qualquer pessoa</strong> pode acessar qualquer chamado, pois os mesmos são abertos a público. E pior, com dados que não poderiam ser publicados, como CPF, email, telefone&#8230;ótimo não? Mas fica ainda pior. Sempre pode ficar pior. Me dei conta que o <a href="http://sistemas.anatel.gov.br/focus/FaleConosco/validarUsuario.asp">login do site da Anatel</a> é a combinação CPF+email. E esses dados são exibidos publicamente. Já entenderam o tamanho do problema, né?</p>
<p>Então já que após 3 dias até agora não escutei um &#8220;ah&#8221; da Anatel, resolvi fazer <em>uma certa publicidade</em>, pra ver se as coisas andam mais rápido. Por sinal, <a href="http://sistemas.anatel.gov.br/focus/FaleConosco/MostrarDetalheSolicitacao.asp?idtSolicitacao=7094023">meu chamado do BrTurbo</a> parece estar andando mais rápido que o <a href="http://sistemas.anatel.gov.br/focus/FaleConosco/MostrarDetalheSolicitacao.asp?idtSolicitacao=7094187">chamado deles</a>.</p>
<p>Só fica a dúvida: e a privacidade, Anatel?</p>
<p><em>update</em>: pra quem não viu, tirei uma screenshot <a href="http://flickr.com/photos/plentz/2785089034/">reproduzindo o problema</a>, <a href="http://flickr.com/photos/plentz/2784235159/">Anatel tentando corrigir o problema</a> e do <a href="http://flickr.com/photos/plentz/2784235009/">site da Anatel &#8220;em Manutenção&#8221;</a>.<br />
<em>update 2</em>: recebi agora pela manhã uma ligação da responsável pelo sistema da Anatel, agradecendo sobre o alerta e se comprometendo a só colocar o sistema no ar novamente quando tudo estiver resolvido - e me deixou o número para ligar diretamente, caso encontre outro problema. A <em>publicidade</em> funcionou.</p>
<p>Links:</p>
<ul>
<li><a href="http://www.baguete.com.br/noticiasDetalhes.php?id=27675">Baguete - Furo: Anatel retira dados do ar</a></li>
<li><a href="http://www.baguete.com.br/noticiasDetalhes.php?id=27669">Baguete - Furo: Anatel expõe dados pessoais</a></li>
<li><a href="http://imasters.uol.com.br/noticia/9788/seguranca/anatel_exibe_dados_de_usuarios_na_web/">iMasters - Anatel exibe dados de usuários na web</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2008/08/21/e-a-privacidade-anatel/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Give It a Try</title>
		<link>http://plentz.org/2008/04/10/give-it-a-try/</link>
		<comments>http://plentz.org/2008/04/10/give-it-a-try/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 02:34:20 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
		
		<category><![CDATA[Coding]]></category>

		<category><![CDATA[Geek]]></category>

		<category><![CDATA[book]]></category>

		<category><![CDATA[cvs]]></category>

		<category><![CDATA[git]]></category>

		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://plentz.org/?p=169</guid>
		<description><![CDATA[
Não lembro exatamente onde li, ou quem vi falando essa semana sobre uma versão do &#8220;Pragmatic Version Control with *&#8221; voltada para Git. E parece que estavam prevendo, porque depois de todo o auê que ele tem causado os Pragmatic Programmers anunciaram hoje o Pragmatic Version Control using Git. E não é a toa. A [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/kruse/91118309/" title="Pragmatic Version Control Using Git"><img src="http://www.pragprog.com/images/covers/190x228/tsgit.jpg" alt="Pragmatic Version Control Using Git" style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;"/></a><br />
Não lembro exatamente onde li, ou quem vi falando essa semana sobre uma versão do &#8220;Pragmatic Version Control with *&#8221; voltada para <a href="http://git.or.cz/">Git</a>. E parece que estavam prevendo, porque depois de todo o <a href="http://www.google.com/search?q=git">auê que ele tem causado</a> os <a href="http://pragprog.com/">Pragmatic Programmers</a> anunciaram hoje o <a href="http://pragprog.com/titles/tsgit">Pragmatic Version Control using Git</a>. E não é a toa. A primeira vez que ouvi alguém falando do <a href="http://git.or.cz/">Git</a>, foi o próprio criador da criança, ninguém menos que <a href="http://en.wikipedia.org/wiki/Linus_Torvalds">Linus Torvalds</a>, em <a href="http://youtube.com/watch?v=4XpnKHJAok8">uma apresentação dentro do Google</a>, quase um ano atrás. Na época não dei a devida importância, mas vale a pena dar algumas horinhas de atenção pra ler a respeito e tirar suas próprias conclusões.</p>
<p>Além disso, hoje também foi <a href="http://github.com/blog/40-we-launched">oficialmente lançado</a> o <a href="http://github.com/">Github</a>, que é basicamente um host especializado em Git. E quem acompanha blogs gringos porai, deve ter percebido que não param de pipocar posts em tudo quanto é lado, explicando como usar Git e porque git é melhor que Subversion (acho que ninguém tem coragem de tentar comparar Git com <a href="http://www.cvshome.org/">CVS</a> né?) então nem vou perder meu tempo escrevendo mais um. E como provavelmente daqui a algum tempo (pouco, inclusive), você vai estar <a href="http://git.or.cz/course/svn.html">abandonando seu querido Subversion</a>, siga os links do post e comece a usar. Não dói. <strong>G</strong>ive <strong>I</strong>t a <strong>T</strong>ry.</p>
]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2008/04/10/give-it-a-try/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Internet banda lerda 3g da Claro</title>
		<link>http://plentz.org/2008/03/15/internet-banda-lerda-3g-da-claro/</link>
		<comments>http://plentz.org/2008/03/15/internet-banda-lerda-3g-da-claro/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 22:51:14 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
		
		<category><![CDATA[Geek]]></category>

		<category><![CDATA[Web]]></category>

		<category><![CDATA[3g]]></category>

		<category><![CDATA[adsl]]></category>

		<category><![CDATA[banda larga]]></category>

		<category><![CDATA[claro]]></category>

		<category><![CDATA[telefonia]]></category>

		<guid isPermaLink="false">http://plentz.org/2008/03/15/internet-banda-lerda-3g-da-claro/</guid>
		<description><![CDATA[
Bom, depois de algum bom tempo usando, posso afirmar, o serviço não vale a pena. De constante só tem duas coisas: a lentidão e a instabilidade. Vide as dezenas de reclamações que outras pessoas colocaram no outro post que fiz e também no site ReclameAqui.com.br, logo após contratar o serviço. No começo, funcionava bem, mas [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/rajkumark/292299985/" title="Snail on sail"><img src="http://farm1.static.flickr.com/114/292299985_3335a74e63_m.jpg" alt="Snail on sail" class="pc_img" height="150" width="240"  style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;"/></a><br />
Bom, depois de algum bom tempo usando, posso afirmar, o serviço não vale a pena. De constante só tem duas coisas: a lentidão e a instabilidade. Vide as dezenas de reclamações que outras pessoas colocaram <a href="http://plentz.org/2007/12/26/internet-banda-larga-3g-da-claro/#comments">no outro post que fiz</a> e também no site <a href="http://www.reclameaqui.com.br/reclamacao/?id=3e33432622c36d0edf4953dbc102a97cad727cb4">ReclameAqui.com.br</a>, logo após contratar o serviço. No começo, funcionava bem, mas faz um bom tempo que não funciona nem de perto em um nível aceitável.</p>
<p>Reclamações na central deles não adiantam em nada, e quando entrei em contato na última vez (depois de esperar 40 minutos[sério!] no telefone), comentei com o atendente depois de explicar o problema todo:</p>
<blockquote><p>Bom, eu to ligando na verdade nem é pra reclamar, porque sei que não adianta. É mais pra pegar um número de protocolo e poder reclamar com a Anatel e entrar na justiça para cancelar o serviço. Inclusive, tu já deve estar enjoado de gente reclamando, então nem vou ocupar mais a linha, porque devem ter mais zilhões de clientes querendo reclamar.</p></blockquote>
<p>Ele só riu. Então fica a dica, se não comprou, não compre. Se comprou, ligue pra central de atendimento do consumidor da Claro (número 1052 - dica, ligue do celular e coloque no viva voz, pra não cansar o braço enquanto espera), reclame, anote o número do protocolo, ligue pra Anatel (número 0800 332001), reclame passando o número do protocolo da Claro e entre com seu devido processo contra a Claro.</p>
]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2008/03/15/internet-banda-lerda-3g-da-claro/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Internet banda larga 3g da Claro</title>
		<link>http://plentz.org/2007/12/26/internet-banda-larga-3g-da-claro/</link>
		<comments>http://plentz.org/2007/12/26/internet-banda-larga-3g-da-claro/#comments</comments>
		<pubDate>Wed, 26 Dec 2007 11:16:27 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
		
		<category><![CDATA[Geek]]></category>

		<category><![CDATA[Web]]></category>

		<category><![CDATA[3g]]></category>

		<category><![CDATA[adsl]]></category>

		<category><![CDATA[banda larga]]></category>

		<category><![CDATA[claro]]></category>

		<category><![CDATA[telefonia]]></category>

		<guid isPermaLink="false">http://plentz.org/2007/12/26/internet-banda-larga-3g-da-claro/</guid>
		<description><![CDATA[
Passadinha rápida só pra deixar registrado uma dica pra quem for instalar (ou tentar) o novo serviço de internet móvel da Claro com 3g no Mac OS. Eu assinei o serviço de 1mps e recebi &#8220;de cortesia&#8221; o modem USB Huawei E226. No manual que acompanha o produto, existe a informação que ele é compatível [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/bobnl/170318954/" title="Working late last night"><img src="http://farm1.static.flickr.com/44/170318954_542c09e3cf_m.jpg" alt="Working late last night" height="160" width="240"  style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;"/></a><br />
Passadinha rápida só pra deixar registrado uma dica pra quem for instalar (ou tentar) o novo serviço de <a href="http://www.tresg.com.br/">internet móvel da Claro com 3g</a> no <a href="http://www.apple.com/macosx/">Mac OS</a>. Eu assinei o serviço de 1mps e recebi &#8220;de cortesia&#8221; o <a href="http://www.huawei.com/mobileweb/en/products/view.do?id=282">modem USB Huawei E226</a>. No manual que acompanha o produto, existe a informação que ele é compatível com Windows XP, Vista e Mac OS X 10.3.7 ou superior (apesar de que no site do fabricante só diga Windows XP e 2000). </p>
<p>Ótimo einh? Recebi um CD de instação pra Mac e tudo vai funcionar corretamente. Bom, nem tudo é tão fácil. O CD instala os drivers do modem e também um discador para que você possa conectar. O problema é que se você tenta usar o discador, a mensagem que é exibida é &#8220;Fail to connect&#8221;. Talvez o problema seja que eu já esteja utilizando o <a href="http://www.apple.com/macosx/">Leopard</a>, mas enfim, o que importa é que não funciona.</p>
<p>Depois de duas horas com o vendedor da loja da <a href="http://www.claro.com.br">Claro</a> tentando instalar (e o cara era realmente competente, só que não haviam dado treinamento para instalação em Mac`s - dei a sorte de ser atendido justamente pelo cara que foi para São Paulo ter treinamento disso e repassar pro pessoal aqui no RS), tivemos a idéia de tentar usar o discador do próprio Mac OS. E funcionou. Então caso você tenha problemas, a dica é usar o cd de instalação que acompanha para instalar os drivers, mas para conectar, crie uma conexão e não use o discador (MobileConnect) - ele até serve pra alguma coisa, já que é possível ver como está o sinal da operadora na tela principal.</p>
<p>Para criar uma conexão nova (depois de ter instalado os drivers), entre em System Preferences, Network, clique no sinal de +, selecione HUAWEI Mobile em interface e coloque o mesmo em Service name. Coloque os seguintes dados para conexão:</p>
<blockquote><p>Telephone number: *99***1#<br />
Account name: claro<br />
Password: claro
</p></blockquote>
<p>Entre agora em Advanced&#8230;, na aba Modem, selecione Vendor como Other, e em model selecione HUAWEI Mobile Connect - 3G Modem. Clique em OK, em seguida Apply. Para testar, clique em Connect. Se você deixar selecionada a opção &#8220;Show modem status in menu bar&#8221;, o que eu recomendo, você pode mandar conectar clicando no ícone do telefone do menu bar e em seguida Connect HUAWEI&#8230;That&#8217;s it.</p>
<p><strong>update:</strong> pra quem estiver se sentindo lesado ou estiver com problemas na conexão, registre um chamado na Anatel, fone 0800 33 2001.</p>
]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2007/12/26/internet-banda-larga-3g-da-claro/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Open Source Collaboration</title>
		<link>http://plentz.org/2007/07/19/open-source-collaboration/</link>
		<comments>http://plentz.org/2007/07/19/open-source-collaboration/#comments</comments>
		<pubDate>Thu, 19 Jul 2007 22:00:48 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
		
		<category><![CDATA[Coding]]></category>

		<category><![CDATA[Hibernate]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://plentz.org/2007/07/19/open-source-collaboration/</guid>
		<description><![CDATA[
Volta e meia vemos pela internet alguém falando que open source não dá dinheiro. Quem tem um pouco mais de conhecimento (e vivência) em ambientes desse tipo, sabe que muitas vezes o dinheiro pode não vir diretamente da empresa &#8220;guarda-chuva&#8221; do projeto, mas através de reconhecimento por se ter participado do desenvolvimento de algum software [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/kruse/91118309/" title="It's a Small World"><img src="http://farm1.static.flickr.com/41/91118309_95c43fefbf_m.jpg" alt="It's a Small World" height="180" width="240" style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;"/></a></p>
<p>Volta e meia vemos pela internet alguém falando que open source não dá dinheiro. Quem tem um pouco mais de conhecimento (e vivência) em ambientes desse tipo, sabe que muitas vezes o dinheiro pode não vir diretamente da empresa &#8220;guarda-chuva&#8221; do projeto, mas através de reconhecimento por se ter participado do desenvolvimento de algum software que é usado por dezenas, centenas ou mesmo milhares de desenvolvedores. E com um pouco mais de dedicação(e expertise), é possível ser contrato pela empresa (e ainda ganhar um bom dinheiro). No Brasil mesmo, temos excelentes exemplos de gente trabalhando para projetos open source full time, como o <a href="http://fmeyer.org/">Fernando Meyer</a>, que trabalha no projeto <a href="http://labs.jboss.com/jbossrules/">Jboss Drools</a> contratado pela <a href="http://www.redhat.com/">RedHat</a> e também o <a href="http://www.kumpera.net/">Rodrigo Kumpera</a> (ou louds), trabalhando pela <a href="http://www.novell.com/">Novell</a> no projeto <a href="http://www.mono-project.com/">Mono</a>, ambos amigos pessoais. Além deles, com certeza devem existir outros que não conheço.</p>
<p>Pensando nesse pessoal, <a href="http://www.ohloh.net/accounts/1">Jason Allen</a> e Scott Collison criaram um site de relacionamentos para desenvolvedores: o <a href="http://www.ohloh.net/">Ohloh</a>. O nome é tão estranho quanto o &#8220;primo&#8221; famoso, <a href="http://www.orkut.com/">orkut</a>, mas o foco é bem diferente. O Ohloh oferece uma série de recursos para quem participa de projetos open source, como possibilidade de criar &#8220;profiles&#8221; dos seus projetos e indexar o código fonte, permitindo que os desenvolvedores linkem seu profile aos seus commits no repositório. Também é possível dar um kudo(segundo a definição que está no site: (ku·do) a statement of praise or approval; accolade; compliment.) como forma de demonstrar sua confiança/admiração em algum desenvolvedor. Excenlente oportunidade pra quem colabora em algum projeto mostrar seu trabalho. Quem se cadastrar e tiver curiosidade pode dar uma passada no <a href="http://www.ohloh.net/accounts/5517">meu profile</a> lá.</p>
<p>Na mesma linha, nas últimas semanas (ok, fazia meses que não postava), acabei ganhando alguns &#8220;pontos de confiança&#8221; em alguns projetos. Me tornei commiter (é, versão aportuguezada de quem pode dar commit no repositório), dos projetos <a href="http://hibernate.org/">Hibernate</a> (e seus subprojetos) e do <a href="http://www.vraptor.org/">Vraptor</a> (junto com o pessoal da <a href="http://www.caelum.com.br/">Caelum</a>) - tanto o <a href="http://www.ohloh.net/projects/55">Hibernate</a> quanto o <a href="http://www.ohloh.net/projects/3571">VRaptor</a> já estão indexados no Ohloh. Motivo à mais pra gatar um tempo extra codando na frente do micro <img src='http://plentz.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2007/07/19/open-source-collaboration/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Spin - Workshop on Software Trends</title>
		<link>http://plentz.org/2007/07/19/spin-workshop-on-software-trends/</link>
		<comments>http://plentz.org/2007/07/19/spin-workshop-on-software-trends/#comments</comments>
		<pubDate>Thu, 19 Jul 2007 05:57:23 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
		
		<category><![CDATA[Coding]]></category>

		<category><![CDATA[Events]]></category>

		<guid isPermaLink="false">http://plentz.org/2007/07/19/spin-workshop-on-software-trends/</guid>
		<description><![CDATA[
Já estava com esse post em draft à séculos, mas como o tempo andava curto, acabava sempre procastinando de terminar. Algum tempo atrás (ok, bastante tempo, foi dia 30 de abril, 2007), ocorreu mais um encontro do Spin RS, fórum regional voltado para a melhoria das práticas de Engenharia de Software. Nessa edição em especial, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/leosagnotti/534349749/" title="Circolo di fotoamatori"><img src="http://farm2.static.flickr.com/1358/534349749_829a7306dc_m.jpg" alt="Circolo di fotoamatori" height="160" width="240" style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;"/></a></p>
<p>Já estava com esse post em draft à séculos, mas como o tempo andava curto, acabava sempre procastinando de terminar. Algum tempo atrás (ok, bastante tempo, foi dia 30 de abril, 2007), ocorreu mais um encontro do <a href="http://www.esicenter.unisinos.br/frm_spinrs.php">Spin RS</a>, fórum regional voltado para a melhoria das práticas de Engenharia de Software. Nessa edição em especial, diversas &#8220;celebridades&#8221; da <a href="http://www.ieee.org/">IEEE</a> estavam presentes, então vale a pena dar uma olhada, mesmo que seja somente <a href="http://www.esicenter.unisinos.br/download/SPIN_30_04_2007.zip">nos slides</a> das palestras.</p>
<p><a href="http://www.wirfs-brock.com">Rebecca Wirfs-Brock</a>: sensacional. Candidata forte à melhor palestra. A palestra dela foi basicamente uma aula de como contar histórias (uma habilidade importantíssima pra quem desenvolve orientado à objetos, já que precisamos saber fazer um &#8220;roteiro&#8221; de como os objetos interagem, etc). O nome da palestra era &#8220;Trends on Object-Oriented Software Design&#8221;, mas acabou virando &#8220;The Art of Telling your Design Story&#8221;.<br />
PS: recomendo <em>mesmo</em> o livro da Rebecca, <a href="http://www.amazon.com/gp/product/0201379430">Object Design: Roles, Responsibilities, and Collaborations</a>.</p>
<p>Outra palestra bacana foi a do <a href="http://philippe.kruchten.com/">Philippe Kruchten</a>, sobre Arquitetura de software, onde ele levantou algumas questões sobre quem, como e quando deve fazer a arquitetura de um sistema. Mas a parte que mais me chamou atenção foi durante as perguntas da platéia, onde alguém perguntou alguma dica de como se tornar um bom arquiteto de software, e ele respondeu bem tranquilamente &#8220;troque muitas vezes de emprego&#8221;. <a href="http://www.flickr.com/photos/diegop/543111094/">Reações curiosas</a> puderam ser observadas.</p>
<p>Dessa vez só o <a href="http://blog.fragmental.com.br/">Phillip Calçado</a> e o Marcello Azambuja que <a href="http://www.flickr.com/photos/diegop/543113656/">vieram</a>, mas próxima vez espero ver mais gente por aqui, até para valorizar mais o evento (e também pra participar do churrasco pós-evento).</p>
]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2007/07/19/spin-workshop-on-software-trends/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Connection Leak Paradise</title>
		<link>http://plentz.org/2007/04/21/connection-leak-paradise/</link>
		<comments>http://plentz.org/2007/04/21/connection-leak-paradise/#comments</comments>
		<pubDate>Sun, 22 Apr 2007 03:32:55 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
		
		<category><![CDATA[Coding]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Hibernate]]></category>

		<category><![CDATA[jboss]]></category>

		<category><![CDATA[jee]]></category>

		<category><![CDATA[jmx]]></category>

		<guid isPermaLink="false">http://plentz.org/2007/04/21/connection-leak-paradise/</guid>
		<description><![CDATA[
Quem programa em Java e nunca passou por esse problema? Você está desenvolvendo, tudo funciona perfeitamente, quando a aplicação vai para produção e os usuários começam a usar você percebe que o contador de conexões disponíveis no seu pool só diminui.
As razões para isso podem ser as mais variadas (sendo a maioria deles problemas da [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/dinerdog/189083353/" title="Leak"><img src="http://farm1.static.flickr.com/69/189083353_ef004f5c30_m.jpg" alt="Leak" height="160" width="240" style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;"/></a></p>
<p>Quem programa em Java e nunca passou por esse problema? Você está desenvolvendo, tudo funciona perfeitamente, quando a aplicação vai para produção e os usuários começam a usar você percebe que o contador de conexões disponíveis no seu pool só diminui.</p>
<p>As razões para isso podem ser as mais variadas (sendo a maioria deles problemas da aplicação e não algo ligado ao data source, servidor de aplicação ou mesmo driver jdbc), mas as mais comuns são:</p>
<ul>
<li>ausência de chamada ao connection.close();</li>
<li>falta de um tratamento de excessões, e conseqüentemente, o método close() não é chamado;</li>
</ul>
<p>É importante saber, que sempre que você estiver lidando diretamente com Connection (o que não é algo muito aconselhável, sabendo que já existem diversos frameworks que abstraem/simplificam a utilização de jdbc), você deve fechar ela através do método close() e o mesmo deve estar dentro de um bloco finally{}, para que ele seja executado mesmo se ocorrer um problema durante a execução do seu código.</p>
<p>Mas e quando você já revisou &#8220;todo&#8221; seu código e mesmo assim as conexões continuam vazando? Você olha as conexões do seu pool e elas simplesmente parecem ir para o limbo. Aqui alguns já podem começar a se perguntar, &#8220;mas tem como eu monitorar as conexões do meu pool?&#8221;. E é aqui que entra um recurso não muito conhecido (e menos ainda, usado): <a href="http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/">Java Management Extensions</a> ou simplesmente <a href="http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/">JMX</a>.</p>
<p>Copiando o site da Sun:</p>
<blockquote><p>JMX technology provides the tools for building distributed, Web-based, modular and dynamic solutions for managing and monitoring devices, applications, and service-driven networks. By design, this standard is suitable for adapting legacy systems, implementing new management and monitoring solutions, and plugging into those of the future.</p></blockquote>
<p>A maioria (se não todos) dos application servers já vem com recursos  JMX prontos pra monitoramento e diagnóstico de connection leaks. Ativar o monitoramento do data source pode muitas vezes sacrificar um pouco da performance da aplicação (principalmente em um arquitetura Database-Centered), mas normalmente é um custo aceitável para descobrir os pontos de perda das conexões.</p>
<p>No <a href="http://labs.jboss.com/portal/jbossas/">JBoss</a>, servidor de aplicação que eu utilizo no meu atual projeto, ligar o monitoramento é bem simples. Quando ativo, ele basicamente armazena o stack trace de todos os pontos onde temos chamadas à getConnection(), até que essa conexão sehja devolvida ao pool. Para ligar o monitoramento, altere o arquivo de configuração do seu data source(provavelmente um *-ds.xml) adicionando a linha abaixo<br />
<code>  &lt;local-tx-datasource&gt;<br />
    .....<br />
    &lt;track-statements&gt;true&lt;/track-statements&gt;<br />
  &lt;/local-tx-datasource&gt;</code></p>
<p>Agora basta acessar o mbean <a href="http://wiki.jboss.org/wiki/Wiki.jsp?page=ConfigCachedConnectionManager">CachedConnectionManager</a> através da interface JMX do Jboss e invocar listInUseConnections() para ver o stack trace das conexões que não foram fechadas. Provavelmente vai ser algo semelhante à <a href="http://nome-do-servidor:8080/jmx-console/HtmlAdaptor?action=invokeOpByName&#038;name=jboss.jca%3Aservice%3DCachedConnectionManager&#038;methodName=listInUseConnections">essa</a>. Se você quizer apenas ver como anda seu pool, acesse o mbean <a href="http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossJCAPooling">ManagedConnectionPool</a>, procurando principalmente pelos seguinte valores:</p>
<ul>
<li>AvailableConnectionCount - total de conexões disponíveis no pool</li>
<li>InUseConnectionCount - total de conexões sendo usadas atualmente</li>
<li>ConnectionCount - indica o total de conexões abertas atualmente no pool</li>
</ul>
<p>Utilizando esses recursos e tendo um pouco de paciência, fica bem mais fácil achar os pontos de vazamento da aplicação.</p>
<h3>Mais informações:</h3>
<ul>
<li><a href="http://wiki.jboss.org/wiki/Wiki.jsp?page=ConfigDataSources">Jboss DataSources</a></li>
<li><a href="http://blogs.sun.com/kshitiz/entry/connection_leak_tracing">Connection Leak Tracing - Sun Application Server</a></li>
<li><a href="http://edocs.bea.com/wls/docs100/ConsoleHelp/pagehelp/JDBCjdbcdatasourcesjdbcdatasourceconfigdiagnosticstitle.html#jdbc.datasources.jdbcdatasourceconfigdiagnostics.profiletype_conn_leak.label">Bea WebLogic - Profile Connection Leak</a></li>
<li><a href="http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/index.jsp?topic=/com.ibm.iea.was_v6/was/6.0/PD/WASv6_Connection_Leak_Diagnostics/player.html">IBM Web Sphere Aplication Server - Connection Leak Diagnostics</a></li>
<li><a href="http://www.javaddicts.net/blog/index.php/2005/08/08/the-joy-of-finding-connection-leaks/">The Joy of Finding Connection Leaks</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2007/04/21/connection-leak-paradise/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Vote for Eclipse!</title>
		<link>http://plentz.org/2007/04/12/vote-for-eclipse/</link>
		<comments>http://plentz.org/2007/04/12/vote-for-eclipse/#comments</comments>
		<pubDate>Thu, 12 Apr 2007 07:04:11 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
		
		<category><![CDATA[Eclipse]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[bugs]]></category>

		<category><![CDATA[ide]]></category>

		<category><![CDATA[opensource]]></category>

		<guid isPermaLink="false">http://plentz.org/2007/04/12/vote-for-eclipse/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href=""http://flickr.com/photos/silvia31163/250444001/" title="today i wear my sunday hat :)"><img src="http://farm1.static.flickr.com/83/250444001_6beae1b1a6_m.jpg" alt="today i wear my sunday hat :)" height="170" width="240" style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;"/></a></p>
<p>Quem lê meu blog já à algum tempo, sabe que eu <a href="http://plentz.org/2005/02/27/eclipsed/">uso o Eclipse</a> como principal ferramenta de trabalho. O que poucos sabem é que todos podem colaborar nas decisões do projeto, e de quebra, priorizar as correções de bugs e melhorias. Pra dar um empurrãozinho nos preguiçosos, segue minha lista atual de votos.</p>
<h3>Community</h3>
<ul>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=71735">71735</a> - Eclipse source repository should convert to subversion. </li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=177497">177497</a> - Bug status explanation page does not mention RESOLVED REMIND</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=178923">178923</a> - Remove LATER and REMIND resolutions when Bugzilla 3.0 is released</li>
</ul>
<h3>JDT</h3>
<ul>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=182064">182064</a> - Should be possible to &#8220;Migrate JAR File&#8221; in User Libraries  </li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=182071">182071</a> - [1.5][compiler] Unnecessary cast detection fails on ternary operation</li>
</ul>
<h3>Platform</h3>
<ul>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=2009">2009</a> - [EditorMgmt] Need to sort out handling of out-of-synch resources (1GDFD96)</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=8009">8009</a> - [Editor Mgmt] Split File Editor</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=14916">14916</a> - [Navigator] How can I recover from a &#8220;resource is out of sync&#8221; problem ?</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=19419">19419</a> - [resources] Cancellation during file transfer leaves files out-of-sync</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35973">35973</a> - [resources] Better project organization</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=46207">46207</a> - [Workbench] [Services] Combine, compose, nest workbenchparts and editorparts</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=52338">52338</a> - [find/replace] regex replace with newline doesn&#8217;t insert anything</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=92250">92250</a> - [Workbench] Excessive amount of Permanent Generation memory reported by the VM</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=102527">102527</a> - [Wizards] Add support for projects refactoring (ie add/remove nature)</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=118294">118294</a> - Renaming an External Tool Builder (set to run during Auto Builds) causes error</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=134416">134416</a> - &#8220;Run As..&#8221; - &#8220;Ant Build&#8221; results in &#8220;Unable to find ant file to run&#8221;</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=142364">142364</a> - Replacing a large number of files hangs Eclipse</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=163714">163714</a> - Update manager interactively asks for mirror selection</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=167660">167660</a> - Out of sync not refreshed after file is closed</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=169121">169121</a> - cpu get &gt;50 when I did refactor to a method</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=169386">169386</a> - [Edit] Local side of java compare should be more like java editor</li>
</ul>
<h3>Web Tools</h3>
<ul>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=95450">95450</a> - add extract include file for JSP source refactoring</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=100511">100511</a> - JavaScript refactoring and better code complete</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=107052">107052</a> - jsp editor error if jsp is under a subdirectory</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=119334">119334</a> - [jsp20] jsp:directive.tag import= list not recognized in .tagx XML tag files</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124288">124288</a> - [Plan] Improve JSP 2.0 support</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=124796">124796</a> - [refactoring] moving a servlet is not reflected in web.xml  </li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=136850">136850</a> - JSTL Code Assist from imported projects.</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=157465">157465</a> - jsp fragment does not see any variables/tags from its parent</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=168538">168538</a> - &#8220;Convert to a Dynamic Web Project&#8221; should work for Java projects</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2007/04/12/vote-for-eclipse/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hibernate com PostGIS</title>
		<link>http://plentz.org/2007/03/28/hibernate-com-postgis/</link>
		<comments>http://plentz.org/2007/03/28/hibernate-com-postgis/#comments</comments>
		<pubDate>Thu, 29 Mar 2007 03:06:21 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
		
		<category><![CDATA[Hibernate]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[postgis]]></category>

		<category><![CDATA[postgre]]></category>

		<guid isPermaLink="false">http://plentz.org/2007/03/28/hibernate-com-postgis/</guid>
		<description><![CDATA[
Uns meses atrás tive um problema com o uso do Hibernate, em um caso um tanto quanto incomum: o projeto usava Ingres, um banco de dados muito pouco usado, e com algumas particularidades idiotas (sendo gentíl com eles). O tipo responsável por armazenar as datas no Ingres, diferentemente de todos os outros bancos que já [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/supriya/86805710/" title="Green pentagons"><img src="http://farm1.static.flickr.com/40/86805710_dbe9c536bf_m.jpg" alt="Green pentagons" height="180" width="240" style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;" /></a></p>
<p>Uns meses atrás tive um problema com o uso do <a href="http://hibernate.org/">Hibernate</a>, em um caso um tanto quanto incomum: o projeto usava <a href="http://www.ingres.com/">Ingres</a>, um banco de dados muito pouco usado, e com algumas particularidades idiotas (sendo gentíl com eles). O tipo responsável por armazenar as datas no Ingres, diferentemente de todos os outros bancos que já vi, aceita três &#8220;estados&#8221; nas colunas de data: uma data (óbvio), null, <strong>&#8221;</strong> - sim, uma <em>empty string</em>.</p>
<p>Com isto, eu não poderia usar as classes padrão para datas no Java, acabei criando uma classe Data para tratar desses estados. Como o tipo foi criado por mim, o Hibernate não oferece nada pronto (por razões óbvias), tive que achar uma alternativa.</p>
<p>Lendo um pouco <a href="http://hibernate.org/hib_docs/v3/reference/en/html_single/">a referência</a>, mais especificamente o capítulo <a href="http://hibernate.org/hib_docs/v3/reference/en/html_single/#mapping-types-custom"><em>Custom value types</em></a>, descobri que para esses casos especiais, onde muitos já apelariam para alguma forma menos ortodoxa, o Hibernate oferece um mecanismo muito poderoso : os <a href="http://www.hibernate.org/hib_docs/v3/api/org/hibernate/usertype/UserType.html">UserTypes</a>.</p>
<p>Um UserType é basicamente uma interface que permite a implementação de como um determinado tipo será recuperado e persistido no seu banco de dados. Este recurso é extremamente útil e me salvou graciosamente.</p>
<p>E porque estou escrevendo isso tudo? Recebi hoje uma dúvida bem interessante por mensagem privada no <a href="http://guj.com.br">GUJ</a>. O usuário perguntava se haveria possibilidade de usar Hibernate em conjunto com o banco <a href="http://postgis.refractions.net/">PostGIS</a> - focado em armazenar dados geométricos.</p>
<p>O principal desafio é como mapear os dados que são armazenados em Geometry, como são chamados os tipos geométricos no PostGIS. Como não existe nenhum tipo nativo do Java que seria correspondente (e nem a especificação do <a href="http://java.sun.com/javase/technologies/database/">JDBC</a> preve isso - tipos clob, lobs e variantes não contam!), o trabalho pode ser um pouco mais complicado que se imagina.</p>
<p>Dando uma pesquisada, acabei encontrado uma thread da lista de users do PostGIS que trata exatamente disso. <a href="http://www.nabble.com/PostGIS---hibernate---EJB3-t2064211.html">Nela</a> é apresentada uma solução elegante para o tratamento dos tipos no Hibernate - e que acabou virando parte do projeto. <a href="http://postgis.com/support/wiki/index.php?SpatialEJB3">SpatialEJB3</a> nada mais é que um UserType (<a href="http://svn.refractions.net/postgis/trunk/java/ejb3/src/org/postgis/hibernate/GeometryType.java">GeometryType</a> no caso) com a implementação responsável por tratar o tipo Geometry. Ele pode ser usadao tanto com Hibernate puro, quanto para EJB3. Só achei estranho que as classes ainda não estão no <a href=" http://postgis.refractions.net/download/postgis.jar">postgis.jar</a>.</p>
<p>Para usar o recurso, fica extremamente simples:</p>
<p><code>        @Type(type = "org.postgis.hibernate.GeometryType")<br />
        public Geometry getLocation(){<br />
                return location;<br />
        }</code></p>
<p>No site é possível encontrar a <a href="http://svn.refractions.net/postgis/trunk/java/ejb3/ejb3spatial.pdf">documentação do projeto</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2007/03/28/hibernate-com-postgis/feed/</wfw:commentRss>
		</item>
		<item>
		<title>We CAN Change The World</title>
		<link>http://plentz.org/2007/03/25/we-can-change-the-world/</link>
		<comments>http://plentz.org/2007/03/25/we-can-change-the-world/#comments</comments>
		<pubDate>Mon, 26 Mar 2007 03:35:33 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
		
		<category><![CDATA[nature]]></category>

		<category><![CDATA[earth]]></category>

		<category><![CDATA[greenpeace]]></category>

		<category><![CDATA[world]]></category>

		<guid isPermaLink="false">http://plentz.org/2007/03/25/we-can-change-the-world/</guid>
		<description><![CDATA[
And we did it.
ps: e eles tão com um timinho bem produtivo de marketing, einh?
]]></description>
			<content:encoded><![CDATA[<p><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/ma4g0hp2Eh8"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/ma4g0hp2Eh8" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></p>
<p>And we did it.</p>
<p>ps: e <a href="http://greenpeace.org/">eles</a> tão com um timinho bem produtivo de marketing, einh?</p>
]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2007/03/25/we-can-change-the-world/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Democratic web host</title>
		<link>http://plentz.org/2007/03/03/democratic-web-host/</link>
		<comments>http://plentz.org/2007/03/03/democratic-web-host/#comments</comments>
		<pubDate>Sat, 03 Mar 2007 08:44:40 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
		
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://plentz.org/2007/03/03/democratic-web-host/</guid>
		<description><![CDATA[
Desde que o porca morreu, estou hospedando meu blog no Dreamhost. Host bem bacana, uma série de features úteis (Subversion, Rails, etc etc), mas sempre há espaço pra melhoras. E eles tem uma forma bem legal de fazer isso, através de um espaço para os usuários votarem quais features acham legais de serem adicionadas. Dando [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/peskymac/290959278/" title="Let's pretend we're just two people - 41/365"><img src="http://farm1.static.flickr.com/101/290959278_47e920f307_m.jpg" alt="Let's pretend we're just two people - 41/365" height="187" width="240" style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;" /></a></p>
<p>Desde que o <a href="http://plentz.org/2007/01/06/back-on-track/">porca morreu</a>, estou hospedando meu blog no <a href="http://www.dreamhost.com/r.cgi?132781">Dreamhost</a>. Host bem bacana, uma série de features úteis (Subversion, Rails, etc etc), mas sempre há espaço pra melhoras. E eles tem uma forma bem legal de fazer isso, através de <a href="https://panel.dreamhost.com/index.cgi?tree=home.sugg&#038;">um espaço para os usuários votarem</a> quais features acham legais de serem adicionadas. Dando uma passada rápida por cima achei algumas legais:</p>
<ul>
<li><a href="https://panel.dreamhost.com/?tree=home.sugg&#038;current_step=Index&#038;next_step=DoVote&#038;sid=563&#038;&#038;voted=1">Allow one-click installation of Trac (http://projects.edgewall.com/trac/)</a></li>
<li><a href="https://panel.dreamhost.com/?tree=home.sugg&#038;current_step=Index&#038;next_step=DoVote&#038;sid=210&#038;&#038;voted=1">Install and support Apache Tomcat for JSP (JavaServer Pages) support.</a></li>
<li><a href="https://panel.dreamhost.com/?tree=home.sugg&#038;current_step=Index&#038;next_step=DoVote&#038;sid=72&#038;&#038;voted=1">Add Java Servlet support.</a></li>
<li><a href="https://panel.dreamhost.com/?tree=home.sugg&#038;current_step=Index&#038;next_step=DoVote&#038;sid=232&#038;&#038;voted=1">Allow multiple votes on one suggestion.</a></li>
<li><a href="https://panel.dreamhost.com/?tree=home.sugg&#038;current_step=Index&#038;next_step=DoVote&#038;sid=233&#038;&#038;voted=1">Notify my via email whenever I get a new referral signed up.</a></li>
<li><a href="https://panel.dreamhost.com/?tree=home.sugg&#038;current_step=Index&#038;next_step=DoVote&#038;sid=242&#038;&#038;voted=1">Compile pdflib support into PHP for creating pdf documents.</a></li>
<li><a href="https://panel.dreamhost.com/?tree=home.sugg&#038;current_step=Index&#038;next_step=DoVote&#038;sid=265&#038;&#038;voted=1">Add DreamHost Staff submissions to the suggestions area, not just customers&#8217; suggestions.</a></li>
</ul>
<p>Sugestões também são bem-vindas.</p>
]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2007/03/03/democratic-web-host/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hibernate: save() ou persist()?</title>
		<link>http://plentz.org/2007/02/13/hibernate-save-ou-persist/</link>
		<comments>http://plentz.org/2007/02/13/hibernate-save-ou-persist/#comments</comments>
		<pubDate>Tue, 13 Feb 2007 15:28:43 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
		
		<category><![CDATA[Hibernate]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://plentz.org/2007/02/13/hibernate-save-ou-persist/</guid>
		<description><![CDATA[
Por mais vasta que a documentação do Hibernate seja, sempre ficam pontos da API que precisam de melhorias na documentação. Um exemplo claro disso é esclarecer qual a diferença entre dois métodos da Session, o save() e o persist(). Ambos tem a mesma função: tornar uma instância transient em persistent. Segundo a doc da API:

persist() [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/junieleong/195873892/" title="Hibernating Koala Bear"><img src="http://farm1.static.flickr.com/57/195873892_ea748faa3b_m.jpg" alt="Hibernating Koala Bear" height="180" width="240" style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;" /></a></p>
<p>Por mais vasta que a documentação do <a href="http://hibernate.org">Hibernate</a> seja, sempre ficam pontos da API que precisam de melhorias na documentação. Um exemplo claro disso é esclarecer qual a diferença entre dois métodos da <a href="http://www.hibernate.org/hib_docs/v3/api/org/hibernate/Session.html">Session</a>, o <a href="http://www.hibernate.org/hib_docs/v3/api/org/hibernate/Session.html#save(java.lang.Object)">save()</a> e o <a href="http://www.hibernate.org/hib_docs/v3/api/org/hibernate/Session.html#persist(java.lang.Object)">persist()</a>. Ambos tem a mesma função: tornar uma instância transient em persistent. Segundo a doc da API:</p>
<ul>
<li><em>persist()</em> - Make a transient instance persistent.</li>
<li><em>save()</em> - Persist the given transient instance, first assigning a generated identifier.</li>
</ul>
<p>O método persist(), não garante que será atribuito um id à instância imediatamente, sendo que a associação ocorrerá quando o <a href="http://www.hibernate.org/hib_docs/v3/reference/en/html/objectstate.html#objectstate-flushing">flush</a> ocorrer. Além disso, ele garante que só irá executar um insert se estiver dentro do contexto de uma transaction. Já o save(), atribui a chave imediatamente, não importando se isso exige um insert (no caso do <a href="http://www.hibernate.org/hib_docs/v3/reference/en/html_single/#mapping-declaration-id-generator">identity generator</a>) ou se existe um contexto de transação. Isso explica também porque o save() retorna o Id gerado e o persist() é void.</p>
<p>Mais informações podem ser encontradas no <a href="http://opensource.atlassian.com/projects/hibernate/browse/HHH-1273">Jira</a> e no <a href="http://forum.hibernate.org/viewtopic.php?t=951275">fórum</a> do Hibernate.</p>
<p><em>update</em>: não é somente eu que acha que a documentação precisa de melhorias nesse caso: <a href="http://opensource.atlassian.com/projects/hibernate/browse/HHH-1682">HHH-1682</a></p>
<p><em>update 2</em>: acabei de comitar a alteração na documentação, para a próxima versão do Hibernate (3.2.5), a seção <a href="http://www.hibernate.org/hib_docs/reference/en/html/objectstate.html#objectstate-makingpersistent">Making objects persistent</a> irá trazer informações mais detalhadas sobre a diferença entre os dois métodos.</p>
]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2007/02/13/hibernate-save-ou-persist/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Pipoca com guaraná</title>
		<link>http://plentz.org/2007/02/10/pipoca-com-guarana/</link>
		<comments>http://plentz.org/2007/02/10/pipoca-com-guarana/#comments</comments>
		<pubDate>Sun, 11 Feb 2007 02:13:20 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
		
		<category><![CDATA[Movies]]></category>

		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://plentz.org/2007/02/10/pipoca-com-guarana/</guid>
		<description><![CDATA[
Uma dos meus passa-tempo favoritos é definitivamente assistir filmes. Diria que é o favorito. E o que mais gasta tempo. Freqüentemente me pego assistindo filmes que já vi 2,3 vezes - e pior, que já estão passando até na TV Tupi.
Pra piorar, resolvi assinar o feed da Apple Movie Trailers. O ano mal começou&#8230; Estamos [...]]]></description>
			<content:encoded><![CDATA[<p><a href="htpp://flickr.com/photos/bihua/299680415/" title="cinema's abandoned dreams"><img src="http://farm1.static.flickr.com/118/299680415_c8812840a1_m.jpg" alt="cinema's abandoned dreams" height="160" width="240" style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;"/></a></p>
<p>Uma dos meus passa-tempo favoritos é definitivamente assistir filmes. Diria que é o favorito. E o que mais gasta tempo. Freqüentemente me pego assistindo filmes que já vi 2,3 vezes - e pior, que já estão passando até na <a href="http://globo.com">TV Tupi</a>.</p>
<p>Pra piorar, resolvi assinar <a href="http://images.apple.com/trailers/rss/newtrailers.rss">o feed</a> da <a href="http://www.apple.com/trailers/">Apple Movie Trailers</a>. <strike>O ano mal começou&#8230;</strike> Estamos recém em fevereiro e já tem muito filme legal saindo. Filmes novos, continuações, tem de tudo.</p>
<p>Dos que já estão em cartaz, <a href="http://www.apple.com/trailers/touchstone/dejavu/">Déjà Vu</a> (com Denzel Washington) parece muito interessante, mas ainda não fui assistir. <a href="http://www.apple.com/trailers/sony_pictures/thepursuitofhappyness/">The Pursuit of Happyness</a> (À Procura da Felicidade aqui) com o Will Smith é legalzinho, mas o fim deixa a desejar.</p>
<p>Mas dos que estão por vir, parece ser o ano dos fãs de HQ. Uma tonelada de HQs adaptados pra telona, novos e continuações.</p>
<ul>
<li><a href="http://www.apple.com/trailers/weinstein/hannibalrising/">Hannibal - Rising</a> - <em>A quest will ignite an insatiable lust within a serial killer who was not born, but made.</em></li>
<li><a href="http://www.apple.com/trailers/fox/thesimpsonsmovie/">The Simpsons Movie</a> - dispensa comentários.</li>
<li><a href="http://www.apple.com/trailers/dreamworks/norbit/">Norbit</a> - estrelando: Eddie Murphy e participação especial de&#8230; Eddie Murphy</li>
<li><a href="http://www.apple.com/trailers/touchstone/wildhogs/">Wild Hogs</a> - John Travolta, Tim Allen, Martin Lawrence e William Macy no mesmo filme.</li>
<li><a href="http://www.apple.com/trailers/paramount/shrekthethird/">Shrek - The Third</a> - o ogro ta ficando meio saturado já, mas deve ser bom.</li>
<li><a href="http://www.apple.com/trailers/wb/oceans13/">Oceans 13</a> - bom, gosto do estilo de filme, então sou suspeito&#8230;</li>
<li><a href="http://www.apple.com/trailers/focus_features/hotfuzz/">Hot Fuzz</a> - versão policial de Top Gang</li>
<li><a href="http://www.apple.com/trailers/fox_searchlight/sunshine/">Sunshine</a> - ficção científica espacial. Nada digno de Oscar, mas dar um restart no sol, promete.</li>
<li><a href="http://www.apple.com/trailers/newline/codenamethecleaner">Codename - The Cleaner</a> - comédia aparentemente patrocinada pela Lacoste. Lucy Liu é um dos atrativos do filme.</li>
<li><a href="http://www.apple.com/trailers/sony/curseofthegoldenflower">Curse of the Golden Flower</a> - O Tigre e o Dragão, mas com <em>muito</em> mais china.</li>
<li><a href="http://www.apple.com/trailers/sony_pictures/spider-man_3/">Spider-man 3</a> - se manter o nível dos dois primeiros tá ótimo. E com o simbionte deve ficar massa.</li>
<li><a href="http://www.apple.com/trailers/wb/teenagemutantninjaturtles/">Teenage Mutant Ninja Turtles</a> - tartarugas ninja em animação deve ficar melhor que os antigos filmes.</li>
<li><a href="http://www.apple.com/trailers/fox/fantasticfourriseofthesilversurfer/">Fantastic Four - Rise of the Silver Surfer</a> - pelo trailer, promete.</li>
<li><a href="http://www.apple.com/trailers/sony_pictures/ghostrider/">Ghost Rider</a> - <em>He&#8217;ll be normal during the day, but at night&#8230; in the presence of evil&#8230; the Rider takes over.</em></li>
<li><a href="http://www.apple.com/trailers/dreamworks/transformers/">Transformers</a> - um pouco fora de época, mas ok.</li>
</ul>
<p>E pra fechar, o que mais promete na minha opinião: <a href="http://300themovie.warnerbros.com/">300</a>. Desconsiderando a participação do <a href="http://movies.yahoo.com/movie/1809262865/photo/970413951">Rodrigo Santoro como Rei Xerxes</a>, parece ser um excelente filme - e os trailers fazem isso ficar ainda mais claro.</p>
]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2007/02/10/pipoca-com-guarana/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JSUnit</title>
		<link>http://plentz.org/2007/02/09/jsunit/</link>
		<comments>http://plentz.org/2007/02/09/jsunit/#comments</comments>
		<pubDate>Sat, 10 Feb 2007 01:14:23 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
		
		<category><![CDATA[Coding]]></category>

		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://plentz.org/2007/02/09/js-tambem-precisa-de-teste-unitario/</guid>
		<description><![CDATA[
Depois de quebrar a cabeça por um bom tempo, descobri que após adicionar a lib Prototype ao projeto, algumas validações javascript simplesmente deixaram de funcionar. O for in, que antes funcionava corretamente, muda seu comportamento devido à magia negra que o Prototype faz, adicionando algumas propriedades extras aos objetos (e também à arrays).
Se eu tivesse [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/joomanji/153911268/" title="Crash Test Anyone?"><img src="http://farm1.static.flickr.com/72/153911268_7ba3fcbdc3_m.jpg" alt="Crash Test Anyone?" height="160" width="240" style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;"/></a></p>
<p>Depois de quebrar a cabeça por um bom tempo, descobri que após adicionar a lib <a href="http://prototypejs.org/">Prototype</a> ao projeto, algumas validações javascript simplesmente deixaram de funcionar. O <em>for in</em>, que antes funcionava corretamente, muda seu comportamento devido à magia negra que o <a href="http://prototypejs.org/">Prototype</a> faz, adicionando algumas propriedades extras aos objetos (e também à arrays).</p>
<p>Se eu tivesse feito uma dúzia de <a href="http://jsunit.net/">JSUnit</a>s teria evitado mais de duas horas de tempo perdido, literalmente.</p>
<p>O que antes era:</p>
<p><code>  o.isCNPJ = function(){<br />
    var d = this.split("");<br />
    var m1 = [d[0]*5,d[1]*4,d[2]*3,d[3]*2,d[4]*9,d[5]*8,d[6]*7,d[7]*6,d[8]*5,d[9]*4,d[10]*3,d[11]*2];<br />
    var s1 = 0;<br />
    for(i in m1){ s1 += m1[i]; }<br />
    var d1 = (s1%11&lt;2)?0:11-(s1%11);<br />
    var m2 = [d[0]*6,d[1]*5,d[2]*4,d[3]*3,d[4]*2,d[5]*9,d[6]*8,d[7]*7,d[8]*6,d[9]*5,d[10]*4,d[11]*3,d1*2];<br />
    var s2 = 0;<br />
    for(i in m2){ s2 += m2[i]; }<br />
    var d2 = (s2%11&lt;2)?0:11-(s2%11);<br />
    return (d1 == d[12] &#038;&#038; d2 == d[13])? true: false;<br />
  } </code></p>
<p>Teve que virar:</p>
<p><code>o.isCNPJ = function(){<br />
  var d = this.split("");<br />
  var m1 = [d[0]*10,d[1]*9,d[2]*8,d[3]*7,d[4]*6,d[5]*5,d[6]*4,d[7]*3,d[8]*2];<br />
  var s1 = 0;<br />
  for(var i=0;i < m1.length; i++){ s1 += m1[i]; }<br />
  var d1 = (s1 % 11 < 2)?0:11-(s1 % 11);<br />
  var m2 = [d[0]*11,d[1]*10,d[2]*9,d[3]*8,d[4]*7,d[5]*6,d[6]*5,d[7]*4,d[8]*3,d1*2];<br />
  var s2 = 0;<br />
  for(var i=0;i < m2.length; i++){ s2 += m2[i]; }<br />
  var d2 = (s2%11&lt;2)?0:11-(s2%11);<br />
  return (d1 == d[9] &#038;&#038; d2 == d[10])? true: false;<br />
}</code></p>
<p>Nessas horas que vemos que <a href="http://martinfowler.com/bliki/TestDrivenDevelopment.html">testes unitários</a> sempre se pagam.</p>
<p></code></p>
]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2007/02/09/jsunit/feed/</wfw:commentRss>
		</item>
		<item>
		<title>(r)Eclipsed</title>
		<link>http://plentz.org/2007/02/02/reclipsed/</link>
		<comments>http://plentz.org/2007/02/02/reclipsed/#comments</comments>
		<pubDate>Sat, 03 Feb 2007 03:59:02 +0000</pubDate>
		<dc:creator>Diego Plentz</dc:creator>
		
		<category><![CDATA[Eclipse]]></category>

		<guid isPermaLink="false">http://plentz.org/2007/02/02/reclipsed/</guid>
		<description><![CDATA[
Faz praticamente 2 anos que fiz um post que até hoje é um dos mais visitados aqui: Eclipsed. Naquele tempo, a quantidade de plugins - e qualidade, diga-se de passagem - era muito inferior.
Passado tanto tempo, o Eclipse já evoluiu muito, assim como seus plugins. Aproveitando o ócio das férias, tirei um tempo para atualizar [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/froodmat/37393443/" title="cool kids"><img src="http://farm1.static.flickr.com/26/37393443_ed63c66aaf_m.jpg" alt="cool kids" height="180" width="240" style="border: 2px solid rgb(0, 0, 0);float: right; margin-left: 10px; margin-bottom: 10px;"/></a></p>
<p>Faz praticamente 2 anos que fiz um post que até hoje é um dos mais visitados aqui: <a href="http://plentz.org/2005/02/27/eclipsed/">Eclipsed</a>. Naquele tempo, a quantidade de plugins - e qualidade, diga-se de passagem - era muito inferior.</p>
<p>Passado tanto tempo, o Eclipse já evoluiu muito, assim como seus plugins. Aproveitando o ócio das férias, tirei um tempo para atualizar o post adicionando outros plugins e também removendo outros que foram abandonados. Resumindo, faxina geral.</p>
<p>O Quirino sugeriu que eu fizesse um post novo - deixando o velho para histórico - , mas levando em conta que muita gente ainda vai continuar acessando ele, achei melhor atualizar diretamente lá, e comentar as alterações por aqui.</p>
<p>Começando pelos que foram removidos:</p>
<ul>
<li><a href="http://aftiplugins.com/datascope/">DataScope</a> - muito tempo sem atualizações e agora é pago;</li>
<li><a href="http://sobalipse.sourceforge.net/">Sobalipse</a> que foi descontinuado;</li>
<li><a href="http://www.geocities.com/uwe_ewald/dbedit.html">DBEdit</a> - muito tempo sem atualizações;</li>
<li><a href="http://aejase.free.fr/occultation/">Plugins Cleaner</a> - não mais necessário;</li>
<li><a href="http://superwaba-ide.sourceforge.net/">SuperWaba IDE</a> - além de ter sido descontinuado, acho que pouquíssimos usavam;</li>
<li><a href="http://www.openlaszlo.org/">Laszlo Plugin</a> foi descontinuado;</li>
<li><a href="http://www.xored.com/trustudio">TruStudio</a> foi absorvido pelo <a href="http://www.eclipse.org/dltk">Eclipse DLTK</a> que deve ser lançado daqui algum tempo;</li>
<li><a href="http://jettylauncher.sourceforge.net/">JettyLauncher</a> não recebe atualizações à um bom tempo e não oferece suporte ao Jetty 6;</li>
<li><a href="http://lomboz.objectweb.org/">Lomboz</a> passou à ser somente algumas modificações do WTP e não está mais tão ativo;</li>
<li><a href="http://sourceforge.net/projects/ejp/">FormatOnSave</a> não será mais necessário com o lançamento da versão 3.3 do Eclipse;</li>
</ul>
<p>Os adicionados já não foram tantos:</p>
<ul>
<li><a href="http://www.aptana.com/">Aptana</a> - excelente plugin para facilitar o desenvolvimento Javascript/Ajax, possuindo inclusive debug;</li>
<li><a href="http://www.polarion.org/index.php?page=overview&amp;project=subversive">Subversive</a> - permite conectar ao Subversion;</li>
<li><a href="http://www.sqlexplorer.org/">SQLEditor</a> - cliente JDBC para banco de dados;</li>
<li><a href="http://eclipse-cs.sourceforge.net/">Eclipse-CS</a> - permite verificar aderência à padrões de código;</li>
<li><a href="http://findbugs.sourceforge.net/">Find Bugs</a> - ajuda à encontrar bugs em código Java;</li>
</ul>
<p>E sugestões sempre são bem-vindas.</p>
]]></content:encoded>
			<wfw:commentRss>http://plentz.org/2007/02/02/reclipsed/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
