<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Eliezer Rodrigues &#187; eliezer</title>
	<atom:link href="http://www.eliezer.com.br/post/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.eliezer.com.br</link>
	<description>Desenvolvimento de software, linguagens de programação, artigos, utils, scrum, testes, linux e tecnologia de um modo geral</description>
	<lastBuildDate>Thu, 08 Apr 2010 12:42:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Deixando o Magic Mouse utilizável</title>
		<link>http://www.eliezer.com.br/post/deixando-o-magic-mouse-utilizavel/</link>
		<comments>http://www.eliezer.com.br/post/deixando-o-magic-mouse-utilizavel/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 05:03:16 +0000</pubDate>
		<dc:creator>eliezer</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[magic mouse]]></category>
		<category><![CDATA[mouse]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.eliezer.com.br/?p=137</guid>
		<description><![CDATA[Esse post pode até parecer um Review, mas acredito que está mais pra um tutorial e crítica do produto. Primeiro ponto a se questionar é porque o &#8220;Magic&#8221; Mouse, o Megaboga mouse multi touch da Apple não tem um movimento igual a todos os modelos existentes no mercado. Um exemplo simples do que estou falando [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.eliezer.com.br/wp-content/uploads/2010/04/MagicMouse.png"><img class="alignnone size-full wp-image-148" title="MagicMouse" src="http://www.eliezer.com.br/wp-content/uploads/2010/04/MagicMouse.png" alt="" width="432" height="141" /></a></p>
<p>Esse post pode até parecer um Review, mas acredito que está mais pra um tutorial e crítica do produto. Primeiro ponto a se questionar é porque o &#8220;Magic&#8221; Mouse, o Megaboga mouse multi touch da Apple não tem um movimento igual a todos os modelos existentes no mercado. </p>
<p>Um exemplo simples do que estou falando sobre o movimento: Se você pega um mouse de R$11,00 reais ótico do modelo simples, qualquer pessoa que já trabalha com um computador a mais de 6 meses não tem dificuldade em utilizar o mouse certo? Portando quem já usa mouse desde do Genius serial de bolinha até um um mouse da Microsoft Laser sem fio, não deveria estranhar o movimento do  mouse mais &#8220;revolucionário&#8221; que a Apple já criou certo? ERRADO.</p>
<p>O &#8220;Magic&#8221; Mouse tem um comportamento por padrão diferente de todos os outros. Funciona assim: ele tem uma aceleração &#8220;Mágica&#8221;. hehehe desculpe o sarcasmo. Se você mover ele lentamente, ele vai muito lento. Se você mover ele muito bruscamente ele vai rapidamente pro outro lado da tela.</p>
<p>Se você perceber o seu movimento que é feito no mouse tradicional, não é assim que funciona, o movimento do mouse é constante. O cerebro humano pode até memorizar que assim que funciona o novo mouse, mas o automatismo já criado por mais décadas utilizando o mouse de uma forma constante, torna essa adaptação um pouco traumática.</p>
<p>O lance de deixar a intensidade do movimento  fazer a velocidade funciona bem apenas para o scroll.</p>
<p>Bom vamos ao que interessa, pra quem comprou o mouse ou veio no iMac, vamos as opções de configuração para deixar o mouse &#8220;utilizável&#8221;.</p>
<p><br/><br/>
<li><strong><big>01</big> &#8211; Utilizando opção nativa da Apple: FAIL</strong></li>
<p>Não tem como aumentar a velocidade e ficar utilizável como um mouse normal via interface gráfica do sistema operacional. A apple não tem nem vergonha na cara, porque se via terminal é possível aumentar a velocidade, porque não deixar isso de uma forma simples para o usuário?</p>
<p>Veja o comando para alterar o limite de velocidade:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">defaults <span style="color: #c20cb9; font-weight: bold;">write</span> <span style="color: #660033;">-globalDomain</span> com.apple.mouse.scaling <span style="color: #660033;">-float</span> <span style="color: #000000;">5.0</span></pre></div></div>

<p>Obs.: O valor 5.0 pode ser modificado pelo que ficar melhor para você. Uma vez alterado esse valor não se pode modificar a velocidade do mouse pelo sistema. Para entrar em vigor a alteração é necessário encerrar a sessão.</p>
<p>Olha que vergonha a discussão no fórum da Apple: <a href="http://discussions.apple.com/thread.jspa?messageID=10519849">http://discussions.apple.com/thread.jspa?messageID=10519849</a></p>
<p>Olha o comentário do cara no fórum: <em>&#8220;Perfect description of my experience &#8220;Slow, inaccurate and jerky.&#8221; </em></p>
<p><br/><br/>
<li><strong><big>02</big> &#8211; Utilizando o MouseZoom</strong></li>
<p>Seria aceitável pagar R$229,00 em um mouse e instalar um software de terceiro para deixar ele melhor? Depende, é grátis o programa? Sim. Resolve tudo no mouse? Não. Isso mantém a incompetência da Apple em gerenciar o seu próprio periférico.</p>
<p>Vamos ao teste com o Mouse Zoom</p>
<p>Faça o Download em <a href="http://benh57.com/mousezoom.html">http://benh57.com/mousezoom.html</a></p>
<p>Instale o o painel e abra nas preferências do sistema &#8220;MZoom&#8221;</p>
<p><a href="http://www.eliezer.com.br/wp-content/uploads/2010/04/MouseZoom.png"><img class="alignnone size-full wp-image-142" title="MouseZoom" src="http://www.eliezer.com.br/wp-content/uploads/2010/04/MouseZoom.png" alt="" width="668" height="245" /></a></p>
<p>Com o mouse zoom é possível chegar em uma configuração de aceleração aceitável, mas o movimento ainda não será continuo.</p>
<p><br/><br/>
<li><strong><big>03</big> &#8211; Utilizando o MagicPrefs</strong></li>
<p>Chega a ser uma boa opção, com configuração de gestos, o que deixa o mouse como um TrackPad, mas ainda sim não modifica a forma de aceleração do mouse. Sendo possível utilizar ele para incluir gestos e configurar a aceleração do movimento.</p>
<p>Download em <a href="http://magicprefs.com/">http://magicprefs.com/</a></p>
<p>Veja a tela principal:</p>
<p><a href="http://www.eliezer.com.br/wp-content/uploads/2010/04/MagicPrefs.png"><img class="alignnone size-full wp-image-143" title="MagicPrefs" src="http://www.eliezer.com.br/wp-content/uploads/2010/04/MagicPrefs.png" alt="" width="465" height="400" /></a></p>
<p><br/><br/>
<li><strong><big>04</big> &#8211; Utilizando o MagicDriver</strong></li>
<p>Esse sim pode ser chamado de Magic, porque ele simplesmente configura o movimento do mouse de verdade, dando a opção de configurar a aceleração e a sensibilidade.</p>
<p>O MagicDriver é baseado no famoso <a href="http://plentycom.jp/en/steermouse/index.html">SteerMouse</a> que não suporta &#8220;Magic&#8221; Mouse mas indica no novo produto (ainda beta) chamado MagicDriver.</p>
<p>Download  em <a href="http://plentycom.jp/en/magicdriver/index.html">http://plentycom.jp/en/magicdriver/index.html</a></p>
<p>Logo que entrei a primeira vez no site consegui ver a funcionalidade matadora: &#8220;Adjusting the cursor’s Tracking Speed and Sensitivity.&#8221;</p>
<p>Veja como ficou minha configuração do MagicDriver</p>
<p><a href="http://www.eliezer.com.br/wp-content/uploads/2010/04/MagicDriver.png"><img class="alignnone size-full wp-image-144" title="MagicDriver" src="http://www.eliezer.com.br/wp-content/uploads/2010/04/MagicDriver.png" alt="" width="672" height="510" /></a></p>
<p>Steve Jobs, veja como se faz.</p>
<p>Esse programa é muito bom, mas aee eu pergunto novamente, é aceitável pagar R$229,00 reais em um mouse e ter que instalar um programa pago em que a versão trial que funciona é beta 13 lançada recentemente em 1 de Abril que expira automaticamente em junho de 2010 e que depois dessa data se tiver uma versão final será possível comprar o &#8220;configurador&#8221; do mouse por $20,00 doletas? Comprar o Magic mouse parece piada atualmente.</p>
<p><br/><br/>
<li><strong>Conclusão</strong></li>
<p>Apesar que sofrer muito pra testar e configurar e passar horas pesquisando soluções pra não chegar ao ponto de devolver o produto, ele tem muitas coisa boas e ruins também.</p>
<p><strong>Prós:</strong> Scroll 360, gestos (via software de terceiro é claro, exposé), qualidade do produto, acabamento<br />
<strong>Contras</strong>: Bateria ridícula (1 mês &#8211; 8h/dia), muito baixo (mas isso como muitas coisas Apple, vc acostuma), movimento lento explicado nesse post, Falhas ao reconectar quando desligado, Não funciona no vidro.</p>
<p>Felizmente ainda estou no prazo, e vou devolver o meu. Espero que para quem não tem a opção de devolver esse post tenha ajudado a esclarecer muitas duvidas dobre o movimento do &#8220;Magic&#8221; Mouse e possa dar alternativas de utilizar o mouse e esperar a própria Apple criar uma correção de software que configure realmente o mouse.</p>
<p>O que posso dizer que gostei muito de usar o quase mágico  &#8220;Magic&#8221; Mouse.</p>
<p>Com certeza a melhor opção hoje seria o MagicDriver para configurar o movimento.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eliezer.com.br/post/deixando-o-magic-mouse-utilizavel/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Nova versão 0.5 do Inotes Contacts para Gmail</title>
		<link>http://www.eliezer.com.br/post/nova-versao-0-5-do-inotes-contacts-para-gmail/</link>
		<comments>http://www.eliezer.com.br/post/nova-versao-0-5-do-inotes-contacts-para-gmail/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 07:32:05 +0000</pubDate>
		<dc:creator>eliezer</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[inotes]]></category>

		<guid isPermaLink="false">http://www.eliezer.com.br/?p=133</guid>
		<description><![CDATA[Nova versão do Inotes Contacts disponível aqui. Essa versão corrige o bug da API gmail-greasemonkey. Detalhes sobre o problema em: http://code.google.com/p/gmail-greasemonkey/issues/detail?id=39 A solução foi implementar um listener que monitora a pagina no gmail e inclui o botão do Inotes. Para que não conhece tem um post explicando o script.]]></description>
			<content:encoded><![CDATA[<p>Nova versão do Inotes Contacts disponível <a href="http://userscripts.org/scripts/show/59897">aqui</a>. Essa versão corrige o bug da API gmail-greasemonkey. Detalhes sobre o problema em: <a href="http://code.google.com/p/gmail-greasemonkey/issues/detail?id=39">http://code.google.com/p/gmail-greasemonkey/issues/detail?id=39</a></p>
<p>A solução foi implementar um listener que monitora a pagina no gmail e inclui o botão do Inotes.</p>
<p>Para que não conhece tem um <a href="http://www.eliezer.com.br/post/ibm-contatos-inotes-no-gmail/">post</a> explicando o script. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.eliezer.com.br/post/nova-versao-0-5-do-inotes-contacts-para-gmail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FireScrum &#8211; the open source scrum tool</title>
		<link>http://www.eliezer.com.br/post/firescrum-the-open-source-scrum-tool/</link>
		<comments>http://www.eliezer.com.br/post/firescrum-the-open-source-scrum-tool/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 03:13:11 +0000</pubDate>
		<dc:creator>eliezer</dc:creator>
				<category><![CDATA[Scrum]]></category>
		<category><![CDATA[ágil]]></category>
		<category><![CDATA[firescrum]]></category>

		<guid isPermaLink="false">http://www.eliezer.com.br/?p=127</guid>
		<description><![CDATA[Seguindo a linha dos softwares para gerenciamento de um projeto com scrum, temos hoje algumas boas alternativas de ferramentas, uma delas foi dita dita no post anterior o &#8220;Pronto&#8221;. Neste post temos o &#8220;FireScrum&#8221; que foi criado sobe licença GLP. O FireScrum é um produto que nasceu a partir das atividades desenvolvidas durante um Programa [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.firescrum.com/"><img src="http://www.eliezer.com.br/wp-content/uploads/2010/02/firescrum.jpg" alt="" title="firescrum" width="333" height="100" class="alignnone size-full wp-image-128" /></a></p>
<p>Seguindo a linha dos softwares para gerenciamento de um projeto com scrum, temos hoje algumas boas alternativas de ferramentas, uma delas foi dita dita no post anterior o &#8220;Pronto&#8221;. </p>
<p>Neste post temos o &#8220;FireScrum&#8221; que foi criado sobe licença GLP. O FireScrum é um produto que nasceu a partir das atividades desenvolvidas durante um Programa de Mestrado de Engenharia de Software da <a href="http://www.cesar.org.br/">http://www.cesar.org.br/</a>, mas agora o FireScrum é um produto do INES (Instituto Nacional de Ciência e Tecnologia para Engenharia de Software).</p>
<p>Pode não servir para todos, mas um conceito legal de poder gerenciar um projeto com scrum sem necessáriamente estar presencialmente junto com o time.</p>
<p>Site: <a href="http://www.firescrum.com/">http://www.firescrum.com/</a><br />
Download: <a href="http://sourceforge.net/projects/firescrum/">http://sourceforge.net/projects/firescrum/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eliezer.com.br/post/firescrum-the-open-source-scrum-tool/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pronto – Gestão de Software com Scrum</title>
		<link>http://www.eliezer.com.br/post/pronto-gestao-de-software-com-scrum/</link>
		<comments>http://www.eliezer.com.br/post/pronto-gestao-de-software-com-scrum/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 02:53:09 +0000</pubDate>
		<dc:creator>eliezer</dc:creator>
				<category><![CDATA[Scrum]]></category>
		<category><![CDATA[ágil]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.eliezer.com.br/?p=125</guid>
		<description><![CDATA[Um sistema de código livre, feito em Java especialmente para desenvolvedores de software que utiliza metodologia Scrum. Para quem quer trabalhar de uma forma mais &#8220;digital&#8221;, é uma excelente opção. Tem uma Demonstração Online onde você pode conferir a aplicação sem necessidade de instalar em seu servidor web. O melhor de tudo é grátis. Confira [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-119" title="Pronto" src="http://www.eliezer.com.br/wp-content/uploads/2009/08/pronto-logo.png" alt="Pronto" width="272" height="95" /></p>
<p>Um sistema de código livre, feito em Java especialmente para desenvolvedores de software que utiliza metodologia Scrum. Para quem quer trabalhar de uma forma mais &#8220;digital&#8221;, é uma excelente opção. Tem uma <a href="http://pronto.bluesoft.com.br/Demonstracao">Demonstração Online</a> onde você pode conferir a aplicação sem necessidade de instalar em seu servidor web.</p>
<p>O melhor de tudo é grátis.</p>
<p>Confira  também o <a href="http://pronto.bluesoft.com.br/Home">site</a> do produto.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eliezer.com.br/post/pronto-gestao-de-software-com-scrum/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Vídeo sensacional do Google Chrome</title>
		<link>http://www.eliezer.com.br/post/video-sensacional-do-google-chrome/</link>
		<comments>http://www.eliezer.com.br/post/video-sensacional-do-google-chrome/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 01:17:24 +0000</pubDate>
		<dc:creator>eliezer</dc:creator>
				<category><![CDATA[Browser]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[navegador]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.eliezer.com.br/?p=112</guid>
		<description><![CDATA[Apesar de fã incondicional do Firefox, não há como discutir a superioridade de performance do google Chrome, os números de diversos testes relizados apenas confirma o que se vê apenas utilizando o browser do google. Se tratando do google, os videos promocionais dos seus produtos sao muito bem feitos, mas esse do google Chome, superou [...]]]></description>
			<content:encoded><![CDATA[<p>Apesar de fã incondicional do Firefox, não há como discutir a superioridade de performance do google Chrome, os números de diversos testes relizados apenas confirma o que se vê apenas utilizando o browser do google. </p>
<p>Se tratando do google, os videos promocionais dos seus produtos sao muito bem feitos, mas esse do google Chome, superou as espectativas. O vídeo simplesmente mostra as funcionalidades do navegador. Vale a pena ver.</p>
<p><center><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/SC-2VGBHFQI&#038;hl=pt_BR&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/SC-2VGBHFQI&#038;hl=pt_BR&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eliezer.com.br/post/video-sensacional-do-google-chrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integração de contatos IBM Inotes no gmail</title>
		<link>http://www.eliezer.com.br/post/ibm-contatos-inotes-no-gmail/</link>
		<comments>http://www.eliezer.com.br/post/ibm-contatos-inotes-no-gmail/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 23:49:42 +0000</pubDate>
		<dc:creator>eliezer</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[inotes]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xpath]]></category>

		<guid isPermaLink="false">http://www.eliezer.com.br/?p=98</guid>
		<description><![CDATA[Não estou querendo que todos abandonem o Inotes da IBM, pois se trata de uma ferramenta de e-mail muito boa. Mas como todo software tem limitações, e a principal delas que me atrapalha muito é o espaço. Tem outro fator que ajuda, centralizar todos os seus e-mails em um único lugar. Então uma alternativa é [...]]]></description>
			<content:encoded><![CDATA[<p>Não estou querendo que todos abandonem o Inotes da IBM, pois se trata de uma ferramenta de e-mail muito boa. Mas como todo software tem limitações, e a principal delas que me atrapalha muito é o espaço. Tem outro fator que ajuda, centralizar todos os seus e-mails em um único lugar. </p>
<p>Então uma alternativa é colocar a sua conta do gmail para baixar os e-mails do inotes via pop3. Mas essa solução traz outro problema, os contatos do seu domínio do inotes não ficam mais acessíveis.</p>
<p>Para corrigir isso trabalhei em um script Greasemonkey que resolve meu problema. <img src='http://www.eliezer.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Espero que seja útil para mais pessoas também.</p>
<p><strong>Como funciona:</strong></p>
<p>Uma combinação de tecnologia deu origem ao script.</p>
<p>Firefox 3.5 + gmail + inotes + Greasymonkey + javascript + gmonkeyAPI + GM_xmlhttpRequest + xpath + dedicação = &#8220;IBM Inotes Contacts in Gmail&#8221;</p>
<p>O Script está hospedado no <a href="http://userscripts.org/">userscripts.org</a> o maior repositório de scripts existente.</p>
<p><strong>Instalação:</strong></p>
<ul>
<li>Navegador: <a href="http://pt-br.www.mozilla.com/pt-BR/firefox/">Firefox3.5</a></li>
<li>Complemento: <a href="https://addons.mozilla.org/pt-BR/firefox/addon/748">Greasemonkey</a></li>
<li>Script: <a href="http://userscripts.org/scripts/show/59897">IBM Inotes Contacts in Gmail</a></li>
</ul>
<p>Depois de intalado, defina as configurações da sua conta no script:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">InotesContacts.<span style="color: #660066;">config</span>.<span style="color: #660066;">domain</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">//Define your domain here (ex.: inotes.yourdomain.com)</span>
InotesContacts.<span style="color: #660066;">config</span>.<span style="color: #660066;">user</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>   <span style="color: #006600; font-style: italic;">// Set your username</span>
InotesContacts.<span style="color: #660066;">config</span>.<span style="color: #660066;">password</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">//Set your password</span></pre></td></tr></table></div>

<p>Veja o screeanshot:</p>
<p><img src="http://www.eliezer.com.br/wp-content/uploads/2009/10/inotes_contacts.png" alt="inotes_contacts" title="inotes_contacts" width="617" height="155" class="alignnone size-full wp-image-109" /></p>
<p>Qualquer problema, sugestão, melhoria, agradecimento acesse a pagina do script <a href="http://userscripts.org/scripts/show/59897">aqui</a></p>
<p>Para que gosta do código, o fonte está <a href="http://userscripts.org/scripts/review/59897">aqui.</a> <img src='http://www.eliezer.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.eliezer.com.br/post/ibm-contatos-inotes-no-gmail/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Parse de XML string com xpath em Javascript</title>
		<link>http://www.eliezer.com.br/post/parse-de-xml-string-com-xpath-em-javascript/</link>
		<comments>http://www.eliezer.com.br/post/parse-de-xml-string-com-xpath-em-javascript/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 16:58:27 +0000</pubDate>
		<dc:creator>eliezer</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xpath]]></category>

		<guid isPermaLink="false">http://www.eliezer.com.br/?p=93</guid>
		<description><![CDATA[XML simples de clientes com tipo de pessoa. Nesse exemplo vou usar xpath para pegar apenas os clientes do tipo &#8216;F&#8217; 1 2 3 4 5 6 7 8 9 10 11 12 13 &#60;xml&#62; &#60;clientes&#62; &#60;cliente id=&#34;1&#34; tipoPessoa=&#34;F&#34;&#62; &#60;nome&#62;Eliezer Rodrigues&#60;/nome&#62; &#60;/cliente&#62; &#60;cliente id=&#34;2&#34; tipoPessoa=&#34;J&#34;&#62; &#60;nome&#62;Empresa Abz teste&#60;/nome&#62; &#60;/cliente&#62; &#60;cliente id=&#34;3&#34; tipoPessoa=&#34;F&#34;&#62; &#60;nome&#62;Maria da Silva&#60;/nome&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>XML simples de clientes com tipo de pessoa. Nesse exemplo vou usar xpath para pegar apenas os clientes do tipo &#8216;F&#8217;</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xml<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;clientes<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;cliente</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #000066;">tipoPessoa</span>=<span style="color: #ff0000;">&quot;F&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;nome<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Eliezer Rodrigues<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/nome<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/cliente<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;cliente</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">tipoPessoa</span>=<span style="color: #ff0000;">&quot;J&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;nome<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Empresa Abz teste<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/nome<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/cliente<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;cliente</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;3&quot;</span> <span style="color: #000066;">tipoPessoa</span>=<span style="color: #ff0000;">&quot;F&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;nome<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Maria da Silva<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/nome<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/cliente<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/clientes<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xml<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Codigo completo, para fazer o teste, cole no firefug e rode:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> xmlString <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&lt;xml&gt;&lt;clientes&gt;&lt;cliente id='1' tipoPessoa='F'&gt;&lt;nome&gt;Eliezer Rodrigues&lt;/nome&gt;&lt;/cliente&gt;&lt;cliente id='2' tipoPessoa='J'&gt;&lt;nome&gt;Empresa Abz teste&lt;/nome&gt;&lt;/cliente&gt;&lt;cliente id='3' tipoPessoa='F'&gt;&lt;nome&gt;Maria da Silva&lt;/nome&gt;&lt;/cliente&gt;&lt;/clientes&gt;&lt;/xml&gt;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> parser<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> DOMParser<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> doc <span style="color: #339933;">=</span> parser.<span style="color: #660066;">parseFromString</span><span style="color: #009900;">&#40;</span>xmlString<span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;text/xml&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> xpath<span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;//clientes/cliente[@tipoPessoa = 'F']&quot;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> xmlObject <span style="color: #339933;">=</span> doc.<span style="color: #660066;">evaluate</span><span style="color: #009900;">&#40;</span> xpath<span style="color: #339933;">,</span> doc<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">,</span> XPathResult.<span style="color: #660066;">ORDERED_NODE_SNAPSHOT_TYPE</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>entry <span style="color: #339933;">=</span> xmlObject.<span style="color: #660066;">snapshotItem</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span><span style="color: #003366; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> 
    <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Nome: &quot;</span><span style="color: #339933;">+</span>entry.<span style="color: #660066;">firstElementChild</span>.<span style="color: #660066;">textContent</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    i<span style="color: #339933;">++;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>legal neh?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eliezer.com.br/post/parse-de-xml-string-com-xpath-em-javascript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lendo arquivo de propriedades com Shell Script &#8211; IFS</title>
		<link>http://www.eliezer.com.br/post/lendo-arquivo-de-propriedades-com-shell-script-ifs/</link>
		<comments>http://www.eliezer.com.br/post/lendo-arquivo-de-propriedades-com-shell-script-ifs/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 17:30:42 +0000</pubDate>
		<dc:creator>eliezer</dc:creator>
				<category><![CDATA[Shell Script]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[boas praticas]]></category>

		<guid isPermaLink="false">http://www.eliezer.com.br/?p=87</guid>
		<description><![CDATA[Bom, pode parecer simples, mas quando a velocidade é o seu primeiro quesito, isso pode mudar um pouco. Mas espera aí, é apenas ler um arquivo e fazer um split pegar a chave e o valor. Simples assim mesmo, mas quando o assunto é shell script um simples split não é tão simples. A primera [...]]]></description>
			<content:encoded><![CDATA[<p>Bom, pode parecer simples, mas quando a velocidade é o seu primeiro quesito, isso pode mudar um pouco. Mas espera aí, é apenas ler um arquivo e fazer um split pegar a chave e o valor. Simples assim mesmo, mas quando o assunto é shell script um simples split não é tão simples.</p>
<p>A primera forma de se fazer seria fazer com um cut, veja:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;chave=valor&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span> = <span style="color: #660033;">-f</span> <span style="color: #000000;">1</span></pre></td></tr></table></div>

<p>Legal, funciona, mas quando seu arquivo de properties é grande, ou que esse script rode toda hora, a velocidade do um simples cut que funciona passa a ser um problema.</p>
<p>Uma outra forma de se fazer isso é usar o IFS – Internal Field Separator para fazer isso de uma forma decente.</p>
<p>Então, vamos lá. Pimeiro meu arquivo de propriedades:</p>
<p><strong>sample.properties</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="properties" style="font-family:monospace;"><span style="color: #000080; font-weight:bold;">caminho</span><span style="color: #000000;">=</span><span style="color: #008000; font-weight:bold;">/tmp</span>
<span style="color: #000080; font-weight:bold;">version</span><span style="color: #000000;">=</span><span style="color: #008000; font-weight:bold;">1.0</span></pre></td></tr></table></div>

<p>Fiz um script simples para representar o problema. Função rox com IFS e função sux com CUT.</p>
<p><strong>sample.sh</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
rox<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>
	<span style="color: #007800;">IFS_OLD</span>=<span style="color: #007800;">$IFS</span>
	<span style="color: #007800;">IFS</span>=<span style="color: #ff0000;">&quot;=&quot;</span>
	<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">read</span> key value
	<span style="color: #000000; font-weight: bold;">do</span>
		<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;key = <span style="color: #007800;">$key</span>&quot;</span>
		<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Value = <span style="color: #007800;">$value</span>&quot;</span> 
	<span style="color: #000000; font-weight: bold;">done</span> <span style="color: #000000; font-weight: bold;">&lt;</span> sample.properties 
	<span style="color: #007800;">IFS</span>=<span style="color: #007800;">$IFS_OLD</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
sux<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">read</span> line
	<span style="color: #000000; font-weight: bold;">do</span>
		<span style="color: #007800;">key</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$line</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span> = <span style="color: #660033;">-f</span> <span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">`</span>
		<span style="color: #007800;">value</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$line</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span> = <span style="color: #660033;">-f</span> <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">`</span>
		<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;key = <span style="color: #007800;">$key</span>&quot;</span>
		<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Value = <span style="color: #007800;">$value</span>&quot;</span>
	<span style="color: #000000; font-weight: bold;">done</span> <span style="color: #000000; font-weight: bold;">&lt;</span> sample.properties 
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
<span style="color: #c20cb9; font-weight: bold;">clear</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;rox--------------------------------------&quot;</span>
<span style="color: #000000; font-weight: bold;">time</span> rox
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;sux--------------------------------------&quot;</span>
<span style="color: #000000; font-weight: bold;">time</span> sux</pre></td></tr></table></div>

<p>Veja o resultado:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">rox--------------------------------------
key = caminho
Value = <span style="color: #000000; font-weight: bold;">/</span>tmp
key = version
Value = <span style="color: #000000;">1.0</span>
&nbsp;
real	0m0.001s
user	0m0.000s
sys	0m0.000s
&nbsp;
sux--------------------------------------
key = caminho
Value = <span style="color: #000000; font-weight: bold;">/</span>tmp
key = version
Value = <span style="color: #000000;">1.0</span>
&nbsp;
real	0m0.024s
user	0m0.007s
sys	0m0.019s</pre></td></tr></table></div>

<p>Notem a velocidade do script. Não é ser xiita, mas sim fazer da forma correta. <img src='http://www.eliezer.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.eliezer.com.br/post/lendo-arquivo-de-propriedades-com-shell-script-ifs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Template Engine em Python &#8211; Cheetah</title>
		<link>http://www.eliezer.com.br/post/template-engine-em-python-cheetah/</link>
		<comments>http://www.eliezer.com.br/post/template-engine-em-python-cheetah/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 04:38:32 +0000</pubDate>
		<dc:creator>eliezer</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[boas praticas]]></category>
		<category><![CDATA[cheetah]]></category>
		<category><![CDATA[legal]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://www.eliezer.com.br/?p=76</guid>
		<description><![CDATA[Um modulo simples para python, cheetah. Ele tem tudo que programadores python gosta, simples, bem documentado, comunidade ativa, rápido, possui um mecanismo de cache entre outras funcionalidades. Onde baixar? http://www.cheetahtemplate.org Instalando 1 python setup.py install Criando um objeto simples Cliente 1 2 3 4 class Cliente&#40;&#41;: def __init__&#40;self, nome, email&#41;: self.nome = nome self.email = [...]]]></description>
			<content:encoded><![CDATA[<p>Um modulo simples para python, cheetah. Ele tem tudo que programadores python gosta, simples, bem documentado, comunidade ativa, rápido, possui um mecanismo de cache entre outras funcionalidades.</p>
<li>Onde baixar?</li>
<p><a href="http://www.cheetahtemplate.org">http://www.cheetahtemplate.org</a></p>
<li>Instalando</li>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="python" style="font-family:monospace;">python setup.<span style="color: black;">py</span> install</pre></td></tr></table></div>

<li>Criando um objeto simples Cliente</li>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">class</span> Cliente<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
	<span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, nome, <span style="color: #dc143c;">email</span><span style="color: black;">&#41;</span>:
		<span style="color: #008000;">self</span>.<span style="color: black;">nome</span> = nome
		<span style="color: #008000;">self</span>.<span style="color: #dc143c;">email</span> = <span style="color: #dc143c;">email</span></pre></td></tr></table></div>

<li>Criando um template</li>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">title</span>&gt;</span>$title<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">title</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
	#for $cliente in $clientes        
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">b</span>&gt;</span>$cliente.nome<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">b</span>&gt;</span>
		(<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;mailto:$cliente.email&quot;</span>&gt;</span>$cliente.email<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>)
		<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
	#end for
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></pre></td></tr></table></div>

<li>Executando</li>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> Cheetah.<span style="color: black;">Template</span> <span style="color: #ff7700;font-weight:bold;">import</span> Template
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>:
&nbsp;
	clientes = <span style="color: black;">&#91;</span>Cliente<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Eliezer Rodrigues&quot;</span>, <span style="color: #483d8b;">&quot;eliezer@teste.net&quot;</span><span style="color: black;">&#41;</span>, 
                       Cliente<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Maria&quot;</span>, <span style="color: #483d8b;">&quot;maria@teste.net&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#93;</span>
&nbsp;
	template = Template<span style="color: black;">&#40;</span><span style="color: #008000;">file</span>=<span style="color: #483d8b;">&quot;page.tpl&quot;</span><span style="color: black;">&#41;</span>
	template.<span style="color: black;">title</span> = <span style="color: #483d8b;">&quot;Todos os clientes&quot;</span>
	template.<span style="color: black;">clientes</span> = clientes
&nbsp;
	<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>template<span style="color: black;">&#41;</span></pre></td></tr></table></div>

<li>Resultado:</li>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">title</span>&gt;</span>Todos os clientes<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">title</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
                <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
                <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">b</span>&gt;</span>Eliezer Rodrigues<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">b</span>&gt;</span>
                (<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;mailto:eliezer@teste.net&quot;</span>&gt;</span>eliezer@teste.net<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>)
                <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
                <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
                <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">b</span>&gt;</span>Maria<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">b</span>&gt;</span>
                (<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;mailto:maria@teste.net&quot;</span>&gt;</span>maria@teste.net<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>)
                <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span></pre></td></tr></table></div>

<p>Curtiu?? para saber mais sobre o projeto entre no<a href="http://www.cheetahtemplate.org/docs/users_guide_html/"> guia do usuário</a> e confira tudo sobre o cheetah.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eliezer.com.br/post/template-engine-em-python-cheetah/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Motivos para amar um NERD</title>
		<link>http://www.eliezer.com.br/post/motivos-para-amar-um-nerd/</link>
		<comments>http://www.eliezer.com.br/post/motivos-para-amar-um-nerd/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 16:56:17 +0000</pubDate>
		<dc:creator>eliezer</dc:creator>
				<category><![CDATA[Sem categoria]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[nerd]]></category>

		<guid isPermaLink="false">http://www.eliezer.com.br/?p=50</guid>
		<description><![CDATA[1. Você pode ter certeza daquilo que ele é, e de como será. Nerd não muda. Ele não tenta fingir que é outra pessoa só para te agradar, porque nem se ele quisesse ele saberia como parecer legal, bonito, etc. As qualidades de um NERD são imutáveis. Se ele gosta de C++, vai morrer gostando [...]]]></description>
			<content:encoded><![CDATA[<p><strong>1. Você pode ter certeza daquilo que ele é, e de como será.</strong></p>
<p>Nerd não muda. Ele não tenta fingir que é outra pessoa só para te agradar, porque nem se ele quisesse ele saberia como parecer legal, bonito, etc. As qualidades de um NERD são imutáveis.</p>
<p>Se ele gosta de C++, vai morrer gostando de C++. Pode até ser que passe a usar Java também, mas no fundo é tudo a mesma coisa.</p>
<p>Se ele gosta de De Volta para o Futuro, vai morrer gostando disso.<br />
Se hoje ele é gordinho, amanhã será gordinho.<br />
Se hoje ele é magrelo, amanhã será magrelo.<br />
Diferente dos garotos que fazem musculação para você achar que eles são gostosos, e depois que você casar eles vão virar uns gordos barrigudos?</p>
<p><strong>2. Se ele diz que vai fazer uma festa em rede é verdade.</strong><br />
Sabe aquele papo dos homens comuns de falar que vai jogar futebol e ir a outro lugar?<br />
Se Nerd fala que vai a casa de alguém para fazer uma Festa em Rede e jogar Doom, é porque ele vai fazer isso.</p>
<p>Ele não vai mentir para você, falando que vai fazer uma coisa e ir fazer outra coisa.</p>
<p><strong>3. Nerd tem empregos estáveis.</strong><br />
Muita gente diz que mulher gosta de dinheiro, tremenda mentira.<br />
O que mulher odeia são homens idiotas que não conseguem ter um emprego decente.<br />
Até porque senão você ( mulher ) tiver um marido com emprego tosco, ainda tem que ouvir sua mãe, suas amigas falando:<br />
- Nossa! Mas que marido você arrumou, ele é um banana?</p>
<p>Com Nerds não tem preocupação. Até porque Nerd sempre faz algo que ninguém entende, e daí parece ser muito mais importante o emprego dele do que realmente é.</p>
<p>- Ah! Meu marido cuida de um Servidor de rede?</p>
<p><strong>4. Nerd sempre resolverá o problema do seu computador muito mais rápido e melhor que o suporte técnico.</strong><br />
E o melhor, de graça.</p>
<p><strong>5. Ele não vai esquecer seu aniversário.</strong><br />
A menos que a bateria do Palm dele acabe.</p>
<p><strong>6. Ele não tem ciúmes do carro dele.</strong><br />
Ele não vai ficar falando do carro dele o tempo todo.<br />
Mas não pegue o livro do Stephen Hawking e nem toque no computador dele.<br />
Computador é uma coisa sagrada, NUNCA TOQUE NELE.</p>
<p><strong>7. Nerd adora saber como as coisas funcionam.</strong><br />
Então enquanto ele não conseguir fazer você ter um orgasmo, ele vai estudar o porquê, estudar os pontos sensíveis de uma mulher, criar um gráfico com as possíveis formas de te fazer chegar lá medindo a probabilidade de isso acontecer.</p>
<p>Fará cálculos de Permutação para saber qual o conjunto dessas formas é a melhor para fazer você ter um orgasmo?.<br />
Só não pergunte para ele o que ele está fazendo, porque se ele tentar te explicar você não vai entender.</p>
<p><strong>8. Nerd esperto grava os programas.</strong><br />
Nerd que é nerd sabe programar o video cassete, o gravador de DVD ou a placa dee captura de TV para gravar seu programa favorito. Por isso não tem porquê ele não ir a algum lugar com você só porque estará passando Jornada nas Estrelas ( ao contrário dos maridos comuns que ficariam em casa vendo futebol ).<br />
A menos que você queira ir a um lugar movimentado, a maioria dos Nerds odeiam lugares cheios ( pelo menos eu odeio )?</p>
<p><strong>9. Todo mundo tem defeito.</strong><br />
Mesmo tendo bons motivos para amar um NERD, NUNCA, JAMAIS, NEM PENSE, em interrompê-lo quando ele está programando, esse momento é sagrado.<br />
Interromper alguém que está programando é pior que interromper alguém que está no meio de um cálculo.</p>
<p>Motivo: Quase sempre agente tem que ter em mente o valor de 4 ou 5 variáveis nessa hora.<br />
Tem que saber como e porquê o FOR começou e vai acabar<br />
Tem que guardar na cabeça a condição do IF onde estamos lendo.</p>
<p>E guardar muitas outras informações.<br />
Se você interrompe nessa hora, agente esquece todas essas informações e tem que procurá-las de novo. e isso é uma chatice.</p>
<p>Então! AME um NERD!<br />
Mas NUNCA encoste no computador dele, fale mal do Stephen Hawking ou dos programas de TV que ele assiste e NUNCA interrompe no meio de uma programação.<br />
Faça isso e será feliz para sempre !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eliezer.com.br/post/motivos-para-amar-um-nerd/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
