<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0">

<channel>
	<title>THLopes</title>
	
	<link>http://www.thlopes.com</link>
	<description>.COM Ciência, Computação e Poesia</description>
	<lastBuildDate>Wed, 18 Aug 2010 01:00:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/THLopes" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="thlopes" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>-23.530715</geo:lat><geo:long>-46.883555</geo:long><item>
		<title>Republicando: jQuery, de olho nos gaps</title>
		<link>http://www.thlopes.com/2010/08/republicando-jquery-de-olho-nos-gaps/</link>
		<comments>http://www.thlopes.com/2010/08/republicando-jquery-de-olho-nos-gaps/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 00:54:50 +0000</pubDate>
		<dc:creator>Thomas Lopes</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[tecnologia]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[standards]]></category>

		<guid isPermaLink="false">http://www.thlopes.com/?p=902</guid>
		<description><![CDATA[Estou republicando esse artigo pois o mesmo recebeu um comentário, e ao mesmo tempo, é um assunto que ainda assola muitas pessoas que utilizam jQuery, principalmente quem começou com ela há pouco tempo.]]></description>
			<content:encoded><![CDATA[<p><em>Estou republicando </em><a href="http://old.thlopes.com/content/view/141/46/"><em>esse artigo</em></a><em> pois o mesmo recebeu um comentário, e ao mesmo tempo, é um assunto que ainda assola muitas pessoas que utilizam </em><a href="http://docs.jquery.com"><em>jQuery</em></a><em>, principalmente quem começou com ela há pouco tempo.</em></p>
<p>Qual webdeveloper nunca usou <a class="bbli" href="http://sledge.boo-box.com/list/page/alF1ZXJ5XyMjX2JveF8jI190YWdnaW5nLXRvb2wtd3BfIyNfMjM5MzQ=-56">jQuery<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a>? Muito difícil&#8230; Bom, mas vamos falar de algo que nem todos os <a class="bbli" href="http://sledge.boo-box.com/list/page/cHJvZ3JhbW1pbmdfIyNfYm94XyMjX3RhZ2dpbmctdG9vbC13cF8jI18yMzkzNA==-64">developers<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> que usam jQuery se atentam ao programar. Eu mesmo fui pego hoje por um gap que me tomou alguns minutos da tarde&#8230;</p>
<p>Algumas funções (na verdade, a maioria nesse framework) recebem outras funções como <em>callback</em>, aquela função que será chamada assim que a instrução/função chamada acabar seu procedimento. Um exemplo muito utilizado em aplicações reais são as</p>
<h2>Funções Ajax</h2>
<p style="background-color: #ffffff;padding: 2px;border: 1px solid #cccccc"><em>load</em>( url, data, <strong>callback </strong>)<br />
Returns: jQuery. Load HTML from a remote file and inject it into the DOM.</p>
<p style="background-color: #ffffff;padding: 2px;border: 1px solid #cccccc">jQuery.<em>get</em>( url, data, <strong>callback</strong>, type )<br />
Returns: XMLHttpRequest. Load a remote page using an HTTP GET request.</p>
<p style="background-color: #ffffff;padding: 2px;border: 1px solid #cccccc">jQuery.<em>getJSON</em>( url, data, <strong>callback </strong>)<br />
Returns: XMLHttpRequest. Load JSON data using an HTTP GET request.</p>
<p><span id="more-902"></span></p>
<p>Ao usar a função load, você carrega um arquivo remoto (seja ele html puro ou um arquivo dinâmico, como PHP ou outra linguagem), mas o tempo que ele leva para ser processado nem sempre é igual. E se você precisa esperar que o conteúdo seja totalmente carregado antes de proceder com o script?Colocar um timeout? No way, uma vez que você não tem controle sobre o tempo de execução em todas as plataformas e clientes&#8230; Logo, o Callback está aí para sanar essa questão.</p>
<h2>Porém&#8230;</h2>
<p>Temos que tomar cuidado ao usar o Callback, uma vez que o desempenho dos sistemas ainda podem afetar a funcionalidade de seu código, e fazer você perder várias horas de seu precioso descanso&#8230;Veja esse trecho de código que trabalhei recentemente:</p>
<pre>jQuery().ready(function() {
   jQuery.getJSON('/php/data.drafts.php?l=10&amp;f=json', function(data){
      jQuery.each(data, function(i, item){
         jQuery('#latestDraftsTable tbody').append('&lt;tr&gt;&lt;td&gt;'+item.id+'&lt;/td&gt;&lt;td&gt;' + item.title + '&lt;/td&gt;&lt;td&gt;' + item.date+ '&lt;/td&gt;&lt;/tr&gt;');
      });
   });
   jQuery('#latestDraftsTable').tablesorter({widgets: ['zebra']});
);</pre>
<p>Alguém consegue perceber o erro, ou melhor, a Zebra? Muito difícil. Mas ao rodar o código, não acontecia o esperado: que minha tabela apresentasse o comportamento de uma tabela ordenável que o jQuery UI tablesorter plugin proporciona (ou seja, deu Zebra e não ocorreu a <em>Zebra</em>). Aí eu descobri o problema: a penúltima linha do código nem estava sendo executada&#8230; Seriam Gaps de performance?</p>
<h2>Diferentes paradigmas</h2>
<p>Fosse uma linguagem das antigas qualquer, onde o paradigma procedural imperava, esse código não teria problema, pois cada instrução só seria disparada ao final da anterior. No Javascript, a coisa não é bem assim, ainda mais quando se trata de AJAX -<em><strong>Assynchronous</strong> Jacascript and XML</em> &#8211; uma requisição que é disparada e outra estrutura interna fica encarregada de processar os resultados quando eles chegarem. Ao efetuar a função getJSON, a requisição é disparada, e já passamos para a próxima linha (onde eu chamo o tablesorter na tabela), porém, não deu tempo da requisição JSON retornar e popular a tabela. Resultado: minha tabela fica populada mas não fica ordenável.</p>
<p>Graças a um amigo developer fera em JS, eu consegui perceber isso e reordenaro código de maneira que ele funcionasse como o esperado:</p>
<h3>Código corrigido</h3>
<pre>jQuery().ready(function() {
   jQuery.getJSON('/php/data.drafts.php?l=10&amp;f=json', function(data){
      jQuery.each(data, function(i, item){
         jQuery('#latestDraftsTable tbody').append('&lt;tr&gt;&lt;td&gt;'+item.id+'&lt;/td&gt;&lt;td&gt;' + item.title + '&lt;/td&gt;&lt;td&gt;' + item.date+ '&lt;/td&gt;&lt;/tr&gt;');
      });
      <strong>jQuery('#latestDraftsTable').tablesorter({widgets: ['zebra']});</strong>
   });
);</pre>
<p>Assim, o tablesorter vai ocorrer dentro do <em>callback</em>, logo após ter terminado de ser populada a tabela. Na realidade, os callbacks foram feitos exatamente para situações como essa: <em>quando a coisa vai demorar um pouco e você não tem certeza do quanto&#8230;</em></p>
<!-- boo-widget start -->
					<script type="text/javascript">
					bb_keywords = 'javascript, jquery, web, desenvolvimento, programação';
					bb_bid = '23934';
					bb_lang = 'pt-BR';
					bb_name = 'custom';bb_width = "580";bb_limit = "5";</script>
					<script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
					<!-- boo-widget end --><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/THLopes?a=ZCxi_gRW2bA:98cL6uLmDm8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/THLopes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=ZCxi_gRW2bA:98cL6uLmDm8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/THLopes?i=ZCxi_gRW2bA:98cL6uLmDm8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=ZCxi_gRW2bA:98cL6uLmDm8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/THLopes?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=ZCxi_gRW2bA:98cL6uLmDm8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/THLopes?i=ZCxi_gRW2bA:98cL6uLmDm8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=ZCxi_gRW2bA:98cL6uLmDm8:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/THLopes?i=ZCxi_gRW2bA:98cL6uLmDm8:KwTdNBX3Jqk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.thlopes.com/2010/08/republicando-jquery-de-olho-nos-gaps/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Social Network</title>
		<link>http://www.thlopes.com/2010/07/the-social-network/</link>
		<comments>http://www.thlopes.com/2010/07/the-social-network/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 17:29:56 +0000</pubDate>
		<dc:creator>Thomas Lopes</dc:creator>
				<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.thlopes.com/?p=882</guid>
		<description><![CDATA[This video was embedded using the YouTuber plugin by Roy Tanck. Adobe Flash Player is required to view the video.
Primeiro trailer completo de A Rede Social (The Social Network), filme sobre a história do Facebook dirigido por David Fincher. O filme estréia em Outubro nos EUA. O que esperar depois do lançamento? Sinto cheiro de muitas [...]]]></description>
			<content:encoded><![CDATA[<p><object width="425" height="355" type="application/x-shockwave-flash" data="http://www.youtube.com/v/rX1qSJdrgXk"><param name="movie" value="http://www.youtube.com/v/rX1qSJdrgXk" />This video was embedded using the YouTuber plugin by <a href="http://www.roytanck.com">Roy Tanck</a>. Adobe Flash Player is required to view the video.</object></p>
<p>Primeiro trailer completo de A Rede Social (<a href="http://www.imdb.com/title/tt1285016/">The Social Network</a>), <a class="bbli" href="http://sledge.boo-box.com/list/page/ZmlsbWVfIyNfYm94XyMjX3RhZ2dpbmctdG9vbC13cF8jI18yMzkzNA==-56">filme<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> sobre a história do <a href="http://www.facebook.com/thlopes">Facebook</a> dirigido por <a href="http://en.wikipedia.org/wiki/David_Fincher">David Fincher</a>. O filme estréia em Outubro nos EUA. O que esperar depois do lançamento? Sinto cheiro de muitas requisições de empresas querendo melhor exposição social na mídia, através de campanhas e aplicativos sociais. Principalmente agora que o cenário da Internet Brasileira parece ter enxergado o Facebook de verdade.</p>
<p>Mas eu já percebi (e provavelmente você também) porque muitos usuários estão finalmente migrando do <a href="http://www.orkut.com.br">Orkut</a> para o Facebook (e a equipe do Orkut também, visto as mudanças corridas que andam fazendo ultimamente): <em>O Facebook é muito mais rápido que o seu rival.</em></p>
<!-- boo-widget start -->
					<script type="text/javascript">
					bb_keywords = 'social';
					bb_bid = '23934';
					bb_lang = 'pt-BR';
					bb_name = 'custom';bb_width = "580";bb_limit = "5";</script>
					<script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
					<!-- boo-widget end --><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/THLopes?a=M5fzJZ4MtTs:50tb7731GTU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/THLopes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=M5fzJZ4MtTs:50tb7731GTU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/THLopes?i=M5fzJZ4MtTs:50tb7731GTU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=M5fzJZ4MtTs:50tb7731GTU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/THLopes?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=M5fzJZ4MtTs:50tb7731GTU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/THLopes?i=M5fzJZ4MtTs:50tb7731GTU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=M5fzJZ4MtTs:50tb7731GTU:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/THLopes?i=M5fzJZ4MtTs:50tb7731GTU:KwTdNBX3Jqk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.thlopes.com/2010/07/the-social-network/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IBM adota Firefox como browser padrão</title>
		<link>http://www.thlopes.com/2010/07/ibm-adota-firefox-como-browser-padrao/</link>
		<comments>http://www.thlopes.com/2010/07/ibm-adota-firefox-como-browser-padrao/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 15:11:27 +0000</pubDate>
		<dc:creator>Thomas Lopes</dc:creator>
				<category><![CDATA[Fatos]]></category>
		<category><![CDATA[tecnologia]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[internet explorer]]></category>

		<guid isPermaLink="false">http://www.thlopes.com/?p=863</guid>
		<description><![CDATA[Algumas coisas as vezes demoram pra acontecer. Mas quando falamos de grandes companhias, é comum uma mudança demorar pra propagar. É o que aconteceu somente agora: IBM adota Firefox como seu browser padrão. Desde antes da época que trabalhei no departamento web aqui no Brasil, os profissionais do departamento já brigavam para emplacar o Firefox [...]]]></description>
			<content:encoded><![CDATA[<p>Algumas coisas as vezes demoram pra acontecer. Mas quando falamos de grandes companhias, é comum uma mudança demorar pra propagar. É o que aconteceu somente agora: <a href="http://www.ibm.com/br/pt/">IBM </a>adota <a href="http://br.mozdev.org/">Firefox </a>como seu browser padrão. Desde antes da época que trabalhei no departamento web aqui no Brasil, os profissionais do departamento já brigavam para emplacar o Firefox dentro da companhia, mas devido à cultura corporativa adotada, o IE ainda reinava.</p>
<p>Lembro até de campanhas internas para lembrar alguns desenvolvedores que o IE deveria estar instalado em suas máquinas para entrar no esquema de testes. Espero que o IE6 não esteja mais na maioria das máquinas, como acontecia também (afinal, ter um IE6 em sua máquina é um risco considerável&#8230;).</p>
<p>Como disse a <a href="http://tecnologia.ig.com.br/noticia/2010/07/02/firefox+e+o+novo+browser+padrao+da+ibm+9528637.html">editoria de Tecnologia do IG</a>, a IBM adotou o browser por sua veia OpenSource (uma quebra de rotina dessas só poderia partir mesmo do braço livre da empresa), por ter melhor suporte para extensões (aqui com certeza os desenvolvedores quem bateram o pé) e a meu ver, principalmente por ser mais customizável (e assim, a gigante poder ter um melhor controle das ferramentas utilizadas por seus colaboradores, como recursos). Claro, podemos esperar outros motivos ainda, afinal, empresas desse porte nunca fazem mudanças globais sem antes calcular minuciosamente o quanto poderão economizar/ganhar com uma ação dessas. Talvez vejamos em alguns meses alguma nova ferramenta interna sendo vendida globalmente, baseada na tecnologia do browser.</p>
<p>Mas claro, quem conhece, sabe que os benefícios de adotar um browser mais robusto são muito bem vindos, seja sua empresa pequena ou gigante.</p>
<p>Confira mais no<a href="http://tecnologia.ig.com.br/noticia/2010/07/02/firefox+e+o+novo+browser+padrao+da+ibm+9528637.html"> iG &#8211; Tecnologia</a></p>
<!-- boo-widget start -->
					<script type="text/javascript">
					bb_keywords = 'netbook, notebook, web';
					bb_bid = '23934';
					bb_lang = 'pt-BR';
					bb_name = 'custom';bb_width = "580";bb_limit = "5";</script>
					<script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
					<!-- boo-widget end --><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/THLopes?a=oD_6HTUKCAM:g2tTkjJmtKQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/THLopes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=oD_6HTUKCAM:g2tTkjJmtKQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/THLopes?i=oD_6HTUKCAM:g2tTkjJmtKQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=oD_6HTUKCAM:g2tTkjJmtKQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/THLopes?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=oD_6HTUKCAM:g2tTkjJmtKQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/THLopes?i=oD_6HTUKCAM:g2tTkjJmtKQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=oD_6HTUKCAM:g2tTkjJmtKQ:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/THLopes?i=oD_6HTUKCAM:g2tTkjJmtKQ:KwTdNBX3Jqk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.thlopes.com/2010/07/ibm-adota-firefox-como-browser-padrao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Minerando Eleições: opSys, versão 2.0</title>
		<link>http://www.thlopes.com/2010/06/minerando-eleicoes-opsys-versao-2-0/</link>
		<comments>http://www.thlopes.com/2010/06/minerando-eleicoes-opsys-versao-2-0/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 12:39:09 +0000</pubDate>
		<dc:creator>Thomas Lopes</dc:creator>
				<category><![CDATA[Ciência]]></category>
		<category><![CDATA[Fatos]]></category>
		<category><![CDATA[Projetos]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[Eleições]]></category>
		<category><![CDATA[IA]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[Política]]></category>
		<category><![CDATA[Text mining]]></category>

		<guid isPermaLink="false">http://www.thlopes.com/?p=831</guid>
		<description><![CDATA[Segunda versão do opSys, ferramenta para mineração de opiniões em conteúdo Web. Agora, com recursos que permitem que qualquer pessoa monte um conjunto de processamento de opiniões de acordo com sua necessidade. A maior novidade é também um conjunto para analisar  as Eleições 2010, ou melhor, analisar as opiniões sobre os presidenciáveis num conjunto de blogs, portais e no Twitter. Serra e Dilma já estão sendo minerados pelo sistema.]]></description>
			<content:encoded><![CDATA[<p><a title="opSys: mineração de opiniões em conteúdo web" href="http://www.opsys.com.br"><img class="alignleft" src="http://farm3.static.flickr.com/2548/4110961388_f5bf6130a5_t.jpg" alt="opSys. logotipo oficial" /></a> Algumas semanas atrás, liberei a segunda versão do opSys, ferramenta para mineração de opiniões em conteúdo Web. Agora, com recursos que permitem que qualquer pessoa monte um conjunto (SET) de variáveis e extrair opiniões de acordo com sua necessidade. Assim, você pode configurá-lo para medir a opinião de algum assunto que você gosta, marca, gadget, etc. As aplicações são inúmeras, podendo ser usado em pesquisas para medir uma marca, inclusive. Logo que o usuário acessa, ele tem agora duas opções para visualizar o opSys funcionando: A <strong><a class="bbli" href="http://sledge.boo-box.com/list/page/QW4lRTFsaXNlK2RlK0ludmVzdGltZW50b3NfIyNfYm94XyMjX3RhZ2dpbmctdG9vbC13cF8jI18yMzkzNA==-84">Análise de Investimentos<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a></strong>, que explora notícias e comentários sobre o mundo dos investimentos na bolsa, e também o mais novo Set padrão no sistema: Eleições 2010.</p>
<h3>Minerando opiniões sobre as Eleições</h3>
<p>A maior novidade é que já criei também um conjunto para analisar as Eleições 2010, ou melhor, analisar as opiniões sobre os presidenciáveis num conjunto de blogs, portais e no Twitter. Serra e Dilma já estão sendo minerados pelo sistema, que vai medir o feeling das postagens relacionadas em diversos sites nacionais, blogs diversos e também citações no Twitter. Claro, essa nova investida vai demandar uma série de atualizações no sistema, muitas delas já planejadas desde o ano passado, mas também algumas que vão surgir nesse novo período. Certamente, mudanças esperadas no ciclo de evolução de um sistema dinâmico na Webesfera.</p>
<p>E nesse ponto, as críticas e dicas dos usuários serão muito importantes! Como nunca, aguardo comentários, críticas e sugestões de todos que utilizarem e avaliarem o opSys, para deixá-lo sempre melhor. Confira agora mesmo: <a title="opSys: mineração de opiniões em conteúdo web" href="http://www.opsys.com.br">http://www.opsys.com.br</a></p>
<h3>Novidades chegando</h3>
<p>Nesse momento, já temos algumas pessoas com habilidades distintas colocando seus skills para funcionar, arquitetando mudanças para o opSys, que o tornaram mais fácil de navegar e &#8220;consumir&#8221;. <a class="bbli" href="http://sledge.boo-box.com/list/page/RGVzaWduZXJzXyMjX2JveF8jI190YWdnaW5nLXRvb2wtd3BfIyNfMjM5MzQ=-60">Designers<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a>, <a class="bbli" href="http://sledge.boo-box.com/list/page/QXJxdWl0ZXRvcytpbmZvcm1hJUU3JUUzb18jI19ib3hfIyNfdGFnZ2luZy10b29sLXdwXyMjXzIzOTM0-80">Arquitetos da informação<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a>, marketeiros&#8230; Logo logo, poderão conferir mais novidades! Aguardem!</p>
<!-- boo-widget start -->
					<script type="text/javascript">
					bb_keywords = 'Inteligência Artificial, pesquisa, Eleições, ibope, política';
					bb_bid = '23934';
					bb_lang = 'pt-BR';
					bb_name = 'custom';bb_width = "580";bb_limit = "5";</script>
					<script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
					<!-- boo-widget end --><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/THLopes?a=ptX4e6JAAk8:YOYfWrEmGMU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/THLopes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=ptX4e6JAAk8:YOYfWrEmGMU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/THLopes?i=ptX4e6JAAk8:YOYfWrEmGMU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=ptX4e6JAAk8:YOYfWrEmGMU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/THLopes?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=ptX4e6JAAk8:YOYfWrEmGMU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/THLopes?i=ptX4e6JAAk8:YOYfWrEmGMU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=ptX4e6JAAk8:YOYfWrEmGMU:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/THLopes?i=ptX4e6JAAk8:YOYfWrEmGMU:KwTdNBX3Jqk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.thlopes.com/2010/06/minerando-eleicoes-opsys-versao-2-0/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Dez coisas que mais irritam os desenvolvedores</title>
		<link>http://www.thlopes.com/2010/05/dez-coisas-que-mais-irritam-os-desenvolvedores/</link>
		<comments>http://www.thlopes.com/2010/05/dez-coisas-que-mais-irritam-os-desenvolvedores/#comments</comments>
		<pubDate>Sat, 29 May 2010 13:00:16 +0000</pubDate>
		<dc:creator>Thomas Lopes</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Fatos]]></category>
		<category><![CDATA[Projetos]]></category>
		<category><![CDATA[profissão]]></category>
		<category><![CDATA[programação]]></category>

		<guid isPermaLink="false">http://www.thlopes.com/?p=839</guid>
		<description><![CDATA[Meu amigo Marcelo Honório traduziu um artigo muito interessnte, que expressa bem o que nós, profissionais do código, sentimos muitas vezes ao longo de nossas carreiras: Dez coisas que mais irritam os desenvolvedores (Claro, muitos podem listar ainda mais... mas essas 10 já resumem bem boa parte delas).
Confira o artigo e comente qual você acha o pior, e caso discorde, por favor, explique porque uma coisa dessas pode não te irritar]]></description>
			<content:encoded><![CDATA[<p><a title="Voce-e-Analista-de-Sistemas-Desenvolvedor-Programador por thlopes, no Flickr" href="http://www.thlopes.com/2010/05/dez-coisas-que-mais-irritam-os-desenvolvedores"><img class="alignleft" src="http://farm5.static.flickr.com/4032/4648478008_ed4c52c94b_m.jpg" alt="Voce-e-Analista-de-Sistemas-Desenvolvedor-Programador" width="240" height="235" /></a></p>
<p>Meu amigo Marcelo Honório traduziu um artigo muito interessnte, que expressa bem o que nós, profissionais do código, sentimos muitas vezes ao longo de nossas carreiras: <em><a href="http://blog.marcelohonorio.com.br/tecnologia/desenvolvimento/dez-coisas-que-mais-irritam-desenvolvedores/comment-page-1/">Dez coisas que mais irritam os desenvolvedores</a></em> (Claro, muitos podem listar ainda mais&#8230; mas essas 10 já resumem bem boa parte delas).</p>
<p><a title="Dez coisas que mais irritam os desenvolvedores, no blog do Marcelo Honório" href="http://blog.marcelohonorio.com.br/tecnologia/desenvolvimento/dez-coisas-que-mais-irritam-desenvolvedores/comment-page-1/">Confira o artigo</a> e comente qual você acha o pior, e caso discorde, por favor, explique porque uma coisa dessas pode não te irritar&#8230;</p>
<!-- boo-widget start -->
					<script type="text/javascript">
					bb_keywords = 'profissão, programação, computador';
					bb_bid = '23934';
					bb_lang = 'pt-BR';
					bb_name = 'custom';bb_width = "580";bb_limit = "5";</script>
					<script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
					<!-- boo-widget end --><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/THLopes?a=3VdkQJE6E-s:gC3hpmNc2Ts:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/THLopes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=3VdkQJE6E-s:gC3hpmNc2Ts:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/THLopes?i=3VdkQJE6E-s:gC3hpmNc2Ts:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=3VdkQJE6E-s:gC3hpmNc2Ts:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/THLopes?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=3VdkQJE6E-s:gC3hpmNc2Ts:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/THLopes?i=3VdkQJE6E-s:gC3hpmNc2Ts:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=3VdkQJE6E-s:gC3hpmNc2Ts:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/THLopes?i=3VdkQJE6E-s:gC3hpmNc2Ts:KwTdNBX3Jqk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.thlopes.com/2010/05/dez-coisas-que-mais-irritam-os-desenvolvedores/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nerdcast sobre programadores</title>
		<link>http://www.thlopes.com/2010/05/nerdcast-sobre-programadores/</link>
		<comments>http://www.thlopes.com/2010/05/nerdcast-sobre-programadores/#comments</comments>
		<pubDate>Fri, 28 May 2010 20:10:05 +0000</pubDate>
		<dc:creator>Thomas Lopes</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Fatos]]></category>
		<category><![CDATA[tecnologia]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[profissão]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.thlopes.com/?p=836</guid>
		<description><![CDATA[Quem acompanha o blog sabe que esporadicamente posto links para podcasts de assuntos relacionados a THLopes. E aqui está mais: o Nerdcast de hoje, cujo tema é Profissão: Programador. Como este que vos escreve atua nessa profissão, recomendo ouvir esse excelente podcast para fechar sua sexta-feira. Boas risadas e descobertas!]]></description>
			<content:encoded><![CDATA[<p><a title="Nerdcast #211 Profissão: programador por thlopes, no Flickr" href="http://www.thlopes.com/2010/05/nerdcast-sobre-programadores/"><img src="http://farm5.static.flickr.com/4062/4647820359_286829fea9_o.jpg" alt="Nerdcast #211 Profissão: programador" width="440" height="235" /></a></p>
<p>Quem acompanha o blog sabe que esporadicamente posto links para podcasts de assuntos relacionados a THLopes. E aqui está mais: o Nerdcast de hoje, cujo tema é Profissão: Programador. Como este que vos escreve atua nessa profissão, recomendo <a title="Nerdcast 211 -0 profissão programador" href="http://jovemnerd.ig.com.br/nerdcast/nerdcast-211-profissao-programador/">ouvir esse excelente podcast para fechar sua sexta-feira</a>. Boas risadas e descobertas!</p>
<!-- boo-widget start -->
					<script type="text/javascript">
					bb_keywords = 'python, ruby, development';
					bb_bid = '23934';
					bb_lang = 'pt-BR';
					bb_name = 'custom';bb_width = "580";bb_limit = "5";</script>
					<script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
					<!-- boo-widget end --><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/THLopes?a=rD2YmqArKeQ:TAt0A7vW7UM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/THLopes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=rD2YmqArKeQ:TAt0A7vW7UM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/THLopes?i=rD2YmqArKeQ:TAt0A7vW7UM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=rD2YmqArKeQ:TAt0A7vW7UM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/THLopes?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=rD2YmqArKeQ:TAt0A7vW7UM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/THLopes?i=rD2YmqArKeQ:TAt0A7vW7UM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=rD2YmqArKeQ:TAt0A7vW7UM:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/THLopes?i=rD2YmqArKeQ:TAt0A7vW7UM:KwTdNBX3Jqk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.thlopes.com/2010/05/nerdcast-sobre-programadores/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Criando um Ambiente de desenvolvimento com GAE</title>
		<link>http://www.thlopes.com/2010/05/ambiente-desenvolvimento-google-app-engine/</link>
		<comments>http://www.thlopes.com/2010/05/ambiente-desenvolvimento-google-app-engine/#comments</comments>
		<pubDate>Tue, 04 May 2010 16:03:08 +0000</pubDate>
		<dc:creator>Thomas Lopes</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Projetos]]></category>
		<category><![CDATA[aptana]]></category>
		<category><![CDATA[eclipe]]></category>
		<category><![CDATA[gae]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[sdk]]></category>

		<guid isPermaLink="false">http://www.thlopes.com/?p=781</guid>
		<description><![CDATA[Em Abril, participei de um projeto onde precisamos montar um ambiente de trabalho bem bacana, envolvendo tecnologia de Cloud Computing, como o Google App Engine (GAE). Não é uma tarefa difícil, na verdade, relativamente fácil de fazer, mas resolvi documentar aqui para diminuir o trabalho ainda mais de pessoas que procuram uma solução para iniciar seus projetos, ou de quem acabou de pegar uma máquina zerada e quer montar um cockpit de desenvolvimento.]]></description>
			<content:encoded><![CDATA[<p><a title="banner-eclipse-python-gae por thlopes, no Flickr" href="http://www.thlopes.com/2010/05/ambiente-desenvolvimento-google-app-engine/#more-781"><img src="http://farm5.static.flickr.com/4072/4578167341_266106ffb4_o.jpg" alt="banner-eclipse-python-gae" width="558" height="90" /></a></p>
<p>Em Abril, participei de um projeto onde precisamos montar um ambiente de trabalho bem bacana, envolvendo tecnologia de Cloud Computing, como o Google App Engine (GAE). Não é uma tarefa difícil, na verdade, relativamente fácil de fazer, mas resolvi documentar aqui para diminuir o trabalho ainda mais de pessoas que procuram uma solução para iniciar seus projetos, ou de quem acabou de pegar uma máquina zerada e quer montar um cockpit de desenvolvimento.</p>
<p>A seguir, a breve lista do que vamos precisar:</p>
<ul>
<li><a href="http://www.python.org/download/">Python</a></li>
<li><a href="http://code.google.com/appengine/downloads.html">Google App Engine SDK</a></li>
<li><a href="http://www.eclipse.org/downloads/">Eclipse IDE</a> (Recomendo a versão &#8220;For PHP Developers, que já vem com <em>Web Tools Platform, </em>que será útil em outros projetos)</li>
<li><a href="http://pydev.org/download.html">PyDev</a></li>
<li><a href="http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA">Subclipse</a></li>
<li><a href="http://www.aptana.org/">Aptana Studio</a></li>
</ul>
<p>Claro, você pode alternar versões ou usar apenas o Aptana Studio invés do Eclipse, mas eu optei pelo Eclipse para poder usar em outras situações.</p>
<p><span id="more-781"></span></p>
<h2>Python e GAE</h2>
<p>Vamos lançar as bases de nosso ambiente. Começando pela linguagem de nossa escolha, o Python, que dependendo da distruição de seu sistema operacional, já estará instalado (O Ubuntu, por exemplo, já vem com python pronto pra uso). Se quiser testar se já está pronto, abra uma linha de comando (shell) e execute o comando:</p>
<pre>thomas@thlopes:~$ python</pre>
<p>Você deverá ter uma resposta como esta, ou bem parecida, no caso do windows:</p>
<pre>Python 2.5.2 (r252:60911, Jan 20 2010, 23:16:55)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
&gt;&gt;&gt;</pre>
<p>Significa que a linguagem já está pronta para uso no seu sistema. Caso não tenha o programa instalado, basta baixar em http://www.python.org/download/, e instalar em sua máquina. No Windows, será necessário configurar a variável de Ambiente Path para que o executável do Python possa ser executado de qualquer localização no sistema.</p>
<p>Nosso próximo passo é instalar o Google App Engine SDK. Primeiramente, baixe os pacotes de acordo com sua distribuição em http://code.google.com/appengine/downloads.html. No Linux, basta você descompactar numa pasta onde você recorde futuramente (geralmente, crio uma pasta geral para arquivos de libraries diversas que utilizo em diversos projetos: /home/thomas/workspaces/libraries). Depois de extraído, você terá uma estrutura como esta:</p>
<p style="text-align: center"><a title="tutorial-ambiente-figura-01 por thlopes, no Flickr" href="http://www.flickr.com/photos/thlopes/4574432255/"><img src="http://farm4.static.flickr.com/3386/4574432255_fe3d85dfb2_m.jpg" alt="tutorial-ambiente-figura-01" width="240" height="121" /></a></p>
<p>Para assegurar que o GAE está pronto para funcionar em sua máquina, vamos rodar um exemplo que vem no próprio pacote. Ao ser indagado se o Server deve procurar por updates, responda com Y/N:</p>
<pre>thomas@thlopes:~$ cd workspace/libraries/google_appengine/
thomas@thlopes:~/workspace/libraries/google_appengine$ ./dev_appserver.py demos/guestbook/.</pre>
<pre>INFO     2010-05-03 14:23:59,698 appengine_rpc.py:159] Server: appengine.google.com
Allow dev_appserver to check for updates on startup? (Y/n): Y</pre>
<p>Depois de checar pelos updates ele vai mostrar o seguinte:</p>
<p>INFO     2010-05-03 14:25:13,339 dev_appserver_main.py:407] Running application guestbook on port 8080: http://localhost:8080</p>
<p>Isso quer dizer que o servidor de testes está pronto para rodar em http://localhost:8080. Não feche esse terminal, pois isso fará com que o servidor de testes seja fechado também. Copie e cole no seu browser:</p>
<p style="text-align: center"><em><a title="tutorial-ambiente-figura-02 por thlopes, no Flickr" href="http://www.flickr.com/photos/thlopes/4578692042/"><img src="http://farm5.static.flickr.com/4008/4578692042_94ed658b0f_m.jpg" alt="tutorial-ambiente-figura-02" width="240" height="176" /></a> <a title="tutorial-ambiente-figura-03 por thlopes, no Flickr" href="http://www.flickr.com/photos/thlopes/4578692046/"><img src="http://farm5.static.flickr.com/4066/4578692046_79ab71c8be_m.jpg" alt="tutorial-ambiente-figura-03" width="240" height="170" /></a></em></p>
<p style="text-align: left">Você verá um formulário, poste alguma coisa para testar o funcionamento. Se verificar na janela de terminal, verá que ele mostra um output do log do mesmo, para debug. Pronto, segu GAE está pronto para ser usado. Há uma pasta chamada new_project_template que mostra os arquivos básicos que todo app no GAE deve conter. Você também pode seguir os <a title="Documentação GAE" href="http://code.google.com/appengine/docs/python/gettingstarted">tutoriais da própria documentação</a> para se situar melhor com ese SDK.</p>
<h2 style="text-align: left">Eclipse IDE/SDK</h2>
<p style="text-align: left">Agora vamos para o próximo passo, instalar nosso Eclipse. Aqui praticamente não há segredos: Tanto No Linux quanto no Windows, você pode baixar um pacote que já vem com o Eclipse pronto para uso, bastando descompactar em alguma pasta. No Linux você ainda tem a opção de instalar via gerenciador de pacotes, caso prefira. Mas eu recomendo baixar o último pacote no site de downloads (/http://www.eclipse.org/downloads/), pois geralmente as versões nos repositórios padrão são um tanto quanto defasadas. Descompacte tudo numa pasta de sua preferência, por exemplo, /home/thomas/eclipse. Após descompactado, você pode criar atalhos para a área de trabalho ou onde quiser (inclusive, um ícone já vem no pacote para Linux, para  você customizar o link). Pronto, você tem uma suíte robusta e pronta para desenvolver diversos tipos de projetos, em uma infinidade de linguagens. Eclipse é uma suíte modular, com muitos plugins desenvolvidos, de execelente qualidade, inclusive, um deles é o nosso próximo passo. Execute o Eclipse. Ao executá-lo, ele vai perguntar onde você quer definir seu workspace padrão. O meu, gosto de manter assim: /home/thomas/workspace, mas você pode escolher qualquer lugar de preferência. Só pra situar os que nunca usaram o Eclipse: Workspace é o lugar onde você vai criar as pastas dos seus projetos. Como eu trabalho com diversos níveis de projetos (trabalho, pessoal, estudos, etc), eu crio subníveis, por exemplo: /home/thomas/wokspaces/work  e /home/thomas/workspaces/personal, etc&#8230; Escolha a vontade!</p>
<p style="text-align: center"><em><a title="tutorial-ambiente-figura-04-Eclipse-Wokspace por thlopes, no Flickr" href="http://www.flickr.com/photos/thlopes/4578692060/"><img src="http://farm5.static.flickr.com/4046/4578692060_f9b1ea3434_m.jpg" alt="tutorial-ambiente-figura-04-Eclipse-Wokspace" width="240" height="201" /></a></em></p>
<h2 style="text-align: left">PyDev</h2>
<p style="text-align: left">Estamos quase terminando, agora vamos instalar um plugin que vai facilitar nosso trabalho com tudo isso que instalamos e vamos utilizar ao longo de nosso dia-a-dia de trabalho. PyDev é o plugin que você precisa para desenvolver projetos em Python, sejam eles web ou não. Ele já vem com facilitadores para trabalhar com projetos em Django também. Para obter  mesmo, basta visitar http://www.pydev.org/download.html, onde você pode fazer o download do mesmo, ou optar pela instalação mais fácil e rápida. Procure por <strong>Quick Install</strong> na página, e encontrarás as instruções para instalar como plugin pelo próprio Eclipse:</p>
<p style="text-align: left">Vá para o  <strong>update manager </strong>(Menu Help &gt; Install New Software), e adicione a seguinte   	fonte: <a href="http://pydev.org/updates">http://pydev.org/updates</a></p>
<p style="text-align: center"><em><a title="tutorial-ambiente-figura-05-PyDev-no-Eclipse por thlopes, no Flickr" href="http://www.flickr.com/photos/thlopes/4578692062/"><img src="http://farm5.static.flickr.com/4024/4578692062_2b8ce7c68b_m.jpg" alt="tutorial-ambiente-figura-05-PyDev-no-Eclipse" width="240" height="168" /></a></em></p>
<p>Depois é só seguir os passos na tela, instalando apenas a primeira opção (PyDev &gt; PyDev for Eclipse). Depois de instalar tudo, reinicie o Eclipse. Se você brincar um pouco nele agora verá que já temos novas opções de novos projetos, perspectivas e uma série de outras coisas interessantes.</p>
<p style="text-align: center"><em><a title="tutorial-ambiente-figura-06-pydev-projects por thlopes, no Flickr" href="http://www.flickr.com/photos/thlopes/4578692068/"><img src="http://farm5.static.flickr.com/4023/4578692068_2c58809825_m.jpg" alt="tutorial-ambiente-figura-06-pydev-projects" width="240" height="193" /></a></em></p>
<h2>SVN com Subclipse</h2>
<p>Continuando, vamos instalar um plugin que vai nos ajudar com as tarefas de SVN. Não vamos explicar muito sobre SVN, vamos supor que você leitor, já está familiarizado com essa ferramenta de versionamento. Porém, caso não, há diversos tutoriais na internet onde você pode aprender um pouco mais sobre essa ferramenta. Voltando, basta entrar no site para encontrar referência de como instalar o Subclipse no seu Eclipse: http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA . Na página, procure pelo cabeçalho Installation Instructions, e você verá o passo-a-passo básico de como instalar o plugin. Para a versão que instalamos de Eclipse, o Subclipse 1.6.x é o correto. Expanda o itens, e marque os sub-itens listados abaixo (apenas os required):</p>
<ul>
<li>Subclipse (Required)</li>
<li>Subversion Client Adapter (Required)</li>
<li>Subversion JavaHL Native Library Adapter (Required)</li>
</ul>
<p>Depois de instalar tudo, reinicie o Eclipse novamente. Se você estiver no Linux/Gnome, e ver uma mensagem alertando sobre um bug relacionado ao Keyring, apenas dê Ok e prossiga. Vamos verificar se está tudo ok, Indo no menu File &gt; New&#8230; &gt; Project , depois expanda o item SVN, e cheque se há o item Checkout Projects from SVN.</p>
<p style="text-align: center"><em><a title="tutorial-ambiente-figura-07-subclipse-new-project por thlopes, no Flickr" href="http://www.flickr.com/photos/thlopes/4578692076/"><img src="http://farm5.static.flickr.com/4017/4578692076_e00afcb482_m.jpg" alt="tutorial-ambiente-figura-07-subclipse-new-project" width="240" height="192" /></a></em></p>
<p>Se você já tiver algum projeto no SVN, agora é a hora de tentar puxá-lo para sua máquina. Caso ocorra um erro informando que a biblioteca JavaHL não está instalada corretamente, instale o seguinte pacote via gerenciador do sistema (Linix/Gnome).</p>
<pre>thomas@thlopes:~$ sudo apt-get install libsvn-java</pre>
<p>Caso tenha esse mesmo problema em outros sistemas, verifique nesse Link:  http://subclipse.tigris.org/wiki/JavaHL e nese outro aqui: http://islandlinux.org/howto/installing-javahl-subclipseeclipse-ubuntu. Particularmente, só notei esse problema na versão 8.10 do Ubuntu. Depois de garantir que o Subclipse está instalado corretamente, podemos prosseguir com a parte final de nosso tutorial.</p>
<h2>Aptana Studio</h2>
<p>Instalar o Apta Studio para Eclipse agora vai ser fácil, mesmo processo de instalar os plugins acima, porém um pouco mais demorado pelo tamanho desse plugin que vai lhe permitir usar alguns facilitadores para desenvolvimento Web. Acesse http://www.aptana.org/studio/plugin e obtenha o endereço para configurar uma nova fonte de plugins para o Eclipse: http://download.aptana.org/tools/studio/plugin/install/studio. Basta seguir as instruções do próprio site, mas resumindo, adicione como fonte e selecione o único item que vai surgir para instalar: Aptana Studio. Prossiga os passos como nas instalações anteriores. Talvez demore um pouco, dependendo de sua conexão. Agora é a hora de levantar da cadeira, dar aquela espreguiçada, tomar um cafezinho, e se preparar para já começar a desenvolver!</p>
<p>Após esse passo, você já terá um Eclipse bem diferente do padrão, com diversas opções, pronto para trabalhar com o Google App Engine, e com muitos recursos para facilitar o desenvolvimento Web. Agora, é só fazer bom proveito desse canhão!!!</p>
<h2>Criando um projeto</h2>
<p>Para começar, é muito fácil. Basta criar um novo projeto em File &gt; New &gt; Project&#8230; &gt; PyDev &gt; PyDev Google App Engine Project, informar os parâmetros que ele mesmo vai pedir, para linkar a biblioteca do Google App Egine, e pronto, seu projeto estará pronto para ser trabalhado.</p>
<p style="text-align: center"><em><a title="tutorial-ambiente-figura-08-novo-projeto por thlopes, no Flickr" href="http://www.flickr.com/photos/thlopes/4578121553/"><img src="http://farm5.static.flickr.com/4048/4578121553_f72a1ae5ab_m.jpg" alt="tutorial-ambiente-figura-08-novo-projeto" width="240" height="199" /></a></em></p>
<p>Para rodar sua versão local e fazer os testes/debug, basta configurar o projeto para rodar como uma aplicação GAE pelo próprio PyDev. Clique com o botão direito sobre o Projeto no Package explorer, selecione Run As &gt; PyDev: Google App Run (Se não aparecer sobre o projeto, tente sobre a pasta src do mesmo). Pronto, seu projeto vai estar rodando no http://localhost:8080/, igual quando rodamos com a linha de comando mais acima.</p>
<p style="text-align: center"><em><a title="tutorial-ambiente-figura-09-pydev-gae-run por thlopes, no Flickr" href="http://www.flickr.com/photos/thlopes/4578121557/"><img src="http://farm5.static.flickr.com/4047/4578121557_485560847c_m.jpg" alt="tutorial-ambiente-figura-09-pydev-gae-run" width="240" height="167" /></a></em></p>
<h2 style="text-align: left">Mãos a obra!</h2>
<p style="text-align: left">É isso pessoal, já temos nosso ambiente pronto para arregaçar as mangas e começar a codificar! Em breve mando mais dicas de como personalizar o ambiente e turbiná-lo para outros tipos de projetos! Agradecimentos ao Maurício Lima e todo o pessoal da Crowds and Clouds!</p>
<!-- boo-widget start -->
					<script type="text/javascript">
					bb_keywords = 'macbook, ebook, python, Google';
					bb_bid = '23934';
					bb_lang = 'pt-BR';
					bb_name = 'custom';bb_width = "580";bb_limit = "5";</script>
					<script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
					<!-- boo-widget end --><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/THLopes?a=RBQJJMe4Cs0:SyqEjK5p5pc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/THLopes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=RBQJJMe4Cs0:SyqEjK5p5pc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/THLopes?i=RBQJJMe4Cs0:SyqEjK5p5pc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=RBQJJMe4Cs0:SyqEjK5p5pc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/THLopes?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=RBQJJMe4Cs0:SyqEjK5p5pc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/THLopes?i=RBQJJMe4Cs0:SyqEjK5p5pc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=RBQJJMe4Cs0:SyqEjK5p5pc:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/THLopes?i=RBQJJMe4Cs0:SyqEjK5p5pc:KwTdNBX3Jqk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.thlopes.com/2010/05/ambiente-desenvolvimento-google-app-engine/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>E se os browsers fossem meios de transporte?</title>
		<link>http://www.thlopes.com/2010/03/e-se-os-browsers-fossem-meios-de-transporte/</link>
		<comments>http://www.thlopes.com/2010/03/e-se-os-browsers-fossem-meios-de-transporte/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 03:52:20 +0000</pubDate>
		<dc:creator>Thomas Lopes</dc:creator>
				<category><![CDATA[Cultura]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[internet explorer]]></category>

		<guid isPermaLink="false">http://www.thlopes.com/?p=774</guid>
		<description><![CDATA[E se os browsers atuais fossem comparados aos meios de transporte?]]></description>
			<content:encoded><![CDATA[<p><a title="Browsers como meios de Transporte por thlopes, no Flickr" href="http://www.flickr.com/photos/thlopes/4474760223/"><img src="http://farm5.static.flickr.com/4069/4474760223_d7d3663931.jpg" alt="Browsers como meios de Transporte" width="500" height="367" /></a></p>
<p>Discordo da definição do Firefox, mas concordo com todas as demais! Via <a title="Post Original no UOL tecnologia" href="http://uoltecnologia.blog.uol.com.br/arch2010-03-28_2010-04-03.html">UOL Tecnologia</a></p>
<!-- boo-widget start -->
					<script type="text/javascript">
					bb_keywords = 'firefox';
					bb_bid = '23934';
					bb_lang = 'pt-BR';
					bb_name = 'custom';bb_width = "580";bb_limit = "5";</script>
					<script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
					<!-- boo-widget end --><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/THLopes?a=HpyRnoGXpbg:zLALpDFHcFo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/THLopes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=HpyRnoGXpbg:zLALpDFHcFo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/THLopes?i=HpyRnoGXpbg:zLALpDFHcFo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=HpyRnoGXpbg:zLALpDFHcFo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/THLopes?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=HpyRnoGXpbg:zLALpDFHcFo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/THLopes?i=HpyRnoGXpbg:zLALpDFHcFo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=HpyRnoGXpbg:zLALpDFHcFo:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/THLopes?i=HpyRnoGXpbg:zLALpDFHcFo:KwTdNBX3Jqk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.thlopes.com/2010/03/e-se-os-browsers-fossem-meios-de-transporte/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Todos querem Cassandra</title>
		<link>http://www.thlopes.com/2010/03/todos-querem-cassandra/</link>
		<comments>http://www.thlopes.com/2010/03/todos-querem-cassandra/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 11:00:01 +0000</pubDate>
		<dc:creator>Thomas Lopes</dc:creator>
				<category><![CDATA[Banco de dados]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Projetos]]></category>
		<category><![CDATA[tecnologia]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.thlopes.com/?p=759</guid>
		<description><![CDATA[Com esse título (e com esse logo), poderiamos começar uma novela. Mas estamos falando de outra novela: a da migração de banco de dados MySQL para Cassandra. Depois do Twitter, agora é o Digg quem decidiu migrar suas bases de dados para esse banco com um nome bem interessante.]]></description>
			<content:encoded><![CDATA[<p><a title="Cassandra database por thlopes, no Flickr" href="http://www.flickr.com/photos/thlopes/4433994858/"><img src="http://farm5.static.flickr.com/4054/4433994858_2ccd5f3998_o.png" alt="Cassandra database" width="500" height="100" /></a></p>
<p>Com esse título (e com esse logo), poderiamos começar uma novela. Mas estamos falando de outra novela: a da migração de banco de dados <a title="Site oficial do banco de dados MySQL" href="http://www.mysql.com/">MySQL</a> para <a title="Site oficial do banco de dados Cassandra" href="http://incubator.apache.org/cassandra/">Cassandra</a>. Depois do <a href="http://br-linux.org/2010/crescimento-faz-twitter-trocar-o-mysql-pelo-cassandra/">Twitter</a>, agora é o <a title="Digg migra base de MySQL para Cassandra" href="http://www.h-online.com/open/news/item/Digg-switches-to-NoSQL-Cassandra-952045.html">Digg quem decidiu migrar suas bases de dados</a> para esse banco com um nome bem interessante.</p>
<p>Cassandra é um banco de dados pós-relacional. Mas como esse termo não é muito conhecido, utilizaremos o termo <a title="Verbete NoSQL na Wikipedia, em inglês." href="http://en.wikipedia.org/wiki/Nosql">NoSQL</a>. Um repositório de dados leve, feito em Java, similar aos famosos <a href="http://couchdb.apache.org/">CouchDB</a> (outro projeto que, assim como o Cassandra, é incubado na <a href="http://incubator.apache.org/">Apache Incubator</a>) e <a href="http://labs.google.com/papers/bigtable.html">BigTable</a>, utilizando ferramentas similares ao <a href="http://hadoop.apache.org/">Hadoop</a> (coincidência? Mais um projeto incubado na Apache) e conceitos como <a href="http://en.wikipedia.org/wiki/MapReduce">MapReduce</a> (para bancos distribuídos). Agora vem o fato mais curioso: Esse projeto foi inicialmente desenvolvido pelo Facebook, e <a href="http://www.new.facebook.com/note.php?note_id=24413138919">foi aberto (open source) em 2008</a>. Mais uma rede social, crescendo e migrando para bases não-relacionais. Que ironia: justamente as redes sociais, onde as relações são muito valiosas.</p>
<p>Apesar do ganho no desempenho, sei que esse tipo de transição é muito &#8220;dolorosa&#8221;. Esses tipos de banco de dados não-relacionais realmente podem dar um nó no cérebro dos desenvolvedores. É muito complicado viver sem os joins depois de algum tempo trabalhando com eles.</p>
<p>Segundo os engenheiros do Twitter, precisavam de um banco de dados escalável que &#8220;crescesse sozinho&#8221;. Realmente, imaginar monstros como Twitter &#8211; que cresceu mais de 20 vezes em menos de um ano, alcançado a marca de 50 milhões de Tweets diários &#8211; e do Digg (onde muitos usuários compartilham notícias e comentários o tempo todo) e seus dba&#8217;s brigando todos os dias para conter a bomba do MySQL, enxertando cada vez mais hardware para que não exploda na cara dos usuários. Nessa hora, é questão de escolha: onde vamos quebrar a cabeça para resolver o problema? Os desenvolvedores decidem.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/THLopes?a=7RVa08ih72Q:ERn8KHPYIUw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/THLopes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=7RVa08ih72Q:ERn8KHPYIUw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/THLopes?i=7RVa08ih72Q:ERn8KHPYIUw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=7RVa08ih72Q:ERn8KHPYIUw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/THLopes?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=7RVa08ih72Q:ERn8KHPYIUw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/THLopes?i=7RVa08ih72Q:ERn8KHPYIUw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=7RVa08ih72Q:ERn8KHPYIUw:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/THLopes?i=7RVa08ih72Q:ERn8KHPYIUw:KwTdNBX3Jqk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.thlopes.com/2010/03/todos-querem-cassandra/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FrameWARks PHP: Participe dessa guerra</title>
		<link>http://www.thlopes.com/2010/03/framewarks-php-participe-dessa-guerra/</link>
		<comments>http://www.thlopes.com/2010/03/framewarks-php-participe-dessa-guerra/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 11:00:38 +0000</pubDate>
		<dc:creator>Thomas Lopes</dc:creator>
				<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.thlopes.com/?p=753</guid>
		<description><![CDATA[
Hoje mesmo (15/03), você pode conferir essa palestra, via Internet, onde quatro profissionais do SERPRO discutiram sobre seus frameworks PHP de escolha: Cake, Zend, Code Igniter e Symfony. Confirma mais no texto de Paulo Pastore, via BR-Linux:
“O Comitê Técnico de Implementação Software Livre – CISL promoverá a palestra técnica sobre FrameWARks PHP – Cake, Zend, [...]]]></description>
			<content:encoded><![CDATA[<p><a title="FrameWARks PHP por thlopes, no Flickr" href="http://www.flickr.com/photos/thlopes/4432458792/"><img src="http://farm5.static.flickr.com/4013/4432458792_0177d7a162.jpg" alt="FrameWARks PHP" width="500" height="87" /></a><br />
Hoje mesmo (15/03), você pode conferir <a title="Palestra ao vivo sobre Frameworks PHP" href="http://streaming.serpro.gov.br/cisl/">essa palestra, via Internet, onde quatro profissionais do SERPRO discutiram sobre seus frameworks PHP</a> de escolha: <a title="Site Oficial do Framework CakePHP" href="http://cakephp.org/">Cake</a>, <a title="site oficial do Framework Zend" href="http://framework.zend.com/">Zend</a>, <a title="Site oficial do Framework Code Igniter" href="http://codeigniter.com/">Code Igniter</a> e <a title="Site oficial do framework Symfony" href="http://www.symfony-project.org/">Symfony</a>. Confirma mais no texto de Paulo Pastore, via <a title="Fonte do Conteúdo desse post" href="http://br-linux.org/2010/palestra-tecnica-framewarks-php-segunda-feira-via-internet/">BR-Linux</a>:</p>
<blockquote><p>“O Comitê Técnico de Implementação Software Livre – CISL promoverá a palestra técnica sobre FrameWARks PHP – Cake, Zend, Code Igniter, Symfony, que será realizada segunda-feira, 15/03/2010, das 15h às 17h (horário de Brasília), no auditório da regional Salvador e transmitido por videoconferência no auditório da Sede do Serpro.</p>
<p>Programa: Com fundo de pano “militar”, “bélico”, quatro desenvolvedores PHP tentam defender seu framework. Numa das maiores batalhas já vistas nas comunidades de desenvolvimento PHP, eles apontam vantagens de seu framework e desvantagens dos outros. Com final surpreendente! A atividade será transmitida pela Internet, através do serviço Assiste – Vídeo Streaming Livre do Serpro. Para acompanhar, acesse: http://streaming.serpro.gov.br/cisl/ ou clique no webbanner da palestra. Palestrantes: Marcio Lima Albuquerque, Leonardo Thomas Torres Santos, Marcelo Curi da Silva e Sandro de Carvalho Franco Mais informações: cisl@serpro.gov.br”</p></blockquote>
<p>Eu, particularmente, prefiro o <a href="http://cakephp.org/">CakePHP</a>,  pela similaridade com o <a title="Site oficial do Framework Django, em Python" href="http://www.djangoproject.com/">Django, em Python</a>. Mas já dei uma olhada no Code Igniter, e me pareceu muito bom, principalmente por ser ainda mais fácil de iniciar seu uso. Bom, vamos assistir e ver se conseguem me convencer de algo diferente!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/THLopes?a=-0BDrPuEX6A:OHPYYYVkclM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/THLopes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=-0BDrPuEX6A:OHPYYYVkclM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/THLopes?i=-0BDrPuEX6A:OHPYYYVkclM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=-0BDrPuEX6A:OHPYYYVkclM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/THLopes?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=-0BDrPuEX6A:OHPYYYVkclM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/THLopes?i=-0BDrPuEX6A:OHPYYYVkclM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=-0BDrPuEX6A:OHPYYYVkclM:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/THLopes?i=-0BDrPuEX6A:OHPYYYVkclM:KwTdNBX3Jqk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.thlopes.com/2010/03/framewarks-php-participe-dessa-guerra/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visualizando a Internet</title>
		<link>http://www.thlopes.com/2010/03/visualizando-a-internet/</link>
		<comments>http://www.thlopes.com/2010/03/visualizando-a-internet/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 15:24:08 +0000</pubDate>
		<dc:creator>Thomas Lopes</dc:creator>
				<category><![CDATA[Ciência]]></category>
		<category><![CDATA[Fatos]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.thlopes.com/?p=750</guid>
		<description><![CDATA[Encontrei no site da BBC, esse incrível TreeMap (pra quem não sabe, é um gráfico que permite visualizar grandes quantidades de dados em um espaço pequeno, de uma forma bem condensada) mostrando uma 'fotografia' que representaria nossa internet, através de uma pesquisa com os Top 100 Sites, realizada pelo grupo Nielsen, como parte do projeto SuperPower, uma temporada de programas explorando o poder da Internet.]]></description>
			<content:encoded><![CDATA[<p><a title="Treemap of the Internet Top 100 Sites por thlopes, no Flickr" href="http://www.flickr.com/photos/thlopes/4431585661/"><img src="http://farm3.static.flickr.com/2685/4431585661_81276f0303.jpg" alt="Treemap of the Internet Top 100 Sites" width="500" height="255" /></a></p>
<p><a title="Treemap of the Internet Top 100 Sites por thlopes, no Flickr" href="http://www.flickr.com/photos/thlopes/4431585661/"></a>Encontrei <a title="Top 100 sites da Internet, por Nielsen Group" href="http://news.bbc.co.uk/2/hi/technology/8562801.stm">no site da BBC, esse incrível TreeMap</a> (pra quem não sabe, é um gráfico que permite visualizar grandes quantidades de dados em um espaço pequeno, de uma forma bem condensada) mostrando uma &#8216;fotografia&#8217; que representaria nossa internet, através de uma pesquisa com os Top 100 Sites. Realizada pelo grupo Nielsen, como parte do projeto <a href="http://www.bbc.co.uk/worldservice/specialreports/superpower.shtml">SuperPower</a>, uma temporada de programas explorando o poder da Internet.</p>
<p>Cada conjunto de quadrados da mesma família de cores representa um dos sites daquela categoria. Por exemplo, em Busca e Portais, o maior grupo, temos 5 grandes sites disputando terreno na lista. Já em Vídeo, temos apenas, ou seja, apenas um grande site dessa categoria entrou no Top 100.</p>
<p>Visitando <a href="http://news.bbc.co.uk/2/hi/technology/8562801.stm">o site da BBC, você pode interagir melhor com o gráfico</a>, e visualizar detalhes de cada categoria.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/THLopes?a=1xo0NUjGVzo:xw_nvKuATZE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/THLopes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=1xo0NUjGVzo:xw_nvKuATZE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/THLopes?i=1xo0NUjGVzo:xw_nvKuATZE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=1xo0NUjGVzo:xw_nvKuATZE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/THLopes?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=1xo0NUjGVzo:xw_nvKuATZE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/THLopes?i=1xo0NUjGVzo:xw_nvKuATZE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/THLopes?a=1xo0NUjGVzo:xw_nvKuATZE:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/THLopes?i=1xo0NUjGVzo:xw_nvKuATZE:KwTdNBX3Jqk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.thlopes.com/2010/03/visualizando-a-internet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
