<?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-6487647</id><updated>2011-04-21T17:36:59.413-03:00</updated><category term='códigos malucos'/><title type='text'>TopCoder</title><subtitle type='html'>Desabafos, pensamentos e "viagens" de um cara que já usou um TK85 e agora tenta aprender coisas como&lt;br&gt; Java, EJB´s, WebServices, ADO.NET, ASP.NET, SOAP, Ruby on Rails, e por ai vai&lt;br&gt;
Que saudade do meu livro "Dominando Turbo C"...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://topcoder.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6487647.post-1444454666646111443</id><published>2008-07-28T18:50:00.006-03:00</published><updated>2008-09-18T21:59:08.420-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='códigos malucos'/><title type='text'></title><content type='html'>E esse???&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;script&amp;gt;document.write("!")&amp;lt;/script&amp;gt&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Para colocar um "!" em uma página web...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-1444454666646111443?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/1444454666646111443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/1444454666646111443'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2008_07_01_archive.html#1444454666646111443' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-377195677402340488</id><published>2008-07-28T18:48:00.000-03:00</published><updated>2008-07-28T18:49:24.434-03:00</updated><title type='text'></title><content type='html'>Mais um bizarro:&lt;br /&gt;&lt;br /&gt;Sucesso = True&lt;br /&gt;if Sucesso then&lt;br /&gt;...&lt;br /&gt;end if&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-377195677402340488?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/377195677402340488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/377195677402340488'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2008_07_01_archive.html#377195677402340488' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-8214969024456939609</id><published>2008-07-28T18:04:00.001-03:00</published><updated>2008-07-28T18:05:47.866-03:00</updated><title type='text'></title><content type='html'>Série:  Comentário Exdrúxulos em códigos&lt;br /&gt;&lt;br /&gt;    'A opções escolhida foi desativar os documentos&lt;br /&gt;    'Aqui tenho que fazer alguns &lt;span style="font-weight: bold;"&gt;malabarismos&lt;/span&gt;, pois os paramentros da URL vem em minúsculo&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  ' Tenho que consertar essa mer&amp;amp;*&amp;amp;  de código&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-8214969024456939609?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/8214969024456939609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/8214969024456939609'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2008_07_01_archive.html#8214969024456939609' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-2927541055638156021</id><published>2008-05-23T16:24:00.004-03:00</published><updated>2008-05-23T16:34:20.653-03:00</updated><title type='text'></title><content type='html'>Fala sério...&lt;br /&gt;Imagina encontrar um codigo javascript como o abaixo, repetindo dezenas de vezes o mesmo codigo para mostrar quais os aniversariantes do dia...&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&amp;lt;script language="JavaScript"&amp;gt;&lt;br /&gt;&lt;br /&gt;  var d = new Date();&lt;br /&gt;  var corr_data = d.getDate();&lt;br /&gt;  var corr_mes = d.getMonth();&lt;br /&gt;  var corr_ano = d.getYear();&lt;br /&gt;  corr_mes=corr_mes+1&lt;br /&gt;  var datatotal = corr_data + "/" + corr_mes + "/" + corr_ano;&lt;br /&gt;   &lt;br /&gt;  data_aniversariante = '26/3/2008';&lt;br /&gt;&lt;br /&gt;  if(datatotal == data_aniversariante){&lt;br /&gt;      document.write('&amp;lt;p&gt;&amp;lt;p style="MARGIN: 0px"&amp;gt;&amp;lt;span &amp;gt;&lt;span style="font-weight: bold;"&gt;Nome do cara&lt;/span&gt;&amp;lt;/span&gt;&lt;p&gt;&lt;/p&gt;&amp;lt;p style="MARGIN: 0px"&amp;gt;&amp;lt;span style="font-family:arial,helvetica,sans-serif;font-size:85%;"&amp;gt;&lt;span style="font-weight: bold;"&gt;Nome do cara&lt;/span&gt;&amp;lt;/span&gt;&lt;p&gt;&lt;/p&gt;&amp;lt;p style="MARGIN: 0px"&amp;gt;&amp;lt;span style="font-family:arial,helvetica,sans-serif;font-size:85%;"&amp;gt;&lt;span style="font-weight: bold;"&gt;Nome do cara e por ai vai...&lt;/span&gt;&amp;lt;/span&gt;&lt;p&gt;&lt;/p&gt;&amp;lt;p style="MARGIN: 0px"&amp;gt;&amp;lt;span style="font-family:arial,helvetica,sans-serif;font-size:85%;"&amp;gt;/FONT&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;');&lt;br /&gt;  }&lt;br /&gt;&amp;lt;/script&amp;gt;&amp;lt;script language="JavaScript"&amp;gt;&lt;br /&gt;&lt;br /&gt;  var d = new Date();&lt;br /&gt;  var corr_data = d.getDate();&lt;br /&gt;  var corr_mes = d.getMonth();&lt;br /&gt;  var corr_ano = d.getYear();&lt;br /&gt;  corr_mes=corr_mes+1&lt;br /&gt;  var datatotal = corr_data + "/" + corr_mes + "/" + corr_ano;&lt;br /&gt;   &lt;br /&gt;  data_aniversariante = '1/4/2008';&lt;br /&gt;&lt;br /&gt;  if(datatotal == data_aniversariante){&lt;br /&gt;      document.write('&amp;lt;p&gt;&amp;lt;p style="MARGIN: 0px"&amp;gt;&amp;lt;span &amp;gt;&amp;lt;/span&gt;&lt;p&gt;&lt;/p&gt;&amp;lt;p style="MARGIN: 0px"&amp;gt;&amp;lt;span style="font-family:Arial;font-size:85%;"&amp;gt;&amp;lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;');&lt;br /&gt;  }&lt;br /&gt;&amp;lt;/script&amp;gt;&amp;lt;script language="JavaScript"&amp;gt;&lt;br /&gt;&lt;br /&gt;  var d = new Date();&lt;br /&gt;  var corr_data = d.getDate();&lt;br /&gt;  var corr_mes = d.getMonth();&lt;br /&gt;  var corr_ano = d.getYear();&lt;br /&gt;  corr_mes=corr_mes+1&lt;br /&gt;  var datatotal = corr_data + "/" + corr_mes + "/" + corr_ano;&lt;br /&gt;   &lt;br /&gt;  data_aniversariante = '9/5/2008';&lt;br /&gt;&lt;br /&gt;  if(datatotal == data_aniversariante){&lt;br /&gt;      document.write('&amp;lt;p&gt;&amp;lt;span &amp;gt;&amp;lt;/span&gt;&lt;p&gt;&lt;/p&gt;');&lt;br /&gt;  }&lt;br /&gt;&amp;lt;/script&amp;gt;&amp;lt;script language="JavaScript"&amp;gt;&lt;br /&gt;&lt;br /&gt;  var d = new Date();&lt;br /&gt;  var corr_data = d.getDate();&lt;br /&gt;  var corr_mes = d.getMonth();&lt;br /&gt;  var corr_ano = d.getYear();&lt;br /&gt;  corr_mes=corr_mes+1&lt;br /&gt;  var datatotal = corr_data + "/" + corr_mes + "/" + corr_ano;&lt;br /&gt;   &lt;br /&gt;  data_aniversariante = '8/5/2008';&lt;br /&gt;&lt;br /&gt;  if(datatotal == data_aniversariante){&lt;br /&gt;      document.write('&amp;lt;p&gt;&amp;lt;span &amp;gt;&amp;lt;/span&gt;&lt;p&gt;&lt;/p&gt;');&lt;br /&gt;  }&lt;br /&gt;&amp;lt;/script&amp;gt;&amp;lt;script language="JavaScript"&amp;gt;&lt;br /&gt;&lt;br /&gt;  var d = new Date();&lt;br /&gt;  var corr_data = d.getDate();&lt;br /&gt;  var corr_mes = d.getMonth();&lt;br /&gt;  var corr_ano = d.getYear();&lt;br /&gt;  corr_mes=corr_mes+1&lt;br /&gt;  var datatotal = corr_data + "/" + corr_mes + "/" + corr_ano;&lt;br /&gt;   &lt;br /&gt;  data_aniversariante = '7/5/2008';&lt;br /&gt;&lt;br /&gt;  if(datatotal == data_aniversariante){&lt;br /&gt;      document.write('&amp;lt;p&gt;&amp;lt;span &amp;gt;&amp;lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;');&lt;br /&gt;  }&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-2927541055638156021?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/2927541055638156021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/2927541055638156021'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2008_05_01_archive.html#2927541055638156021' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-7013299279426615005</id><published>2008-03-27T09:54:00.001-03:00</published><updated>2008-03-27T09:54:37.438-03:00</updated><title type='text'></title><content type='html'>1. Aprimore suas habilidades.&lt;br /&gt;      Por que passar a vida desenvolvendo software se você não se preocupa em fazê-lo direito?&lt;br /&gt;   2. Reflita sobre o seu trabalho&lt;br /&gt;      Desligue o piloto automático e assuma o controle. Constantemente critique e valide seu trabalho.&lt;br /&gt;   3. Forneça opções. Não dê desculpas esfarrapadas&lt;br /&gt;      Ao invés de desculpas, forneça opções. Não diga que não pode ser feito; explique o que pode ser feito.&lt;br /&gt;   4. Não conviva com janelas quebradas&lt;br /&gt;      Corrija designes pobres, decisões erradas e código ruim quando se deparar com eles.&lt;br /&gt;   5. Seja um catalisador de mudanças&lt;br /&gt;      Você não pode forçar as pessoas a mudarem. No entanto, você pode lhes mostrar como o futuro pode ser e convencê-las a participar da sua criação.&lt;br /&gt;   6. Olhe o quadro geral&lt;br /&gt;      Não mergulhe nos detalhes para não esquecer de olhar o que está acontecendo ao seu redor.&lt;br /&gt;   7. Faça da qualidade um requerimento obrigatório&lt;br /&gt;      Envolva seus usuários para conseguir capturar os requerimentos que impõem qualidades reais para o projeto.&lt;br /&gt;   8. Invista regularmente no seu portfolio de conhecimentos&lt;br /&gt;      Torne a aprendizagem um hábito.&lt;br /&gt;   9. Analise de forma crítica o que você lê e ouve&lt;br /&gt;      Não se abale com o que dizem os vendedores, a mídia especializada ou com dogmas. Analise a informação de acordo com a sua realidade e a do seu projeto.&lt;br /&gt;  10. O que você diz e como você diz&lt;br /&gt;      Nada adianta ter grande idéias se você não consegue comunicá-las de maneira eficiente.&lt;br /&gt;  11. DRY – Don’t Repeat Yourself (Não se repita)&lt;br /&gt;      Cada pedaço do conhecimento deve ter uma representação única, sem ambigüidades e de representativa  autoridade no sistema.&lt;br /&gt;  12. Torne fácil de reutilizar&lt;br /&gt;      Se for fácil de reutilizar, as pessoas reutilizarão. Crie um ambiente que favoreça a reutilização.&lt;br /&gt;  13. Elimine o efeito de coisas não relacionadas&lt;br /&gt;      Projete componentes que sejam auto-contidos, independentes e com um único propósito bem definido.&lt;br /&gt;  14. Não existem decisões finais&lt;br /&gt;      Nenhuma decisão é gravada em pedra. Pense em cada decisão como sendo gravada na areia da praia e prepare-se para as mudanças.&lt;br /&gt;  15. Utilize o rastro das balas para encontrar o alvo&lt;br /&gt;      O rastro que as balas deixam leva você para em direção ao alvo na medida em que você experimenta novas coisas e vê quão próximo conseguiu chegar do objetivo.&lt;br /&gt;  16. Faça protótipos para aprender&lt;br /&gt;      Prototipação é uma experiência de aprendizagem. O seu valor não está no código produzido, mas sim nas lições aprendidas.&lt;br /&gt;  17. Programe próximo do domínio do problema&lt;br /&gt;      Planeje e codifique utilizando o vocabulário do usuário.&lt;br /&gt;  18. Estime para evitar surpresas&lt;br /&gt;      Estime antes de começar. Você descobrirá quais são os problemas em potencial para o futuro.&lt;br /&gt;  19. Interaja o cronograma com o código&lt;br /&gt;      Use a experiência você adquire a medida que implementa para refinar suas estimativas de prazo.&lt;br /&gt;  20. Mantenha o conhecimento com comentários claros&lt;br /&gt;      Comentários claros nunca ficam obsoletos. Eles ajudam a alavancar seu trabalho e simplificam o debug e testes.&lt;br /&gt;  21. Use o poder da linha de comando&lt;br /&gt;      Use a linha de comando quando a interface gráfica não suprir suas necessidades.&lt;br /&gt;  22. Use um único editor. E use-o bem&lt;br /&gt;      O editor deve ser uma extensão da sua mão. Certifique-se de que o seu editor é configurável, extensível e adaptável as suas necessidades.&lt;br /&gt;  23. Sempre use controle de versão&lt;br /&gt;      O controle de versão é a máquina do tempo do seu trabalho – Com ele você pode sempre voltar atrás.&lt;br /&gt;  24. Corrija o problema, não a acusação&lt;br /&gt;      Não importa se o bug é uma falha de outra pessoa – ele ainda assim é um problema e portanto precisa ser consertado.&lt;br /&gt;  25. Não entre em pânico quando estiver debugando&lt;br /&gt;      Respire fundo e PENSE sobre o que pode estar causando o bug.&lt;br /&gt;  26. "select" não está quebrado&lt;br /&gt;      É raro você encontrar um bug no sistema operacional, no compilador, ou mesmo em programas e bibliotecas comerciais. Na maioria das vezes o problema está mesmo na sua aplicação.&lt;br /&gt;  27. Não presuma. Prove&lt;br /&gt;      Prove suas suposições no ambiente atual, com dados reais e para as condições de fronteira.&lt;br /&gt;  28. Aprenda uma linguagem de manipulação de textos&lt;br /&gt;      Você gasta grande parte do seu dia trabalhando com textos. Por que não deixar que o computador faça algo mais por você?&lt;br /&gt;  29. Escreva código que escreva código&lt;br /&gt;      Geradores de código aumentam sua produtividade e ajudam a evitar duplicidade.&lt;br /&gt;  30. Você não pode escrever um software perfeito&lt;br /&gt;      Software não pode ser perfeito. Mas proteja o seu código e seus usuários dos erros inevitáveis.&lt;br /&gt;  31. Projete para contratos (Design by Contracts)&lt;br /&gt;      Utilize contratos para documentar e verificar que o código não faz nem mais nem menos do que aquilo que necessita fazer.&lt;br /&gt;  32. Falhe cedo&lt;br /&gt;      Um programa morto costuma causar menos estrago do que um programa aleijado.&lt;br /&gt;  33. Use asserções para prevenir o impossível&lt;br /&gt;      Asserções validam suas suposições. Utilize-as para proteger seu código do mundo incerto.&lt;br /&gt;  34. Use exceções para problemas excepcionais&lt;br /&gt;      Exceções podem sofrer dos mesmos problemas de manutenção e legibilidade dos clássicos códigos em espaguete. Reserve as exceções para coisas realmente excepcionais.&lt;br /&gt;  35. Acabe o que você começou&lt;br /&gt;      Sempre que possível os métodos e objetos que alocam recursos devem ser responsáveis por desalocá-los.&lt;br /&gt;  36. Minimize o acoplamento entre módulos&lt;br /&gt;      Evite o acoplamento escrevendo código “tímido” e aplicando a lei de Demeter.&lt;br /&gt;  37. Configure ao invés de integrar&lt;br /&gt;      Implemente as escolhas tecnológicas de uma aplicação como opções de configuração, não como partes integradas da aplicação.&lt;br /&gt;  38. Coloque a abstração no código e os detalhes em metadados&lt;br /&gt;      Programe para o caso geral e coloque as especificidades fora da base do código compilado.&lt;br /&gt;  39. Analise o processo para melhorar a concorrência&lt;br /&gt;      Explore a concorrência dos processos dos seus usuários.&lt;br /&gt;  40. Projete utilizando serviços&lt;br /&gt;      Projete em termos de serviços independentes, com interfaces consistentes e para objetos concorrentes e bem definidos.&lt;br /&gt;  41. Sempre projete para concorrência&lt;br /&gt;      Permita a concorrência e você irá projetar interfaces limpas e com poucas suposições.&lt;br /&gt;  42. Separe visões de modelos&lt;br /&gt;      Ganhe flexibilidade a um baixo custo projetando suas aplicações em termos de modelos e visões.&lt;br /&gt;  43. Use quadro-negro para coordenar processos&lt;br /&gt;      Use quadros-negro para coordenar agentes ou fatos discrepantes enquanto mantém a isolação e independência entre os participantes.&lt;br /&gt;  44. Não programe por coincidência&lt;br /&gt;      Mantenha-se nas coisas confiáveis. Cuidado com complexidade acidental e não confunda uma feliz coincidência com uma regra geral.&lt;br /&gt;  45. Estime a ordem dos seus algoritmos&lt;br /&gt;      Faça uma estimativa do que algoritmo precisa suportar antes de escrever código.&lt;br /&gt;  46. Teste suas estimativas&lt;br /&gt;      Análises matemáticas de algoritmos não lhe dizem tudo. Tente medir o desempenho do seu código no ambiente real.&lt;br /&gt;  47. Refatore cedo, refatore sempre&lt;br /&gt;      Assim como você remove as ervas daninhas e rearranja o jardim, reescreva e reestruture o código constantemente. Corrija na raiz do problema.&lt;br /&gt;  48. Projete para os testes&lt;br /&gt;      Comece a pensar como testar antes de escrever uma linha de código.&lt;br /&gt;  49. Teste o seu software; ou o seu usuário testará por você&lt;br /&gt;      Teste arduamente. Não faça o seu usuário encontrar os erros que você deveria ter encontrado.&lt;br /&gt;  50. Não utilize assistentes de código que você não entenda&lt;br /&gt;      Assistentes podem gerar toneladas de código. Esteja certo de que você entenda tudo o que foi gerado antes de incorporá-lo ao seu projeto.&lt;br /&gt;  51. Não colha os requerimentos – Procure por eles profundamente&lt;br /&gt;      Requerimentos raramente estão na superfície. Normalmente eles estão soterrados sob várias camadas de suposições, preconceitos e politicagem.&lt;br /&gt;  52. Trabalhe com o usuário para pensar como o usuário&lt;br /&gt;      Esta é a melhor maneira conseguir inspiração sobre como o sistema será utilizado.&lt;br /&gt;  53. Abstrações vivem mais do que detalhes&lt;br /&gt;      Invista na abstração, não na implementação. Abstrações podem sobreviver às barreiras criadas pelas mudanças de implementação e pelas novas tecnologias.&lt;br /&gt;  54. Use um glossário de projeto&lt;br /&gt;      Crie e mantenha uma fonte única com todos os termos e vocabulários específicos do projeto.&lt;br /&gt;  55. Não pense fora caixa – Encontre a caixa&lt;br /&gt;      Quando confrontado com um problema impossível, identifique as verdadeiras limitações. Pergunte a você mesmo: “Isso precisa ser feito dessa maneira? Isso precisa ser feito por completo?”.&lt;br /&gt;  56. Comece quando você estiver pronto&lt;br /&gt;      Você adquire experiência durante toda a sua vida. Não deixe passar desapercebido as pequenas dúvidas.&lt;br /&gt;  57. Algumas coisas são melhores feitas do que descritas&lt;br /&gt;      Não caia na espiral da especificação – em algum momento você precisa começar a codificar.&lt;br /&gt;  58. Não seja um escravo dos métodos formais&lt;br /&gt;      Não adote uma técnica sem antes analisá-la no contexto de suas práticas de desenvolvimento e capacidade.&lt;br /&gt;  59. Ferramentas caras não produzem projetos melhores&lt;br /&gt;      Não se impressione somente pelo preço estampado na etiqueta. Julgue as ferramentas pelos seus méritos.&lt;br /&gt;  60. Organize o time pela funcionalidade&lt;br /&gt;      Não separe os designers dos programadores nem os testadores dos modeladores. Forme os times da mesma maneira que você organiza o código.&lt;br /&gt;  61. Não use manual de procedimentos&lt;br /&gt;      Um script ou arquivo de lote pode executar as mesmas instruções, na mesma ordem, o tempo todo.&lt;br /&gt;  62. Teste cedo. Teste sempre. Teste automaticamente&lt;br /&gt;      Testes que rodam a cada build são muito mais eficientes do que planos de testes empoeirados em uma prateleira.&lt;br /&gt;  63. O código não está terminado até todos os testes rodarem&lt;br /&gt;      E ponto final.&lt;br /&gt;  64. Use sabotadores para testar seus testes&lt;br /&gt;      Coloque bugs propositalmente em uma cópia separada do código para verificar se os testes irão apontá-los.&lt;br /&gt;  65. Teste a cobertura de estados, não a cobertura de código&lt;br /&gt;      Identifique e teste estados significativos do programa. Testar apenas linhas de código não é o suficiente.&lt;br /&gt;  66. Encontre um bug uma única vez&lt;br /&gt;      Quando um testador humano encontrar um bug deve ser a última vez que um humano encontre esse bug. Utilize testes automáticos para verificar esse bug a partir de então.&lt;br /&gt;  67. O português também é uma linguagem de programação&lt;br /&gt;      Escreva documentos da mesma forma que você escreve código: obedeça ao principio do DRY (não se repita), utilize metadados, MVC, geradores automáticos, etc.&lt;br /&gt;  68. Crie documentação durante, ao invés de tentar encaixá-la depois&lt;br /&gt;      Documentação criada separada do código muito mais chance de estar incorreta e desatualizada.&lt;br /&gt;  69. Supere um pouco as expectativas dos seus usuários&lt;br /&gt;      Compreenda quais são as expectativas do seu usuário e então entregue um pouquinho mais do que ele estava esperando.&lt;br /&gt;  70. Assine o seu trabalho&lt;br /&gt;      Mesmo os primeiros artesões ficavam orgulhosos de assinar seus trabalhos. Você também deveria ficar.&lt;br /&gt;&lt;br /&gt;Estas dicas foram extraidas do livro The Pragmatic Programmer&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-7013299279426615005?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/7013299279426615005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/7013299279426615005'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2008_03_01_archive.html#7013299279426615005' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-5963968366847274599</id><published>2006-12-27T11:28:00.001-02:00</published><updated>2006-12-27T11:28:37.395-02:00</updated><title type='text'></title><content type='html'>80 núcleos em um processador?!?!&lt;br /&gt;&lt;a href="http://www1.folha.uol.com.br/folha/informatica/ult124u20991.shtml"&gt;http://www1.folha.uol.com.br/folha/informatica/ult124u20991.shtml&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-5963968366847274599?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/5963968366847274599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/5963968366847274599'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2006_12_01_archive.html#5963968366847274599' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-1899968738846393135</id><published>2006-12-27T11:23:00.000-02:00</published><updated>2006-12-27T11:25:37.299-02:00</updated><title type='text'></title><content type='html'>YouTube, Google e outros vão matar a TV como a conhecemos?&lt;br /&gt;Para que esperar o horário de um programa se podemos vê-lo na hora que quisermos?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-1899968738846393135?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/1899968738846393135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/1899968738846393135'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2006_12_01_archive.html#1899968738846393135' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-114472522197060424</id><published>2006-04-11T00:13:00.000-03:00</published><updated>2006-04-11T00:15:36.613-03:00</updated><title type='text'>Testando um postador automatico</title><content type='html'>&lt;p&gt;Será que isso funciona?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Puts... não é que funciona?&lt;img height="225" style="margin:5px;" width="150" alt="" src="file:///C:/Documents%20and%20Settings/Clever/Meus%20documentos/Minhas%20imagens/teacher.jpg" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.qumana.com/help.htm"&gt;http://www.qumana.com/help.htm&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="color:#008;text-align:right;"&gt;&lt;small&gt;&lt;em&gt;Powered by&lt;/em&gt; &lt;a href="http://www.qumana.com/"&gt;Qumana&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-114472522197060424?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/114472522197060424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/114472522197060424'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2006_04_01_archive.html#114472522197060424' title='Testando um postador automatico'/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-111955704583014874</id><published>2005-06-23T17:03:00.000-03:00</published><updated>2005-06-23T17:04:05.833-03:00</updated><title type='text'></title><content type='html'>&lt;span style="font-size:180%;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;EU ODEIO "SMARTNAVIGATION"&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-111955704583014874?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/111955704583014874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/111955704583014874'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2005_06_01_archive.html#111955704583014874' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-111815631790954956</id><published>2005-06-07T11:53:00.000-03:00</published><updated>2005-06-07T12:02:04.510-03:00</updated><title type='text'></title><content type='html'>"Weird" code...&lt;br /&gt;Só para fazer um "DISTINCT" em um recordset&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&amp;lt;SELECT name="txtCODLIMMNMPED" id="txtCODLIMMNMPED" tabindex=10&amp;gt;&lt;br /&gt;&amp;lt;OPTION value=""&amp;gt;&amp;lt;/OPTION&amp;gt;&lt;br /&gt;&amp;lt;%&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;If&amp;nbsp;not&amp;nbsp;(recLmnMnmPed.BOF&amp;nbsp;and&amp;nbsp;recLmnMnmPed.EOF)&amp;nbsp;then         &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;recLmnMnmPed.movefirst&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Do&amp;nbsp;While&amp;nbsp;not&amp;nbsp;recLmnMnmPed.eof&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CodVlr&amp;nbsp;=&amp;nbsp;recLmnMnmPed("CODLIMMNMPED")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;recLmnMnmPed.movenext&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;not&amp;nbsp;recLmnMnmPed.eof&amp;nbsp;then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Do&amp;nbsp;While&amp;nbsp;CodVlr&amp;nbsp;=&amp;nbsp;recLmnMnmPed("CODLIMMNMPED")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;recLmnMnmPed.movenext&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;recLmnMnmPed.eof&amp;nbsp;then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit&amp;nbsp;do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&amp;nbsp;if&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;loop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&amp;nbsp;if&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;recLmnMnmPed.moveprevious&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;%&amp;gt;&lt;br /&gt;&amp;lt;option&amp;nbsp;Value="&amp;lt;%=recLmnMnmPed("CODLIMMNMPED")%&amp;gt;"&amp;gt;&amp;lt;%=recLmnMnmPed("CODLIMMNMPED")%&amp;gt;&amp;nbsp;-&amp;nbsp;&amp;lt;%=recLmnMnmPed("VLRLIMMNMPED")%&amp;gt;&lt;br /&gt;&amp;lt;%&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;recLmnMnmPed.movenext&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;loop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End&amp;nbsp;If&lt;br /&gt;%&amp;gt;&lt;br /&gt;&amp;lt;/SELECT&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-111815631790954956?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/111815631790954956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/111815631790954956'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2005_06_01_archive.html#111815631790954956' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-111815602518108762</id><published>2005-06-07T11:50:00.000-03:00</published><updated>2005-06-07T11:53:45.186-03:00</updated><title type='text'></title><content type='html'>Mais uma da série&lt;br /&gt;&lt;div class="code"&gt;Dim oFile As System.IO.File&lt;br /&gt;Dim oWrite As System.IO.TextWriter&lt;br /&gt;&lt;br /&gt;oWrite = oFile.AppendText("C:\log.txt")&lt;br /&gt;&lt;br /&gt;oWrite.WriteLine(sSql)&lt;br /&gt;oWrite.Close()&lt;/div&gt;&lt;br /&gt;Isso em um servidor de produção só para "ver" o que tinha em uma variável&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-111815602518108762?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/111815602518108762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/111815602518108762'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2005_06_01_archive.html#111815602518108762' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-111783038524485582</id><published>2005-06-03T17:25:00.000-03:00</published><updated>2005-06-03T17:30:43.520-03:00</updated><title type='text'></title><content type='html'>Olha só que maluquice que alguém foi capaz só para colocar um CURRENT DATE ou GETDATE em um insert no banco&lt;br /&gt;&lt;div class="code"&gt;sdia = CStr(Day(Date))&lt;br /&gt;If Len(Trim(sdia)) &lt;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sdia = "0" + sdia&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;sMes = CStr(Month(Date))&lt;br /&gt;If Len(Trim(sMes)) &lt;&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sMes = "0" + sMes&lt;br /&gt;End If&lt;br /&gt;sAno = CStr(Year(Date))&lt;br /&gt;&lt;br /&gt;tmpDataAtual = sAno + "-" + sMes + "-" + sdia&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-111783038524485582?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/111783038524485582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/111783038524485582'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2005_06_01_archive.html#111783038524485582' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-109301124145197885</id><published>2004-08-20T11:12:00.000-03:00</published><updated>2004-08-20T11:14:01.450-03:00</updated><title type='text'></title><content type='html'>&lt;span style="font-weight:bold;"&gt;COM+ &lt;/span&gt;&lt;br /&gt;Sinceramente a Microsoft se esforçou para fazer algo tão ruim...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-109301124145197885?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/109301124145197885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/109301124145197885'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2004_08_01_archive.html#109301124145197885' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-109292254598706717</id><published>2004-08-19T10:34:00.000-03:00</published><updated>2004-08-19T10:35:45.993-03:00</updated><title type='text'></title><content type='html'>Sinceramente, não existe nada tão decepcionante quanto trabalhar com COM+ e .Net ao mesmo tempo...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-109292254598706717?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/109292254598706717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/109292254598706717'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2004_08_01_archive.html#109292254598706717' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-109189104012296446</id><published>2004-08-07T11:58:00.000-03:00</published><updated>2004-08-07T12:07:13.156-03:00</updated><title type='text'></title><content type='html'>Só comentando...&lt;br /&gt;A comunidade Linux (eu inclusive) que se cuide.&lt;br /&gt;Lá vem chumbo grosso, de acordo com a &lt;a href="http://news.com.com"&gt;News.com&lt;/a&gt; o Linux pode estar infringindo mais de 200 patentes, inclusive algumas da &lt;a href="http://news.com.com/Gates+wants+patent+power/2100-1014_3-5288722.html?tag=st.rn"&gt;Micro$oft&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-109189104012296446?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/109189104012296446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/109189104012296446'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2004_08_01_archive.html#109189104012296446' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-108741004102663802</id><published>2004-06-16T15:14:00.000-03:00</published><updated>2004-06-16T15:33:10.970-03:00</updated><title type='text'></title><content type='html'>Falando de strings&lt;br /&gt;Novamente eu venho falar de strings neste blog.&lt;br /&gt;&lt;br /&gt;No caso especifico de VB.NET normalmente n&amp;oacute;s programadores escreveriamos algo como&lt;br /&gt;&lt;div class=code&gt;&lt;br /&gt;Dim s as String&lt;br /&gt;s = "texto realmente  " + _&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"muito longo      " + _&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"blah             " + _&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"mais alguns blahs"&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;para gerar uma string longa (como uma instrucao SQL por exemplo).&lt;br /&gt;Simples, direto, legivel.&lt;br /&gt;&lt;i&gt;Mas...&lt;/i&gt;&lt;br /&gt;O sistema de &lt;i&gt;garbage collection&lt;/i&gt; do VB.NET tem que fazer alguns malabarismos para gerenciar isso de maneira eficiente, tendo que copiar e realocar varios objetos na memoria para fazer esta concatenacao.&lt;br /&gt;Se acordo com a &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/scalenetchapt05.asp"&gt;MSDN&lt;/a&gt; seria melhor fazer assim :&lt;br /&gt;&lt;br /&gt;&lt;div class=code&gt;&lt;br /&gt;Dim s as new System.Text.StringBuilder&lt;br /&gt;s.Append("texto realmente  ")&lt;br /&gt;s.Append("muito longo      ")&lt;br /&gt;s.Append("blah             ")&lt;br /&gt;s.Append("mais alguns blahs")&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Mais rapido e menos memoria ocupada.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-108741004102663802?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/108741004102663802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/108741004102663802'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2004_06_01_archive.html#108741004102663802' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-108422309802362538</id><published>2004-05-10T18:01:00.001-03:00</published><updated>2004-05-10T18:07:30.133-03:00</updated><title type='text'></title><content type='html'>Nova tentativa de fazer poesia com linguagens de programação&lt;br /&gt;&lt;div class="code"&gt;Module RaulSeixas&lt;br /&gt;&lt;div class="indent"&gt;Sub Main()&lt;div class="indent"&gt;Dim Nasc As DateTime = Now()&lt;br /&gt;        While Nasc.AddYears(10000) &lt; Now()&lt;br /&gt;        End While&lt;br /&gt;        Print("Eu nasci a 10.000 anos atras")&lt;br /&gt;&lt;/div&gt;End Sub&lt;/div&gt;End Module&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-108422309802362538?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/108422309802362538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/108422309802362538'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2004_05_01_archive.html#108422309802362538' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-108273783832054327</id><published>2004-04-23T13:29:00.000-03:00</published><updated>2004-04-23T13:41:53.576-03:00</updated><title type='text'></title><content type='html'>Olha eu me metendo a adaptar poesia para C ...&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;int main(int argc, char** argv){&lt;br /&gt;    &lt;div class="indent"&gt;if(0) {&lt;div class="indent"&gt;printf("Há sempre a pequena chance,de o impossível rolar\n");&lt;/div&gt;}&lt;/div&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-108273783832054327?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/108273783832054327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/108273783832054327'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2004_04_01_archive.html#108273783832054327' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-107876075424179610</id><published>2004-03-08T12:44:00.000-03:00</published><updated>2004-03-08T12:51:02.483-03:00</updated><title type='text'></title><content type='html'>Sonhos de consumo :&lt;br /&gt;&lt;br /&gt;PDA com Linux &lt;img src="http://www.geek.com/hwswrev/pda/yopy/gmatepic.jpg" alt=""&gt; &lt;br /&gt;Notebook Acer Ferrari &lt;img src="http://www.techtree.com/techtree/jsp/techtree/ezimagecatalogue/catalogue/acer-ferrari.jpg" alt=""&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-107876075424179610?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/107876075424179610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/107876075424179610'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2004_03_01_archive.html#107876075424179610' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-107876000677973835</id><published>2004-03-08T12:32:00.000-03:00</published><updated>2004-03-08T12:36:53.530-03:00</updated><title type='text'></title><content type='html'>Bodyshop em cliente para desenvolvimento Winform .NET&lt;br /&gt;Ninguém merece...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-107876000677973835?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/107876000677973835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/107876000677973835'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2004_03_01_archive.html#107876000677973835' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-107788755251893723</id><published>2004-02-27T10:10:00.000-03:00</published><updated>2004-02-27T10:17:37.373-03:00</updated><title type='text'></title><content type='html'>As melhores coisas do mundo são de graça...&lt;br /&gt;No nosso mundo alguns exemplos que amo&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href=http://www.eclipse.org&gt;Eclipse&lt;/a&gt; - "O" IDE opensourse&lt;br /&gt;&lt;li&gt;&lt;a href=http://www.cvshome.org&gt;CVS&lt;/a&gt; - Controle de versões&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-107788755251893723?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/107788755251893723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/107788755251893723'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2004_02_01_archive.html#107788755251893723' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-107727720058130021</id><published>2004-02-20T08:35:00.000-03:00</published><updated>2004-02-25T14:05:54.623-03:00</updated><title type='text'></title><content type='html'>&lt;b&gt;XML&lt;/b&gt; - Uma solução ou um pesadelo de performance?&lt;br /&gt;&lt;p&gt;Sei que vou ser crucificado pelos meus colegas, mas vou fazer uma reflexão quanto a linguagem XML ser  usada para manipulação de grande quantidade de dados.&lt;br /&gt;&lt;p&gt;A linguagem XML (E&lt;b&gt;X&lt;/b&gt;tended &lt;b&gt;M&lt;/b&gt;arkup &lt;b&gt;L&lt;/b&gt;anguage) a grosso modo é um formato de arquivo texto plano que tem sido extensivamente utilizado (entre outras coisas) para tranferência e manipulação de dados.&lt;br /&gt;&lt;br /&gt;Um exemplo:&lt;div class="code"&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt&lt;br /&gt;&lt;div class="indent"&gt;&lt;div&gt;&amp;lt;clever&amp;gt&lt;/div&gt;&lt;div class="indent"&gt;&lt;div&gt;&amp;lt;what&amp;gt&lt;/div&gt;&lt;div class="indent"&gt;Profissional de TI&lt;br /&gt;Especialista em LAMP&lt;/div&gt;&lt;div&gt;&amp;lt;/what&amp;gt&lt;/div&gt;&lt;div&gt;&amp;lt;where&amp;gt&lt;/div&gt;&lt;div class="indent"&gt;Atualmente residindo em Uberlandia - MG&lt;/div&gt;&lt;div&gt;&amp;lt;/where&amp;gt&lt;/div&gt;&lt;div&gt;&amp;lt;contact&amp;gt&lt;/div&gt;&lt;div class="indent"&gt;&lt;div&gt;&amp;lt;email&amp;gt&lt;a href="mailto:cleveranjos@yahoo.com"&gt;cleveranjos@yahoo.com&lt;/a&gt;&amp;lt;/email&amp;gt&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/contact&amp;gt&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/clever&amp;gt&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/xml&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Este formato de arquivo, além de facilitar em muito a leitura (sendo quase auto-explicativo, na verdade) permite uma grande flexibilidade no envio e recebimento de informações entre sistemas (homogêneos ou não)&lt;p&gt;&lt;b&gt;Mas nem tudo são flores&lt;/b&gt;&lt;p&gt;Imagine agora um arquivo (ou um fluxo de dados) XML e que você tenha que selecionar os 10 registros apartir do 5&lt;sup&gt;&lt;u&gt;o&lt;/u&gt;&lt;/sup&gt;. Imagine também uma sentença XSQL (linguagem SQL fictí­cia para um banco orientado a XML)&lt;br /&gt;&lt;div class="code"&gt;SELECT * FROM xml_stream LIMIT 10,5&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Você é o responsável por implementar esta busca no seu banco de dados, qual algoritmo você usaria?&lt;p&gt;Na maioria das linguagens de programação existem "parsers" que fazem o trabalho sujo e você simplesmente faria :&lt;br /&gt;&lt;div class="code"&gt;' Exemplo em VB.NET&lt;br /&gt;Private Function ReturnSlice(ByVal xml_stream As String, ByVal iFrom As Integer, ByVal iTo As Integer) As String&lt;div class="indent"&gt;Dim ds As New DataSet()&lt;br /&gt;        Dim out As String&lt;br /&gt;        Dim i As Integer&lt;br /&gt;        ds.ReadXml(New IO.StreamReader(xml_stream)) ' &lt;b&gt;Preste atenção nesta linha&lt;/b&gt;&lt;br /&gt;        For i = iFrom To iTo &lt;div class="indent"&gt;out = out &amp; ds.Tables(0).Rows(i).Item(0)&lt;/div&gt;Next&lt;br /&gt;        Return out&lt;/div&gt;End Function&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Simples não? O grande problema está na linha &lt;b&gt;ds.ReadXml(New IO.StreamReader(xml_stream)) &lt;/b&gt;. Por trás desta simples linha de código existe um "parser" que deve ler a string caracter por caracter e montar uma árvore na memória para que possa tudo ser transferido para um DataSet onde podemos ter um acesso aleatório aos dados. Agora imagine uma xml_stream de 1.000.000 de registros :-((&lt;br /&gt;&lt;p&gt;Então chegamos ao grande problema do XML, todas as vezes devemos ler o xml caracter a caracter e não podemos simplesmente "pular" os próximos 2Mb do arquivo, pois simplesmente não há como saber &lt;b&gt;onde&lt;/b&gt; devemos recomeçar a ler. &lt;br /&gt;&lt;p&gt;Lógico que existe solução para resolver este "problema"&gt;. Uma pode ser um arquivo de índice associado que indique o começo de cada registro ou coluna (ou qualquer combinação destes), mas aí teríamos que enviar juntamente com o XML um arquivo .XMLIndex (o nome é minha invenção) que jogaria por terra qualquer ganho de possível performance ou flexibilidade.&lt;br /&gt;&lt;p&gt;Então, sempre que for utilizar um XML, talvez valha a pena refletir:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Qual o volume de dados que vão ser transferidos?&lt;br /&gt;&lt;li&gt;Quão aleatórios serão os acessos a estas informações?&lt;br /&gt;&lt;li&gt;O parser que vou utilizar é realmente eficiente para estes dados? Ou seria melhor eu escrever o meu próprio?&lt;/ul&gt;&lt;p&gt;Sei que isso são conjecturas de um aficcionado por algoritmos, mas não custa lembrar que nem sempre a solução mais fácil é a melhor.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-107727720058130021?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/107727720058130021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/107727720058130021'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2004_02_01_archive.html#107727720058130021' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-107729836798514804</id><published>2004-02-19T14:32:00.000-03:00</published><updated>2004-02-20T14:39:39.500-03:00</updated><title type='text'></title><content type='html'>Olha só o que o nosso coordenador faz conosco as vezes&lt;br /&gt;&lt;img src="http://www.dilbert.com/comics/dilbert/archive/images/dilbert20024398940121.gif" alt="" border="0"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-107729836798514804?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/107729836798514804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/107729836798514804'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2004_02_01_archive.html#107729836798514804' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-107711486883836936</id><published>2004-02-18T11:33:00.000-03:00</published><updated>2004-02-18T11:37:08.153-03:00</updated><title type='text'></title><content type='html'>Uma dos melhores "gadgets" que já foram inventados...&lt;br /&gt;&lt;img src="https://media.bizfinity.com/sf/silverpcscom/pen-drive.gif" border="0" alt="Pen Drive"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-107711486883836936?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/107711486883836936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/107711486883836936'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2004_02_01_archive.html#107711486883836936' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-107729915071191191</id><published>2004-02-17T14:45:00.000-03:00</published><updated>2004-02-20T14:48:32.780-03:00</updated><title type='text'></title><content type='html'>:-))))&lt;br /&gt;&lt;img src="http://home.planet.nl/~muije000/Humour/nokeybord.jpg" alt="" border="0"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-107729915071191191?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/107729915071191191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/107729915071191191'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2004_02_01_archive.html#107729915071191191' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry><entry><id>tag:blogger.com,1999:blog-6487647.post-107694965820954001</id><published>2004-02-16T13:20:00.000-03:00</published><updated>2004-02-16T15:19:52.793-03:00</updated><title type='text'></title><content type='html'>&lt;div style="font-family:Verdana;font-size:x-small"&gt;Existem alguns poetas no nosso meio:&lt;br /&gt;Retirado de : &lt;a href="http://www.perlmonks.com/index.pl?node=Perl%20Poetry"&gt;Perl Poetry&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="code"&gt;#!/usr/bin/perl&lt;br /&gt;# Beatles song:&lt;br /&gt;submarine : yellow {&lt;br /&gt;&lt;div class="indent"&gt;we(all,live)&lt;/div&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="code"&gt;# A small portion of:   While my guitar gently weeps&lt;br /&gt;# Lyrics and Music by:  George Harrison (RIP)&lt;br /&gt;# Adapted to Perl by:   bronto&lt;br /&gt;# Notes:                I know, I know: s/lock/look/ :-)&lt;br /&gt;&lt;br /&gt;while (my $guitar-&gt;weeps($gently)) {&lt;br /&gt;&lt;div class="indent"&gt;I: { lock @you_all }&lt;br /&gt;see_the_love($there,$thats) ;&lt;br /&gt;sleep$ing ;&lt;br /&gt;I: { lock @the_floor and i_see($it_needs,$sweeping) };&lt;/div&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6487647-107694965820954001?l=topcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/107694965820954001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6487647/posts/default/107694965820954001'/><link rel='alternate' type='text/html' href='http://topcoder.blogspot.com/2004_02_01_archive.html#107694965820954001' title=''/><author><name>Clever Anjos</name><uri>http://www.blogger.com/profile/05917432591483929282</uri><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></entry></feed>
