<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-13796465</id><updated>2011-12-30T12:40:05.311-02:00</updated><category term='ruby'/><category term='gerencia'/><category term='xml'/><category term='reviews'/><category term='javascript'/><category term='java'/><category term='php'/><category term='ajax'/><category term='videos'/><category term='webdesign'/><category term='hosting'/><category term='regexp'/><category term='jme'/><category term='videogames'/><category term='curiosidades'/><category term='netbeans'/><category term='c'/><category term='firefox'/><category term='dinheiro'/><category term='web2.0'/><category term='opensource'/><category term='groovy'/><category term='python'/><category term='hacks'/><category term='unix'/><category term='rss'/><category term='haskell'/><category term='noticias'/><category term='rails'/><category term='windows'/><category term='eclipse'/><category term='livros'/><category term='jruby'/><category term='interludes'/><category term='jee'/><category term='dotnet'/><category term='pdas'/><category term='programaslegais'/><category term='designpatterns'/><category term='hardware'/><category term='humor'/><title type='text'>Googletron</title><subtitle type='html'>Software with medium fries, please.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default?start-index=101&amp;max-results=100'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>133</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-13796465.post-7529290550617096348</id><published>2007-03-24T21:31:00.000-03:00</published><updated>2007-03-24T21:34:22.678-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='noticias'/><title type='text'>Casa nova, vida nova! Yay!</title><content type='html'>A partir de hoje, as operações deste blog se mudam para: http://www.hervalfreire.com/googletron&lt;br /&gt;&lt;br /&gt;Anota aí: &lt;a href="http://www.hervalfreire.com/googletron"&gt;http://www.hervalfreire.com/googletron&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;O último que sair, feche a porta e apague a luz...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-7529290550617096348?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.hervalfreire.com/googletron' title='Casa nova, vida nova! Yay!'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/7529290550617096348/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=7529290550617096348&amp;isPopup=true' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/7529290550617096348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/7529290550617096348'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/casa-nova-vida-nova-yay.html' title='Casa nova, vida nova! Yay!'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-6744591619654305144</id><published>2007-03-24T20:07:00.001-03:00</published><updated>2007-03-24T20:11:03.587-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Microsoft Vista Speech Recognition Tested - Perl Scripting</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;&lt;object height='350' width='425'&gt;&lt;param value='http://youtube.com/v/KyLqUf4cdwc' name='movie'&gt;&lt;/param&gt;&lt;embed height='350' width='425' type='application/x-shockwave-flash' src='http://youtube.com/v/KyLqUf4cdwc'&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-6744591619654305144?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/6744591619654305144/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=6744591619654305144&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/6744591619654305144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/6744591619654305144'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/microsoft-vista-speech-recognition.html' title='Microsoft Vista Speech Recognition Tested - Perl Scripting'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-6769123088085430582</id><published>2007-03-24T19:21:00.000-03:00</published><updated>2007-03-24T19:24:29.413-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reviews'/><category scheme='http://www.blogger.com/atom/ns#' term='hosting'/><title type='text'>Desapontamentos de sábado a noite</title><content type='html'>Nem tudo são flores, no meu &lt;a href="http://googletron.blogspot.com/2007/03/lua-de-mel-dos-sonhos.html"&gt;novo casamento&lt;/a&gt;. Acabei de descobrir, assim, por acaso, que a noiva costuma &lt;a href="http://www.digg.com/tech_news/In_face_of_outage_DreamHost_offers_SLA/"&gt;entrar em coma profundo&lt;/a&gt; sem avisar, &lt;a href="http://www.red-sweater.com/blog/287/dreamhosts-super-lame-no-i-mean-really-super-lame-apology"&gt;algumas vezes por ano&lt;/a&gt;. E acorda como se nada tivesse acontecido.&lt;br /&gt;É, o preço do baixo custo. Estava bom demais para ser verdade... :-P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-6769123088085430582?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/6769123088085430582/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=6769123088085430582&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/6769123088085430582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/6769123088085430582'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/desapontamentos-de-sbado-noite.html' title='Desapontamentos de sábado a noite'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-627390748524524278</id><published>2007-03-24T11:10:00.000-03:00</published><updated>2007-03-24T11:40:30.312-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>Plugins on Rails</title><content type='html'>Uma das features mais interessantes do Rails é o mecanismo de Plugins. Até bem pouco tempo, escrever extensões para RoR era uma tarefa confusa, já que o framework suportava plugins, engines e components.&lt;br /&gt;Agora decidiram entender que nem toda flexibilidade é benéfica e unificaram a coisa toda ao redor dos plugins. No &lt;a href="http://wiki.rubyonrails.org/rails/pages/Plugins"&gt;Wiki do Rails&lt;/a&gt; já existe bastante material sobre como utilizar os milhões de plugins já existentes. Em alguns casos, dá para desenvolver aplicações inteiras apenas juntando plugins e aparando as pontas...&lt;br /&gt;Agora, se o seu negócio é mesmo desenvolver o seu próprio plugin, &lt;a href="http://wiki.rubyonrails.org/rails/pages/HowTosPlugins"&gt;recomendo começar por aqui&lt;/a&gt;. Ao contrário da maioria das coisas no universo Ruby, o processo de desenvolvimento de plugins está bem documentado e cheio de exemplos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-627390748524524278?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://wiki.rubyonrails.org/rails/pages/Plugins' title='Plugins on Rails'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/627390748524524278/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=627390748524524278&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/627390748524524278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/627390748524524278'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/plugins-on-rails.html' title='Plugins on Rails'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-2815085408224193546</id><published>2007-03-23T22:32:00.000-03:00</published><updated>2007-03-23T22:52:53.676-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reviews'/><category scheme='http://www.blogger.com/atom/ns#' term='hosting'/><title type='text'>Lua de mel dos sonhos...</title><content type='html'>Num blog tão cheio de &lt;span style="font-style:italic;"&gt;ranting&lt;/span&gt;, uma pausa para elogiar uma das poucas ilhas de sanidade da Internet. Depois de anos flertando com os promíscuos serviços de hospedagem brasileiros (onde você merece um prêmio se conseguir botar num site ar!), depois de uma curta e frustrante experiência com o &lt;a href="http://www.godaddy.com"&gt;godaddy&lt;/a&gt; e finalmente um longo e conturbado casamento com uma conta compartilhada no &lt;a href="http://www.eapps.com"&gt;eapps&lt;/a&gt;, resolvi experimentar o serviço do DreamHost, por sugestão de um amigo.&lt;br /&gt;Por algum motivo, nunca tinha parado para analisar. Com um preço 50% inferior ao que atualmente pago para manter sites no eApps, o DreamHost oferece 160gb de espaço (contra 2gb de minha hospedagem anterior), 2 TERA de tráfego (conta ridículos 30gb de meu casamento antigo), e acesso full (via ftp, ssh, telnet, whatever) a uma box Linux compartilhada.&lt;br /&gt;Com jeitão de Web 2.0, o painel de controle do DreamHost é realmente muito funcional. Dá para configurar praticamente tudo sem ter que recorrer ao shell. A conta já vem preparadinha para hospedar repositórios SVN, qualquer número de bancos de dados MySql e domínios. E o suporte, pelo visto, funciona também: até agora, todos os tickets de suporte (3 no total) foram atendidos rapidamente, e sem maiores complicações.&lt;br /&gt;Saldo final da operação: consegui botar dois sites no ar em menos de 2 horas, do jeitinho que eu queria. Ah, ia me esquecendo: eles também oferecem 97 dias de garantia de dinheiro de volta, em caso de desistência. Essa lua de mel promete... :)&lt;br /&gt;&lt;br /&gt;Em tempo: caso você, querido leitor, decida experimentar uma conta no DreamHost, &lt;a href="http://www.dreamhost.com/r.cgi?292656"&gt;registre-se e faça um test drive&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-2815085408224193546?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/2815085408224193546/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=2815085408224193546&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/2815085408224193546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/2815085408224193546'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/lua-de-mel-dos-sonhos.html' title='Lua de mel dos sonhos...'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-2798991502945711279</id><published>2007-03-22T13:51:00.000-03:00</published><updated>2007-03-22T13:53:57.568-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Closures no Java 7</title><content type='html'>&lt;a href="http://getahead.org/blog/joe/2007/03/15/emerging_java_technologies_at_qcon.html"&gt;Uma série de exemplos&lt;/a&gt; de como deve funcionar a especificação de closures que deve sair no Java 7, de acordo com a &lt;a href="http://www.javac.info/closures-v05.html"&gt;especificação de closures para Java&lt;/a&gt;. No mínimo, bem esquisito... :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-2798991502945711279?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/2798991502945711279/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=2798991502945711279&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/2798991502945711279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/2798991502945711279'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/closures-no-java-7.html' title='Closures no Java 7'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-6356835268647064790</id><published>2007-03-22T13:22:00.000-03:00</published><updated>2007-03-22T13:33:18.796-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>Pegadinha Rails da semana: stale sessions</title><content type='html'>O dia hoje começou mal. Minha &lt;a href="http://www.mapservices.org/myguestmap"&gt;aplicação Rails&lt;/a&gt; fora do ar sem nenhum motivo aparente, e um e-mail do hosting reclamando da cota de disco estourada.&lt;br /&gt;4 horas e muita busca frustrada depois, descobrimos que o /tmp/sessions da aplicação continha 300 MIL arquivos. Um arquivo para cada usuário que acessou o site DESDE O PRIMEIRO DIA. Traduzindo para bom português: descobri da pior maneira possível que o Rails CRIA os arquivos de sessão, mas não apaga.&lt;br /&gt;Problema resolvido, googlei um pouco a respeito e descobri que na verdade este "bug" é uma "&lt;a href="http://wiki.rubyonrails.org/rails/pages/TipsAndTricks"&gt;feature" documentada&lt;/a&gt;. Então fica a sugestão: antes que seu hosting venha dar um esporro em você por sua aplicaçãozinha gulosa, &lt;a href="http://wiki.rubyonrails.com/rails/pages/HowtoChangeSessionStore"&gt;mude a maneira default de gerenciamento de sessões de sua aplicação&lt;/a&gt; para usar banco de dados ou sessões em memória. Afinal, no universo BancoDeDados, &lt;a href="http://www.realityforge.org/articles/2006/03/01/removing-stale-rails-sessions"&gt;os hacks são bem mais elegantes&lt;/a&gt;.&lt;br /&gt;Como diria o filósofo, "de perto, todas as coisas são feias"...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-6356835268647064790?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/6356835268647064790/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=6356835268647064790&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/6356835268647064790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/6356835268647064790'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/pegadinha-rails-da-semana-stale.html' title='Pegadinha Rails da semana: stale sessions'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-22215874406028165</id><published>2007-03-22T10:37:00.000-03:00</published><updated>2007-03-22T10:40:39.062-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programaslegais'/><title type='text'>Launchy</title><content type='html'>&lt;a href="http://www.launchy.net"&gt;Um programinha muito interessante&lt;/a&gt; que reproduz a única feature legal do Windows Vista: você aperta alt+space, sai digitando o nome do programa ou arquivo que quer abrir e o Launchy faz o matching do nome com as aplicações disponíveis. &lt;br /&gt;Adeus, menu iniciar... :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-22215874406028165?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.launchy.net' title='Launchy'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/22215874406028165/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=22215874406028165&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/22215874406028165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/22215874406028165'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/launchy.html' title='Launchy'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-2988517832593393500</id><published>2007-03-20T13:28:00.000-03:00</published><updated>2007-03-20T13:31:25.938-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>PHP no Java 6</title><content type='html'>Um &lt;a href="http://www.groovy-news.org/e/page/axelclk?entry=experiments_with_the_jsr_223"&gt;tutorial rápido&lt;/a&gt; sobre o &lt;a href="http://quercus.caucho.com/"&gt;Quercus&lt;/a&gt; - um engine para execução de código PHP 5.0 usando a nova especificação de script engine (JSR 223).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-2988517832593393500?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.groovy-news.org/e/page/axelclk?entry=experiments_with_the_jsr_223' title='PHP no Java 6'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/2988517832593393500/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=2988517832593393500&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/2988517832593393500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/2988517832593393500'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/php-no-java-6.html' title='PHP no Java 6'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-5589429879112340795</id><published>2007-03-19T16:24:00.000-03:00</published><updated>2007-03-19T16:27:10.903-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Novas Collections no Java 6!</title><content type='html'>Aqui você encontra &lt;a href="http://www.javabeat.net/javabeat/java6/articles/what_is_new_in_java_6_0_collections_api.php"&gt;um quickstart bem legal sobre as novas interfaces de collections do Java 6&lt;/a&gt;: em resumo, uma nova interface de "fila dupla" (double ended queue, ou Deque) e duas novas interfaces para maps/sets que permitem a "filtragem" de elementos (por exemplo, pegar todos os elementos de um set que sejam menores que 10).&lt;br /&gt;O rant do dia vai para a incrivelmente bem bolada interface Deque, que oferece dois métodos para adicionar, dois para remover, dois para pegar o primeiro elemento e dois para pegar o último. A &lt;a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Queue.html"&gt;interface Queue&lt;/a&gt; havia sido adicionada no Java 5 com um método para adicionar elementos (offer()) e dois para recuperar (peek(), que não remove da fila, e poll(), que retorna e remove). Pois bem, a &lt;a href="http://java.sun.com/javase/6/docs/api/java/util/Deque.html"&gt;Deque&lt;/a&gt; foi muito mais além oferecendo (além dos já esperados peekFirst, e poolFirst, já que estamos falando de uma fila de mão dupla) mais um monte de novos métodos: addFirst, removeFirst, addLast, removeLast, offerLast, poolLast, peekFirst, peekLast. Pra que tanto método? Para poder oferecer um set de métodos que retorna false quando não foi possível adicionar/remover e outro que lance exceptions quando isto ocorrer.&lt;br /&gt;Simplesmente formidável! Tenho certeza que pelo esta grandiosa interface múltipla vai ter pelo menos um uso: pegadinha em prova de certificação.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-5589429879112340795?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.javabeat.net/javabeat/java6/articles/what_is_new_in_java_6_0_collections_api.php' title='Novas Collections no Java 6!'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/5589429879112340795/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=5589429879112340795&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/5589429879112340795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/5589429879112340795'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/novas-collections-no-java-6.html' title='Novas Collections no Java 6!'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-2249361913768456223</id><published>2007-03-17T10:35:00.000-03:00</published><updated>2007-03-17T10:40:45.133-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='noticias'/><title type='text'>Softbras???</title><content type='html'>Num país economicamente subdesenvolvido onde a principal fonte de receita para o mercado de TI é o governo, esta notícia é realmente excepcional. Depois da idéia estúpida de "software livre" do primeiro mandato, agora essa (que ainda não passa de boato, mas pelo que eu tenho visto tem tudo para ser verdade).&lt;br /&gt;Parabéns ao governo Lula. Se superando a cada dia!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-2249361913768456223?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://w3editora.relazione.com.br/uploads/softbras.pdf' title='Softbras???'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/2249361913768456223/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=2249361913768456223&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/2249361913768456223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/2249361913768456223'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/softbras.html' title='Softbras???'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-2202179774661164915</id><published>2007-03-16T16:33:00.000-03:00</published><updated>2007-03-16T17:21:50.988-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='noticias'/><category scheme='http://www.blogger.com/atom/ns#' term='livros'/><title type='text'>Caindo na Real!</title><content type='html'>Tá no ar: &lt;a href="http://gettingreal.37signals.com/GR_por.php"&gt;a tradução do livro Getting Real para português&lt;/a&gt; está finalmente disponível, após um longo período de re-revisão graças a alguns acidentes de percurso.&lt;br /&gt;Apesar do extremismo em alguns capítulos, a leitura realmente vale a pena.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-2202179774661164915?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://gettingreal.37signals.com/GR_por.php' title='Caindo na Real!'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/2202179774661164915/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=2202179774661164915&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/2202179774661164915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/2202179774661164915'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/caindo-na-real.html' title='Caindo na Real!'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-4374475993815784868</id><published>2007-03-16T08:39:00.001-03:00</published><updated>2007-03-16T08:39:38.717-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='noticias'/><title type='text'>Vem aí: mais uma API Java para manipulação de datas</title><content type='html'>Todo programador Java já passou pelo trauma que é manipular datas no Java. Constatar que Janeiro é o mês zero. Perceber que objetos Date são representações absolutas de tempo (milissegundos transcorridos desde 1 de janeiro de 1970), mas as vezes quando você serializa a data de lá pra cá (especialmente através de drivers jdbc), os milissegundos mudam. Descobrir que não existe um jeito conveniente de calcular diferença de dias (ou horas, ou minutos) entre dois períodos. Sem falar nas infindáveis dores de cabeça causadas por bugs na tabela de horário de verão.&lt;br /&gt;Agora a Sun anunciou a cura de todos os problemas: &lt;a href="http://www.jcp.org/en/jsr/detail?id=310"&gt;um novo JSR todinho para implementar uma nova API de data/hora para o Java&lt;/a&gt;!&lt;br /&gt;Tudo que eu precisava. Mais uma API que faz a mesma coisa, e mais uma vez &lt;a href="http://en.wikipedia.org/wiki/Design_by_committee"&gt;desenvolvida por um comitê&lt;/a&gt;. Mal posso esperar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-4374475993815784868?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.jcp.org/en/jsr/detail?id=310' title='Vem aí: mais uma API Java para manipulação de datas'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/4374475993815784868/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=4374475993815784868&amp;isPopup=true' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/4374475993815784868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/4374475993815784868'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/vem-mais-uma-api-java-para-manipulao-de.html' title='Vem aí: mais uma API Java para manipulação de datas'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-3129483751781186329</id><published>2007-03-15T20:24:00.001-03:00</published><updated>2007-03-15T20:24:18.350-03:00</updated><title type='text'>Aprendam, crianças: operações financeiras com double, não!</title><content type='html'>&lt;a href="http://www.flickr.com/photos/herval/422510565/" title="photo sharing"&gt;&lt;img src="http://farm1.static.flickr.com/132/422510565_0d2610d02d_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;&lt;a href="http://www.flickr.com/photos/herval/422510565/"&gt;Belo saldo, fernandinho&lt;/a&gt; &lt;br /&gt;Originally uploaded by &lt;a href="http://www.flickr.com/people/herval/"&gt;herval&lt;/a&gt;.&lt;/span&gt;&lt;br clear="all" /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-3129483751781186329?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/3129483751781186329/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=3129483751781186329&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/3129483751781186329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/3129483751781186329'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/aprendam-crianas-operaes-financeiras.html' title='Aprendam, crianças: operações financeiras com double, não!'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm1.static.flickr.com/132/422510565_0d2610d02d_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-3662570317193691778</id><published>2007-03-14T21:44:00.000-03:00</published><updated>2007-03-14T21:52:18.212-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Ruby para Javeiros: classForName()</title><content type='html'>Um dos recursos mais utilizados do pacote de reflection do Java, o classForName permite instanciar uma classe sabendo apenas o seu nome. Praticamente todo programador Java já utilizou este método - mesmo que sem perceber, para localizar drivers JDBC.&lt;br /&gt;No Ruby, classes são símbolos - e a sua carga dinâmica pode ser feita da mesma forma que qualquer outro símbolo: utilizando-se o método &lt;span style="font-style:italic;"&gt;const_get()&lt;/span&gt;, definido na classe Module.&lt;br /&gt;O fato de basicamente tudo no Ruby "extender" Module de uma forma ou de outra faz com que o const_get() possa ser usado de maneiras bem feias: trata-se basicamente de um método estático de qualquer classe!&lt;br /&gt;Um exemplo básico de como inicializar uma classe a partir de seu nome:&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;class Bla&lt;br /&gt;  def initialize&lt;br /&gt;    puts "tada!"&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;instancia = Module.const_get("Bla")&lt;br /&gt;puts instancia.class =&gt; "Bla"&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ou então, quem sabe, de um jeio mais elegante:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;instancia = Kernel.const_get(:Bla)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Bonito. Mas ei, e se meu objetivo for escrever código ilegível???&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;instancia = "yadayada".class.const_get "Bla"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ah... Muito melhor agora. As vezes essa flexibilidade toda do Ruby cai como uma bela feijoada antes de dormir...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-3662570317193691778?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/3662570317193691778/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=3662570317193691778&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/3662570317193691778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/3662570317193691778'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/ruby-para-javeiros-classforname.html' title='Ruby para Javeiros: classForName()'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-8607041573574616468</id><published>2007-03-13T16:47:00.000-03:00</published><updated>2007-03-13T16:50:41.940-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='noticias'/><title type='text'>Ruby 1.8.6!</title><content type='html'>Recém saído do forno! A lista completa de novidades do novo release você encontra &lt;a href="http://svn.ruby-lang.org/repos/ruby/tags/v1_8_6/NEWS"&gt;aqui&lt;/a&gt; e &lt;a href="http://svn.ruby-lang.org/repos/ruby/tags/v1_8_6/ChangeLog"&gt;aqui&lt;/a&gt;. Basicamente algumas melhorias (a mais relevante parece ser no gerenciamento de threads) e muitos, MUITOS bugfixes!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-8607041573574616468?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.ruby-lang.org/en/' title='Ruby 1.8.6!'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/8607041573574616468/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=8607041573574616468&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/8607041573574616468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/8607041573574616468'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/ruby-186.html' title='Ruby 1.8.6!'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-3740989673539049512</id><published>2007-03-11T19:13:00.000-03:00</published><updated>2007-03-11T19:22:24.293-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><title type='text'>Problema rúbico do dia: formatando números</title><content type='html'>A primeira impressão de quase todo mundo para quem tenho mostrado o Ruby é a mesma: "puxa, como é fácil!", "nossa, como é conciso", "só isso de código?". Só flores, até que surge aquele probleminha bobo que se está acostumado a resolver em outra linguagem, e pronto. Uma das principais falhas da linguagem (sua falta de documentação organizada) salta aos olhos.&lt;br /&gt;O problema do dia é: como formatar um número?&lt;br /&gt;O desenvolvedor Java médio está familiarizado com os NumberFormatters da vida, e vai certamente procurar por algum mecanismo similar no Ruby. Em vão. O negócio, neste caso, funciona como no C: a formatação tem que ser feita em uma representação String do número, ou nada feito:&lt;br /&gt;&lt;br /&gt;meu_numero = 1.234465&lt;br /&gt;puts meu_numero # vai sempre imprimir o número sem formatação&lt;br /&gt;puts "%.2f" % meu_numero # =&gt; 1.23&lt;br /&gt;&lt;br /&gt;Em tempo: a lib &lt;a href="http://facets.rubyforge.org/"&gt;facets&lt;/a&gt; inclui uma maneira elegante de formatar números:&lt;br /&gt;&lt;br /&gt;meu_numero = 1.234465&lt;br /&gt;puts meu_numero.round_at(2) # =&gt; 1.23&lt;br /&gt;&lt;br /&gt;Muito mais limpo. Aliás, o Facets inclui maneiras elegantes de resolver muitos outros pequenos problemas, para quem não tiver problemas em depender de libs "não core"...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-3740989673539049512?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/3740989673539049512/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=3740989673539049512&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/3740989673539049512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/3740989673539049512'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/problema-rbico-do-dia-formatando-nmeros.html' title='Problema rúbico do dia: formatando números'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112181870289338883</id><published>2007-03-10T09:50:00.000-03:00</published><updated>2007-03-10T09:42:17.823-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='noticias'/><category scheme='http://www.blogger.com/atom/ns#' term='jee'/><title type='text'>Trocando a roupa de um Mamute (sem parar a boiada)</title><content type='html'>Como o Wal-Mart promoveu a migração de seu site (um dos mais visitados do mundo, diga-se de passagem) para o Java 5.0 - sem pânico e sem tiros no escuro.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112181870289338883?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.theserverside.com/articles/article.tss?l=MigratingtoJava5&amp;News06_21_05-click' title='Trocando a roupa de um Mamute (sem parar a boiada)'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112181870289338883/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112181870289338883&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112181870289338883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112181870289338883'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/trocando-roupa-de-um-mamute-sem-parar.html' title='Trocando a roupa de um Mamute (sem parar a boiada)'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-9080493655610137826</id><published>2007-03-10T09:44:00.000-03:00</published><updated>2007-03-10T09:52:31.391-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>Dojo Toolkit</title><content type='html'>Uma biblioteca de Javascript com muita coisa similar ao &lt;a href="http://script.aculo.us/"&gt;Scriptaculous&lt;/a&gt; - e algo a mais.&lt;br /&gt;Pra os programadores RoR, já existe também &lt;a href="http://agilewebdevelopment.com/plugins/dojo_toolbocks"&gt;um plugin&lt;/a&gt; para integrar o Dojo com Rails de forma transparente, do mesmo jeito que funciona a integração scriptaculous/rails na ditribuição padrão. O componente de edição de texto (com suporte a formatação, como o editor do próprio blogger.com) é um dos mais interessantes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-9080493655610137826?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://dojotoolkit.org/' title='Dojo Toolkit'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/9080493655610137826/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=9080493655610137826&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/9080493655610137826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/9080493655610137826'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/dojo-toolkit.html' title='Dojo Toolkit'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-620695835131679465</id><published>2007-03-08T19:53:00.000-03:00</published><updated>2007-03-08T20:41:25.913-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>Ferret</title><content type='html'>Na verdade um port para código nativo da ferramenta &lt;a style="font-family: verdana;" href="http://lucene.apache.org/"&gt;Apache Lucene&lt;/a&gt;, o Ferret é uma engine de texto ("full text search") rápida e com suporte a uma sintaxe bastante rica de indexação e busca. O suporte a Rails (através do plugin &lt;a style="font-family: verdana;" href="http://projects.jkraemer.net/acts_as_ferret/wiki"&gt;acts_as_ferret&lt;/a&gt;) é tão simples que dá até medo: vamos supor um sistema hipotético de (surpresa!) blogging. Depois de longos 5 minutos de desenvolvimento, eu já tenho meu modelo de Post:&lt;br /&gt;&lt;br /&gt;class Post &amp;lt; ActiveRecords::Base&lt;br /&gt;  attr_accessor :text, :user, :title, :creation_date&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;Para utilizar o Ferret, é preciso primeiramente instalar o gem da engine:&lt;br /&gt;&lt;br /&gt;gem install ferret&lt;br /&gt;&lt;br /&gt;Após concluído o processo de instalação, precisamos também do plugin, em nosso projeto:&lt;br /&gt;&lt;br /&gt;ruby script/plugin install svn://projects.jkraemer.net/acts_as_ferret/tags/stable/acts_as_ferret&lt;br /&gt;&lt;br /&gt;Muito bom, muito bonito. Agora vamos à difícil tarefa de implementar o suporte a busca full text nos meus posts. Que rufem os tambores...&lt;br /&gt;&lt;br /&gt;class Post &amp;lt; ActiveRecords::Base&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  acts_as_ferret&lt;/span&gt;&lt;br /&gt; attr_accessor :text, :user, :title, :creation_date&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;E-pronto. Sempre que precisar fazer uma busca utilizando texto em qualquer dos campos do Post, basta utilizar-se o método find_by_contents(), definido pelo acts_as_ferret:&lt;br /&gt;&lt;br /&gt; def buscar_comida&lt;br /&gt;   comida = Post.find_by_contents("torta OR bolo OR bigmac OR pizza")&lt;br /&gt; end&lt;br /&gt;&lt;br /&gt;A sintaxe utilizada para as buscas é &lt;a href="http://lucene.apache.org/java/docs/queryparsersyntax.html"&gt;a mesma do Lucene&lt;/a&gt;, que permite utilizar agrupamentos lógicos de palavras, busca por proximidade, similaridade...&lt;br /&gt;&lt;br /&gt;Tão fácil que deu até medo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-620695835131679465?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://ferret.davebalmain.com/trac/' title='Ferret'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/620695835131679465/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=620695835131679465&amp;isPopup=true' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/620695835131679465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/620695835131679465'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/ferret.html' title='Ferret'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-4504785092022926834</id><published>2007-03-07T12:07:00.000-03:00</published><updated>2007-03-07T14:20:52.022-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='livros'/><title type='text'>My Job Went to Brazil</title><content type='html'>Um dos livros mais interessantes que li nos últimos tempos, &lt;a href="http://www.amazon.com/Job-Went-India-Pragmatic-Programmers/dp/0976694018/sr=8-1/qid=1171807700/ref=pd_bbs_sr_1/105-6963980-4984416?ie=UTF8&amp;amp;s=books"&gt;My Job Went to India&lt;/a&gt; é muito bem escrito e trás lições não só para os americanos com medo de perder seus empregos - mas para qualquer pessoa que planeja no mínimo manter sua "vendabilidade" no mercado de TI.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-4504785092022926834?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/4504785092022926834/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=4504785092022926834&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/4504785092022926834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/4504785092022926834'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/02/my-job-went-to-brazil.html' title='My Job Went to Brazil'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-2898401872920523975</id><published>2007-03-06T08:55:00.000-03:00</published><updated>2007-03-06T19:28:02.893-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='interludes'/><title type='text'>Coisas que todo desenvolvedor deveria saber...</title><content type='html'>...mas que a grande maioria só aprende na marra. &lt;a href="http://engtech.wordpress.com/2007/03/01/missing_programmer_curriculum/"&gt;Um ótimo resumo&lt;/a&gt; de muitas atrocidades que costumo ouvir de outros 'ITers' mundo afora que se julgam experientes, mas fazem questão de cometer os mesmos erros primários, um após o outro.&lt;br /&gt;(se um dia faltar argumento para convencê-los da bobagem que estão fazendo, você pode sempre recorrer à minha &lt;a href="http://googletron.blogspot.com/2007/03/bons-argumentos.html"&gt;lista de argumentos imbatíveis&lt;/a&gt;. Eu recomendo! ;) )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-2898401872920523975?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://engtech.wordpress.com/2007/03/01/missing_programmer_curriculum/' title='Coisas que todo desenvolvedor deveria saber...'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/2898401872920523975/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=2898401872920523975&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/2898401872920523975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/2898401872920523975'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/coisas-que-todo-desenvolvedor-deveria.html' title='Coisas que todo desenvolvedor deveria saber...'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-5149972074945849351</id><published>2007-03-06T08:34:00.000-03:00</published><updated>2007-03-06T08:37:18.709-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='jruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>JRuby 0.9.8</title><content type='html'>Saiu! &lt;a href="http://docs.codehaus.org/display/JRUBY/2007/03/05/JRuby+0.9.8+Released"&gt;A nova versão do JRuby&lt;/a&gt; suporta Rails, ja cobre com sucesso 98% dos test cases da linguagem original e solucionou diversos problemas de performance da versão anterior. E a versão 1.0 já está a caminho...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-5149972074945849351?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://jruby.sourceforge.net/' title='JRuby 0.9.8'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/5149972074945849351/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=5149972074945849351&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/5149972074945849351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/5149972074945849351'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/jruby-098.html' title='JRuby 0.9.8'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-5595708151148208441</id><published>2007-03-05T09:50:00.000-03:00</published><updated>2007-03-05T09:52:18.428-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='interludes'/><title type='text'>Orientação a Objetos Compulsiva</title><content type='html'>&lt;blockquote&gt;"What I sometimes see when I interview people and review code is symptoms of a disease I call Object Happiness. Object Happy people feel the need to apply principles of OO design to small, trivial, throwaway projects. They invest lots of unnecessary time making pure virtual abstract base classes -- writing programs where IFoos talk to IBars but there is only one implementation of each interface! I suspect that early exposure to OO design principles divorced from any practical context that motivates those principles leads to object happiness. People come away as OO True Believers rather than OO pragmatists."&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Ponto de vista interessante sobre o abuso desnecessário da &lt;a href="http://www.codinghorror.com/blog/archives/000801.html"&gt;Orientação a Objetos&lt;/a&gt;. Vale ler o artigo todo (e todos os links associados! :) )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-5595708151148208441?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.codinghorror.com/blog/archives/000801.html' title='Orientação a Objetos Compulsiva'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/5595708151148208441/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=5595708151148208441&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/5595708151148208441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/5595708151148208441'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/orientao-objetos-compulsiva.html' title='Orientação a Objetos Compulsiva'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-8128603069108723440</id><published>2007-03-04T22:03:00.000-03:00</published><updated>2007-03-04T22:04:57.976-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>Bons argumentos...</title><content type='html'>&lt;a href="http://www.pigdog.org/auto/mr_bads_list/shortcolumn/1914.html"&gt;Uma lista de ótimos argumentos técnicos&lt;/a&gt;. Para decorar direitinho, e usar sempre que você começar a perder em uma discussão técnica!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-8128603069108723440?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.pigdog.org/auto/mr_bads_list/shortcolumn/1914.html' title='Bons argumentos...'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/8128603069108723440/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=8128603069108723440&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/8128603069108723440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/8128603069108723440'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/bons-argumentos.html' title='Bons argumentos...'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-6055420363018461004</id><published>2007-03-04T11:36:00.000-03:00</published><updated>2007-03-04T11:39:29.402-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='webdesign'/><title type='text'>Design Web 2.0</title><content type='html'>Um artigo que sobre o que a "Web 2.0" trouxe de melhor: novos padrões de design e usabilidade.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-6055420363018461004?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.webdesignfromscratch.com/web-2.0-design-style-guide.cfm' title='Design Web 2.0'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/6055420363018461004/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=6055420363018461004&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/6055420363018461004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/6055420363018461004'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/design-web-20.html' title='Design Web 2.0'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-2426841591813994499</id><published>2007-03-04T08:53:00.000-03:00</published><updated>2007-03-04T09:06:49.214-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='dinheiro'/><title type='text'>Yahoo!</title><content type='html'>Nos últimos anos, o Yahoo! desenvolveu um mecanismo curioso de contratação de novos funcionários. A receita é bem simples: primeiro deixa-se que um punhado de garotos desenvolva e coloque no ar uma aplicação promissora (geralmente desenvolvida nos fins de semana). Depois basta oferecer um "bônus" (em muitos casos, provavelmente, nem isso) e um salário, cobrir os custos de mudança de toda a equipe para a SunnyVile, Califórnia e pronto: mais uma "Yahoo! Company" nasce. Foi assim com o Flickr, há dois anos atrás, e tem sido com praticamente todos os sites legais de lá pra cá - como o GeoBloggers (que neste caso foi comprado para ser fechado, basicamente), Upcoming.org, Konfabulator, del.icio.us...&lt;br /&gt;A lista com algumas das "aquisições" pode ser vista na &lt;a href="http://en.wikipedia.org/wiki/List_of_acquisitions_by_Yahoo%21"&gt;Wikipedia&lt;/a&gt;. O "estilo Yahooligan" se tornou tão conhecido que já surgiram até sites fazendo brincadeira com o modelo &lt;a href="http://mike.teczno.com/ayahoocompany/"&gt;"all your base are belong to us"&lt;/a&gt;.&lt;br /&gt;Em tempo: this blog is &lt;img src="http://mike.teczno.com/ayahoocompany/logo_yahoo_company.gif" /&gt;  ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-2426841591813994499?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/2426841591813994499/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=2426841591813994499&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/2426841591813994499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/2426841591813994499'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/yahoo.html' title='Yahoo!'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-82618956036832228</id><published>2007-03-03T15:47:00.000-03:00</published><updated>2007-03-03T15:51:30.645-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><category scheme='http://www.blogger.com/atom/ns#' term='programaslegais'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>NetBeans + Ruby</title><content type='html'>Talvez não seja uma notícia muito nova, mas o NetBeans agora suporta Ruby - com direito a code completion e tudo mais!&lt;br /&gt;A novidade apareceu discretamente, um tempo depois &lt;a href="http://cwilliams.textdriven.com/articles/2006/09/07/jruby-guys-hired-by-sun-netbeans-ruby-ide-to-come"&gt;da Sun ter contratado os desenvolvedores do JRuby&lt;/a&gt;.&lt;br /&gt;A partir da versão 6.0, a IDE suporta (ainda um tanto "extra-oficial") o Ruby. E (e em breve a &lt;a href="http://www.javalobby.org/java/forums/t76405.html"&gt;PHP, Javascript e Python&lt;/a&gt;)&lt;br /&gt;O download do NetBeans pode ser feito &lt;a hre="http://www.netbeans.info/downloads/dev.php"&gt;aqui&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-82618956036832228?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/82618956036832228/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=82618956036832228&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/82618956036832228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/82618956036832228'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/netbeans-ruby.html' title='NetBeans + Ruby'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-9001689176612275518</id><published>2007-03-03T12:55:00.001-03:00</published><updated>2007-03-03T12:55:41.469-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>Rake for N00bs</title><content type='html'>Rake é a "linguagem de build" utilizada pelo Ruby on Rails. Trata-se de uma Domain Specific Language desenvolvida em Ruby - mais ou menos como o famoso Ant (só que sem toda a complexidade desnecessária do XML). &lt;a href="http://www.martinfowler.com/articles/rake.html"&gt;Este artigo do Martin Fowler&lt;/a&gt; trás uma visão geral do Rake e suas aplicações. E para quem trabalha com Rails, &lt;a href="http://www.rubyonrailsblog.com/articles/2006/09/14/rails-rake-tasks-reference"&gt;uma relação das tasks incluidas no RoR&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-9001689176612275518?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/9001689176612275518/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=9001689176612275518&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/9001689176612275518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/9001689176612275518'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/rake-for-n00bs.html' title='Rake for N00bs'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-5869330250856187125</id><published>2007-03-02T19:21:00.000-03:00</published><updated>2007-03-02T19:23:12.367-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='dinheiro'/><title type='text'>Rede nova, negócios novos...</title><content type='html'>Uma análise interessante sobre 5 novos modelos de negócio/emprego que surgiram junto com a Web 2.0. Negócios muito mais capilares e pulverizados - uma das características marcantes do "modelo 2.0".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-5869330250856187125?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://webworkerdaily.com/2007/03/01/5-web-based-entrepreneurship-experiments/' title='Rede nova, negócios novos...'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/5869330250856187125/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=5869330250856187125&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/5869330250856187125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/5869330250856187125'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/rede-nova-negcios-novos.html' title='Rede nova, negócios novos...'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-2601207866408873971</id><published>2007-03-01T21:50:00.000-03:00</published><updated>2007-03-01T21:52:19.207-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>Rails Handbook</title><content type='html'>Uma coletânea de referências, cheat sheets, screencasts e tutoriais sobre o Rails. Bookmark obrigatório!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-2601207866408873971?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://railshandbook.com/' title='Rails Handbook'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/2601207866408873971/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=2601207866408873971&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/2601207866408873971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/2601207866408873971'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/03/rails-handbook.html' title='Rails Handbook'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-875163264776441454</id><published>2007-02-27T13:39:00.000-03:00</published><updated>2007-02-27T13:41:49.183-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='noticias'/><title type='text'>What the Web’s most popular sites are running on</title><content type='html'>Uma avaliação técnica de 7 dos mais visitados sites da Internet. PHP e MySql ainda dominam, e pelo visto vão passar um bom tempo no topo...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-875163264776441454?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://royal.pingdom.com/?p=95' title='What the Web’s most popular sites are running on'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/875163264776441454/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=875163264776441454&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/875163264776441454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/875163264776441454'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/02/what-webs-most-popular-sites-are.html' title='What the Web’s most popular sites are running on'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-1420653061633885638</id><published>2007-02-26T23:37:00.000-03:00</published><updated>2007-02-26T23:54:00.121-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>Diários de um Captcha!</title><content type='html'>Recentemente tive o prazer de descobrir que &lt;a href="http://www.mapservices.org/myguestmap"&gt;meu sitezinho&lt;/a&gt; cresceu, e já é até alvo de ferramentas de spam automatizado! Quanta honra...&lt;br /&gt;Ok, passado o orgulho inicial, vamos ao problema. A solução mais simples (e atualmente mais comum, Internet afora) para combater os spammers é conhecida por &lt;a href="http://en.wikipedia.org/wiki/Captcha"&gt;CAPTCHA&lt;/a&gt;. Em resumo, são aquelas imagens com texto distorcido, as vezes ilegíveis até mesmo por seres humanos convencionais.&lt;br /&gt;Como qualquer solução no mundo Ruby, existe pelo menos uma dezena de bibliotecas de Captcha diferentes. Após testar um punhado, decidi por utilizar o plugin &lt;a href="http://www.agilewebdevelopment.com/plugins/simple_captcha"&gt;simple_captcha&lt;/a&gt;, por ser um dos mais simples de configurar e com menos dependências (somente o &lt;a href="http://rmagick.rubyforge.org/"&gt;RMagick&lt;/a&gt;, veja você!). &lt;a href="http://expressica.com/2007/02/06/simple-captcha-released-the-captcha-for-rails-applications/"&gt;Este post&lt;/a&gt; mostra direitinho os passos para instalação e configuração do plugin.&lt;br /&gt;Em 2 minutos estava com o plugin no ar, gerando texto distorcido para validar os posts de meus usuários. Tudo bom, tudo bonito.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Bug da Hora: unable to read font '(null)'&lt;/span&gt;&lt;br /&gt;Como nada costuma funcionar logo de cara, o plugin resolveu entrar em greve quando fiz o deployment no servidor de produção (um box Linux):&lt;br /&gt;&lt;br /&gt;ActionView::TemplateError (unable to read font `(null)') on line #49 of app/views/xxx/_xxxxx.rhtml:&lt;br /&gt;46: &lt;% end %&gt;&lt;br /&gt;47: &lt;% if @map.captchaValidate %&gt;&lt;br /&gt;48:        &lt;tr&gt;&lt;td colspan="'2'"&gt;&lt;br /&gt;49:    &lt;%= show_simple_captcha %&gt;&lt;br /&gt;50:        &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;51: &lt;% end %&gt;&lt;br /&gt;&lt;br /&gt;Não se trata de um problema com o simple_captcha, mas sim com o &lt;a href="http://www.imagemagick.org/discourse-server/viewtopic.php?f=2&amp;t=8422&amp;amp;p=25855&amp;hilit=&amp;amp;sid=a4f3e75289225fbad8b4da76825032f1#p25855"&gt;RMagick&lt;/a&gt;. Phew. Mais um dragão para derrubar...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-1420653061633885638?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/1420653061633885638/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=1420653061633885638&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/1420653061633885638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/1420653061633885638'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/02/dirios-de-um-captcha.html' title='Diários de um Captcha!'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-6408758099285362326</id><published>2007-02-25T12:10:00.000-03:00</published><updated>2007-02-25T12:14:47.115-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='programaslegais'/><title type='text'>Mephisto e o mistério do cache</title><content type='html'>Então você começou a brincar de Rails, precisava botar um Blog no ar por algum motivo e resolveu testar o &lt;a href="http://mephistoblog.com/"&gt;Mephisto&lt;/a&gt;. A instalação veio fácil, o blog entrou no ar em minutos...&lt;br /&gt;...e 5 dias depois, ninguém comentou no seu blog ainda - se muito, aparecia um comentário eventual por post - mesmo aquele post polêmico, xingando a mãe dos desenvolvedores Java.&lt;br /&gt;Se você utiliza Apache + cgi/fcgi, é bem provável que seja um &lt;a href="http://mephisto.stikipad.com/help/show/Developer+Tips"&gt;problema de configuração do Apache&lt;/a&gt;...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-6408758099285362326?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/6408758099285362326/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=6408758099285362326&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/6408758099285362326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/6408758099285362326'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/02/mephisto-e-o-mistrio-do-cache.html' title='Mephisto e o mistério do cache'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-1274514098606310431</id><published>2007-02-22T21:46:00.000-02:00</published><updated>2007-02-22T21:48:08.928-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='interludes'/><title type='text'>O que acontece quando um gigante soluça?</title><content type='html'>Esse tipo de evento sempre serve para me lembrar de fazer backup de informações online - como os emails do GMail, ou as fotos do Flickr.&lt;br /&gt;E de preferência, fazer um backup do backup também. Quem sabe em algum outro serviço online de backups...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-1274514098606310431?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://news.com.com/2061-10811_3-6160704.html' title='O que acontece quando um gigante soluça?'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/1274514098606310431/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=1274514098606310431&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/1274514098606310431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/1274514098606310431'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/02/o-que-acontece-quando-um-gigante-solua.html' title='O que acontece quando um gigante soluça?'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-6353817840904635216</id><published>2007-02-18T12:06:00.000-02:00</published><updated>2007-02-22T00:28:38.050-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='interludes'/><title type='text'>A Síndrome das Dobradiças</title><content type='html'>"Arquitetos" de software são uma espécie de animal interessante. Sua profissão resume-se a resolver problemas de forma elegante (em muitos dos casos, resolver problemas abstratos, sem escrever nenhum tipo de código). Não que isso seja pouco: em qualquer indústria, elegância é uma meta que raramente é atingida. Mas com a exposição prolongada à profissão, alguns desenvolvem uma bizarra doença psicológica: a Síndrome das Dobradiças.&lt;br /&gt;Como um tipo de dependência química, os portadores da SdD precisam desenhar. Eles não passam um dia sem rabiscar bonequinhos de palito e quadradinhos com setas apontando para eles mesmos, para os bonequinhos, e para outros quadradinhos. E como um tipo de aspirante a artista pós moderno, os SdDs buscam desesperadamente o desenho mais complexo, a cada dia. Não conseguem dormir de noite enquanto não transformarem aquele simples componente de envio de e-mails em um conjunto de quadradinhos: uma Abstract Factory pra flebixilizar aquela Factory que vai produzir o agora genérico Componente de Envio de Qualquer Coisa, uma série de interfaces para definir Coisa, Email e EnviadorDeQualquerCoisa, e finalmente um conjunto de arquivos de configuração para unir a coisa toda. Se o cliente precisa de uma porta, não basta projetá-la com duas dobradiças (e eventualmente um olho mágico): a porta tem que ter dobradiças que permitam abri-la em qualquer direção, cadeados de todos os lados e mecanismos de autenticação redundantes.&lt;br /&gt;E claro, quanto mais obscura a tecnologia para unir tudo isso, melhor. Já vi casos de arquitetos em êxtase por descobrirem um modo de integrar 5 novos buzzwords (e suas 5 respectivas implementações de referência) para resolver um problema que a) não necessitava de flexibilidade nenhuma e b) poderia ser resolvido com 20 linhas de código.&lt;br /&gt;Se você apresenta alguns destes sintomas, procure um médico. Você pode ser portador de SdD. Outros sintomas incluem possuir mais de um livro sobre UML em sua mesa, um aumento visível do teor de padrão-de-projetês em seus diálogos, sonhos com bonequinhos de palito contadores de histórias e modelagens que não cabem em uma folha de papel A3.&lt;br /&gt;Cuidado: portadores de SdD costumam ser confundidos com especialistas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-6353817840904635216?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/6353817840904635216/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=6353817840904635216&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/6353817840904635216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/6353817840904635216'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/02/sndrome-das-dobradias.html' title='A Síndrome das Dobradiças'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-5860949538503828337</id><published>2007-02-17T12:15:00.000-02:00</published><updated>2007-02-17T12:49:55.196-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='interludes'/><title type='text'>Querido Diário...</title><content type='html'>Retomei o contato com este blog graças a duas pessoas que o acharam por acaso, navegando pela Internet. A Internet (ou seria a sua interface principal, o Google?) é um bicho interessante. Funciona como uma máquina do tempo que tanto dita tendências quanto revela fósseis de longínquas eras. Como este site que vos fala.&lt;br /&gt;&lt;br /&gt;Blogs são fósseis engraçados. Com exceção dos blogs mais populares (ou os &lt;span style="font-style: italic;"&gt;blog businesses&lt;/span&gt;, moda no já distante ano de 2005), você nunca sabe se tem alguém lendo o que você posta do outro lado. Você escreve, escreve, escreve. O contador de visitas mostra que existem 50 malucos que lêem seu blog quase que diariamente. Mas na maioria dos casos, soa como falar de olhos fechados para uma platéia que você não sabe se existe. Ou então falar para você mesmo.&lt;br /&gt;&lt;br /&gt;É isso, caro leitor. Este blog voltou a ser mantido. Para que o interlocutor que vos fala possa, daqui a 5 anos , consultar a máquina do tempo e constatar como conhecia pouco ou quase nada (e no entanto se dava ao luxo de falar como se conhecesse). E como aquela promessa de aprender Ruby on Rails (que foi feita em 2005, segundo esse blog!) demoro quase 2 anos para ser cumprida... :)&lt;br /&gt;&lt;br /&gt;Well, let's cut the crap. De volta à ativa... Assim espero :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-5860949538503828337?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/5860949538503828337/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=5860949538503828337&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/5860949538503828337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/5860949538503828337'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2007/02/querido-dirio.html' title='Querido Diário...'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-115209220719072251</id><published>2006-07-05T06:25:00.000-03:00</published><updated>2006-07-05T06:36:47.200-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dotnet'/><title type='text'>Microsoft Visual Studio Express</title><content type='html'>A Microsoft disponifilizou o Visual Studio Express. É uma ferramenta(IDE + Compilador) &lt;span style="font-style: italic;"&gt;free &lt;/span&gt;para o desenvolvimento de aplicações C++, C#, VB sendo possivel ainda no caso de C++ utilizar ou não o framework .NET . Essa nova ferramenta, vem para substituir o aintigo VCToolkit que era apenas um &lt;span style="font-style: italic;"&gt;tool chain&lt;/span&gt;  &lt;span style="font-style: italic;"&gt;&lt;/span&gt;de desenvolvimento modo texto (Compilador, Linker, etc...). Segundo a Microsoft o Visual Studio Express possui interface amigavel de fácil aprendizado. Espero q seja tão bom qnto era o Visual Studio 6...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-115209220719072251?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://msdn.microsoft.com/vstudio/express/default.aspx' title='Microsoft Visual Studio Express'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/115209220719072251/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=115209220719072251&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/115209220719072251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/115209220719072251'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2006/07/microsoft-visual-studio-express.html' title='Microsoft Visual Studio Express'/><author><name>Bruno Herrera</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-114331636616603027</id><published>2006-03-25T16:52:00.000-03:00</published><updated>2006-03-25T16:52:46.180-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><title type='text'>ajaxWrite</title><content type='html'>Um editor de texto online, que replica muitas das funcionalidades do MS Word - inclusive o visual - com a diferença de que se trata de uma ferramenta 100% web (ou, para os mais leigos: um SITE).&lt;br /&gt;Fenomenal. Um tiro no joelho da velha ladainha "windows versus linux". A web é a plataforma!&lt;br /&gt;Agora sim, fiquei curioso para saber qual vai ser a cara do Microsoft Office Live, que andam falando por aí...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-114331636616603027?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.ajaxwrite.com/' title='ajaxWrite'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/114331636616603027/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=114331636616603027&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/114331636616603027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/114331636616603027'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2006/03/ajaxwrite.html' title='ajaxWrite'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-113814370494909998</id><published>2006-01-24T20:55:00.000-02:00</published><updated>2006-01-24T21:04:20.216-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Faixa preta em JAVA</title><content type='html'>Isso mesmo que você esta lendo: faixa preta em Java ! Neste site a cada pergunta que repondida é um ponto ganho, com o passar dos pontos você vai evoluindo até ganhar a faixa preta. Para ganhar a faixa preta não é facil, tem que ter conhecimento das APIs Java (JSF, JavaMail, Java2D, ...), produtos e ferramentas (ant, Xdoclet, Junit, ...), frameworks (JDom, Struts, Hibernate, ...), designer patterns e outros(Xml, UML, HTML, ...).&lt;br /&gt;Boa diversão pequenos faixa branca.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-113814370494909998?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://javablackbelt.com/jbb/' title='Faixa preta em JAVA'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/113814370494909998/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=113814370494909998&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/113814370494909998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/113814370494909998'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2006/01/faixa-preta-em-java.html' title='Faixa preta em JAVA'/><author><name>Rafael Torres</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-113588892712990489</id><published>2005-12-29T18:39:00.000-02:00</published><updated>2005-12-29T18:45:44.960-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Ah, essas crianças de hoje...</title><content type='html'>&lt;a href="http://www.joelonsoftware.com/"&gt;Joel Spolsky&lt;/a&gt; &lt;a href="http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html"&gt;comenta sobre os perigos&lt;/a&gt; de ensinar apenas Java nas universidades, e por que você deve aprender ponteiros e programação funcional para ser um bom programador.&lt;br /&gt;&lt;br /&gt;Pequeno trecho para atiçar os ânimos:&lt;br /&gt;&lt;blockquote&gt;The recruiters-who-use-grep, by the way, are ridiculed here, and for good reason. I have never met anyone who can do Scheme, Haskell, and C pointers who can't pick up Java in two days, and create better Java code than people with five years of experience in Java, but try explaining that to the average HR drone.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-113588892712990489?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html' title='Ah, essas crianças de hoje...'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/113588892712990489/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=113588892712990489&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/113588892712990489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/113588892712990489'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/12/ah-essas-crianas-de-hoje.html' title='Ah, essas crianças de hoje...'/><author><name>tautologico</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-113318961058755695</id><published>2005-11-28T12:47:00.000-02:00</published><updated>2005-11-28T12:53:30.613-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='curiosidades'/><title type='text'>Y2K06???</title><content type='html'>Ajustem seus relógios: na virada do ano 2005 para 2006, teremos um minuto com 61 segundos!&lt;br /&gt;Como será que os computadores vão se comportar...?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-113318961058755695?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.npl.co.uk/time/leap_second.html' title='Y2K06???'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/113318961058755695/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=113318961058755695&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/113318961058755695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/113318961058755695'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/11/y2k06.html' title='Y2K06???'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-113278348868724362</id><published>2005-11-23T20:03:00.000-02:00</published><updated>2005-11-23T20:04:48.706-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='videogames'/><title type='text'>Python for PSP</title><content type='html'>(o que vem agora? Ruby on Rails para o Nintendo DS?)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-113278348868724362?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.psp-hacks.com/2005/11/13/python-for-psp/' title='Python for PSP'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/113278348868724362/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=113278348868724362&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/113278348868724362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/113278348868724362'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/11/python-for-psp.html' title='Python for PSP'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-113259772637479534</id><published>2005-11-21T16:26:00.000-02:00</published><updated>2005-11-21T16:28:46.386-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>On Rails!</title><content type='html'>Pra quem ainda não conhece Ruby (e seu "filho" mais famoso, o framework &lt;a href="http://www.rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt;), talvez seja hora de dar uma olhada. O &lt;a href="http://www.rubyonrails.com/media/video/rails_take2_with_sound.mov"&gt;videozinho introdutório&lt;/a&gt; do Ruby on Rails é impressionante (salvas as medidas proporções de hype, show business e exibicionismo explícito)...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-113259772637479534?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.rubyonrails.org/' title='On Rails!'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/113259772637479534/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=113259772637479534&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/113259772637479534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/113259772637479534'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/11/on-rails.html' title='On Rails!'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-113225500619341307</id><published>2005-11-17T17:16:00.000-02:00</published><updated>2005-11-17T17:17:24.570-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gerencia'/><title type='text'>XP Explained :P</title><content type='html'>&lt;a href="http://www.dilbert.com/comics/dilbert/archive/images/dilbert2002220051116.gif"&gt;&lt;img src="http://www.dilbert.com/comics/dilbert/archive/images/dilbert2002220051116.gif" width="400"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-113225500619341307?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/113225500619341307/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=113225500619341307&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/113225500619341307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/113225500619341307'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/11/xp-explained-p.html' title='XP Explained :P'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-113199032045742996</id><published>2005-11-14T15:44:00.000-02:00</published><updated>2005-11-14T15:45:20.486-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><title type='text'>REST?</title><content type='html'>O REST, ou Representational State Transfer, é um modelo arquitetural para sistemas distribuídos que vem ganhando popularidade na Web. A idéia do REST é representar recursos como URLs únicas, substituindo parâmetros por estruturas "directory-like". Assim, aquele velho site de sua livraria virtual favorita, que usava uma notação algumas vezes ilegível (&lt;span style="font-style:italic;"&gt;http://www.jungle.com/exec/booksearch.pl?a=2142312&amp;t=532908&lt;/span&gt; ?!?!?!) pode estruturar suas informações de maneira mais adequada (&lt;span style="font-style:italic;"&gt;http://www.jungle.com/books/jkhowlings/harrypotter6/&lt;/span&gt; soa muito melhor). Não vai mudar o mundo. Mas com certeza, é um primeiro passo na direção de sistemas Web mais intelingíveis (especialmente por seus maiores usuários, os humanos)...&lt;br /&gt;&lt;br /&gt;Alguns papers de referência &lt;a href="http://www.xfront.com/REST-Web-Services.html"&gt;aqui&lt;/a&gt; e &lt;a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm#tab_5_3"&gt;aqui&lt;/a&gt;. Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-113199032045742996?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/113199032045742996/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=113199032045742996&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/113199032045742996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/113199032045742996'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/11/rest.html' title='REST?'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-113148082592788347</id><published>2005-11-12T11:32:00.000-02:00</published><updated>2005-11-12T14:32:53.186-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='curiosidades'/><title type='text'>Os piores bugs da história do software</title><content type='html'>Erros acontecem. Erros de proporções astronômicas também. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-113148082592788347?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://wired.com/news/technology/bugs/0,2924,69355,00.html?tw=wn_tophead_1' title='Os piores bugs da história do software'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/113148082592788347/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=113148082592788347&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/113148082592788347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/113148082592788347'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/11/os-piores-bugs-da-histria-do-software.html' title='Os piores bugs da história do software'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-113147840464413380</id><published>2005-11-08T17:31:00.000-02:00</published><updated>2005-11-08T17:33:24.680-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='curiosidades'/><title type='text'>A Sintaxe ao longo dos tempos...</title><content type='html'>Uma comparação da sintaxe de diversas linguagens de programação, da maneira como se escrevem os comentários à declaração de variáveis.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-113147840464413380?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://merd.sourceforge.net/pixel/language-study/syntax-across-languages.html' title='A Sintaxe ao longo dos tempos...'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/113147840464413380/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=113147840464413380&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/113147840464413380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/113147840464413380'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/11/sintaxe-ao-longo-dos-tempos.html' title='A Sintaxe ao longo dos tempos...'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-113016963498854623</id><published>2005-10-24T13:59:00.000-02:00</published><updated>2005-10-24T14:00:35.000-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Totally Gridbag...</title><content type='html'>Ah, os Layouts do Java... Todos tão úteis e fáceis de usar!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-113016963498854623?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://madbean.com/anim/totallygridbag' title='Totally Gridbag...'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/113016963498854623/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=113016963498854623&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/113016963498854623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/113016963498854623'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/10/totally-gridbag.html' title='Totally Gridbag...'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112929262215458718</id><published>2005-10-14T09:18:00.000-03:00</published><updated>2005-10-14T09:23:42.170-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><title type='text'>The amorality of Web 2.0</title><content type='html'>From the start, the World Wide Web has been a vessel of quasi-religious longing. And why not? For those seeking to transcend the physical world, the Web presents a readymade Promised Land. On the Internet, we're all bodiless, symbols speaking to symbols in symbols. The early texts of Web metaphysics, many written by thinkers associated with or influenced by the post-60s New Age movement, are rich with a sense of impending spiritual release; they describe the passage into the cyber world as a process of personal and communal unshackling, a journey that frees us from traditional constraints on our intelligence, our communities, our meager physical selves. We become free-floating netizens in a more enlightened, almost angelic, realm. &lt;br /&gt;&lt;br /&gt;But as the Web matured during the late 1990s, the dreams of a digital awakening went unfulfilled. The Net turned out to be more about commerce than consciousness, more a mall than a commune. And when the new millenium arrived, it brought not a new age but a dispiritingly commonplace popping of a bubble of earthly greed. Somewhere along the way, the moneychangers had taken over the temple. The Internet had transformed many things, but it had not transformed us. We were the same as ever.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The New New Age &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;But the yearning for a higher consciousness didn't burst with the bubble. Web 1.0 may have turned out to be spiritual vaporware, but now we have the hyper-hyped upgrade: Web 2.0. In a &lt;a href="http://www.wired.com/wired/archive/13.10/oreilly.html"&gt;profile&lt;/a&gt; of Internet savant Tim O'Reilly in the current issue of Wired, Steven Levy writes that "the idea of collective consciousness is becoming manifest in the Internet." He quotes O'Reilly: "The Internet today is so much an echo of what we were talking about at [New Age HQ] Esalen in the '70s - except we didn't know it would be technology-mediated." Levy then asks, "Could it be that the Internet - or what O'Reilly calls Web 2.0 - is really the successor to the human potential movement?" &lt;br /&gt;&lt;br /&gt;Levy's article appears in the afterglow of Kevin Kelly's sweeping "&lt;a href="http://www.wired.com/wired/archive/13.08/tech.html"&gt;We Are the Web&lt;/a&gt;" in Wired's August issue. Kelly, erstwhile prophet of the Long Boom, surveys the development of the World Wide Web, from the Netscape IPO ten years ago, and concludes that it has become a "magic window" that provides a "spookily godlike" perspective on existence. "I doubt angels have a better view of humanity," he writes. &lt;br /&gt;&lt;br /&gt;But that's only the beginning. In the future, according to Kelly, the Web will grant us not only the vision of gods but also their power. The Web is becoming "the OS for a megacomputer that encompasses the Internet, all its services, all peripheral chips and affiliated devices from scanners to satellites, and the billions of human minds entangled in this global network. This gargantuan Machine already exists in a primitive form. In the coming decade, it will evolve into an integral extension not only of our senses and bodies but our minds ... We will live inside this thing."&lt;br /&gt;&lt;br /&gt;The revelation continues: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;There is only one time in the history of each planet when its inhabitants first wire up its innumerable parts to make one large Machine. Later that Machine may run faster, but there is only one time when it is born. &lt;br /&gt;&lt;br /&gt;You and I are alive at this moment.&lt;br /&gt;&lt;br /&gt;We should marvel, but people alive at such times usually don't. Every few centuries, the steady march of change meets a discontinuity, and history hinges on that moment. We look back on those pivotal eras and wonder what it would have been like to be alive then. Confucius, Zoroaster, Buddha, and the latter Jewish patriarchs lived in the same historical era, an inflection point known as the axial age of religion. Few world religions were born after this time. Similarly, the great personalities converging upon the American Revolution and the geniuses who commingled during the invention of modern science in the 17th century mark additional axial phases in the short history of our civilization.&lt;br /&gt;&lt;br /&gt;Three thousand years from now, when keen minds review the past, I believe that our ancient time, here at the cusp of the third millennium, will be seen as another such era. In the years roughly coincidental with the Netscape IPO, humans began animating inert objects with tiny slivers of intelligence, connecting them into a global field, and linking their own minds into a single thing. This will be recognized as the largest, most complex, and most surprising event on the planet. Weaving nerves out of glass and radio waves, our species began wiring up all regions, all processes, all facts and notions into a grand network. From this embryonic neural net was born a collaborative interface for our civilization, a sensing, cognitive device with power that exceeded any previous invention. The Machine provided a new way of thinking (perfect search, total recall) and a new mind for an old species. It was the Beginning.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This isn't the language of exposition. It's the language of rapture.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Cult of the Amateur&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Now, lest you dismiss me as a mere cynic, if not a fallen angel, let me make clear that I'm all for seeking transcendence, whether it's by going to church or living in a hut in the woods or sitting at the feet of the Maharishi or gazing into the glittering pixels of an LCD screen. One gathers one's manna where one finds it. And if there's a higher consciousness to be found, then by all means let's get elevated. My problem is this: When we view the Web in religious terms, when we imbue it with our personal yearning for transcendence, we can no longer see it objectively. By necessity, we have to look at the Internet as a moral force, not as a simple collection of inanimate hardware and software. No decent person wants to worship an amoral conglomeration of technology. &lt;br /&gt;&lt;br /&gt;And so all the things that Web 2.0 represents - participation, collectivism, virtual communities, amateurism - become unarguably good things, things to be nurtured and applauded, emblems of progress toward a more enlightened state. But is it really so? Is there a counterargument to be made? Might, on balance, the practical effect of Web 2.0 on society and culture be bad, not good? To see Web 2.0 as a moral force is to turn a deaf ear to such questions.&lt;br /&gt;&lt;br /&gt;Let me bring the discussion down to a brass tack. If you read anything about Web 2.0, you'll inevitably find praise heaped upon Wikipedia as a glorious manifestation of "the age of participation." Wikipedia is an open-source encyclopedia; anyone who wants to contribute can add an entry or edit an existing one. O'Reilly, in a lucid &lt;a href="http://www.oreillynet.com/cs/user/trackback/cs_msg?x-lr=cs_disc/15648&amp;x-lr2=a/6228&amp;x-a=submit&amp;trackback=1"&gt;new essay&lt;/a&gt; on Web 2.0, says that Wikipedia marks "a profound change in the dynamics of content creation" - a leap beyond the Web 1.0 model of Britannica Online. To Kevin Kelly, Wikipedia shows how the Web is allowing us to pool our individual brains into a great collective mind. It's a harbinger of the Machine.&lt;br /&gt;&lt;br /&gt;In theory, Wikipedia is a beautiful thing - it has to be a beautiful thing if the Web is leading us to a higher consciousness. In reality, though, Wikipedia isn't very good at all. Certainly, it's useful - I regularly consult it to get a quick gloss on a subject. But at a factual level it's unreliable, and the writing is often appalling. I wouldn't depend on it as a source, and I certainly wouldn't recommend it to a student writing a research paper.&lt;br /&gt;&lt;br /&gt;Take, for instance, this section from Wikipedia's &lt;a href="http://en.wikipedia.org/wiki/Bill_Gates"&gt;biography of Bill Gates&lt;/a&gt;, excerpted verbatim:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Gates married Melinda French on January 1, 1994. They have three children, Jennifer Katharine Gates (born April 26, 1996), Rory John Gates (born May 23, 1999) and Phoebe Adele Gates (born September 14, 2002). &lt;br /&gt;&lt;br /&gt;In 1994, Gates acquired the Codex Leicester, a collection of writings by Leonardo da Vinci; as of 2003 it was on display at the Seattle Art Museum.&lt;br /&gt;&lt;br /&gt;In 1997, Gates was the victim of a bizarre extortion plot by Chicago resident Adam Quinn Pletcher. Gates testified at the subsequent trial. Pletcher was convicted and sentenced in July 1998 to six years in prison. In February 1998 Gates was attacked by Noël Godin with a cream pie. In July 2005, he solicited the services of famed lawyer Hesham Foda.&lt;br /&gt;&lt;br /&gt;According to Forbes, Gates contributed money to the 2004 presidential campaign of George W. Bush. According to the Center for Responsive Politics, Gates is cited as having contributed at least $33,335 to over 50 political campaigns during the 2004 election cycle.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Excuse me for stating the obvious, but this is garbage, an incoherent hodge-podge of dubious factoids (who the heck is "famed lawyer Hesham Foda"?) that adds up to something far less than the sum of its parts.&lt;br /&gt;&lt;br /&gt;Here's Wikipedia on &lt;a href="http://en.wikipedia.org/wiki/Jane_Fonda"&gt;Jane Fonda's life&lt;/a&gt;, again excerpted verbatim: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Her nickname as a youth—Lady Jane—was one she reportedly disliked. She traveled to Communist Russia in 1964 and was impressed by the people, who welcomed her warmly as Henry's daughter. In the mid-1960s she bought a farm outside of Paris, had it renovated and personally started a garden. She visited Andy Warhol's Factory in 1966. About her 1971 Oscar win, her father Henry said: "How in hell would you like to have been in this business as long as I and have one of your kids win an Oscar before you do?" Jane was on the cover of Life magazine, March 29, 1968. &lt;br /&gt;&lt;br /&gt;While early she had grown both distant from and critical of her father for much of her young life, in 1980, she bought the play "On Golden Pond" for the purpose of acting alongside her father—hoping he might win the Oscar that had eluded him throughout his career. He won, and when she accepted the Oscar on his behalf, she said it was "the happiest night of my life." Director and first husband Roger Vadim once said about her: "Living with Jane was difficult in the beginning ... she had so many, how do you say, 'bachelor habits.' Too much organization. Time is her enemy. She cannot relax. Always there is something to do." Vadim also said, "There is also in Jane a basic wish to carry things to the limit."&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This is worse than bad, and it is, unfortunately, representative of the slipshod quality of much of Wikipedia. Remember, this emanation of collective intelligence is not just a couple of months old. It's been around for nearly five years and has been worked over by many thousands of diligent contributors. At this point, it seems fair to ask exactly when the intelligence in "collective intelligence" will begin to manifest itself. When will the great Wikipedia get good? Or is "good" an old-fashioned concept that doesn't apply to emergent phenomena like communal on-line encyclopedias?&lt;br /&gt;&lt;br /&gt;The promoters of Web 2.0 venerate the amateur and distrust the professional. We see it in their unalloyed praise of Wikipedia, and we see it in their worship of open-source software and myriad other examples of democratic creativity. Perhaps nowhere, though, is their love of amateurism so apparent as in their promotion of blogging as an alternative to what they call "the mainstream media." Here's O'Reilly: "While mainstream media may see individual blogs as competitors, what is really unnerving is that the competition is with the blogosphere as a whole. This is not just a competition between sites, but a competition between business models. The world of Web 2.0 is also the world of what Dan Gillmor calls 'we, the media,' a world in which 'the former audience,' not a few people in a back room, decides what's important."&lt;br /&gt;&lt;br /&gt;I'm all for blogs and blogging. (I'm writing this, ain't I?) But I'm not blind to the limitations and the flaws of the blogosphere - its superficiality, its emphasis on opinion over reporting, its echolalia, its tendency to reinforce rather than challenge ideological extremism and segregation. Now, all the same criticisms can (and should) be hurled at segments of the mainstream media. And yet, at its best, the mainstream media is able to do things that are different from - and, yes, more important than - what bloggers can do. Those despised "people in a back room" can fund in-depth reporting and research. They can underwrite projects that can take months or years to reach fruition - or that may fail altogether. They can hire and pay talented people who would not be able to survive as sole proprietors on the Internet. They can employ editors and proofreaders and other unsung protectors of quality work. They can place, with equal weight, opposing ideologies on the same page. Forced to choose between reading blogs and subscribing to, say, the New York Times, the Financial Times, the Atlantic, and the Economist, I will choose the latter. I will take the professionals over the amateurs. &lt;br /&gt;&lt;br /&gt;But I don't want to be forced to make that choice. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Scary Economics&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;And so, having gone on for so long, I at long last come to my point. The Internet is changing the economics of creative work - or, to put it more broadly, the economics of culture - and it's doing it in a way that may well restrict rather than expand our choices. Wikipedia might be a pale shadow of the Britannica, but because it's created by amateurs rather than professionals, it's free. And free trumps quality all the time. So what happens to those poor saps who write encyclopedias for a living? They wither and die. The same thing happens when blogs and other free on-line content go up against old-fashioned newspapers and magazines. Of course the mainstream media sees the blogosphere as a competitor. It is a competitor. And, given the economics of the competition, it may well turn out to be a superior competitor. The layoffs we've recently seen at major newspapers may just be the beginning, and those layoffs should be cause not for self-satisfied snickering but for despair. Implicit in the ecstatic visions of Web 2.0 is the hegemony of the amateur. I for one can't imagine anything more frightening.&lt;br /&gt;&lt;br /&gt;In "We Are the Web," Kelly writes that "because of the ease of creation and dissemination, online culture is the culture." I hope he's wrong, but I fear he's right - or will come to be right.&lt;br /&gt;&lt;br /&gt;Like it or not, Web 2.0, like Web 1.0, is amoral. It's a set of technologies - a machine, not a Machine - that alters the forms and economics of production and consumption. It doesn't care whether its consequences are good or bad. It doesn't care whether it brings us to a higher consciousness or a lower one. It doesn't care whether it burnishes our culture or dulls it. It doesn't care whether it leads us into a golden age or a dark one. So let's can the millenialist rhetoric and see the thing for what it is, not what we wish it would be.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- Nick Carr, October 03, 2005&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112929262215458718?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112929262215458718/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112929262215458718&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112929262215458718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112929262215458718'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/10/amorality-of-web-20.html' title='The amorality of Web 2.0'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112717458684617536</id><published>2005-10-06T20:59:00.000-03:00</published><updated>2005-10-06T21:36:45.593-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='groovy'/><title type='text'>Groovy Development</title><content type='html'>Artigo explicadinho sobre a linguagem de scripting Groovy, uma das linguagens desenvolvidas para rodar em cima da VM do Java.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112717458684617536?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.developer.com/java/ent/article.php/3548721' title='Groovy Development'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112717458684617536/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112717458684617536&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112717458684617536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112717458684617536'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/10/groovy-development.html' title='Groovy Development'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112717429238193629</id><published>2005-09-19T20:57:00.000-03:00</published><updated>2005-09-19T20:58:12.386-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='videogames'/><title type='text'>Game Scripting with Python</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112717429238193629?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://harkal.sylphis3d.com/2005/08/10/multithreaded-game-scripting-with-stackless-python/' title='Game Scripting with Python'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112717429238193629/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112717429238193629&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112717429238193629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112717429238193629'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/09/game-scripting-with-python.html' title='Game Scripting with Python'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112698267063066454</id><published>2005-09-17T15:42:00.000-03:00</published><updated>2005-09-17T15:44:30.636-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webdesign'/><category scheme='http://www.blogger.com/atom/ns#' term='videogames'/><title type='text'>Video Games Reloaded</title><content type='html'>A tecnologia evolui. E com a evolução, as grandes "revoluções" do passado viram brinquedo. Que tal um &lt;a href="http://janis.or.jp/users/segabito/JavaScriptMaryo.html"&gt;remake do Super Mario todo em Javascript/html&lt;/a&gt;? Ou quem sabe, &lt;a href="http://www.funnygames.nl/games/denk/2399_popup.html"&gt;Lemmings DHTML Edition&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112698267063066454?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112698267063066454/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112698267063066454&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112698267063066454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112698267063066454'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/09/video-games-reloaded.html' title='Video Games Reloaded'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112675709811715283</id><published>2005-09-15T00:51:00.000-03:00</published><updated>2005-09-15T01:04:58.130-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dotnet'/><title type='text'>C#: uma linguagem funcional?</title><content type='html'>Há algum tempo que eu digo que várias inovações em linguagens de programação que surgiram da pesquisa com linguagens funcionais estão se tornando &lt;span style="font-style: italic;"&gt;mainstream&lt;/span&gt;. Nos últimos anos a comunidade C++ vem namorando cada vez mais com a programação funcional, como prova a existência de bibliotecas de templates como &lt;a href="http://www.google.com.br/url?sa=U&amp;start=1&amp;amp;q=http://www.cc.gatech.edu/%7Eyannis/fc%2B%2B/&amp;amp;e=747"&gt;FC++&lt;/a&gt; e &lt;a href="http://www.boost.org/doc/html/lambda.html"&gt;boost.lambda&lt;/a&gt;. Agora a linguagem C# está adicionando várias características antes conhecidas apenas em linguagens funcionais, como detalhado &lt;a href="http://msdn.microsoft.com/vcsharp/future/"&gt;nesta página&lt;/a&gt; na MSDN. Alguns destaques (via &lt;a href="http://tacojuice.org/plnews"&gt;PLNews&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;&lt;i&gt; &lt;ul&gt;&lt;li&gt;Implicitly typed local variables, which permit the type of local variables to be inferred from the expressions used to initialize them.&lt;/li&gt;&lt;li&gt;Extension methods, which make it possible to extend existing types and constructed types with additional methods.&lt;/li&gt;&lt;li&gt;Lambda expressions, an evolution of anonymous methods that provides improved type inference and conversions to both delegate types and expression trees.&lt;/li&gt;&lt;li&gt;Object initializers, which ease construction and initialization of objects.&lt;/li&gt;&lt;li&gt;Anonymous types, which are tuple types automatically inferred and created from object initializers.&lt;/li&gt;&lt;li&gt;Implicitly typed arrays, a form of array creation and initialization that infers the element type of the array from an array initializer.&lt;/li&gt;&lt;li&gt;Query expressions, which provide a language integrated syntax for queries that is similar to relational and hierarchical query languages such as SQL and XQuery.&lt;/li&gt;&lt;li&gt;Expression trees, which permit lambda expressions to be represented as data (expression trees) instead of as code (delegates).&lt;/li&gt;&lt;/ul&gt; &lt;/i&gt;&lt;a href="http://en.wikipedia.org/wiki/Hindley-Milner_type_inference"&gt;Inferência de tipos&lt;/a&gt; apareceu com a &lt;a href="http://en.wikipedia.org/wiki/ML_programming_language"&gt;linguagem ML&lt;/a&gt; original, na década de 70. Expressões lambda vêm do &lt;a href="http://en.wikipedia.org/wiki/Lambda_calculus"&gt;cálculo-lambda&lt;/a&gt; de Alonzo Church, mas foram incorporados pela primeira vez numa linguagem de programação com a &lt;a href="http://en.wikipedia.org/wiki/Lisp_programming_language"&gt;Lisp&lt;/a&gt; original de John McCarthy. As expressões de consulta fazem parte do &lt;a href="http://msdn.microsoft.com/netframework/future/linq/"&gt;LINQ&lt;/a&gt;, a tentativa da MS de integrar uma sub-linguagem de consulta e acesso a bancos de dados dentro de C# e Visual Basic. Sobre esse projeto, veja &lt;a href="http://lambda-the-ultimate.org/node/view/967"&gt;este post&lt;/a&gt; de Erik Meijer no &lt;a href="http://lambda-the-ultimate.org/"&gt;Lambda the Ultimate&lt;/a&gt; para se ter uma idéia de como a teoria está indo direto para a prática. Resta saber se a salada toda, no final, vai ser boa ou não.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112675709811715283?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://msdn.microsoft.com/vcsharp/future/' title='C#: uma linguagem funcional?'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112675709811715283/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112675709811715283&amp;isPopup=true' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112675709811715283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112675709811715283'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/09/c-uma-linguagem-funcional.html' title='C#: uma linguagem funcional?'/><author><name>tautologico</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112657090492112574</id><published>2005-09-12T21:21:00.000-03:00</published><updated>2005-09-12T21:21:44.930-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>AtomChip® Quantum® II</title><content type='html'>O primeiro computador solid-state - i.e., sem HD ou outras peças mecânicas móveis que possam quebrar facilmente. Todo o armazenamento é feito em memória flash (como os cartões de memória de câmeras digitais). A "coisinha" será lançada no começo do ano que vem, e tem preço sugerido de aproximadamente 10.000 dólares.&lt;br /&gt;&lt;br /&gt;Processor: 6.8GHZ CPU (AtomChip® Quantum® II processor / System Compliance: Two Operating Systems with Voice Command (Microsoft® Windows® XP Professional and Linux®) &lt;br /&gt;Memory: 1TB Quantum-Optical non-volatile RAM (NvIOpSRAM-SODIMM 200-pin) &lt;br /&gt;Storage: 2TB non-volatile Quantum RAM (NvIOpRAM-ATA IDE)&lt;br /&gt;Optical Drive: DVD Super Multia&lt;br /&gt;LCD Display: 12.1” WXGA (1280 x 800, 16:10) TFT Glare Type LCD display with 1.3 Mega pixel CMOS camera&lt;br /&gt;Video &amp; Graphics: Two Integrated graphic controllers [Intel®855GME internal graphics, support Intel® DVMT (Dynamic Video Memory Technology) and AtomChip® DVM (Dynamic Video Memory)]&lt;br /&gt;Communication: 10/100 Base-T LAN on board, MDC Fax/Modem V.90/V.92 on Board, 802.11a/802.11b/802.11g WLAN, Intel® PRO/Wireless 2100/2200BG/2915ABG network connection, WiFi, Bluetoth, GPRS -with Bluetoth antena, CMOS camera with USB&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112657090492112574?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://atomchip.com/_wsn/page4.html' title='AtomChip® Quantum® II'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112657090492112574/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112657090492112574&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112657090492112574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112657090492112574'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/09/atomchip-quantum-ii.html' title='AtomChip® Quantum® II'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112535149220632185</id><published>2005-08-29T18:37:00.000-03:00</published><updated>2005-08-29T18:38:12.213-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='curiosidades'/><title type='text'>Roubo de celular</title><content type='html'>Nunca roube um celular de um desenvolvedor ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112535149220632185?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://zone-mr.net/?act=entry&amp;id=36' title='Roubo de celular'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112535149220632185/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112535149220632185&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112535149220632185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112535149220632185'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/08/roubo-de-celular.html' title='Roubo de celular'/><author><name>Rafael Torres</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112502516580595734</id><published>2005-08-25T23:57:00.000-03:00</published><updated>2005-08-26T00:00:16.766-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Acegi Security</title><content type='html'>Um framework de segurança impressionante e muito bem documentado para uso com o Spring Framework.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;blockquote&gt;&lt;em&gt;Summary: Acegi Security is an open source project that provides comprehensive authentication and authorisation services for enterprise applications based on The Spring Framework. Acegi Security can authenticate using a variety of pluggable providers, and can authorise both web requests and method invocations. Acegi Security provides an integrated security approach across these various targets, and also offers access control list (ACL) capabilities to enable individual domain object instances to be secured. At an implementation level, Acegi Security is managed through Spring's inversion of control and lifecycle services, and actually enforces security using interception through servlet Filters and Java AOP frameworks. In terms of AOP framework support, Acegi Security currently supports AOP Alliance (which is what the Spring IoC container uses internally) and AspectJ, although additional frameworks can be easily supported.&lt;/em&gt;&lt;/blockquote&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112502516580595734?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://acegisecurity.sourceforge.net' title='Acegi Security'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112502516580595734/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112502516580595734&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112502516580595734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112502516580595734'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/08/acegi-security.html' title='Acegi Security'/><author><name>Rafael Torres</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112484051540012806</id><published>2005-08-23T20:40:00.000-03:00</published><updated>2005-08-23T20:41:55.400-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><title type='text'>Torvalds licencia e cobra pelo uso do nome Linux</title><content type='html'>Aprendam, crianças: é &lt;a href="http://idgnow.uol.com.br/AdPortalv5/MercadoInterna2_220805.html"&gt;assim&lt;/a&gt; que se ganha com software livre! :)&lt;br /&gt;(já pensou se ele decide cobrar royalties de todo mundo...?)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112484051540012806?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://idgnow.uol.com.br/AdPortalv5/MercadoInterna2_220805.html' title='Torvalds licencia e cobra pelo uso do nome Linux'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112484051540012806/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112484051540012806&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112484051540012806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112484051540012806'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/08/torvalds-licencia-e-cobra-pelo-uso-do.html' title='Torvalds licencia e cobra pelo uso do nome Linux'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112483990671100651</id><published>2005-08-23T20:26:00.000-03:00</published><updated>2005-08-23T20:31:46.720-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xml'/><title type='text'>When to use XML (again)</title><content type='html'>A moda do "XML everywhere" parece estar diminuindo, depois do modismo que tomou conta dos últimos anos (e levou à construção de milhares de sistemas lentos e mal estruturados, mundo afora). Para evitar novos erros básicos de utilização de uma tecnologia que já se consolida como um dos "&lt;span style="font-style:italic;"&gt;building blocks&lt;/span&gt;" essenciais em diversas arquiteturas de sistemas, a pergunta nunca deve ser esquecida: &lt;a href="http://blogs.tedneward.com/2005/08/22/When+Do+You+Use+XML+Again.aspx"&gt;quando usar XML&lt;/a&gt;?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112483990671100651?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112483990671100651/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112483990671100651&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112483990671100651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112483990671100651'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/08/when-to-use-xml-again.html' title='When to use XML (again)'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112336889527195905</id><published>2005-08-22T08:53:00.000-03:00</published><updated>2005-08-22T08:51:59.356-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gerencia'/><title type='text'>Os erros da versão 1.0</title><content type='html'>Por que projetos novos falham? Por que é tão comum jogar-se a versão 1.0 fora e refazer tudo do zero, quando um projeto entra em produção ou começa a sua evolução? Alguns dos erros mais comuns são fáceis de detectar, e (espera-se) corrigir.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112336889527195905?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.scottberkun.com/essays/essay36.htm' title='Os erros da versão 1.0'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112336889527195905/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112336889527195905&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112336889527195905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112336889527195905'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/08/os-erros-da-verso-10.html' title='Os erros da versão 1.0'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112336866406315618</id><published>2005-08-19T09:49:00.000-03:00</published><updated>2005-08-19T09:55:14.333-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Drivers JDBC</title><content type='html'>Uma lista com os mais comuns drivers JDBC disponíveis, e instruções de uso. Um bookmark interessante!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112336866406315618?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.devx.com/tips/Tip/28818?trk=DXRSS_JAVA' title='Drivers JDBC'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112336866406315618/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112336866406315618&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112336866406315618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112336866406315618'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/08/drivers-jdbc.html' title='Drivers JDBC'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112429787317795473</id><published>2005-08-17T13:56:00.000-03:00</published><updated>2005-08-17T20:42:13.356-03:00</updated><title type='text'>Criptografia Quântica</title><content type='html'>O Diretor Executivo, Sr.Leonardo icciardi, ministrará no 1º Congresso de Segurança da Informação na UFRJ, no dia 23 desse mês às 11 da manhã, a primeira apresentação de um sistema em pleno funcionamento com o uso da Criptografia Quântica.&lt;br /&gt;&lt;br /&gt;Mais de detalhes sobre a Criptografia Quântica em &lt;a href="http://www.dsc.ufcg.edu.br/~gmcc/mq/criptografia.html"&gt;http://www.dsc.ufcg.edu.br/~gmcc/mq/criptografia.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112429787317795473?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.seginfo.ufrj.br' title='Criptografia Quântica'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112429787317795473/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112429787317795473&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112429787317795473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112429787317795473'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/08/criptografia-quntica.html' title='Criptografia Quântica'/><author><name>Rafael Torres</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112251576628074133</id><published>2005-08-17T09:55:00.000-03:00</published><updated>2005-08-17T09:56:01.563-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>A guerra contra o terrorismo...</title><content type='html'>...Em uma versão Bourne shell. Para o bom geek que não entende direito de política internacional, mas adora compilar um kernel.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;$ cd /middle_east&lt;br /&gt;$ ls&lt;br /&gt;Afghanistan   Iraq          Libya         Saudi_Arabia  UAE&lt;br /&gt;Algeria       Israel        Morrocco      Sudan         Yemen&lt;br /&gt;Bahrain       Jordan        Oman          Syria&lt;br /&gt;Egypt         Kuwait        Palestine     Tunisia&lt;br /&gt;Iran          Lebanon       Qatar         Turkey&lt;br /&gt;&lt;br /&gt;$ cd Afghanistan&lt;br /&gt;$ ls&lt;br /&gt;bin  Taliban    &lt;br /&gt;$ rm Taliban&lt;br /&gt;rm: Taliban is a directory&lt;br /&gt;$ cd Taliban&lt;br /&gt;$ ls&lt;br /&gt;soldiers&lt;br /&gt;$ rm soldiers&lt;br /&gt;$ cd ..&lt;br /&gt;$ rmdir Taliban&lt;br /&gt;rmdir: directory "Taliban": Directory not empty&lt;br /&gt;$ cd Taliban&lt;br /&gt;$ ls -a&lt;br /&gt;.            ..           .insurgents&lt;br /&gt;$ chown -R USA .*&lt;br /&gt;chown: .insurgents: Not owner&lt;br /&gt;$ cd ..&lt;br /&gt;$ su&lt;br /&gt;Password: *******&lt;br /&gt;# mv Taliban /tmp&lt;br /&gt;# exit&lt;br /&gt;$ ls&lt;br /&gt;bin&lt;br /&gt;$ cd bin&lt;br /&gt;$ ls&lt;br /&gt;laden&lt;br /&gt;$ cd ..&lt;br /&gt;$ rm -r bin/laden&lt;br /&gt;bin/laden: No such file or directory&lt;br /&gt;$ find / -name laden&lt;br /&gt;$&lt;br /&gt;$ su&lt;br /&gt;Password: *******&lt;br /&gt;# mv bin /tmp&lt;br /&gt;# exit&lt;br /&gt;$ pwd&lt;br /&gt;/middle_east/Afghanistan&lt;br /&gt;$ cd /opt/UN&lt;br /&gt;$ ln -s /Bad_Guys/Al_Qaeda /middle_east/Iraq/.&lt;br /&gt;ln: cannot create /middle_east/Iraq/Al_Qaeda: Permission denied&lt;br /&gt;$ su&lt;br /&gt;Password:*******&lt;br /&gt;# ln -s /Bad_Guys/Al_Qaeda /middle_east/Iraq/.&lt;br /&gt;# cd /middle_east/Iraq/Al_Qaeda&lt;br /&gt;Al_Qaeda: does not exist&lt;br /&gt;# rm /middle_east/Iraq/Al_Qaeda&lt;br /&gt;# mkfile 100g /middle_east/Iraq/Al_Qaeda&lt;br /&gt;mkfile: No space left on device&lt;br /&gt;# rm /middle_east/Iraq/Al_Qaeda&lt;br /&gt;# cd /opt/Coalition/Willing&lt;br /&gt;# mkfile 1b /middle_east/Iraq/Al_Qaeda&lt;br /&gt;# chown -R USA:Proof /middle_east/Iraq/Al_Qaeda&lt;br /&gt;#exit&lt;br /&gt;$ cd /middle_east/Iraq&lt;br /&gt;$ ls&lt;br /&gt;saddam&lt;br /&gt;$ ls&lt;br /&gt;saddam&lt;br /&gt;$ ls&lt;br /&gt;saddam&lt;br /&gt;$ ls -a&lt;br /&gt;.            ..           saddam&lt;br /&gt;$ find / -name [Ww][Mm][Dd]&lt;br /&gt;/Korea/North/wMd&lt;br /&gt;$ wall Propaganda.txt&lt;br /&gt;Broadcast Message from USA (pts/1) on USS_Abraham_Lincoln Th May 1st&lt;br /&gt;Mission Accomplished!&lt;br /&gt;$ rm saddam&lt;br /&gt;saddam: No such file or directory&lt;br /&gt;$ find / -name saddam&lt;br /&gt;/var/opt/dictators/spiderhole/saddam&lt;br /&gt;$ wall NewsWorthy.txt&lt;br /&gt;Broadcast Message from USA (pts/1) on Time.Magazine Sat Dec 13&lt;br /&gt;We Got Him!&lt;br /&gt;$ mv /var/opt/dictators/spiderhole/saddam /opt/jail&lt;br /&gt;$ cd /opt/USA&lt;br /&gt;$ cp -Rp Democracy /middle_east/Iraq&lt;br /&gt;$ cd /middle_east/Iraq/Democracy&lt;br /&gt;$ ./install&lt;br /&gt;Install Error: Install failed.  See install_log for details.&lt;br /&gt;$ more install_log&lt;br /&gt;Installed failed!&lt;br /&gt;Prerequisite packages missing&lt;br /&gt;Conflicting package Wahhabism found in /midde_east/Saudi_Arabia&lt;br /&gt;Packages Church and State must be installed separately&lt;br /&gt;File System /PeakOil nearing capacity&lt;br /&gt;Please read the install guide to properly plan your installation.&lt;br /&gt;$&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112251576628074133?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112251576628074133/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112251576628074133&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112251576628074133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112251576628074133'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/08/guerra-contra-o-terrorismo.html' title='A guerra contra o terrorismo...'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112412393088879729</id><published>2005-08-15T13:31:00.000-03:00</published><updated>2005-08-15T13:38:52.973-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='jme'/><title type='text'>John Carmack e o J2ME</title><content type='html'>Falando nele, encontrei &lt;a href="http://www.armadilloaerospace.com/n.x/johnc/recent%20updates/archive?news_id=295"&gt;este post&lt;/a&gt; no seu blog que fala sobre a experiência de desenvolver jogos para celulares, principalmente usando Java. Tanto os pontos positivos quanto negativos são ressaltados, além de alguns comentários sobre as diferenças entre o desenvolvimento de jogos megalomaníacos para PC e os bem limitados que cabem nas plataformas móveis atuais. Ele também fala um pouco de como surgiu a idéia do DoomRPG.&lt;br /&gt;&lt;br /&gt;Alguns trechos para atiçar os ânimos:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;The biggest problem is that Java is really slow. On a pure cpu / memory / display / communications level, most modern cell phones should be considerably better gaming platforms than a Game Boy Advanced. With Java, on most phones you are left with about the CPU power of an original 4.77 mhz IBM PC, and lousy control over everything.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;[...]&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Write-once-run-anywhere. Ha. Hahahahaha. We are only testing on four platforms right now, and not a single pair has the exact same quirks. All the commercial games are tweaked and compiled individually for each (often 100+) platform. Portability is not a justification for the awful performance.&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112412393088879729?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.armadilloaerospace.com/n.x/johnc/recent%20updates/archive?news_id=295' title='John Carmack e o J2ME'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112412393088879729/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112412393088879729&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112412393088879729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112412393088879729'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/08/john-carmack-e-o-j2me.html' title='John Carmack e o J2ME'/><author><name>tautologico</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112412072781001843</id><published>2005-08-15T12:38:00.000-03:00</published><updated>2005-08-15T12:48:40.206-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='videogames'/><title type='text'>Quake 3 GPL</title><content type='html'>Os desenvolvedores de jogos e pretendentes no mundo inteiro estão de pulso acelerado por causa dessa notícia: &lt;a href="http://en.wikipedia.org/wiki/John_Carmack"&gt;John Carmack&lt;/a&gt; anunciou que &lt;a href="http://pc.ign.com/articles/641/641567p1.html"&gt;o código-fonte de Quake 3 será liberado&lt;/a&gt;, licenciado pela GPL, assim como foi feito antes com os jogos anteriores da &lt;a href="http://www.idsoftware.com/"&gt;Id&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Já é possível antecipar os milhares que baixarão o código-fonte inteiro, para nunca olhar para ele (bom talvez uma ou duas vezes, rapidamente). Mas também devem aparecer vários projetos interessantes aproveitando o código, como os que já existem baseados em Q2, o Quake original e até mesmo Doom.&lt;br /&gt;&lt;br /&gt;Do ponto de vista da engenharia de software, Quake 3 é um sistema enorme e de grande complexidade. É interessante notar que a indústria de jogos não é muito conhecida por usar os métodos da moda, e que John Carmack é menos "antenado" ainda, apesar da qualidade inegável dos jogos da empresa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112412072781001843?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://pc.ign.com/articles/641/641567p1.html' title='Quake 3 GPL'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112412072781001843/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112412072781001843&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112412072781001843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112412072781001843'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/08/quake-3-gpl.html' title='Quake 3 GPL'/><author><name>tautologico</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112093552825742682</id><published>2005-08-14T13:54:00.000-03:00</published><updated>2005-08-14T13:30:28.306-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gerencia'/><title type='text'>Calculando Estimativas: o Método de Pontos de Caso de Uso</title><content type='html'>Estimar o porte - e conseqüentemente, o custo de produção - de um sistema não é uma tarefa fácil. Na grande maioria dos casos, as estimativas costumam ser lançadas sem qualquer preocupação com uma medição formal, resultando em cronogramas imprecisos - e algumas vezes, desastrosos.&lt;br /&gt;A análise de sistemas Orientados a Objetos já utiliza, comumente, os diagramas de Casos de Uso (Use Cases) para descrever as funcionalidades do sistema de acordo com a forma de utilização por parte dos usuários. A técnica de análise de dimensão por Casos de Uso foi criada para permitir que seja possível estimar o tamanho do sistema ainda na fase de levantamento de Casos de Uso, utilizando-se dos próprios documentos gerados nesta fase de análise como subsídio para o cálculo dimensional.&lt;br /&gt;Artigo completo &lt;a href="http://www.sollipsis.com/files/usecasepoints.pdf"&gt;aqui&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112093552825742682?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.sollipsis.com/files/usecasepoints.pdf' title='Calculando Estimativas: o Método de Pontos de Caso de Uso'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112093552825742682/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112093552825742682&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112093552825742682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112093552825742682'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/08/calculando-estimativas-o-mtodo-de.html' title='Calculando Estimativas: o Método de Pontos de Caso de Uso'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112282341909437994</id><published>2005-08-12T09:19:00.000-03:00</published><updated>2007-02-17T13:37:00.651-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Ruby + Eclipse</title><content type='html'>Pra quem anda se aventurando no &lt;a href="http://www.rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt; e não é habituado com &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt;, existe um plugin interessante para a IDE &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt;: o &lt;a href="http://rubyeclipse.sourceforge.net/"&gt;RDT&lt;/a&gt; faz syntax highlighting, code completion, teste de expressões regulares... Nice!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112282341909437994?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://rubyeclipse.sourceforge.net/' title='Ruby + Eclipse'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112282341909437994/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112282341909437994&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112282341909437994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112282341909437994'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/08/ruby-eclipse.html' title='Ruby + Eclipse'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112303158103946792</id><published>2005-08-11T19:07:00.000-03:00</published><updated>2005-08-11T19:06:15.256-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Upgrading to Hibernate 3</title><content type='html'>Certo dia você acorda, inspirado, temerário e sentindo-se o mais confiante dos geeks.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;- Já sei! Vou fazer um upgrade na camada de persistência de nosso sistema! Deixa eu só baixar o Hibernate 3...&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Nem tudo são flores. O último release do &lt;a href="http://www.hibernate.org"&gt;Hibernate&lt;/a&gt; agregou tantas mudanças arquiteturais e conceituais que a equipe do projeto achou por bem eliminar a compatibilidade (&lt;span style="font-style:italic;"&gt;backward compatibility&lt;/span&gt;). Para o desespero dos desinformados...&lt;br /&gt;&lt;br /&gt;O artigo &lt;a href="http://twasink.net/blog/archives/2005/04/upgrading_to_hi_1.html"&gt;Upgrading to Hibernate 3 - a war story&lt;/a&gt; é um relato de quem já teve que passar pela atualização e sobreviveu. Sem maiores traumas, e sem noites sem dormir.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112303158103946792?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://twasink.net/blog/archives/2005/04/upgrading_to_hi_1.html' title='Upgrading to Hibernate 3'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112303158103946792/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112303158103946792&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112303158103946792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112303158103946792'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/08/upgrading-to-hibernate-3.html' title='Upgrading to Hibernate 3'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112251863829818096</id><published>2005-08-10T19:42:00.000-03:00</published><updated>2007-02-17T13:36:56.216-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='jme'/><title type='text'>'Write once, run anywhere' not working for phones</title><content type='html'>O padrão J2ME foi definido e proposto para evitar que a grande variedade de &lt;span style="font-style: italic;"&gt;form factors&lt;/span&gt; dos dispositivos móveis tornasse o desenvolvimento de aplicações um inferno de incompatibilidades e versões dedicadas. O resultado: um padrão muitíssimo limitado (MIDP 1.0), seguido por um padrão visualmente mais flexível, mas com severas restrições de acesso a recursos de hardware (MIDP 2.0). O MIDP 3.0 vem por aí, e (mais uma vez) promete ser a solução de todos os problemas. Mas com os dispositivos móveis evoluindo mais rápido do que qualquer outro dispositivo computacional da história, será que o padrão vai chegar a tempo?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://news.com.com/Write+once%2C+run+anywhere+not+working+for+phones/2100-1037_3-5788766.html?tag=st.prev"&gt;Este artigo do cnet.com&lt;/a&gt; debate o problema e, como sempre, joga lenha na eterna (e cansativa) discussão "Java versus qualquer outra coisa"...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112251863829818096?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112251863829818096/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112251863829818096&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112251863829818096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112251863829818096'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/08/write-once-run-anywhere-not-working.html' title='&apos;Write once, run anywhere&apos; not working for phones'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112303219525315762</id><published>2005-08-07T11:20:00.000-03:00</published><updated>2005-08-07T14:10:06.036-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='jme'/><title type='text'>J2ME Polish</title><content type='html'>Uma ferramenta de build que permite "polir" aplicações J2ME, adaptando-as a dispositivos com características específicas, com um mecanismo meio estranho de tags (macros?) espalhadas pelo código da aplicação.&lt;br /&gt;O site também inclui uma &lt;a href="http://www.j2mepolish.org/devices-overview.html"&gt;relação de devices J2ME&lt;/a&gt;, incluindo as APIs que eles implementam.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112303219525315762?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.j2mepolish.org/index.html' title='J2ME Polish'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112303219525315762/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112303219525315762&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112303219525315762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112303219525315762'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/08/j2me-polish.html' title='J2ME Polish'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112267848657751812</id><published>2005-08-05T11:03:00.000-03:00</published><updated>2005-08-05T12:07:29.996-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='curiosidades'/><title type='text'>Syndromes of Forgotten Programmers</title><content type='html'>Quanto mais você cospe linhas de código (e inevitavelmente, acaba esbarrando nas linhas de código cuspidas por outros desenvolvedores mundo afora), mais percebe como pessoas diferentes pensam diferente - e acabam por criar software que reflete suas mentes (maníacas, complicadas, pouco criativas, preguiçosas...). As "síndromes de programador" são tão comuns que deveriam ser ensinadas em faculdade.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The Rube Goldberg Syndrome&lt;/span&gt;&lt;br /&gt;Rube Goldberg was a cartoonist famous for incredibly complex solutions to life’s simpler problems. His programming counterparts never tire of demonstrating to everyone what incredibly complex and talented programmers they are...even in simple situations that don’t call for it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The Mother Hen Syndrome&lt;/span&gt;&lt;br /&gt;Mother Hens have a bad case of nesting instinct, at least when it comes to IF..THEN..ELSE constructs. I recently had to debug a program with 14 levels of nested IFs. These probably do not occur as often as they seem. It’s just that if over-nested IFs exist in a program a debugging trail generally leads to them.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The Garbage Collector Syndrome&lt;/span&gt;&lt;br /&gt;Garbage Collectors are incapable of deleting a line of code, no matter how useless or obsolete it might be. The programs they work on resemble mazes, full of commented-out code and unused modules. Imagine what these programs will be like in another 10-20 years!&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;E tem muito mais no artigo &lt;a href="http://www.developerdotstar.com/mag/articles/cauble_forgotten_programm.html"&gt;"Syndromes of Forgotten Programmers"&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112267848657751812?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.developerdotstar.com/mag/articles/cauble_forgotten_programm.html' title='Syndromes of Forgotten Programmers'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112267848657751812/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112267848657751812&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112267848657751812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112267848657751812'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/08/syndromes-of-forgotten-programmers.html' title='Syndromes of Forgotten Programmers'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112316196242584890</id><published>2005-08-04T10:18:00.000-03:00</published><updated>2005-08-04T10:26:02.440-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>MIDP 3 Use Cases - Java ME Developer community input</title><content type='html'>The MIDP3 Expert Group (EG) is currently in the process of defining use cases to be used as the basis for the MIDP3 requirements definition.&lt;br /&gt;&lt;br /&gt;The EG considers your feedback/input on use cases important.&lt;br /&gt;&lt;br /&gt;To capture your input, a new bucket has been created on the J2ME Devcommunity Wiki. Use cases that are captured will be passed on to theMIDP3 Expert Group for consideration.&lt;br /&gt;&lt;br /&gt;Before posting your use cases, please read existing entries to avoid duplicates. Also, please followed the specified format.&lt;br /&gt;&lt;br /&gt;You can find the "JSR 271 MIDP3 Developer Community Use-CasesRepository" on the main Wiki clone page @ &lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://www.j2medeveloper.com/wiki" target="_blank"&gt;http://www.j2medeveloper.com/wiki&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112316196242584890?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.j2medeveloper.com/wiki' title='MIDP 3 Use Cases - Java ME Developer community input'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112316196242584890/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112316196242584890&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112316196242584890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112316196242584890'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/08/midp-3-use-cases-java-me-developer.html' title='MIDP 3 Use Cases - Java ME Developer community input'/><author><name>Rafael Torres</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112300408337750114</id><published>2005-08-02T14:10:00.000-03:00</published><updated>2005-08-02T14:34:43.393-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Mentawai 1.1</title><content type='html'>Foi lancado uma nova versão deste framework WEB "made in Brazil". As novas features vão desde autorização, IoC  e file upload  até diversas melhorias e ajustes.&lt;br /&gt;&lt;br /&gt;Para quem não conhece, o &lt;a href="http://mentawai.lohis.com.br/"&gt;Mentawai &lt;/a&gt;vem com uma proposta de ser um framework com uma curva de apredizagem bem pequena para aquelas pessoas que não tem tempo a perder aprendendo um framework novo. Só para ter uma ideia, ele chegou a abolir o uso de XML para as suas configurações.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112300408337750114?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://mentawai.lohis.com.br/' title='Mentawai 1.1'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112300408337750114/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112300408337750114&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112300408337750114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112300408337750114'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/08/mentawai-11.html' title='Mentawai 1.1'/><author><name>Rafael Torres</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112173279892790943</id><published>2005-08-01T14:25:00.000-03:00</published><updated>2005-08-01T14:03:09.976-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>As 7 Fases de um Projeto</title><content type='html'>1. Entusiasmo &lt;br /&gt;2. Desilusão&lt;br /&gt;3. Confusão&lt;br /&gt;4. Pânico&lt;br /&gt;5. Caçada aos culpados&lt;br /&gt;6. Punição dos inocentes&lt;br /&gt;7. Promoção dos não participantes&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112173279892790943?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112173279892790943/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112173279892790943&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112173279892790943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112173279892790943'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/08/as-7-fases-de-um-projeto.html' title='As 7 Fases de um Projeto'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112267609229922888</id><published>2005-07-31T11:20:00.000-03:00</published><updated>2005-07-31T11:46:54.170-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><title type='text'>Programming in Haskell</title><content type='html'>Um &lt;a href="http://www.cs.nott.ac.uk/~gmh/book.html"&gt;livro introdutório&lt;/a&gt; sobre a linguagem de programação &lt;a href="http://en.wikipedia.org/wiki/Haskell_programming_language"&gt;Haskell&lt;/a&gt; - uma linguagem "puramente funcional de propósito geral". Além de um preview do livro, o site disponibiliza também slideshows (powerpoint) de cada um dos capítulos do livro. Um "kickstart" interessante para quem não conhece nada da linguagem.&lt;br /&gt;O próprio &lt;a href="http://www.haskell.org/"&gt;site do haskell&lt;/a&gt; (da haskell??) tem uma boa quantidade de manterial interessanste, inclusive &lt;a href="http://www.haskell.org/practice.html"&gt;aplicações&lt;/a&gt; desenvolvidas na linguagem. O site também tenta &lt;a href="http://www.haskell.org/aboutHaskell.html"&gt;desmistificar algumas idéias&lt;/a&gt; sobre a programação funcional e faz comparações com o modelo procedural/imperativo.&lt;br /&gt;&lt;br /&gt;E pra quem simplesmente não acredita em programação "puramente funcional", apresentamos a &lt;a href="http://www.cs.chalmers.se/~nordland/ohaskell/"&gt;O'Haskell&lt;/a&gt;!! :D&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;f []     = []&lt;br /&gt;f (x:xs) = f ys ++ [x] ++ f zs&lt;br /&gt;           where&lt;br /&gt;              ys = [a | a  xs, a  x]&lt;br /&gt;              zs = [b | b  xs, b &gt; x]&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112267609229922888?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112267609229922888/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112267609229922888&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112267609229922888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112267609229922888'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/programming-in-haskell.html' title='Programming in Haskell'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112266088636261046</id><published>2005-07-29T15:04:00.000-03:00</published><updated>2005-07-29T15:14:46.370-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Genéricos: Mais críticas</title><content type='html'>Como eu sou o principal responsável por evitar que esse site se torne uma espécie de "Java Partyline", aqui vai mais um artigo criticando a implementação de genéricos na linguagem. É um comentário de &lt;a href="http://www.mindview.net/"&gt;Bruce Eckel&lt;/a&gt; sobre o artigo de Ken Arnold do qual eu falei &lt;a href="http://googletron.blogspot.com/2005/06/are-generics-evil.html"&gt;neste post&lt;/a&gt;. Um trecho para abrir o apetite:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;As much as Java people like to dis C++ for just about everything, C++ templates are much more straightforward than Java generics, because they are consistent. With erasure, you have to constantly remind yourself that you only &lt;i&gt;think&lt;/i&gt; you know what a particular parameterized type is. But because you don't really (except sometimes), it causes all kinds of confusion. And a programming language is supposed to be an abstraction to reduce confusion, so Ken's comment about complexity: "I don't see that the value is there to justify the cost," is legitimate.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Vale lembrar que Eckel e Arnold são dois famosos expoentes da comunidade Java, autores de livros importantes sobre a linguagem (Arnold é co-autor do oficial "The Java Programming Language"), e não &lt;span style="font-style: italic;"&gt;outsiders&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Eu acho que os genéricos foram implementados da melhor maneira possível considerando o requerimento de não quebrar a compatibilidade, e para conseguir isso foi necessária tanta teoria que um programador médio não faz nem idéia. Mas teria sido provavelmente melhor se a Sun não tivesse se preocupado tanto com compatibilidade e planejado uma forma de transição para que o código antigo continuasse a interoperar com o novo. Vai saber, evoluir um sistema muito utilizado é complicado de qualquer forma.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112266088636261046?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.artima.com/weblogs/viewpost.jsp?thread=117200' title='Genéricos: Mais críticas'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112266088636261046/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112266088636261046&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112266088636261046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112266088636261046'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/genricos-mais-crticas.html' title='Genéricos: Mais críticas'/><author><name>tautologico</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112251610416363387</id><published>2005-07-29T01:58:00.000-03:00</published><updated>2005-07-29T01:27:28.790-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>O Hibernate está enrolando a sua cabeça?</title><content type='html'>O "Road to Hibernate" é um tutorial introdutório sobre o &lt;a href="http://www.hibernate.org"&gt;Hibernate&lt;/a&gt; (se não o melhor &lt;span style="font-style:italic;"&gt;framework&lt;/span&gt; Objeto-Relacional Java, pelo menos o mais "&lt;span style="font-style:italic;"&gt;buzz word&lt;/span&gt;" já há um bom tempo).&lt;br /&gt;O tutorial cobre muitos pontos críticos da tecnologia (como os problemas causados pela definição errada de caches e modelo de transaçao, que só são percebidas "tarde demais").&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112251610416363387?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.gloegl.de/5.html' title='O Hibernate está enrolando a sua cabeça?'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112251610416363387/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112251610416363387&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112251610416363387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112251610416363387'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/o-hibernate-est-enrolando-sua-cabea.html' title='O Hibernate está enrolando a sua cabeça?'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112251827472389804</id><published>2005-07-27T23:36:00.000-03:00</published><updated>2005-07-27T23:39:08.320-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><title type='text'>WEP Cracking</title><content type='html'>Continuando no tópico &lt;a href="http://googletron.blogspot.com/2005/07/wardriving.html"&gt;Wardriving&lt;/a&gt;, uma ferramenta muito interessante (ou não, dependendo de que lado da rede &lt;span style="font-style:italic;"&gt;wireless&lt;/span&gt; você está). Ela quebra uma chave WEP rapidinho, permitindo entrar em redes privadas/criptografadas. E é open-source.&lt;br /&gt;Ops!&lt;br /&gt;(o link é colaboração do Rafael Torres! :))&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112251827472389804?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://wepcrack.sourceforge.net/' title='WEP Cracking'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112251827472389804/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112251827472389804&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112251827472389804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112251827472389804'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/wep-cracking.html' title='WEP Cracking'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112250331231802037</id><published>2005-07-27T19:20:00.000-03:00</published><updated>2005-07-27T23:39:00.153-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><title type='text'>Wardriving</title><content type='html'>Significa andar por ai com um laptop equipado com uma placa de rede &lt;em&gt;wireless &lt;/em&gt;para tentar detectar redes &lt;em&gt;wi-fi&lt;/em&gt;  com brechas de seguranças. Um aparelho de GPS também pode ser utilizado p/ marcar a posição, latitude e longitude, onde a rede é encontrada. Já existe até uma versão do &lt;a href="http://www.knopper.net"&gt;KNOPPIX&lt;/a&gt; (Linux Live CD) para esse fim, o &lt;a href="http://new.remote-exploit.org/index.php/Auditor_main"&gt;Auditor&lt;/a&gt;. Esta versão traz várias ferramentas para este tipo de prática como &lt;em&gt;wi-fi&lt;/em&gt; scanners além de scripts de força bruta para quebrar senha WEP. ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112250331231802037?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://en.wikipedia.org/wiki/Wardriving' title='Wardriving'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112250331231802037/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112250331231802037&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112250331231802037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112250331231802037'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/wardriving.html' title='Wardriving'/><author><name>Bruno Herrera</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112242965947387952</id><published>2005-07-26T23:00:00.000-03:00</published><updated>2005-07-26T23:00:59.473-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>Biscoito da Sorte do Dia</title><content type='html'>&lt;blockquote&gt;"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning."&lt;br /&gt;&lt;br /&gt;- Rich Cook&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112242965947387952?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112242965947387952/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112242965947387952&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112242965947387952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112242965947387952'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/biscoito-da-sorte-do-dia.html' title='Biscoito da Sorte do Dia'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112242020088837667</id><published>2005-07-26T20:01:00.000-03:00</published><updated>2005-07-26T23:00:06.550-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>O Jdeveloper agora é grátis. Que m*, ein ?</title><content type='html'>Depois da Borland ter aberto o código-fonte do Jbuilder para a comunidade Eclipse, a Oracle jogou pesado e anunciou que a IDE Java da Oracle (Jdeveloper) poderá ser totalmente utilizada sem a necessidade de licenciamento, observando as regras no Site OTN da Oracle.  &lt;br /&gt;&lt;br /&gt;O pessoal da Oracle e os amantes do Jdeveloper  (existe algum?) que me perdoem, mas não sei o que tem de tão bom nessa notícia, que só tende a piorar ainda mais o Jdev (e tem como?). Ao meu ver, a Oracle está tirando um peso dos seus ombros tornando o Jdev gratuito. Afinal, a partir de agora, se houverem mais reclamações que a ferramenta é ruim, a Oracle simplemente vai responder: "Tá reclamando de que? A IDE é de graça".&lt;br /&gt;&lt;br /&gt;Já que estamos falando da Oracle, ela se ofereceu para liderar o projeto JavaServer Faces (JSF) dentro da comunidade open-source Eclipse Foundation e também irá participar do projeto Apache MyFaces como contribuidor.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112242020088837667?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.line56.com/articles/default.asp?articleID=6658&amp;TopicID=4' title='O Jdeveloper agora é grátis. Que m*, ein ?'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112242020088837667/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112242020088837667&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112242020088837667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112242020088837667'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/o-jdeveloper-agora-grtis-que-m-ein.html' title='O Jdeveloper agora é grátis. Que m*, ein ?'/><author><name>Rafael Torres</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112239020222250005</id><published>2005-07-26T11:57:00.000-03:00</published><updated>2005-07-26T12:03:34.780-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>StringBuffer ou StringBuilder?</title><content type='html'>A classe &lt;a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/StringBuilder.html"&gt;StringBuilder&lt;/a&gt; foi introduzida no Java 5.0. Trata-se de uma versão &lt;span style="font-style: italic;"&gt;non-thread-safe&lt;/span&gt; (portanto, mais rápida) da velha e boa &lt;a href="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/StringBuffer.html"&gt;StringBuffer&lt;/a&gt;. As operações da StringBuilder são iguais às de sua prima. Então, se antes você fazia:&lt;br /&gt;&lt;blockquote&gt;StringBuffer bf = new StringBuffer();&lt;br /&gt;bf.append("google");&lt;br /&gt;bf.append("tron!");&lt;br /&gt;System.out.println(bf.toString());&lt;br /&gt;&lt;/blockquote&gt;Agora você faz:&lt;br /&gt;&lt;blockquote&gt;StringBuilder bf = new StringBuilder();&lt;br /&gt;bf.append("google");&lt;br /&gt;bf.append("tron!");&lt;br /&gt;System.out.println(bf.toString());&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;(O que? Você faz concatenação de strings usando a classe String??? Bad, bad developer. &lt;a href="http://www.javapractices.com/Topic4.cjp"&gt;No donuts for you...&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112239020222250005?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112239020222250005/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112239020222250005&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112239020222250005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112239020222250005'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/stringbuffer-ou-stringbuilder.html' title='StringBuffer ou StringBuilder?'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112093488218964122</id><published>2005-07-25T19:46:00.000-03:00</published><updated>2005-07-25T19:38:39.943-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Mapeamento Objeto-Relacional: Técnicas e Implementações</title><content type='html'>Outro artigo da série de artigos velhos. Conceitos básicos e estratégias para o mapeamento objeto entre objetos e bases de dados relacionais. Versão &lt;a href="http://www.mundooo.com.br/php/mooartigos.php?pa=showpage&amp;pid=19"&gt;online aqui&lt;/a&gt; ou &lt;a href="http://www.cnnt.com.br/files/persistence.pdf"&gt;PDF aqui&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112093488218964122?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112093488218964122/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112093488218964122&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112093488218964122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112093488218964122'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/mapeamento-objeto-relacional-tcnicas-e.html' title='Mapeamento Objeto-Relacional: Técnicas e Implementações'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112052098386013913</id><published>2005-07-23T22:49:00.000-03:00</published><updated>2005-07-23T22:19:33.013-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='curiosidades'/><title type='text'>Você sofre de GeekBlock?</title><content type='html'>&lt;blockquote&gt;&lt;span style="font-style:italic;"&gt;Just as writers are prone to writer's block, programmers are prone to GeekBlock.&lt;br /&gt;&lt;br /&gt;Maybe we can't find the cause of a particular bug,or maybe we just can't stop surfing the web when we know there's things we should be doing.&lt;br /&gt;&lt;br /&gt;Having found myself in the clutches of GeekBlock more than once, I've put together some notes from the inside.&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112052098386013913?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.secretgeek.net/geekblock.asp' title='Você sofre de GeekBlock?'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112052098386013913/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112052098386013913&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112052098386013913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112052098386013913'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/voc-sofre-de-geekblock.html' title='Você sofre de GeekBlock?'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112093469684942593</id><published>2005-07-22T07:38:00.000-03:00</published><updated>2005-07-26T10:39:40.816-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Java Generics</title><content type='html'>Artigo véeeeelho sobre a &lt;a href="http://www.mundooo.com.br/php/mooartigos.php?pa=showpage&amp;amp;pid=22"&gt;introdução dos Generics no Java 1.5&lt;/a&gt; &lt;span style="font-style:italic;"&gt;(ops, falha nossa...)&lt;/span&gt;. Pode ainda servir de referência, though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112093469684942593?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112093469684942593/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112093469684942593&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112093469684942593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112093469684942593'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/java-generics.html' title='Java Generics'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112143645583387281</id><published>2005-07-21T11:06:00.000-03:00</published><updated>2007-02-17T13:36:16.949-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='noticias'/><category scheme='http://www.blogger.com/atom/ns#' term='dotnet'/><title type='text'>A Microsoft Certified Professional mais jovem do planeta!</title><content type='html'>&lt;blockquote&gt;"Meet Arfa, a promising young software programmer from Faisalabad, Pakistan, who is believed to be the youngest Microsoft Certified Professional in the world. She received the certification when she was 9. During a recent meeting with Bill Gates, she presented him with a poem she wrote that celebrated his life story."&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112143645583387281?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://seattlepi.nwsource.com/business/232514_msftarfa14.html' title='A Microsoft Certified Professional mais jovem do planeta!'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112143645583387281/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112143645583387281&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112143645583387281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112143645583387281'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/microsoft-certified-professional-mais.html' title='A Microsoft Certified Professional mais jovem do planeta!'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112183174935441635</id><published>2005-07-20T00:46:00.000-03:00</published><updated>2007-02-17T13:42:13.931-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pdas'/><category scheme='http://www.blogger.com/atom/ns#' term='programaslegais'/><title type='text'>Dasher</title><content type='html'>Se você usa algum dispositivo sem teclado completo (PDA, por exemplo) ou só quer usar uma mão e mesmo assim escrever em uma velocidade razoável, pode valer a pena dar uma olhada no &lt;a href="http://www.inference.phy.cam.ac.uk/dasher/"&gt;Dasher&lt;/a&gt;, um software para entrada de texto baseado em gestos contínuos de apontar.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.inference.phy.cam.ac.uk/dasher/DasherSummary.html"&gt;Segundo o site&lt;/a&gt; é possível chegar tranquilamente a 25 palavras por segundo, e os usuários experientes chegam até 39 palavras por segundo; além disso, funciona em &lt;a href="http://www.inference.phy.cam.ac.uk/dasher/Languages.html"&gt;qualquer língua&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;No endereço tem &lt;a href="http://www.inference.phy.cam.ac.uk/dasher/Demonstrations.html"&gt;demonstrações&lt;/a&gt; de usuários entrando texto com o bicho; realmente, parece um jogo de videogame. Isso porque uma das idéias principais da interface é usar zoom; tenho certeza que &lt;a href="http://en.wikipedia.org/wiki/Jef_Raskin"&gt;Jef Raskin&lt;/a&gt; aprovaria.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112183174935441635?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.inference.phy.cam.ac.uk/dasher/' title='Dasher'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112183174935441635/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112183174935441635&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112183174935441635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112183174935441635'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/dasher.html' title='Dasher'/><author><name>tautologico</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112178152830030167</id><published>2005-07-19T10:52:00.000-03:00</published><updated>2005-07-19T21:09:43.570-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='jme'/><title type='text'>Mbooster - Compilador J2ME</title><content type='html'>Com o aumento da demanda por desenvolvimento J2ME, começam a surgir novas ferrramentas no horizonte para auxiliar no desenvolvimento. Este é a proposta do MBooster, um compilador especifico para J2ME que promete reduzir o byte code. Quando será que teremos o "JikesME" ?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.innaworks.com/mBooster.html"&gt;http://www.innaworks.com/mBooster.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112178152830030167?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.innaworks.com/mBooster.html' title='Mbooster - Compilador J2ME'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112178152830030167/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112178152830030167&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112178152830030167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112178152830030167'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/mbooster-compilador-j2me.html' title='Mbooster - Compilador J2ME'/><author><name>Rafael Torres</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112170507891352844</id><published>2005-07-18T13:42:00.000-03:00</published><updated>2007-02-17T13:42:25.382-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programaslegais'/><category scheme='http://www.blogger.com/atom/ns#' term='rss'/><title type='text'>RSS Screensaver</title><content type='html'>&lt;div align="center"&gt;&lt;a href="http://www.nuparadigm.com/Products/Toys/Downloads/RSS%20Screensaver/RSS%20Screensaver%201.jpg"&gt;&lt;img src="http://www.nuparadigm.com/Products/Toys/Downloads/RSS%20Screensaver/RSS%20Screensaver%201%20-%20Thumbnail.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Um screensaver interessante, que permite exibir RSS Feeds no seu desktop. Por enquanto, disponível somente para Windows (com o Not Yet Framework instalado).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112170507891352844?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.nuparadigm.com/Products/Toys/RssScreensaver/' title='RSS Screensaver'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112170507891352844/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112170507891352844&amp;isPopup=true' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112170507891352844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112170507891352844'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/rss-screensaver.html' title='RSS Screensaver'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112164695300784605</id><published>2005-07-18T09:34:00.000-03:00</published><updated>2005-07-18T09:18:11.296-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>Momento Dilbert...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dilbert.com/comics/dilbert/archive/images/dilbert2005071149497.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px;" src="http://www.dilbert.com/comics/dilbert/archive/images/dilbert2005071149497.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112164695300784605?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112164695300784605/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112164695300784605&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112164695300784605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112164695300784605'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/momento-dilbert_18.html' title='Momento Dilbert...'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112143965742317388</id><published>2005-07-17T07:50:00.000-03:00</published><updated>2007-02-17T13:39:48.963-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>Will RFID-guided robots rule the world?</title><content type='html'>Os robôs guiados por RFID são uma das novas tendências mecatrônicas.&lt;br /&gt;&lt;br /&gt;Enquanto isso, &lt;a href="http://wireless-networking.ws/2005/07/15/mark-of-the-beast-aisle-fourwired-offers-us-an-interesting-look-at/"&gt;teóricos da conspiração&lt;/a&gt;, &lt;a href="http://www.opensocietyparadox.com/mt/archives/000842.html"&gt;malucos&lt;/a&gt;, &lt;a href="http://spaces.msn.com/members/Francischristo/Blog/cns%211peRjGYm3s2GIjq3QrzKoVug%21112.entry"&gt;religiosos&lt;/a&gt; e &lt;a href="http://www.wired.com/news/privacy/0,1848,68133,00.html?tw=wn_tophead_3"&gt;jornalistas&lt;/a&gt; discutem se o RFID não é, na verdade, um sinal do apocalipse...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112143965742317388?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://news.com.com/Will+RFID-guided+robots+rule+the+world/2100-7337-5778286.html?part=dtx&amp;tag=ntop&amp;tag=nl.e703' title='Will RFID-guided robots rule the world?'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112143965742317388/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112143965742317388&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112143965742317388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112143965742317388'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/will-rfid-guided-robots-rule-world.html' title='Will RFID-guided robots rule the world?'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112133926244939860</id><published>2005-07-16T18:04:00.000-03:00</published><updated>2007-02-17T13:39:42.261-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='curiosidades'/><title type='text'>A Máquina de Turing</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://craphound.com/images/legoturing.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://craphound.com/images/legoturing.jpg" alt="" border="0" /&gt;&lt;/a&gt;Que tal uma Máquina de Turing toda feita de &lt;a href="http://www.boingboing.net/2005/07/14/lego_turing_machine.html"&gt;LEGO&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Introduzida por Alan M. Turing em 1936, a Máquina de Turing é uma abstração usada no estudo da Teoria da Computação: o que um computador pode ou não fazer.&lt;br /&gt;&lt;br /&gt;O processo computacional foi graficamente mostrado no artigo de Turing quando ele pediu ao leitor que considerasse em dispositivo que pudesse ler e escrever símbolos em uma fita que estava dividida em quadrados. Uma cabeça de leitura/gravação se moveria em qualquer direção ao longo da fita, um quadrado por vez, e uma unidade de controle poderia interpretar uma lista de instruções simples sobre leitura e gravação de símbolos nos quadrados, movendo-se ou não para a direita ou esquerda. O quadrado que é "lido" em cada etapa é conhecido como "quadrado ativo". A regra que está sendo executada determina o que se convencionou chamar 'estado' da máquina. A fita é potencialmente infinita.&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112133926244939860?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.boingboing.net/2005/07/14/lego_turing_machine.html' title='A Máquina de Turing'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112133926244939860/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112133926244939860&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112133926244939860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112133926244939860'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/mquina-de-turing.html' title='A Máquina de Turing'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112138422682520769</id><published>2005-07-14T20:25:00.000-03:00</published><updated>2007-02-17T13:38:31.001-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>DAOGen</title><content type='html'>Todo programador já teve aqueles dias em que não tem saco para fazer nada. Imagina então que em um destes dias você tem de implementar um DAO para acessar o banco de dados com Interface para lá, implementacao para cá e uma Factory no meio de brinde. Bem, pensando nisso surgiu o projeto DAOGen, que simplesmente faz todo o "trabalho sujo" para você (que eu gosto, Mas sou minoria no meio). Basta gerar as classes seguindo o passo a passo e dentro de segundos... Voilá, um DAO quentinho saindo do forno. Agora é só utilizar o famoso ctrl + xupis e ctrl + cuspis.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://titaniclinux.net/daogen/"&gt;http://titaniclinux.net/daogen/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112138422682520769?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://titaniclinux.net/daogen/' title='DAOGen'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112138422682520769/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112138422682520769&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112138422682520769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112138422682520769'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/daogen.html' title='DAOGen'/><author><name>Rafael Torres</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112136591273748527</id><published>2005-07-14T15:31:00.000-03:00</published><updated>2007-02-17T13:43:11.282-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pdas'/><category scheme='http://www.blogger.com/atom/ns#' term='noticias'/><title type='text'>Palm's new logo</title><content type='html'>&lt;div align="center"&gt;&lt;img src="http://img.engadget.com/common/images/0771223799144212.JPG?0.7513350380889489" /&gt;&lt;/div&gt;&lt;br /&gt;A &lt;a href="http://www.palm.com/"&gt;Palm&lt;/a&gt; (antiga PalmOne, que um dia já se chamou Palm Inc), a empresa que mais sofre de crise de identidade no mundo da tecnologia, mudou de nome e de logo. Mais uma vez. Novamente.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112136591273748527?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.engadget.com/entry/1234000897050480/' title='Palm&apos;s new logo'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112136591273748527/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112136591273748527&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112136591273748527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112136591273748527'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/palms-new-logo.html' title='Palm&apos;s new logo'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112133737138473768</id><published>2005-07-14T07:34:00.000-03:00</published><updated>2007-02-17T13:38:43.635-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>O software e os carros...</title><content type='html'>Numa conferência sobre software (COMDEX), Bill Gates disparou:&lt;br /&gt;&lt;br /&gt;"Se a GM tivesse desenvolvido sua tecnologia como a Microsoft, todos nós estaríamos dirigindo carros de 25 dólares que fariam 1.000 milhas com um galão de gasolina"&lt;br /&gt;&lt;br /&gt;Eis a resposta da GM:&lt;br /&gt;&lt;br /&gt;"Se a GM tivesse desenvolvido sua tecnologia como a Microsoft, todos teríamos carros com as seguintes características:&lt;br /&gt;1 - Sem nenhuma razão aparente, o carro bateria num poste duas vezes por dia.&lt;br /&gt;2 - Eventualmente, seu carro morreria na estrada sem razão aparente. Você aceitaria o fato, daria nova partida e continuaria dirigindo.&lt;br /&gt;3 - Toda vez que as faixas da estrada fossem repintadas, você teria de comprar um novo carro.&lt;br /&gt;4 - Eventualmente, executando uma manobra como uma conversão a esquerda, seu carro deixaria de funcionar e você teria de mandar reinstalar o motor.&lt;br /&gt;5 - Uma única pessoa por vez poderia usar o carro, a menos que você optasse pelo modelo "CarNT". Ainda assim você teria de adquirir mais bancos.&lt;br /&gt;6 - A Macintosh produziria um carro movido a energia solar, mais confortável, cinco vezes mais rápido e duas vezes mais fácil de dirigir, mas que funcionaria apenas em 5% das rodovias.&lt;br /&gt;7 - Luzes indicadoras de óleo, água, temperatura e alternador seriam substituídas por uma simples luz de "falha geral do veículo".&lt;br /&gt;8 - Os bancos exigiriam que todos tivessem as mesmas medidas corporais.&lt;br /&gt;9 - O airbag perguntaria "Você tem Certeza?" antes de disparar.&lt;br /&gt;10 - Eventualmente, sem razão aparente, o carro trancaria o dono fora e não deixaria entrar, a menos que este simultaneamente puxasse a maçaneta, girasse a chave e segurasse na antena do rádio.&lt;br /&gt;11 - A GM exigiria de todos os compradores a aquisição de uma coleção de mapas rodoviários em encadernação de luxo, produzidos por uma subsidiária da GM, mesmo que eles não quisessem os mapas ou precisassem deles.&lt;br /&gt;A tentativa de não adquirir este acessório reduziria o desempenho de veículo em 50%.&lt;br /&gt;12 - Toda vez que a GM lançasse um novo modelo, os motoristas teriam de reaprender a dirigir, porque nenhum dos seus comandos seria operado da mesma maneira que no modelo anterior.&lt;br /&gt;13 - Você teria de pressionar o botão Iniciar para desligar o Motor."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112133737138473768?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112133737138473768/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112133737138473768&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112133737138473768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112133737138473768'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/o-software-e-os-carros.html' title='O software e os carros...'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112092688553585117</id><published>2005-07-14T00:01:00.000-03:00</published><updated>2005-07-13T23:36:30.260-03:00</updated><title type='text'>Will computing flow like electricity?</title><content type='html'>A "computação pervasiva" é a última moda da TI. Computadores em todo lugar? Casas inteligentes? Roupas que sabem quantas vezes foram lavadas? Geladeiras que só deixam você comprar leite desnatado?&lt;br /&gt;Let the software set the flow...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ct.news.com.com/clicks?c=239550-2876508&amp;brand=news&amp;ds=5"&gt;&lt;span style="font-style:italic;"&gt;"Industry executives respond to Nicholas G. Carr's contention that utility computing will evolve in much the same way electricity did a century ago."&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112092688553585117?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.pervasive.dk/' title='Will computing flow like electricity?'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112092688553585117/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112092688553585117&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112092688553585117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112092688553585117'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/will-computing-flow-like-electricity.html' title='Will computing flow like electricity?'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112052056529689043</id><published>2005-07-13T11:40:00.000-03:00</published><updated>2007-02-17T13:39:14.662-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programaslegais'/><title type='text'>txt2tags</title><content type='html'>Uma ferramenta de geração de documentos em Python. Você escreve seus documentos em arquivos txt com uma marcação simples (i.e.: **negrito**, //itálico//, etc, etc), E o txt2tags converte o documento para formatos específicos (html, sgml, pagemaker, manpage, latex). 300% geeky.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112052056529689043?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://txt2tags.sourceforge.net/pt/' title='txt2tags'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112052056529689043/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112052056529689043&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112052056529689043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112052056529689043'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/txt2tags.html' title='txt2tags'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112121034195200407</id><published>2005-07-12T20:14:00.000-03:00</published><updated>2005-07-12T20:19:01.956-03:00</updated><title type='text'>Engenharia de Software ?</title><content type='html'>Publiquei em meu &lt;a href="http://realpar.blogspot.com/"&gt;outro blog&lt;/a&gt; um &lt;a href="http://realpar.blogspot.com/2005/07/lgica-computao-e-engenharia-de.html"&gt;artigo&lt;/a&gt; relativamente longo (para blogs) e opinativo sobre o estado atual da engenharia de software. Ele reúne algumas idéias e impressões minhas com as de um paper de John Allen que está linkado lá. Claro que ainda assim é muito curto para um assunto complexo, e como não é uma opinião muito comum, pouca gente deve concordar, mas esta lá para quem quiser pensar sobre o assunto. Comentários são bem vindos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112121034195200407?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://realpar.blogspot.com/2005/07/lgica-computao-e-engenharia-de.html' title='Engenharia de Software ?'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112121034195200407/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112121034195200407&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112121034195200407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112121034195200407'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/engenharia-de-software.html' title='Engenharia de Software ?'/><author><name>tautologico</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112093835376211380</id><published>2005-07-11T20:39:00.000-03:00</published><updated>2007-02-17T13:40:44.129-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='c'/><title type='text'>C Family Interview</title><content type='html'>Dennis Ritchie, Bjarne Stroustrup e James Gosling criadores do C, C++ e Java respectivamente, foram entrevistados e responderam uma série de perguntas respectivas à criação de suas linguagens e previsões para o futuro. O resultado desta entrevista foi publicado no Java Report, 5(7), de Julho de 2000 e no C++ Report, 12(7), de Julho/Agosto de 2000, e pode ser visto em &lt;a href="http://www.gotw.ca/publications/c_family_interview.htm"&gt;http://www.gotw.ca/publications/c_family_interview.htm&lt;/a&gt;. Vale a pena conferir!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112093835376211380?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.gotw.ca/publications/c_family_interview.htm' title='C Family Interview'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112093835376211380/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112093835376211380&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112093835376211380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112093835376211380'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/c-family-interview.html' title='C Family Interview'/><author><name>Bruno Herrera</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13796465.post-112092686179557162</id><published>2005-07-11T20:30:00.000-03:00</published><updated>2007-02-17T13:41:04.048-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dinheiro'/><title type='text'>Quanto se ganha trabalhando com TI?</title><content type='html'>Pesquisa da ComputerWorld. Enquanto os profissionais da área nem sequer conseguem se organizar para criar regulamentos para a profissão, continuam as pesquisas com números irreais (seja para cima, seja para baixo). Aliás, num país do tamanho do nosso, com cidades tão diferentes em potencial econômico, 'médias' se tornam um troço tão certeiro quanto as pesquisas estatísticas da equipe da marketing da Companhia Cibernética de Sírius...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13796465-112092686179557162?l=googletron.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://computerworld.uol.com.br/AdPortalV5/salario_060705.html' title='Quanto se ganha trabalhando com TI?'/><link rel='replies' type='application/atom+xml' href='http://googletron.blogspot.com/feeds/112092686179557162/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13796465&amp;postID=112092686179557162&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112092686179557162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13796465/posts/default/112092686179557162'/><link rel='alternate' type='text/html' href='http://googletron.blogspot.com/2005/07/quanto-se-ganha-trabalhando-com-ti.html' title='Quanto se ganha trabalhando com TI?'/><author><name>Herval</name><uri>http://www.blogger.com/profile/16703919359437019651</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos16.flickr.com/19249628_4d18095bca_m.jpg'/></author><thr:total>0</thr:total></entry></feed>
