<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CkAGQHs9eCp7ImA9WhRUEUQ.&quot;"><id>tag:blogger.com,1999:blog-20104457</id><updated>2012-01-21T22:05:21.560-02:00</updated><category term="tracemonkey" /><title>Macaco Chefe</title><subtitle type="html">Sobre macaca, macaca-de-auditório, macacal, macacão, macacar, macacarecuia, macacaria, macaco, macacoa*, macaco-adufeiro, macaco-aranha, macaco-barrigudo, macaco-cabeludo, macaco-da-meia-noite, macaco-da-noite
macaco-de-bando, macaco-de-cheiro, macaco-inglês, macaco-japonês, macaco-narigudo, macaco-patrona, macaco-prego, macaco-prego-do-peito-amarelo e TI.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://macacochefe.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>49</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/macacochefe" /><feedburner:info uri="macacochefe" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;D0IBQX0zeyp7ImA9Wx5QEE8.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-8073149159869843334</id><published>2010-08-28T16:56:00.003-03:00</published><updated>2010-08-28T16:59:10.383-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-28T16:59:10.383-03:00</app:edited><title>Not yet</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://colorvisiontesting.com/plate%20with%205.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 315px; height: 309px;" src="http://colorvisiontesting.com/plate%20with%205.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;This is a test.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-8073149159869843334?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/ZEX8XFRcieU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/8073149159869843334/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=8073149159869843334" title="1 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/8073149159869843334?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/8073149159869843334?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/ZEX8XFRcieU/not-yet.html" title="Not yet" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2010/08/not-yet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIBQ34zeyp7ImA9WxJUGEs.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-4871397489722102942</id><published>2009-07-17T15:25:00.003-03:00</published><updated>2009-07-17T16:55:52.083-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-17T16:55:52.083-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tracemonkey" /><title>TraceMonkey: Tutorial on Trace Compilation</title><content type="html">We are creating a &lt;a href="http://www2.dcc.ufmg.br/laboratorios/llp/wiki/doku.php?id=tracetutorial"&gt;Tutorial on Trace Compilation&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-4871397489722102942?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/Ct5Bx-rRaPE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/4871397489722102942/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=4871397489722102942" title="2 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/4871397489722102942?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/4871397489722102942?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/Ct5Bx-rRaPE/tracemonkey-tutorial-on-trace.html" title="TraceMonkey: Tutorial on Trace Compilation" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2009/07/tracemonkey-tutorial-on-trace.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMCQ3o_fip7ImA9WxJTGU4.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-2644124217839183249</id><published>2009-04-27T15:08:00.005-03:00</published><updated>2009-04-28T11:54:22.446-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-28T11:54:22.446-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tracemonkey" /><title>Google Summer of Code 2009</title><content type="html">&lt;div style="text-align: left;"&gt;I had a project accepted for &lt;a href="http://www.blogger.com/socghop.appspot.com/program/home/google/gsoc2009"&gt;Google Summer of Code 2009&lt;/a&gt;. I will work with Mozilla &lt;a href="https://wiki.mozilla.org/JavaScript:TraceMonkey"&gt;TraceMonkey&lt;/a&gt; trying to improve its register allocator.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;a href="https://wiki.mozilla.org/JavaScript:TraceMonkey"&gt;&lt;span style="font-style: italic;"&gt;“ TraceMonkey adds native‐code compilation to Mozilla’s JavaScript engine (known as “SpiderMonkey”). It is based on a technique developed at UC Irvine called “trace trees”, and building on code and ideas shared with the Tamarin Tracing project. The net result is a massive speed increase both in the browser chrome and Web‐page content. ”&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This project has two mains challenges: To increase execution speed of compiled JavaScript by avoiding spilling and  to produce better native code. &lt;a href="http://www.dcc.ufmg.br/%7Ersol/docs/trace.pdf"&gt;Click here to view the project proposal&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As Google Summer of Code requirements, everyone has to use a blog to communicate with his or her mentor and other people involved. Instead of creating other blog I opted for using this old plain space. Speaking about mentors, &lt;a href="http://blog.mozilla.com/dmandelin/"&gt;Dave Mandelin&lt;/a&gt; will be my mentor (&lt;a href="http://blog.mozilla.com/dmandelin/"&gt;check out his blog to know more about TraceMonkey&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dcc.ufmg.br/%7Efpereira"&gt;Fernando Pereira&lt;/a&gt; is another important piece of this project. Besides being my co-adviser here at &lt;a href="http://www.dcc.ufmg.br/llp"&gt;LLP&lt;/a&gt;, he developed the &lt;a href="http://compilers.cs.ucla.edu/fernando/projects/puzzles/intro/"&gt;Register Allocation by Puzzle Solving&lt;/a&gt; technique that I will code in TraceMonkey.&lt;br /&gt;&lt;br /&gt;So, Join me this winter for coding!&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/20104457-2644124217839183249?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/ZZcBKyRQRow" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/2644124217839183249/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=2644124217839183249" title="42 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/2644124217839183249?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/2644124217839183249?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/ZZcBKyRQRow/google-summer-of-code-2009.html" title="Google Summer of Code 2009" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><thr:total>42</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2009/04/google-summer-of-code-2009.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0IEQnc8eip7ImA9WxVaGU8.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-9122440712634306810</id><published>2009-04-16T19:31:00.002-03:00</published><updated>2009-04-16T19:38:23.972-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-16T19:38:23.972-03:00</app:edited><title>Besteirinha I</title><content type="html">Como trocar o conteúdo de duas variáveis sem usar um temporário?&lt;br /&gt;&lt;br /&gt;Assim:&lt;br /&gt;&lt;br /&gt;a = a + b&lt;br /&gt;b = a - b&lt;br /&gt;a = a - b&lt;br /&gt;&lt;br /&gt;Ou Assim:&lt;br /&gt;&lt;br /&gt;a = a xor b&lt;br /&gt;b = a xor b&lt;br /&gt;a = a xor b&lt;br /&gt;&lt;br /&gt;Apesar de divertido, usar uma variável temporária é bem mais barato.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-9122440712634306810?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/A9NRERjcrwU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/9122440712634306810/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=9122440712634306810" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/9122440712634306810?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/9122440712634306810?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/A9NRERjcrwU/besteirinha-i.html" title="Besteirinha I" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2009/04/besteirinha-i.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4EQXw4fCp7ImA9WxJTFUQ.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-7148167002505420087</id><published>2009-03-02T22:15:00.006-03:00</published><updated>2009-04-24T15:15:00.234-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-24T15:15:00.234-03:00</app:edited><title>Script de Backup</title><content type="html">Algumas pessoas me cobraram o grande período sem posts. Pois bem. Prometo postar com mais freqüência.&lt;br /&gt;&lt;br /&gt;Para começar, um script que mostra todo o poder do applescript.&lt;br /&gt;&lt;br /&gt;A idéia era fazer um script que compactasse uma pasta e enviasse o arquivo compactado para minha conta do gmail. Afinal existe lugar melhor para um backup do que na nuvem? Dei uma pesquisada na internet, achei algumas coisas interessantes juntei tudo e saiu o que você pode ver abaixo.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;O que o script faz?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Verifica se a maquina tem conectividade com a internet, compacta uma pasta predefinida e envia o arquivo compactado para o gmail.&lt;br /&gt;&lt;br /&gt;O Script&lt;br /&gt;&lt;div style="border: 1px solid rgb(240, 240, 240); padding: 5px; font-size: 7pt;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;set pingresult to do shell script "ping -c 1 google.com;echo -n"&lt;br /&gt;set paras to number of paragraphs in pingresult&lt;br /&gt;&lt;br /&gt;if paras &lt; 5 then  display alert "Script de Backup"&lt;br /&gt;message "Sem internet não tem backup!"&lt;br /&gt;else    set question to display dialog ¬  &lt;br /&gt;"Hora do Backup!" with title ¬  &lt;br /&gt;"Script de Backup"&lt;br /&gt;buttons {"Agora não. Tô com pressa!", "Claro!"}&lt;br /&gt;default button 2   &lt;br /&gt;set answer to button returned of question   &lt;br /&gt;if answer is equal to "Claro!" then      &lt;br /&gt;tell application "Mail" to activate      &lt;br /&gt;do shell script&lt;br /&gt;"cd ~;mkdir transfer ;&lt;br /&gt;tar -czf transfer/`date +%Y-%m-%d`.tgz #pasta-origem/*"  &lt;br /&gt;set p to do shell script "ls -t1 ~/transfer |head -1"  &lt;br /&gt;set target_file to "/Users/#seu-usuario&lt;seu-usuario&gt;/transfer/" &amp;amp; p&lt;br /&gt;&lt;br /&gt; tell application "Mail"&lt;br /&gt;  set newMessage to make new outgoing message with properties ¬&lt;br /&gt;   {subject:"[BKP] " &amp;amp; target_file, content:"Backup automatico"}&lt;br /&gt; &lt;br /&gt;  tell newMessage&lt;br /&gt;   make new to recipient at beginning of to recipients with properties ¬&lt;br /&gt;    {address:"#seu-login@gmail.com"}&lt;br /&gt;  &lt;br /&gt;   tell content&lt;br /&gt;    make new attachment with properties {file name:target_file} ¬&lt;br /&gt;     at after the last word of the last paragraph&lt;br /&gt;   end tell&lt;br /&gt;  end tell&lt;br /&gt;  send newMessage&lt;br /&gt;  display alert "Script de Backup" message&lt;br /&gt;"Arquivo foi colocado na caixa de saida"&lt;br /&gt; end tell&lt;br /&gt;&lt;br /&gt; do shell script "cd ~;rm -rf transfer"&lt;br /&gt;end if&lt;br /&gt;end if&lt;br /&gt;&lt;br /&gt;&lt;/seu-usuario&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;O que você precisa fazer para ele rodar?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1 - Cole ele no script editor.&lt;br /&gt;2 - Substitua as tags começadas por # pelas suas informações.&lt;br /&gt;3 - Se você não é usuário do mail.app (meu caso) configure sua conta do gmail desmarcando a opção de checar e-mail automaticamente. Também marque para limpar e-mails enviados quando sair.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Esse script é uma adaptação de coisas achadas &lt;a href="http://forums.macosxhints.com/showthread.php?t=31163&amp;amp;highlight=gmail+drive"&gt;aqui&lt;/a&gt; e &lt;a href="http://www.macinstruct.com/node/135"&gt;aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Até a próxima!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-7148167002505420087?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/0hOhh-hJARU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/7148167002505420087/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=7148167002505420087" title="1 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/7148167002505420087?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/7148167002505420087?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/0hOhh-hJARU/script-de-backup.html" title="Script de Backup" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2009/03/script-de-backup.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04GQnY8fSp7ImA9WxRSFUQ.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-2492995016788218647</id><published>2008-09-16T18:06:00.004-03:00</published><updated>2008-09-16T18:18:43.875-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-16T18:18:43.875-03:00</app:edited><title>Evoluir sim, Quebrar jamais</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://img116.imageshack.us/img116/6996/vanmodifiedib5.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 206px; height: 288px;" src="http://img116.imageshack.us/img116/6996/vanmodifiedib5.jpg" alt="" border="0" /&gt;&lt;/a&gt;Evoluir sim, Quebrar jamais&lt;br /&gt;&lt;br /&gt;Java ou .net? Quem estava no mercado na virada do século deve ter vivido está situação. Muitas empresas montaram grupos para analisar qual caminho seguir. Mesmo as empresas que tinha seus produtos baseados em tecnologia Microsoft fizeram essa pergunta. Java ou .net? Em muitos casos, o que levou esse questionamento não eram questões estritamente funcionais. O fato é que todos estavam cansados de ter que adaptar seus códigos toda vez que uma nova release era lançada.&lt;br /&gt;&lt;br /&gt;Backward Compatibility, ou simplesmente compatibilidade reversa é o termo utilizado para designar alguma coisa que sofreu ou sofrerá evoluções sem deixar de ser compatível com seu legado. Java prometia backward compatibility e quem comprou se deu bem porque Java cumpriu o que prometera. Até as clássicas besteiras feitas nas constantes da awt.color onde a própria Sun violou o Java Code Convetions nos idos do JDK1.2 continuam lá. Por que? Oara não quebrar a compatibilidade dos programas que foram escritos naquela época.&lt;br /&gt;&lt;br /&gt;Quem migrou para .net nas primeiras versões sabe que seus códigos não são compatíveis com a versão atual. Até aí tudo bem, A Microsoft sempre foi assim e nunca escondeu que não iria mudar. Quem tem código em ASP 3.0 que se prepare, dizem que o próximo IIS não os rodará mais.&lt;br /&gt;&lt;br /&gt;O que me deixa chateado é o Rails sofrer desse mal. Eu sei que Rails não é uma plataforma (alguns acham equivocadamente o contrário) e que comparar Rails com Java ou .net é no mínimo injusto da minha parte. Sei também que evoluir é preciso, mas não concordo com a quebra de compatibilidade introduzida a partir da versão 2.0.&lt;br /&gt;&lt;br /&gt;Tudo bem que as alterações nem foram tão grandes assim, mas e as centenas de tutoriais que foram escritos que deixaram de funcionar de um dia para o outro? Isso dificulta a curva de aprendizado de novos programadores. Tenho experimentado isso. Várias pessoas que querem iniciar com Rails perdidas porque aquilo que estão tentando fazer simplesmente não funciona. Outro ponto, até mais importante que esse: Confiança quebrada. O que será que vai acontecer com minha base de código quando a 3.0 vier? Vai tudo para o espaço?&lt;br /&gt;&lt;br /&gt;Não se engane. Adoro novidades. Por isso mesmo quero utilizar meu tempo com coisas novas e não para ficar portando código que funcionava bem e que simplesmente deixou de funcionar.&lt;br /&gt;&lt;br /&gt;ps: Achei que o título do post lembrava o nome desse filme tosco.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-2492995016788218647?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/4SsbuQD2Kpg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/2492995016788218647/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=2492995016788218647" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/2492995016788218647?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/2492995016788218647?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/4SsbuQD2Kpg/evoluir-sim-quebrar-jamais.html" title="Evoluir sim, Quebrar jamais" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2008/09/evoluir-sim-quebrar-jamais.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YGRn46fyp7ImA9WxdbFEo.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-1674857661452232568</id><published>2008-08-10T18:41:00.007-03:00</published><updated>2008-08-11T14:18:47.017-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-11T14:18:47.017-03:00</app:edited><title>Limplex: O Verdadeiro MacBook Killer</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://img125.imageshack.us/img125/8363/lecter0103yk0.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 194px; height: 223px;" src="http://img125.imageshack.us/img125/8363/lecter0103yk0.jpg" alt="" border="0" /&gt;&lt;/a&gt;Toda vez que surge um produto de vanguarda a indústria fica alvorecida esperado um novo cara que vai enterrar aquele que é a atual referência.  O exemplo mais clássico é o do iPhone e seus iPhone killers. Pois bem, eu descobri o verdadeiro MacBook Killer, no sentido mais amplo do Killer: Limplex.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.limplex.com.br/"&gt;Limplex&lt;/a&gt; é um produto nacional para realizar limpeza de computadores. Ouvir falar bem dele em um &lt;a href="http://www.nfactory.org/mac/seu-macbook-sujou-limplex-nele/"&gt;blog&lt;/a&gt; e resolvi desencardir meu notebook branco. O preço era convidativo, pouco mais de 8 reais numa loja virtual.&lt;br /&gt;&lt;br /&gt;Desliguei o notebook e segui as instruções da embalagem:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;MODO DE USAR: Aplica-se uma pequena quantidade de produto em movimentos circulares, com a esponja que se encontra dentro do pote, removendo-o em seguida com pano. Use sempre um pano branco, para que não haja risco do pano soltar tinta.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Humm. Parece legal. Na embalagem a única advertência era essa:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;ATENÇÃO:Não aplicar sobre superfícies envernizadas e enceradas. Conserve fora do alcance de crianças e dos animais domésticos, em local fresco e sombreado. Em contado com os olhos, lavá-los com água abundante. Se ingerido, procure imediatamente um médico. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Fiz a limpeza externa do case ele ficou zero. Perfeito. Será que posso limpar o teclado também? A foto na embalagem é de uma mão limpando um teclado. Então deve poder! Também não tem nenhuma restrição no modo de uso e o produto traz em fontes grandes “Limpeza a seco”. Vamos em frente. O teclado ficou brilhando.&lt;br /&gt;&lt;br /&gt;Hora de ligar. Dedo no Power. Nada. Cinco segundos no Power Nada. Botãozinho da bateria para conferir a carga. Três leds piscando. Tentei de tudo. Segui todos os procedimentos do &lt;a href="http://support.apple.com/kb/TS1367?locale=pt_BR"&gt;suporte&lt;/a&gt; da Apple e nada. Achei o verdadeiro MacBook killer. Basta uma aplicação para seu notebook ir para o saco.&lt;br /&gt;&lt;br /&gt;Fica a dica: Muito cuidado na hora de limpar seu notebook. Mais cuidado ainda se seu notebook for um frágil MacBook.  Mais vale um note encardido na mão do que um brilhando no armário.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-1674857661452232568?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/KM2-8GdRa9U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/1674857661452232568/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=1674857661452232568" title="13 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/1674857661452232568?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/1674857661452232568?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/KM2-8GdRa9U/limplex-o-verdadeiro-macbook-killer.html" title="Limplex: O Verdadeiro MacBook Killer" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><thr:total>13</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2008/08/limplex-o-verdadeiro-macbook-killer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMGQ3kyeSp7ImA9WxdWEks.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-4977157652448574318</id><published>2008-07-05T08:43:00.002-03:00</published><updated>2008-07-05T09:53:42.791-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-05T09:53:42.791-03:00</app:edited><title>StarLogo 1.0</title><content type="html">Quando criança, ficava digitando umas listagens de BASIC no MSX que vinha no seu manual. Não sabia o que cada comando fazia, apenas digitava para ver se acontecia alguma coisa. E nunca acontecia. Demorei uns dois anos para descobrir que depois de digitar eu tinha que dar o comando "Run" que era acionado pela tecla F4. A minha maior graça era quando a listagem digitada desenhava alguma coisa na tela, mas eram muitas horas de frustração para um quadradinho monocromático na tela.&lt;br /&gt;&lt;br /&gt;Aos 13 por ironia, a primeira linguagem de programação que eu quase aprendi foi Python. Não foi por escolha, sem querer achei um tutorial na internet e a instalação foi fácil. Digo por ironia porque isso foi em 96 e o Visual Basic  e o Delphi  reinavam eu fui logo me envolver como uma linguagem dinâmica. Claro que eu não sabia o que era uma linguagem dinâmica.&lt;br /&gt;&lt;br /&gt;Fui fazer o segundo grau técnico em informática e nessa época os tutoriais de Python já tinham acabado e eu acabei aprendendo VB. O que de certa forma foi legal porque finalmente eu entendi aqueles comandinhos do BASIC.&lt;br /&gt;&lt;br /&gt;No primeiro ano, a disciplina que eu mais gostava era a de programação e a linguagem utilizada era LOGO. A primeira coisa que pensei quando eu vi aqueles comandos para mexer a tartaruga foi que isso era coisa para criança (e era mesmo). Tupetudo como sempre, perguntei para o professora porque é a linguagem que agente ia usar era LOGO? Estava doido para aprender C e eu ia ficar um ano fazendo uma tartaruga andar?&lt;br /&gt;Pacientemente a professora me explicou que apesar da tartaruga, LOGO tinha todos os conceitos que ela gostaria de ensinar nessa disciplina cujo objetivo era apresentar uma linguagem procedural.&lt;br /&gt;&lt;br /&gt;Aceitei a tartaruga e me divertir muito com ela. Hoje recebi um e-mail avisando que o StarLogo atingiu a maioridade. Saiu a versão 1.0. O StarLogo é uma evolução dos conceitos do LOGO para um ambiente tridimensional. Você vai ligando os blocos que se comunicam via mensagens (isso te lembra alguma coisa?) para fazer o tartaruga e um monte de outros personagem ganharem vida em um universo 3D. Essa nova versão traz um monte de novidade. Se na época do BASIC eu tivesse o LOGO talvez teria sido uma criança mais feliz! Volte a ser criança. Baixe o StarLogo e divirta-se.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://education.mit.edu/drupal/files/images/front_page_pic_0.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 430px; height: 233px;" src="http://education.mit.edu/drupal/files/images/front_page_pic_0.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-4977157652448574318?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/8Qxfz--0t48" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/4977157652448574318/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=4977157652448574318" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/4977157652448574318?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/4977157652448574318?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/8Qxfz--0t48/starlogo-10.html" title="StarLogo 1.0" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2008/07/starlogo-10.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYERHY5eyp7ImA9WxdSFUU.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-2311926400906298863</id><published>2008-04-23T17:19:00.007-03:00</published><updated>2008-05-23T21:15:05.823-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-23T21:15:05.823-03:00</app:edited><title>FISL 9.0</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.ggpht.com/rodrigosol/SA9MGR5-P9I/AAAAAAAABRE/S8yyOBhkqfA/DSC08964.JPG?imgmax=512"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 381px; height: 287px;" src="http://lh3.ggpht.com/rodrigosol/SA9MGR5-P9I/AAAAAAAABRE/S8yyOBhkqfA/DSC08964.JPG?imgmax=512" alt="" border="0" /&gt;&lt;/a&gt;Juro que estava com preguiça de escrever, achei que ninguém estava interessado, mas como me cobraram (Jesus e Jânio) segue o que eu achei do FISL 9.0:    &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;Ano passado o evento foi da FIRGS que fica um pouco afastado da cidade. Esse ano o evento foi na PUC, bem mais perto. O balcão para retirada da credencial foi dividido em filas pela inicial do nome. A fila de J-M estava enorme, Depois de quase uma hora na fila o sistema deu pau e a organização liberou a entrada. A tarde voltei para pegar a credencial e depois de mais meia hora de fila descubro que eu devia te pegado a fila dos R's. Mesmo de manhã não tinha fila nenhuma para os R's. Isso é que dar ter 3 nomes. Tem hora que até eu mesmo confundo. &lt;/p&gt;    &lt;p class="MsoNormal"&gt;Exceto por esse pequeno transtorno e pela inconstância da rede wifi, o resto foi muito bom. O clima é o mais legal da feira. &lt;span style=""&gt; &lt;/span&gt;Na área que fica concentrada os grupos de usuários, o pessoal fica esparramado pelo chão. Cada um com seu note. As palestras em geral foram boas. Assisti 18. Segue em ordem de preferência com um breve comentário sobre elas:&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;18 - Django para desenvolvimento Web - Christiano Anderson&lt;/span&gt;&lt;br /&gt;Essa nem consegui acabar de ver, vários problemas técnicos aconteceram e o palestrante não consegui dar seu recado.&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;17 -Kernel Open Session - Theodore Ts'o&lt;/span&gt;&lt;br /&gt;Esta foi uma sessão aberta de perguntas sobre o Kernel. Em alguns momentos eu boiei completamente.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 16 - Enabling Real-Time Rich Internet Application with Apache Derby and Comet - Francois Orsini e Jean Francois Arcand&lt;/span&gt;&lt;br /&gt;Essa começou legal, mas quando o segundo palestrante começou a falar tive dificuldades de entender seu inglês com sotaque francês.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 15 - Desenvolvimento ágil de software com XP e Scrum - Guilherme Chapiewski&lt;/span&gt;&lt;br /&gt;A sala estava lotada o que demonstra o grande interesse no assunto, mas faltou ritmo à apresentação. Tinha expectativa de mais visto que o autor mantém um ótimo blog que recorrentemente trata desse assunto.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 14 - JBoss Drools: Mudando as regras do jogo - Fenando Meyer&lt;/span&gt;&lt;br /&gt;A palestra foi legal, mas o tempo corrido não permitiu que o exemplo fosse devidamente explicado.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 13 - Ganeti - Cluster-based virtualization management software - Micheal Hanselmann&lt;/span&gt;&lt;br /&gt;O Ganeti parece ser bacana e ajudar bastante no gerenciamento, porém o palestrante só recomendou seu uso para aplicações mais leves.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 12 - Firefox in Brazil and Beyond - Crris Hofmann&lt;/span&gt;&lt;br /&gt;Foi legal ver o crescimento do Firefox. Apesar de não ser uma palestra técnica foi bem interessante.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 11 - Open solutions for distributed systems development - Rodrigo Damazio&lt;/span&gt;&lt;br /&gt;O cara mostrou alternativas open-source para os já famosos GFS e Bigtable. Legal!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 10 - Memory Leaks in Java Applications - Different Tools for Different Types of Leaks - Gregg Sporar&lt;/span&gt;&lt;br /&gt;Muito pertinente o assunto. Foram mostradas várias ferramentas que ajudam na identificação de memory leaks &lt;st1:personname productid="em Java.￼￼9 - Kernel" st="on"&gt;em Java.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  9 - Kernel&lt;/span&gt;&lt;/st1:personname&gt;&lt;span style="font-weight: bold;"&gt; - How to write a device driver - Kristen Accardi&lt;/span&gt;&lt;br /&gt;A palestrante demonstrou a criação de um driver para controlar uns leds ligados na paralela. Até que não é muito complicado não!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 8 - OpenOffice.org programmabillity - at a glance - Jurgen Schmidt&lt;/span&gt;&lt;br /&gt;Eu já tinha sofrido uma vez que programei uma integração com o OpenOffice e a apresentação serviu para esclarecer algumas dúvidas que tinham ficado deste então.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 7 - Sapos Piramidais, episodio XII: "Pontes" de PI. - Pedro Rezende&lt;/span&gt;&lt;br /&gt;Juro que só fui nessa palestra porque achei o nome muito curioso. Valeu a pena. O palestrante é um professor antenado e fez um resumo dos movimentos políticos que aconteceram no mundo do software livre no último ano. Bem bacana.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 6 - Modern Graphics in Qt - Andreas Hanssen&lt;/span&gt;&lt;br /&gt;Apesar do foco ser o Qt o cara deu várias dicas importantes sobre a construção de interfaces gráficas. Os exemplos que ele mostrou em Qt eram espetaculares.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 5 - Internet sob ataque - Sérgio Amadeu&lt;/span&gt;&lt;br /&gt;Até concordo que o Sérgio Amadeu seja xiita, mas devo confessar que gosto das coisas que ele fala. A palestra estava lotada e acho que o tema que ele abordou (Empresas de infra-estrutura interferindo na camada de aplicação) é extremamente relevante.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 4 - The Smalltalk Seaside Web Framework - Randal Schawartz&lt;/span&gt;&lt;br /&gt;Fantástico. Foram apenas 35 minutos, mas tempo suficiente para já ter me feito instalar o Squeak.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 3 - O Fantasma do Espectro - Sérgio Amadeu e Gustavo Gindre entre outros.&lt;/span&gt;&lt;br /&gt;Fui um debate legal sobre o modelo de concessão de espectro. Gostei da idéia do Open Espectro.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 2 - Large Scale PHP - Rasmus Ledorf&lt;/span&gt;&lt;br /&gt;Apesar do tema ser “large scale” o cara falou muito de segurança de aplicações Web. Gostei muito dessa palestra.&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style="font-weight: bold;"&gt;1 - Fun and software livre! - Return of the Jedi! - Jon "maddog" Hall&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;O papai Noel simplesmente detonou. Já tinha o assistido outras duas oportunidade, mas nenhuma chegou perto dessa. Fui divertida e empolgante, o pessoal presente entrou em êxtase no auditório. “Parecia” um culto religioso.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.ggpht.com/rodrigosol/SA9QeR5-QoI/AAAAAAAABW0/N3QlYsSqI5I/DSC09007.JPG?imgmax=512"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://lh3.ggpht.com/rodrigosol/SA9QeR5-QoI/AAAAAAAABW0/N3QlYsSqI5I/DSC09007.JPG?imgmax=512" alt="" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;          &lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;Eu continuo sem entender...&lt;/span&gt;&lt;br /&gt;Foi a maior concentração de macs que já vi. Você pode pensar: “Tudo bem, o macbook pro é o melhor hardware para se rodar Windows deve ser também o melhor para rodar o Linux”. Fiz questão de cada vez que eu via um mac dar uma olhadinha no canto superior esquerdo da tela. A maça sempre estava lá. Algumas azuis e na maioria das vezes pretas (geeks são &lt;span style="" lang="EN-US"&gt;early&lt;/span&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;span style="" lang="EN-US"&gt;adopters&lt;/span&gt;!), não vi nenhum mac rodando outra coisa senão o OS X. Nada contra o OS X, que aliais é o meu OS preferido (depois do MCP), o fato e que eu continuo sem entender porque Apple pode?&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;O FISL 10.0 promete. Parece que vai ser no final de Junho. Pode ir se preparar para o frio.&lt;/p&gt;&lt;p class="MsoNormal"&gt;Já ia me esquecendo das &lt;a href="http://picasaweb.google.com/rodrigosol/FISL90PortoAlegreRSAbril2008"&gt;fotos&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-2311926400906298863?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/IyKeRT1k_T8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/2311926400906298863/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=2311926400906298863" title="2 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/2311926400906298863?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/2311926400906298863?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/IyKeRT1k_T8/fisl-90.html" title="FISL 9.0" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/rodrigosol/SA9MGR5-P9I/AAAAAAAABRE/S8yyOBhkqfA/s72-c/DSC08964.JPG?imgmax=512" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2008/04/fisl-90.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMNRns6fip7ImA9WxZUF0Q.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-2930484664163397873</id><published>2008-04-09T23:08:00.005-03:00</published><updated>2008-04-09T23:28:17.516-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-09T23:28:17.516-03:00</app:edited><title>MiniServer - Baixe e envie arquivos do seu celular para o PC via WiFi</title><content type="html">Pretendo começar a falar mais sobre os aplicativos bacanas que utilizo no meu E61. A maioria deles também deve funcionar nos outros celulares Nokia com Symbian S60 3rd Edition.&lt;br /&gt;&lt;br /&gt;O primeiro deles é uma grande quebra-galho, trata-se do MiniServer, um pequeno executável que sobe um servidor HTTP no seu PC (Windows) e te permite enviar e receber arquivos do celular via WiFi. Sua utilização é bem simples, basta executar o mineserver.exe no PC e escolher qual a pasta que será compartilhada com o telefone. No celular aponte seu browser para o endereço IP do PC e você terá uma interface para baixar e enviar seus arquivos. O programa é pequeno é pode ser baixado &lt;a href="http://www.symbian-freak.com/news/008/01/miniserver_freeware.htm"&gt;aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Procurei um aplicativo semelhante para o Mac e não encontrei. Como a idéia dele é muito simples, não gastei nem 20 minutos para implementar um semelhante em Ruby on Rails. O único inconveniente é que para roda-lo é necessário ter o Ruby e o Rails instalado, mas para usuários do Leopard isso nem é tanto problema já que eles já vem instalados. Se alguém se interessar e só pedir que eu mando.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-2930484664163397873?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/2C0Vonqblts" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/2930484664163397873/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=2930484664163397873" title="2 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/2930484664163397873?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/2930484664163397873?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/2C0Vonqblts/miniserver-baixe-e-envie-arquivos-do.html" title="MiniServer - Baixe e envie arquivos do seu celular para o PC via WiFi" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2008/04/miniserver-baixe-e-envie-arquivos-do.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYBSHw5fip7ImA9WxJQGUU.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-7510379544256040231</id><published>2008-02-26T16:44:00.009-03:00</published><updated>2009-06-02T19:52:39.226-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-02T19:52:39.226-03:00</app:edited><title>GPS - Quem tem boca vai a Roma</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.google.com/rodrigosol/R8QrtlE19TI/AAAAAAAAAws/W6GODUUxpZk/PIC_0006.JPG?imgmax=512"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 270px; height: 202px;" src="http://lh4.google.com/rodrigosol/R8QrtlE19TI/AAAAAAAAAws/W6GODUUxpZk/PIC_0006.JPG?imgmax=512" alt="" border="0" /&gt;&lt;/a&gt;Em uma viagem recente aluguei junto com o carro um GPS modelo Airis T92A.&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;O objetivo de ter o GPS em mãos era claro, eu gostaria de ir em lugares que eu não tinha a mínima idéia de onde eram e inocentemente pensei que bastava o GPS. Não bastou.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Contextualizando&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A cidade era Salvador, a escolha da locadora Hertz se deu exclusivamente porque era a única que tinha GPS com mapas da cidade. Ao fazer a reserva escolhi a loja mais próxima do hotel que estávamos. A Hertz tem três lojas em Salvador, uma no aeroporto, e duas na mesma avenida que se chama Octavio Mangabeira, uma numa ponta e outra na outra. A Hertz não tem opção de incluir o GPS na reserva feita na internet sendo necessário posterior contato por telefone para associar o GPS a reserva. Assim o fiz.&lt;br /&gt;&lt;br /&gt;Quando peguei o táxi no hotel em direção a locadora o taxista disse a avenida era bastante extensa e pediu pelo radio o telefone da loja. Ele mesmo ligou, confirmou pelo telefone o endereço e o numero da loja. A confirmação apontou para uma loja que ficava próxima ao aeroporto e bem distante do hotel. Fiquei desconfiado já que eu tinha olhado no mapa e escolhido a loja que ficava mais perto do hotel e eu mesmo liguei para a loja confirmando o número:&lt;br /&gt;&lt;br /&gt;- O numero daí é 3370?&lt;br /&gt;- Sim senhor, é sim.&lt;br /&gt;- Mas fica perto do Aeroporto?&lt;br /&gt;- Sim senhor, fica sim.&lt;br /&gt;- Ok. Obrigado&lt;br /&gt;&lt;br /&gt;Segue então. 40 minutos depois, chegamos a loja:&lt;br /&gt;&lt;br /&gt;- Bom dia, eu fiz uma reserva...&lt;br /&gt;- Senhor, não existe nenhuma reserva &lt;st1:personname productid="em seu nome.￼- Como" st="on"&gt;em seu nome.&lt;br /&gt;- Como&lt;/st1:personname&gt; assim não?&lt;br /&gt;- A reservado do senhor foi para outra loja nessa mesma rua.&lt;br /&gt;- O que? Mas eu liguei confirmando, o numero aqui não é 3370?&lt;br /&gt;- Não, aqui é 40.&lt;br /&gt;- Ahhhhh?&lt;br /&gt;- ....(Podem imaginar a discussão que se sucedeu)&lt;br /&gt;- Mas eu não posso pegar o carro aqui, não? Esta no caminho da onde estou indo (Litoral norte)&lt;br /&gt;- Sim, mas não temos GPS nessa loja, senhor. Você pode pegar o carro e ir até a loja que o senhor fez a reserva e retirar o GPS.&lt;br /&gt;- Mas como eu vou chegar na outra loja se o GPS era justamente para me dar os caminhos?&lt;br /&gt;- Não sei não senhor.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pegamos outro táxi e seguimos 30 minutos até a outra loja na mesma rua.&lt;br /&gt;&lt;br /&gt;- Bom dia, eu fiz uma reserva...&lt;br /&gt;- Sim senhor, seu carro está pronto.&lt;br /&gt;- Ahhh que ótimo.&lt;br /&gt;5 minutos depois...&lt;br /&gt;-Cadê o GPS?&lt;br /&gt;- Que GPS?&lt;br /&gt;- O que eu reservei.&lt;br /&gt;- Não consta nenhuma reserva de GPS não senhor. GPS só na loja do Aeroporto.&lt;br /&gt;- O que?????&lt;br /&gt;&lt;br /&gt;Contei toda estória para a mulher que foi bastante compreensiva e reconheceu o erro e me ofereceu um upgrade para compensar o problema. Aceitei de bom agrado, claro, mas não resolvia, como eu ia chegar ao aeroporto de carro, numa cidade desconhecida e que tem um dos trânsitos mais pervertidos que já tinha visto? Quem tem boca vai a Roma e também ao aeroporto. Assim fomos.&lt;br /&gt;&lt;br /&gt;Pegamos o bendito GPS e pensamos: Agora e só ir para a praia. Não foi.&lt;br /&gt;Setei o endereço de onde eu queria ir. Já sabia que o caminho era pela linha verde que passa pertinho do aeroporto. Logo na saída do aeroporto o GPS me manda virar a direita, obedeci e cai dentro de um estacionamento de uma empresa de táxi, em seguida me mandou pegar a direita de novo. Era uma viela de terra que mal passava uma carroça. O sinal amarelo acendeu e eu voltei para a rua que eu tinha saído porque tinha visto placas &lt;span style=""&gt; &lt;/span&gt;indicando a estrada. Peguei a estrada e ele começou a me mandar sair da estrada. Que diabos! Pensei. Eu sabia que meu primeiro destino era 50km distante por essa estrada. Por um lapso de subserviência a maquina resolvi atender o que ele queria.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;- Deve ser um atalho. Justifiquei.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;- Humm. Respondeu secamente minha namorada que já estava irritada por perder parte da manhã de sol por causa do GPS.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;-Vire a esquerda em 800 metros.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;-Vire a direita em 500 metros.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;O GPS me mandou para uma quebrada que não da para descrever e nesse momento aprendi a primeira lição:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;" lang="PT-BR"&gt;Primeira lição: Q&lt;/span&gt;&lt;span style="" lang="PT-BR"&gt;&lt;span style="font-weight: bold;"&gt;uem manda é você. Se o GPS te mandar entrar num beco não entre. O bobo aqui entrou.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;Desliguei o maldito. Procurei um lugar seguro e perguntei para um taxista o caminho e fui embora até o meu destino, sem o GPS fácil, fácil. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;- Como vamos voltar? Você sabe chegar no hotel? Ela perguntou.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;- Hotel. Humm... Hotel, sei não.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;- Vamos tentar o GPS de novo quem sabe agora ele não funciona.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;E ele não funcionou. Não consegui setar o endereço do hotel e então coloquei um ponto arbitrário no bairro que ficava o hotel. Se conseguíssemos chegar lá era só perguntar de novo. Quase anoitecendo pegamos a estrada e quando chegamos dentro da cidade o sujeito insistia em me mandar sair da avenida em que eu estava, mas dessa vez depois de ter aprendido a 1ª lição não sai. A cidade é bem sinalizada e resolvi seguir as placas e chegamos no hotel numa boa.&lt;br /&gt;&lt;br /&gt;Claro que como um bom geek não me daria por vencido.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;-Porque você está tirando o GPS do carro?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;-Vou levar ele para o quarto.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;-O que? Você não desistiu ainda não? Não acredito.   &lt;!--[if !supportLineBreakNewLine]--&gt;  &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;Enquanto ela tomava banho, eu ainda com os pés cheio de areia peguei o manual do bichinho. Ele tava todo configurado errado, o sujeito que estava anteriormente com ele tinha configurado para priorizar o tempo de calculo de rota invés da precisão. Além disso, quando eu setei o endereço eu não especifiquei a cidade, nesse caso ele calcula o mais próximo do ponto atual, por infeliz coincidência as duas cidades tinham praias com o mesmo nome. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;&lt;span style="font-weight: bold;"&gt;Segunda lição: Leia o manual antes de usar.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;No resto do final de semana o GPS foi muito útil, fui aprendendo a lidar com ele aos poucos, ignorando as contramãos que ele me mandava e sempre acompanhando as placas para ver se estava no rumo certo. Até ela se surpreendeu:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;- É. Até que ele acertou dessa vez.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-7510379544256040231?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/1hOPa1910Bo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/7510379544256040231/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=7510379544256040231" title="3 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/7510379544256040231?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/7510379544256040231?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/1hOPa1910Bo/gps-quem-tem-boca-vai-roma.html" title="GPS - Quem tem boca vai a Roma" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2008/02/gps-quem-tem-boca-vai-roma.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8AQXg-fSp7ImA9WB9aFEU.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-5291231376202799749</id><published>2008-01-04T21:15:00.000-02:00</published><updated>2008-01-04T21:20:40.655-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-04T21:20:40.655-02:00</app:edited><title>BH Coding Dojo</title><content type="html">&lt;div class="deleteBody"&gt;&lt;h2 class="postTitle" style="color: rgb(102, 102, 102);"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: normal;"&gt;Se você não é um &lt;/span&gt;&lt;a style="font-weight: normal;" href="http://en.wikipedia.org/wiki/Code_monkey"&gt;code monkey&lt;/a&gt;&lt;span style="font-weight: normal;"&gt; e mora nas redondezas de Belo Horizonte preste a atenção:&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;br /&gt;&lt;p class="postBody" style="color: rgb(119, 119, 119);"&gt;Dia 19 de Janeiro acontece à primeira reunião do BH Coding Dojo. A idéia é reunir gente que gosta de programar independente da linguagem. Na primeira sessão acontecerá um &lt;a href="http://codingdojo.org/cgi-bin/wiki.pl?PreparedKata"&gt;PreparedKata&lt;/a&gt; onde um alguém levará uma solução baseada em TDD ou BDD para ser discutida com a galera. Nas próximas reuniões a idéia e que role um &lt;a href="http://codingdojo.org/cgi-bin/wiki.pl?RandoriKata"&gt;RandoriKata&lt;/a&gt; com participação de todos.&lt;/p&gt;&lt;p class="postBody" style="color: rgb(119, 119, 119);"&gt;&lt;span style="font-weight: bold;"&gt;  Quando e Onde&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dia 19-Jan-2008 às 10:00, na Solin, Av. Raja Gabáglia, 3348.&lt;br /&gt;&lt;br /&gt;&lt;iframe marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&amp;amp;hl=pt-BR&amp;amp;geocode=&amp;amp;time=&amp;amp;date=&amp;amp;ttype=&amp;amp;q=belo+horizonte+Av.+Raja+Gab%C3%A1glia,+3348&amp;amp;sll=37.0625,-95.677068&amp;amp;sspn=30.544155,59.765625&amp;amp;ie=UTF8&amp;amp;om=1&amp;amp;ll=-19.954471,-43.951063&amp;amp;spn=0.035337,0.058365&amp;amp;z=14&amp;amp;iwloc=addr&amp;amp;output=embed&amp;amp;s=AARTsJpE1W0RZVoXDw1BtSW9D_-dwzHQtw" frameborder="0" height="350" scrolling="no" width="425"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a href="http://maps.google.com/maps?f=q&amp;amp;hl=pt-BR&amp;amp;geocode=&amp;amp;time=&amp;amp;date=&amp;amp;ttype=&amp;amp;q=belo+horizonte+Av.+Raja+Gab%C3%A1glia,+3348&amp;amp;sll=37.0625,-95.677068&amp;amp;sspn=30.544155,59.765625&amp;amp;ie=UTF8&amp;amp;om=1&amp;amp;ll=-19.954471,-43.951063&amp;amp;spn=0.035337,0.058365&amp;amp;z=14&amp;amp;iwloc=addr&amp;amp;source=embed" style="color: rgb(0, 0, 255); text-align: left;"&gt;Exibir mapa ampliado&lt;/a&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;A entrada é franca, mas o espaço é limitado por isso cadastre-se na lista &lt;a href="http://groups.google.com/group/dojo_bh"&gt;DOJO-BH&lt;/a&gt; para garantir seu lugar.&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/20104457-5291231376202799749?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/iJlgsYwPLL0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/5291231376202799749/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=5291231376202799749" title="1 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/5291231376202799749?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/5291231376202799749?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/iJlgsYwPLL0/bh-coding-dojo_04.html" title="BH Coding Dojo" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2008/01/bh-coding-dojo_04.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQCQXo9cCp7ImA9WB9UFko.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-2863426852641077848</id><published>2007-12-13T00:36:00.000-02:00</published><updated>2007-12-14T20:12:40.468-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-12-14T20:12:40.468-02:00</app:edited><title>Post Atrasado: Minas on Rails</title><content type="html">Aconteceu o primeiro &lt;a href="http://www.minasonrails.org/"&gt;Minas on Rails&lt;/a&gt;, excelente iniciativa do pessoal que com muita garra e pouco dinheiro conseguiram organizar um bom evento em tão curto espaço de tempo. Eu cheguei tarde e perdi todas as palestras da manhã. Queria muito ter assistido a palestra do &lt;a href="http://www.eustaquiorangel.com/"&gt;TaQ&lt;/a&gt; e pelo que me falaram eu não teria me arrependido.&lt;o:p&gt;&lt;/o:p&gt;    &lt;p class="MsoNormal"&gt;Gostei de mais de ver o pessoal da PUC lá: Jânio, &lt;a href="http://caldeiraonrails.blogspot.com/"&gt;Gustavo&lt;/a&gt;, Jesus, Davison, Arruda, Pablo e Breno. Até me sinto de certa forma responsável por ter martelado pouco RoR na cabeça desse povo nos últimos dois anos. Vejam um dado inútil: Se o publico total que compareceu ao evento foi de 100 pessoas, então éramos 8% do total, o que é bem expressivo e mostra o interesse do pessoal na plataforma.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;        &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;Gostei de mais de conhecer pessoalmente o &lt;a href="http://www.eustaquiorangel.com/"&gt;TaQ&lt;/a&gt; e o &lt;a href="http://logbr.reflectivesurface.com/"&gt;Ronaldo Ferraz&lt;/a&gt;. Os caras são minhas referências brasileiras no assunto e além do mais os sujeitos são muito bacanas. Diria até que o papo com os caras estava tão bom que a corrida até confins durou metade do usual.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;br /&gt;Melhor do que tudo isso foi mesmo poder encontrar com meu POJO amigo &lt;a href="http://diogenesf.wordpress.com/"&gt;Diogenes&lt;/a&gt;. Já tinha uma cara que agente não se encontrava pessoalmente e como sempre conversar com esse sujeito é muito bom!&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;Das palestras que vi a que mais gostei foi a do &lt;a href="http://www.improveit.com.br/"&gt;Vinicius Telles&lt;/a&gt; sobre um case que envolve RoR e XP. O ritmo da palestra foi perfeito e o cara manda muito bem. Ele deu várias dicas de coisas muito simples que são muito bem vindas mesmo para que não segue todas as regras do XP.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;Momento surreal do dia: Ao deixarmos o &lt;a href="http://www.eustaquiorangel.com/"&gt;TaQ&lt;/a&gt; no embarque em Confis, uma menina(que pelo jeito trabalha lá) pediu carona até BH. Não neguei, afinal voltávamos eu, o Diógenes e o &lt;a href="http://logbr.reflectivesurface.com/"&gt;Ronaldo &lt;/a&gt;e sobrava um vaga no carro. Não me importo de dar carona, principalmente quando não estou sozinho já que me sinto mais seguro. Na volta embarcamos num papo ultra geek percorrendo uma dúzia de linguagens de programação diferentes, de Smalltalk a IO, passando por Haskell e Prolog. Ao descer do carro ela fez uma confissão, disse que era a primeira vez que ela voltava de carona de Confis sem dizer uma única palavra. Duas coisas pipocaram na minha cabeça depois disso: 1º Como deve ser para uma pessoa normal passar 50 minutos dentro de um carro escutando aquele papo ultra nerd? 2º Será que a mocinha estava acostumada a vim recebendo cantadas no seu trajeto diário e se espantou quando foi completamente ignorada?&lt;/p&gt;    &lt;p class="MsoNormal"&gt;Que venha o próximo &lt;a href="http://www.minasonrails.org/"&gt;Minas on Rails.&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-2863426852641077848?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/xBilNpiwPE4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/2863426852641077848/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=2863426852641077848" title="5 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/2863426852641077848?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/2863426852641077848?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/xBilNpiwPE4/post-atrasado-minas-on-rails.html" title="Post Atrasado: Minas on Rails" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><thr:total>5</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2007/12/post-atrasado-minas-on-rails.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAMSH87eyp7ImA9WB9WEUs.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-1205333011651978623</id><published>2007-11-15T19:45:00.000-02:00</published><updated>2007-11-15T19:56:29.103-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-11-15T19:56:29.103-02:00</app:edited><title>Android SDK</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_cm1soNZSmFg/Rzy-5SMHmMI/AAAAAAAAAbc/vFu7B9a1MB8/s1600-h/android.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_cm1soNZSmFg/Rzy-5SMHmMI/AAAAAAAAAbc/vFu7B9a1MB8/s320/android.png" alt="" id="BLOGGER_PHOTO_ID_5133187566640011458" border="0" /&gt;&lt;/a&gt;O Google liberou está semana  o &lt;a href="http://code.google.com/android/"&gt;SDK do Android,&lt;/a&gt; uma plataforma completa e open source para desenvolvimento de softwares para telefones celulares. Já instalei e comecei a brincar! Algumas coisas já me chamaram atenção positivamente: A facilidade de se criar interfaces gráficas, o renderizador do browser que vem no emulador e a qualidade da documentação que já esta disponível no &lt;a href="http://code.google.com/android/"&gt;site&lt;/a&gt; do projeto. &lt;a href="http://code.google.com/android/toolbox/performance.html"&gt;Neste documento&lt;/a&gt;, por exemplo, tem várias dicas para se melhorar a &lt;a href="http://code.google.com/android/toolbox/performance.html"&gt;performance&lt;/a&gt; dos aplicativos do Android. As dicas são tão boas que algumas delas podem facilmente ser aplicadas em outras plataformas embarcadas e também no desenvolvimento do dia-a-dia.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/android/intro/hello-android.html"&gt;Siga aqui&lt;/a&gt; para os primeiros passos com o Android.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-1205333011651978623?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/qlyApoObsPY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/1205333011651978623/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=1205333011651978623" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/1205333011651978623?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/1205333011651978623?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/qlyApoObsPY/android-sdk.html" title="Android SDK" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp2.blogger.com/_cm1soNZSmFg/Rzy-5SMHmMI/AAAAAAAAAbc/vFu7B9a1MB8/s72-c/android.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2007/11/android-sdk.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIFSX45eSp7ImA9WB5aFUs.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-1722539165839432281</id><published>2007-09-11T22:52:00.000-03:00</published><updated>2007-09-11T23:01:58.021-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-09-11T23:01:58.021-03:00</app:edited><title>Emo Killer</title><content type="html">&lt;p class="MsoNormal"&gt;Outro dia meu sobrinho de 12 anos me chamou para ver um vídeo que ele tinha feito. Pensei que tivesse gravado alguma coisa com a WebCam. Fiquei surpreso com o que vi. Ele tinha feito uma sobreposição usando o PaintBrush e gravado o áudio com o Voice Recorder. O resultado, como não poderia ser diferente, ficou bastante rudimentar, mas me fez refletir sobre como é imenso o domínio da tecnologia por essa nova geração. A tecnologia que para nós é fim, para eles é naturalmente um meio de expressão.&lt;/p&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;object height="353" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/zTAfVLSQHG4"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/zTAfVLSQHG4" type="application/x-shockwave-flash" wmode="transparent" height="353" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-1722539165839432281?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/QCK0KgOFXH0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/1722539165839432281/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=1722539165839432281" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/1722539165839432281?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/1722539165839432281?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/QCK0KgOFXH0/emo-killer.html" title="Emo Killer" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2007/09/emo-killer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkANR348eip7ImA9WB5aE0U.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-5777932047801442293</id><published>2007-09-09T19:36:00.000-03:00</published><updated>2007-09-09T20:33:16.072-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-09-09T20:33:16.072-03:00</app:edited><title>Code Contest Mega Sena: Resultados</title><content type="html">Para organizar  melhor os códigos que foram feitos para o &lt;a href="http://macacochefe.blogspot.com/2007/08/code-contest-em-tempos-de-mega-sena.html"&gt;Code Constest da Mega Sena&lt;/a&gt; criei este novo post.&lt;br /&gt;&lt;br /&gt;Alguns desses códigos não respeitam a regra da unidade léxica da linha, mas eles são tão criativos que quem se importa? Se vocês se importarem eu tiro.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Uma Linha:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bermonruf.wordpress.com/"&gt;Bernado Rufino&lt;/a&gt; fez em &lt;a href="http://bermonruf.wordpress.com/2007/09/01/code-contest-mega-sena-em-1-linha/"&gt;Ruby&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(102, 102, 102); padding: 8px; overflow: auto; height: 50px; width: 400px;"&gt;&lt;pre&gt;Array.new(100000){rand(60)+1}.inject(Hash.new(0)){|hash, i| hash if hash[i] += 1}.invert.sort.reverse[0..6].each{|t, n| puts "#{n}repeated #{t} times"}&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://devlog.waltercruz.com/"&gt;Walter Cruz&lt;/a&gt; fez em &lt;a href="http://devlog.waltercruz.com/coding_contest_mega_sena_acumulada"&gt;Python&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(102, 102, 102); padding: 8px; overflow: auto; height: 50px; width: 400px;"&gt;&lt;pre&gt;x = [item for item in sorted([(k, len(list(g))) for k, g in groupby(sorted([randrange(1,61) for item in xrange(0,100000)]))],key=itemgetter(1),reverse=True)][:6]rint(x)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mouseoverstudio.com/"&gt;Diogo Carrion&lt;/a&gt; fez em &lt;a href="http://www.mouseoverstudio.com/blog/?p=23"&gt;JavaScript&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(102, 102, 102); padding: 8px; overflow: auto; height: 50px; width: 400px;"&gt;&lt;pre&gt;for (var i, array = new Array(), j = 0; j &lt; i =" Math.round(59" j ="="&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://plutao.wordpress.com/"&gt;Rafael&lt;/a&gt; fez duas em C++&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(102, 102, 102); padding: 8px; overflow: auto; height: 50px; width: 400px;"&gt;&lt;pre&gt;int main() { for(int freq[] ={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60},i = 0; i == 100000 ? printf("%d %d %d %d %d %d\n", freq[59]%100,freq[58]%100, freq[57]%100, freq[56]%100, freq[55]%100,freq[54]%100)*0 : 1;sort(freq, freq+sizeof(freq)/sizeof(int)), i++,freq[rand()%60]+=100); }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(102, 102, 102); padding: 8px; overflow: auto; height: 50px; width: 400px;"&gt;&lt;pre&gt;int main() {for(vector&lt;&gt; v(60,0),i(0,0); i[0] == 100060 ? printf("%d %d %d %d %d %d\n", v[59]%70, v[58]%70, v[57]%70, v[5 6]%70, v[55]%70, v[54]%70)*0 : 1; v[i[0] &lt;&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://fenrrir.wordpress.com/"&gt;Rodrigo Fenrrir&lt;/a&gt; fez Python&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(102, 102, 102); padding: 8px; overflow: auto; height: 50px; width: 400px;"&gt;&lt;pre&gt;sorted([ (x.count(k),k) for x in [[ random.randint(1,60) for z in xrange(100000) ]] for k in xrange(1,61) ], reverse=True)[:6]&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Rodrigo(deixou comentário) fez em Perl&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(102, 102, 102); padding: 8px; overflow: auto; height: 50px; width: 400px;"&gt;&lt;pre&gt;for (1..100001) { ($_ == 100001) ? print join(" ", (sort { $h{$b} &lt;=&gt; $h{$a} } keys %h)[0..5]) . "\n": $h{int(rand()*60+1)}++ }&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Duas Linhas:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://elmicox.blogspot.com/"&gt;Náiron J. C. G&lt;/a&gt; fez em &lt;a href="http://elmicox.blogspot.com/2007/09/code-contest-mega-sena-acumulada.html"&gt;JavaScript&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(102, 102, 102); padding: 8px; overflow: auto; height: 50px; width: 400px;"&gt;&lt;pre&gt;for(var i,ra=new Array(),j=0 ; j&lt;10000 i="Math.round(59*Math.random())+1,ra[i]="&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Três Linhas:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://joseoliveira.com/"&gt;ZehOliveira&lt;/a&gt; fez em &lt;a href="http://joseoliveira.com/2007/08/26/code-contest-em-tempos-de-mega-sena-acumulada/"&gt;IO&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(102, 102, 102); padding: 8px; overflow: auto; height: 50px; width: 400px;"&gt;&lt;pre&gt;h := Map;&lt;br /&gt;100000 repeat(if(h hasKey(n := Random value(1, 60) round asString), h atPut(n, h at(n)+1), h atPut(n, 1)))&lt;br /&gt;h asList sortBy(block(f, s, f at(1) &gt; s at(1))) slice(0, 6) foreach(k,  writeln(k at(0), " --&gt; ", k at(1)))&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;O &lt;a href="http://blog.danielfmartins.com/"&gt;Daniel Martins&lt;/a&gt; fez em &lt;a href="http://blog.danielfmartins.com/2007/08/26/em-tempos-de-mega-sena-acumulada/"&gt;Groovy&lt;/a&gt; e em &lt;a href="http://blog.danielfmartins.com/2007/08/26/em-tempos-de-mega-sena-acumulada/"&gt;SmallTalk&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(102, 102, 102); padding: 8px; overflow: auto; height: 50px; width: 400px;"&gt;&lt;pre&gt;def hist = [:], v&lt;br /&gt;100000.times{hist[v = 1 + Math.random() * 60 as int] = !hist[v] ? 1 : hist[v] + 1}&lt;br /&gt;println hist.keySet().toList().sort{-hist[it]}[0..5].join(‘,’)&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(102, 102, 102); padding: 8px; overflow: auto; height: 50px; width: 400px;"&gt;&lt;pre&gt;| s |&lt;br /&gt;s := ((OrderedCollection withAll: ((1 to: 100000) collect: [:each | 60 atRandom])) groupBy: [:each | each] having: [:each | true]) asSortedCollection: [:a :b | b size &lt;&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-5777932047801442293?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/-wBzcKRb9yE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/5777932047801442293/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=5777932047801442293" title="2 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/5777932047801442293?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/5777932047801442293?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/-wBzcKRb9yE/code-contest-mega-sena-resultados.html" title="Code Contest Mega Sena: Resultados" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2007/09/code-contest-mega-sena-resultados.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8MSHw-fyp7ImA9WB5aE0U.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-4225923726720275456</id><published>2007-08-25T17:17:00.000-03:00</published><updated>2007-09-09T20:34:49.257-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-09-09T20:34:49.257-03:00</app:edited><title>Code Contest: Em tempos de Mega Sena Acumulada</title><content type="html">Um pequeno desafio:&lt;br /&gt;&lt;br /&gt;Escrever em qualquer linguagem de programação um programa que realize 100.000 sorteios de um numero entre 1 e 60 e mostre na tela os 6 mais freqüentes.&lt;br /&gt;&lt;br /&gt;Ganha quem fizer o programa com o menor numero de linhas possíveis, lembrando que a linha considerada é a linha da unidade léxica da linguagem, portanto a seguinte linha em Java seria considerada duas: int i =0; sysout(i);&lt;br /&gt;&lt;br /&gt;Fiz com 3 linhas em Ruby:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;hist = Hash.new(0)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;100000.times{|e| hist[1 + rand(60)] += 1}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;hist.sort{|a,b| b[1]&lt;=&gt;a[1]}.to_a.slice(0,6).each{|e| puts "#{e[0]} --&gt; #{e[1]}"}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Será possível fazer em menos linhas com Python, Groovy, Haskell ou Prolog? Em Ruby da pra fazer com menos? Citei essas porque acho quase impossível fazer com menos do que isso com Java, C/C++ ou C#, mas se alguém quiser provar o contrario...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update II&lt;br /&gt;&lt;br /&gt;Para ficar mais organizado novas Contribuições estão sendo postadas &lt;a href="http://macacochefe.blogspot.com/2007/09/code-contest-mega-sena-resultados.html"&gt;aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Update&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;O&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;a href="http://joseoliveira.com/"&gt;&lt;span class="genmed"&gt;&lt;b&gt;ZehOliveira&lt;/b&gt;&lt;/span&gt;&lt;/a&gt; do GUJ &lt;a href="http://joseoliveira.com/2007/08/26/code-contest-em-tempos-de-mega-sena-acumulada/"&gt;fez&lt;/a&gt;  com 3 linhas na &lt;span style=""&gt;interessantísima &lt;/span&gt;&lt;a href="http://iolanguage.com/about"&gt;IO&lt;/a&gt;  (Valeu Zé!):&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;h := Map;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span class="number"&gt;&lt;br /&gt;100000&lt;/span&gt;&lt;span&gt; repeat(&lt;/span&gt;&lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt;(h hasKey(n := Random value(&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="number"&gt;60&lt;/span&gt;&lt;span&gt;) round asString), h atPut(n, h at(n)+&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;&lt;span&gt;), h atPut(n, &lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;&lt;span&gt;)))  &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;h asList sortBy(block(f, s, f at(&lt;span class="number"&gt;1&lt;/span&gt;&lt;span&gt;) &gt; s at(&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;&lt;span&gt;))) slice(&lt;/span&gt;v&lt;span&gt;, &lt;/span&gt;&lt;span class="number"&gt;6&lt;/span&gt;&lt;span&gt;) foreach(k,  writeln(k at(&lt;/span&gt;&lt;span class="number"&gt;0&lt;/span&gt;&lt;span&gt;), &lt;/span&gt;&lt;span class="string"&gt;" --&gt; "&lt;/span&gt;&lt;span&gt;, k at(&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;&lt;span&gt;)))&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;O &lt;a style="font-weight: bold;" href="http://blog.danielfmartins.com/"&gt;Daniel Martins&lt;/a&gt; também &lt;a href="http://blog.danielfmartins.com/2007/08/26/em-tempos-de-mega-sena-acumulada/"&gt;fez&lt;/a&gt; com 3 linhas em &lt;a href="http://groovy.codehaus.org/"&gt;Groovy&lt;/a&gt; e em SmallTalk(Value Daniel!):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;a style="font-family: courier new;" href="http://www.google.de/search?q=site%3Adocs.codehaus.org/%20def" onclick="javascript:urchinTracker ('/outbound/article/www.google.de');"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;def&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt; hist = &lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);font-family:courier new;" &gt;[&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;:&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);font-family:courier new;" &gt;]&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;, v &lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);font-family:courier new;" &gt;&lt;br /&gt;100000&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;.&lt;/span&gt;&lt;a style="font-family: courier new;" href="http://www.google.de/search?q=site%3Adocs.codehaus.org/%20times" onclick="javascript:urchinTracker ('/outbound/article/www.google.de');"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;times&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(102, 204, 102);font-family:courier new;" &gt;{&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;hist&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);font-family:courier new;" &gt;[&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;v = &lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);font-family:courier new;" &gt;1&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; + &lt;/span&gt;&lt;a style="font-family: courier new;" href="http://www.google.de/search?as_q=Math&amp;num=100&amp;amp;hl=en&amp;as_occt=url&amp;amp;as_sitesearch=java.sun.com%2Fj2se%2F1.5.0%2Fdocs%2Fapi%2F" onclick="javascript:urchinTracker ('/outbound/article/www.google.de');"&gt;&lt;span style="color: rgb(170, 170, 221); font-weight: bold;"&gt;Math&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);font-family:courier new;" &gt;random&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);font-family:courier new;" &gt;()&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; * &lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);font-family:courier new;" &gt;60&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;&lt;a style="font-family: courier new;" href="http://www.google.de/search?q=site%3Adocs.codehaus.org/%20as" onclick="javascript:urchinTracker ('/outbound/article/www.google.de');"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;as&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;&lt;a style="font-family: courier new;" href="http://www.google.de/search?q=site%3Adocs.codehaus.org/%20int" onclick="javascript:urchinTracker ('/outbound/article/www.google.de');"&gt;&lt;span style="color: rgb(153, 51, 51);"&gt;int&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(102, 204, 102);font-family:courier new;" &gt;]&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; = !hist&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);font-family:courier new;" &gt;[&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;v&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);font-family:courier new;" &gt;]&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; ? &lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);font-family:courier new;" &gt;1&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; : hist&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);font-family:courier new;" &gt;[&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;v&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);font-family:courier new;" &gt;]&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; + &lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);font-family:courier new;" &gt;1&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);font-family:courier new;" &gt;}&lt;/span&gt;&lt;br /&gt;&lt;a style="font-family: courier new;" href="http://www.google.de/search?q=site%3Adocs.codehaus.org/%20println" onclick="javascript:urchinTracker ('/outbound/article/www.google.de');"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;println&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt; hist.&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);font-family:courier new;" &gt;keySet&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);font-family:courier new;" &gt;()&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;.&lt;/span&gt;&lt;a style="font-family: courier new;" href="http://www.google.de/search?q=site%3Adocs.codehaus.org/%20toList" onclick="javascript:urchinTracker ('/outbound/article/www.google.de');"&gt;&lt;span style="color: rgb(102, 51, 153);"&gt;toList&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(102, 204, 102);font-family:courier new;" &gt;()&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;.&lt;/span&gt;&lt;a style="font-family: courier new;" href="http://www.google.de/search?q=site%3Adocs.codehaus.org/%20sort" onclick="javascript:urchinTracker ('/outbound/article/www.google.de');"&gt;&lt;span style="color: rgb(102, 51, 153);"&gt;sort&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(102, 204, 102);font-family:courier new;" &gt;{&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;-hist&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);font-family:courier new;" &gt;[&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;it&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);font-family:courier new;" &gt;]}[&lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);font-family:courier new;" &gt;0&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;..&lt;/span&gt;&lt;span style="color: rgb(204, 102, 204);font-family:courier new;" &gt;5&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);font-family:courier new;" &gt;]&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;.&lt;/span&gt;&lt;a style="font-family: courier new;" href="http://www.google.de/search?q=site%3Adocs.codehaus.org/%20sort" onclick="javascript:urchinTracker ('/outbound/article/www.google.de');"&gt;&lt;span style="color: rgb(102, 51, 153);"&gt;sort&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(102, 204, 102);font-family:courier new;" &gt;()&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;.&lt;/span&gt;&lt;a style="font-family: courier new;" href="http://www.google.de/search?q=site%3Adocs.codehaus.org/%20join" onclick="javascript:urchinTracker ('/outbound/article/www.google.de');"&gt;&lt;span style="color: rgb(102, 51, 153);"&gt;join&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(102, 204, 102);font-family:courier new;" &gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;‘,’&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);font-family:courier new;" &gt;)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;|&lt;span style="color: rgb(0, 0, 127);"&gt; s &lt;/span&gt;| &lt;span style="color: rgb(0, 0, 127);"&gt;&lt;br /&gt;s&lt;/span&gt; := &lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;OrderedCollection&lt;/span&gt; withAll: &lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 127);"&gt;&lt;span style="color: rgb(127, 0, 0);"&gt;1&lt;/span&gt;&lt;/span&gt; to: &lt;span style="color: rgb(0, 0, 127);"&gt;&lt;span style="color: rgb(127, 0, 0);"&gt;100000&lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt; collect: &lt;span style=""&gt;[&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 127);"&gt;each&lt;/span&gt; | &lt;span style="color: rgb(127, 0, 0);"&gt;60&lt;/span&gt; atRandom&lt;span style=""&gt;]&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt; groupBy: &lt;span style=""&gt;[&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 127);"&gt;each&lt;/span&gt; | each&lt;span style=""&gt;]&lt;/span&gt; having: &lt;span style=""&gt;[&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 127);"&gt;each&lt;/span&gt; | &lt;span style="color: rgb(127, 0, 127);"&gt;true&lt;/span&gt;&lt;span style=""&gt;]&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt; asSortedCollection: &lt;span style=""&gt;[&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 127);"&gt;a&lt;/span&gt; :&lt;span style="color: rgb(0, 0, 127);"&gt;b&lt;/span&gt; | b size &lt; style=""&gt;].&lt;br /&gt;&lt;span style="color: rgb(0, 0, 127);"&gt;&lt;span style="color: rgb(127, 0, 0);"&gt;1&lt;/span&gt;&lt;/span&gt; to: &lt;span style="color: rgb(0, 0, 127);"&gt;&lt;span style="color: rgb(127, 0, 0);"&gt;6&lt;/span&gt;&lt;/span&gt; do: &lt;span style=""&gt;[&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 127);"&gt;each&lt;/span&gt; | &lt;span style="color: rgb(0, 0, 255);"&gt;Transcript&lt;/span&gt; show: &lt;span style=""&gt;(&lt;/span&gt;&lt;span style=""&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 127);"&gt;s&lt;/span&gt; at: &lt;span style="color: rgb(0, 0, 127);"&gt;each&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt; at: &lt;span style="color: rgb(0, 0, 127);"&gt;&lt;span style="color: rgb(127, 0, 0);"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;)&lt;/span&gt;; cr&lt;span style=""&gt;]&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:black;"&gt;&lt;br /&gt;E os grandes vencedores até agora são o &lt;/span&gt;&lt;a href="http://devlog.waltercruz.com/"&gt;Walter Cruz&lt;/a&gt; e&lt;span style="color:black;"&gt; o &lt;a href="http://bermonruf.wordpress.com/"&gt;Bernado Rufino&lt;/a&gt;   Perder eles não perdem, só se inventarem a meia linha. O caras fizeram em uma inacreditável linha:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://devlog.waltercruz.com/coding_contest_mega_sena_acumulada"&gt;Versão&lt;/a&gt; em Python do Walter Cruz:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;x = &lt;span style="color:black;"&gt;[&lt;/span&gt;item &lt;span style="color: rgb(255, 119, 0); font-weight: bold;"&gt;for&lt;/span&gt; item &lt;span style="color: rgb(255, 119, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 128, 0);"&gt;sorted&lt;/span&gt;&lt;span style="color:black;"&gt;(&lt;/span&gt;&lt;span style="color:black;"&gt;[&lt;/span&gt;&lt;span style="color:black;"&gt;(&lt;/span&gt;k, &lt;span style="color: rgb(0, 128, 0);"&gt;len&lt;/span&gt;&lt;span style="color:black;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;list&lt;/span&gt;&lt;span style="color:black;"&gt;(&lt;/span&gt;g&lt;span style="color:black;"&gt;)&lt;/span&gt;&lt;span style="color:black;"&gt;)&lt;/span&gt;&lt;span style="color:black;"&gt;)&lt;/span&gt; &lt;span style="color: rgb(255, 119, 0); font-weight: bold;"&gt;for&lt;/span&gt; k, g &lt;span style="color: rgb(255, 119, 0); font-weight: bold;"&gt;in&lt;/span&gt; groupby&lt;span style="color:black;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;sorted&lt;/span&gt;&lt;span style="color:black;"&gt;(&lt;/span&gt;&lt;span style="color:black;"&gt;[&lt;/span&gt;randrange&lt;span style="color:black;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 69, 0);"&gt;1&lt;/span&gt;,&lt;span style="color: rgb(255, 69, 0);"&gt;61&lt;/span&gt;&lt;span style="color:black;"&gt;)&lt;/span&gt; &lt;span style="color: rgb(255, 119, 0); font-weight: bold;"&gt;for&lt;/span&gt; item &lt;span style="color: rgb(255, 119, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(0, 128, 0);"&gt;xrange&lt;/span&gt;&lt;span style="color:black;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 69, 0);"&gt;0&lt;/span&gt;,&lt;span style="color: rgb(255, 69, 0);"&gt;100000&lt;/span&gt;&lt;span style="color:black;"&gt;)&lt;/span&gt;&lt;span style="color:black;"&gt;]&lt;/span&gt;&lt;span style="color:black;"&gt;)&lt;/span&gt;&lt;span style="color:black;"&gt;)&lt;/span&gt;&lt;span style="color:black;"&gt;]&lt;/span&gt;,key=itemgetter&lt;span style="color:black;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 69, 0);"&gt;1&lt;/span&gt;&lt;span style="color:black;"&gt;)&lt;/span&gt;,reverse=&lt;span style="color: rgb(0, 128, 0);"&gt;True&lt;/span&gt;&lt;span style="color:black;"&gt;)&lt;/span&gt;&lt;span style="color:black;"&gt;]&lt;/span&gt;&lt;span style="color:black;"&gt;[&lt;/span&gt;:&lt;span style="color: rgb(255, 69, 0);"&gt;6&lt;/span&gt;&lt;span style="color:black;"&gt;] &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 119, 0); font-weight: bold;"&gt;print&lt;/span&gt;&lt;span style="color:black;"&gt;(&lt;/span&gt;x&lt;span style="color:black;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://bermonruf.wordpress.com/2007/09/01/code-contest-mega-sena-em-1-linha"&gt;Versão&lt;/a&gt; em Ruby do Bernado Rufino:&lt;br /&gt;&lt;pre&gt;Array.new(100000){rand(60)+1}.inject(Hash.new(0))&lt;br /&gt;{|hash, i| hash if hash[i] += 1}.invert.sort.reverse[0..6].each{|t, n| puts "#{n}&lt;br /&gt;repeated #{t} times"}&lt;br /&gt;&lt;/pre&gt;Por problemas no layout( que ja passou da hora de ser revisto) tive que quebrar a linha, mas acreditem é uma só;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-4225923726720275456?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/hTfYTzfzDfM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/4225923726720275456/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=4225923726720275456" title="41 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/4225923726720275456?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/4225923726720275456?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/hTfYTzfzDfM/code-contest-em-tempos-de-mega-sena.html" title="Code Contest: Em tempos de Mega Sena Acumulada" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><thr:total>41</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2007/08/code-contest-em-tempos-de-mega-sena.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cGQXk7fSp7ImA9WxdTEUQ.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-3699470575358293178</id><published>2007-08-13T22:11:00.001-03:00</published><updated>2008-05-07T17:10:20.705-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-07T17:10:20.705-03:00</app:edited><title>IIS: Creating a cookie affinity load balancer with Apache mod_proxy and IIS</title><content type="html">&lt;span style="font-style: italic;"&gt;&lt;br /&gt;by Rodrigo Sol and Sérgio Junqueira&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Apache’s mod_proxy and mod_proxy_balancer are a good choice to create a load balancer for your web application. When we needed to configure it for our IIS ASP 3.0 application we did not find any document to help us. There are many tutorials that explain how to accomplish it using JBoss or Tomcat as back end servers, but not for Microsoft IIS.&lt;br /&gt;&lt;br /&gt;In our architecture we use one server running Apache as load balancer and three back end servers running the IIS application.&lt;br /&gt;&lt;br /&gt;Remember: Using only one server for load balancing means that you have a single point of failure in your system. Another Apache server will be added soon to avoid this problem.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Configuration for the Apache Load Balancer Server:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;1 – Download Apache 2.3&lt;br /&gt;&lt;br /&gt;2 – Turn on the following modules in httpd.conf:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;LoadModule proxy_module modules/mod_proxy.so&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;LoadModule proxy_balancer_module modules/mod_proxy_balancer.so&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;LoadModule proxy_connect_module modules/mod_proxy_connect.so&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;LoadModule proxy_http_module modules/mod_proxy_http.so&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;LoadModule proxy_ftp_module modules/mod_proxy_ftp.so&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;3 – Configure the load balancer in httpd.conf:&lt;br /&gt;&lt;proxy style="font-family: courier new; color: rgb(0, 0, 0);"&gt;&lt;br /&gt;Order deny,allow&lt;br /&gt;Allow from all&lt;br /&gt;&lt;/proxy&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;" &gt;ProxyPreserveHost On&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;" &gt;ProxyPass / balancer://mycluster/ lbmethod=byrequests stickysession=BALANCEID nofailover=ON&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;" &gt;ProxyPassReverse / balancer://mycluster/&lt;/span&gt;&lt;br /&gt;&lt;proxy&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;" &gt;BalancerMember http://your-server-node1/ route=node1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;" &gt;BalancerMember http://your-server-node2/ route=node2&lt;/span&gt;&lt;br /&gt;&lt;/proxy&gt;&lt;br /&gt;4 – Save httpd.conf and start Apache. Tip: Enable debug log mode to see relevant log events about mod_porxy_balancer.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Configuration for each IIS Application node:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;1 – Open IIS Administration Console&lt;br /&gt;&lt;br /&gt;2 – Open your website or virtual directory properties&lt;br /&gt;&lt;br /&gt;3 – Choose HTTP Header tab&lt;br /&gt;&lt;br /&gt;4 – Click into ADD button&lt;br /&gt;&lt;br /&gt;5 – Type “Set-Cookie” in the Custom Header Name.&lt;br /&gt;&lt;br /&gt;6 – Type “BALANCEID=mycluster.node1; path=/;” in the Custom Header Value&lt;br /&gt;&lt;br /&gt;7 – Click OK. Repeat these steps for each node in your cluster. Don’t forget to change the custom header value to the corresponding node id. For node2 use “mycluster.node2”.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;There is an important undocumented point&lt;/span&gt;. In order put cookie affinity to work it is necessary to use a dot before the node id suffix in the cookie value. If you try to create the cookie inside the ASP application using the Response.Cookie method, URLEncode will be automatically called. This will change all dots in the cookie value into the “%2E” string and will cause cookie affinity to fail. This problem does not happen in ASP.net.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-3699470575358293178?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/2qyfc8gMmJg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/3699470575358293178/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=3699470575358293178" title="30 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/3699470575358293178?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/3699470575358293178?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/2qyfc8gMmJg/iis-creating-cookie-affinity-load.html" title="IIS: Creating a cookie affinity load balancer with Apache mod_proxy and IIS" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><thr:total>30</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2007/08/iis-creating-cookie-affinity-load.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MBQHoyfip7ImA9WB5QGU0.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-270020072050270621</id><published>2007-07-06T20:43:00.000-03:00</published><updated>2007-07-08T12:44:11.496-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-07-08T12:44:11.496-03:00</app:edited><title>Don't be Evil</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm2.static.flickr.com/1157/753581805_8a86579d91.jpg?v=0"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 171px; height: 261px;" src="http://farm2.static.flickr.com/1157/753581805_8a86579d91.jpg?v=0" alt="" border="0" /&gt;&lt;/a&gt;Quando uma empresa decide a plataforma que seu sistema vai rodar nem de longe ela imagina o impacto que isso pode ter na vida de um simples usuário.&lt;br /&gt;&lt;br /&gt;Faço um curso de inglês on-line na &lt;a href="http://www.globalenglish.com/"&gt;Global English&lt;/a&gt;, o Internet Explorer é pre-requisito para o site, isso por si só já é uma coisa chata, mas nada que o &lt;a href="https://addons.mozilla.org/firefox/addon/1419"&gt;IE Tab&lt;/a&gt; para o Firefox não resolva.&lt;br /&gt;&lt;br /&gt;O  problema de verdade começou depois que misteriosamente o IE parou de executar audio no formato ASF, sem isso eu não consigo usar o site. Pra resolver tentei de tudo: Upgrade no Windows Media Player, instalação de codecs, remoção de codecs.&lt;br /&gt;&lt;br /&gt;Nada deu certo. Cheguei a conclusão que pra funcionar só  mesmo formatando.&lt;br /&gt;&lt;br /&gt;Olha só, meu PC ta redondinho e eu vou ter que formata-lo só por causa de um maldito curso de inglês que usa ASF.  E isso já tem quase uns dois meses. No final de cada mês ele me mandam um e-mail falando que todo progresso que fizer nessa semana será incluído no relatório mensal de desempenho que vai para o meu gerente. Como assim? Vocês não me deixam entrar!&lt;br /&gt;&lt;br /&gt;Alguns dias atrás me lembrei que existia uma versão descontinuada do IE pro OS X e vi uma luz no fim do túnel. Pura ilusão (veja mensagem na imagem abaixo).&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_cm1soNZSmFg/RpEF8XtCSYI/AAAAAAAAAEM/KuXQ_BPVRNg/s1600-h/global.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp2.blogger.com/_cm1soNZSmFg/RpEF8XtCSYI/AAAAAAAAAEM/KuXQ_BPVRNg/s320/global.jpg" alt="" id="BLOGGER_PHOTO_ID_5084851988991199618" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Não seja mal GlobalEnglish.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-270020072050270621?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/I3YGXC5AGZA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/270020072050270621/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=270020072050270621" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/270020072050270621?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/270020072050270621?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/I3YGXC5AGZA/dont-be-evil.html" title="Don't be Evil" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp2.blogger.com/_cm1soNZSmFg/RpEF8XtCSYI/AAAAAAAAAEM/KuXQ_BPVRNg/s72-c/global.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2007/07/dont-be-evil.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYEQX4-fSp7ImA9WB5REUQ.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-6014713088526799219</id><published>2007-06-18T16:19:00.000-03:00</published><updated>2007-06-18T17:05:00.055-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-06-18T17:05:00.055-03:00</app:edited><title>A Praga do DRM</title><content type="html">&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.flickr.com/photos/fennecfoxen/83657080/"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 414px; height: 136px;" src="http://farm1.static.flickr.com/42/83657080_1f6efc9936.jpg?v=0" alt="" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;Decidi que o sistema operacional do novo notebook do meu pai seria o Vista.&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="" lang="PT-BR"&gt;&lt;br /&gt;Pronto para fazer a instalação, entrei no site MSDN Academics e imprimi uma minha licença do Vista Business que tenho direito por causa do convênio da MS com a minha &lt;/span&gt;&lt;a href="http://pucminas.br/"&gt;&lt;span style="" lang="PT-BR"&gt;faculdade&lt;/span&gt;&lt;/a&gt;&lt;span style="" lang="PT-BR"&gt;.&lt;br /&gt;Tudo certo, hora de começar, DVD no drive e... Como é que eu tinha esquecido do DRM.&lt;br /&gt;&lt;br /&gt;O Vista tem duas linhas de DRM para cada linha de código do Kernel.&lt;br /&gt;Não podia fazer uma sacanagem dessas com meu Pai. Abortei na hora e instalei o XP.&lt;/span&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Como pode uma indústria como a de mídia não perceber que está andando na contramão dos desejos dos seus usuários?&lt;/p&gt;&lt;p class="MsoNormal"&gt;O que leva a Microsoft (que tem dinheiro e poder pra bancar)  a ferrar com os usuários em função desse caras que não evoluíram seus modelos de negócios e agora querem que agente fique com um pé no Séc. XVII para eles não falirem. No mesmo dia me deparei com &lt;a href="http://www.brainstorm9.com.br/archives/2007/06/citroen_virgin_mega_le_clap.html"&gt;isso&lt;/a&gt;.&lt;/p&gt;A partir de hoje não consumo mais nada que tiver DRM. Seja uma musica do iTunes ou um player HD-DVD.&lt;br /&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  lang="PT-BR" &gt; &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-6014713088526799219?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/i04KIMdfQoc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/6014713088526799219/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=6014713088526799219" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/6014713088526799219?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/6014713088526799219?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/i04KIMdfQoc/praga-do-drm.html" title="A Praga do DRM" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2007/06/praga-do-drm.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUHQ388eyp7ImA9WxdSFUU.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-4303900760322775705</id><published>2007-04-15T21:24:00.001-03:00</published><updated>2008-05-23T21:17:12.173-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-23T21:17:12.173-03:00</app:edited><title>FISL 8.0 - Algumas Considerações</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_cm1soNZSmFg/RiLDi2w9A4I/AAAAAAAAADg/P14MgtO2VvM/s1600-h/FISL+8.0+-+Porto+Alegre+005.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_cm1soNZSmFg/RiLDi2w9A4I/AAAAAAAAADg/P14MgtO2VvM/s320/FISL+8.0+-+Porto+Alegre+005.jpg" alt="" id="BLOGGER_PHOTO_ID_5053816735446926210" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Acabo de chegar da 8ª edição do Fórum Internacional do Software Livre que ocorreu entre os dias 12 e 14 de Abril em Porto Alegre, trago na bagagem um saldo positivo do evento, mas nem tudo são flores! Segue alguns comentários e ponderações.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1 - Dinheiro Também é Importante&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Quando você participa de eventos de algum grande player de TI (Sun, IBM, Microsoft,...) a sensação que fica que só o dinheiro importa, que ali estão vendedores querendo empurrar vendas garganta abaixo dos técnicos. No FISL é diferente, parece que o dinheiro não é importante, grandes projetos, excetos os patrocinados pelo governo parecem não ter vez com SL.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2 - Um sentimento: Precisa de Ajuda? Seu projeto é grande? Esqueça!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Foi isso que eu senti conversando com o pessoal das empresas menores que estavam lá. Nenhuma me passou segurança que me levasse a pensar: "Legal esses caras! Se eu precisar de apoio já sei pra onde correr".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3 - Aquele que "Você-Sabe-Quem"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Isso eu achei engraçado, ninguém pronunciava o nome de nada relacionado com a Microsoft, era "Aquele Navegador" ou "Aquele Sistema Operacional", mas quando alguém chegava com a imponente maçã, todos ficavam de queixo caído e não se importando com o fato do OS/X ser proprietário. Outra coisa engraçada era a babação em cima do Google, apesar de contribuírem bastante com patchs para o Kernel, os caras protegem seus segredos a sete chaves e  mesmo assim são tratados como verdadeiros heróis, é no mínimo incoerente essa relação. Teve também um palestrante que estava com vergonha do note que estava rodando Windows e resolveu colocar como wallpaper um monte de Tuxs, ele se desculpou várias vezes por estar usando Windows, disse que o note era emprestado, o único problema é que todos os screeshots da apresentação eram de Windows. Será que ele pediu o note emprestado também para fazer a apresentação?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4 - O Governo está fazendo bom uso do SL.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Bacana demais! O pessoal do governo em diferentes órgãos estão mandando ver em diferentes tipos de projetos e já colhem grandes resultados. Cito a Caixa(Sistema Lotérico) e o pessoal do Ministério do Desenvolvimento Social e sua API de geoprocessamento dentre os muitos exemplos de sucesso.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5 - A comunidade Java esta um passo a frente&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Deu pra sentir isso, me pareceu que a comunidade Java está muito mais madura que a comunidade de software livre, claro que minha observação é baseada no universo de desenvolvimento e dos desenvolvedores. Seria melhor que eu tivesse dito que a comunidade de Java está mais madura que a comunidade de desenvolvedores de softwares livre.  Quando digo "comunidade de desenvolvedores de softwares livres" não me refiro aos caras que criam softwares base, mas sim aqueles que utilizam esses como plataforma de desenvolvimento. Não entendeu ainda? Comparando um desenvolvedor Java com um desenvolvedor Python comum, o cara de Java parece estar mais preocupado com coisas do tipo escalabilidade, profilers, e testes que os de Python, ou talvez seja porque eles não precisem disso :-).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6 - O clima da feira é ótimo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Não tem como um lugar cheio de geeks reunido não ser bacana. Um monte de gente esparramado nos sofás com os seus notes implorando o servidor DHCP por IP na WLAN. Caras do Uruguai com o PC mais criativo que vi nesses últimos anos fazem valer o Chico Science e sua composição.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;7 - Palestras Boas, Ótimas e não tão boas assim&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Algumas que eu achava que seriam boas, não foram, umas que decidir assistir por acaso me surpreenderam. Outras muitas foram canceladas em cima da hora com o pessoal já dentro da sala (a de Rails e a de MySql). O tempo era muito curto quando a palestra era boa e interminável quando a palestra estava ruim.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;8 - Aleatórias&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Na sessão que discutia a abertura do código do Java( que alias, foi uma das coisas que mais gostei, não pela qualidade técnica, mas pelo formato) O Bruno Souza perguntou um carinha se agora que Java é livre se ele se sentia mais interessado em aprender Java, ele respondeu algo assim: "Claro! Agora que Java é livre tenho mais um incentivo pra aprender Java. Atualmente trabalho com VB... "&lt;br /&gt;&lt;br /&gt;OLPC Rules&lt;br /&gt;&lt;br /&gt;A Sun me pareceu à empresa grande mais empenhada em apoiar o SL e também o evento. Diferente da IBM que contratou umas atendentes pra ficar fazendo cadastros no DevelopWorks, no estande da Sun um monte de gente bacana, atendia pacientemente os pedidos de demonstração e de camisetas!&lt;br /&gt;&lt;br /&gt;Desktops linux estão cada vez mais bonitos é fáceis de usar!&lt;br /&gt;&lt;br /&gt;Essas considerações, se referem as minhas impressões sobre os 3 dias que passei no evento e limita-se principalmente no que diz respeito a "Desenvolvimento e Banco de Dados", talvez  se tivesse visto o evento com os olhos de um SysAdmin ou mesmo através de Cases ou Filosofia essas considerações seriam diferentes.&lt;br /&gt;&lt;br /&gt;Conclusão: Desenvolver em cima de SL Vale a Pena? Sim e muito! Sempre achei isso e continuo achando. O software livre é bom, apenas comunidade que desenvolve em cima de SL é que precisa amadurecer um pouquinho. Quem sabe no FISL 9.0?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/rodrigosol/FISL80PortoAlegreRSAbril2007"&gt;Algumas fotos que tirei estão aqui.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-4303900760322775705?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/f7X23Qsm_Ww" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/4303900760322775705/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=4303900760322775705" title="2 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/4303900760322775705?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/4303900760322775705?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/f7X23Qsm_Ww/fisl-80-algumas-consideraes.html" title="FISL 8.0 - Algumas Considerações" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp0.blogger.com/_cm1soNZSmFg/RiLDi2w9A4I/AAAAAAAAADg/P14MgtO2VvM/s72-c/FISL+8.0+-+Porto+Alegre+005.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2007/04/fisl-80-algumas-consideraes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04CSHk-eCp7ImA9WBBXGEk.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-116484944111862138</id><published>2006-11-29T23:14:00.000-02:00</published><updated>2006-11-29T23:26:09.750-02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2006-11-29T23:26:09.750-02:00</app:edited><title>Nokia E62 - Review</title><content type="html">&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Nokia e62&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;Comprei um SmartPhone da Nokia modelo E62 há pouco e tempo e compartilho aqui algumas impressões que tive tanto positivas quanto negativas. Espero que gostem.&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Sistema Operacional&lt;/b&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.mobile-review.com/phonemodels/nokia/image/e61.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 171px; height: 208px;" src="http://www.mobile-review.com/phonemodels/nokia/image/e61.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;     &lt;p class="MsoNormal"&gt;O E62 traz a versão S60 3rd Edition do Symbian 9.1. O pessoal seguiu na risca as regrinhas do &lt;span style="" lang="EN-US"&gt;Nielsen&lt;/span&gt;, a interface é altamente intuitiva e nem por isso deixa usuários avançados frustrados. Ela te permite um alto nível de customização e em poucos minutos o telefone fica a sua cara. Você pode, por exemplo, personalizar os ícones que ficam disponíveis na tela principal que é chamada de espera ativa. A primeira coisa que eu fiz foi colocar o ícone do GMail lá. Além disso, você pode deixar na tela principal as ultimas mensagens que você recebeu e os compromissos do dia. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;O Symbian é um sistema operacional multi-tarefa real-time, ou seja, você pode executar vários aplicativos concomitantemente e alternar&lt;br /&gt;entre eles de forma semelhante ao alt-tab do Windows. E é ótimo poder dar literalmente um ctrl+c/ctrl+v de um aplicativo para outro. &lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;b style=""&gt;Tela&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;A tela é de 320x240 pixels com profundidade de cores de 24 bits. Inicialmente eu pensei em usá-lo somente durante a semana continuando a utilizar o meu t610 nos finais de semana, mas depois de acostumar com essa tela e duro voltar utilizar as telinhas dos telefones normais. &lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;b style=""&gt;Teclado&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt; &lt;/span&gt;O teclado do E62 é do tipo QWERT (esse nome é devido à seqüência de letras inicias dos teclados convencionais, repare só) e num primeiro momento eu senti certo desconforto para utilizar o teclado numérico que foi rapidamente superado quando eu descobri que bastava apertar duas vezes a tal tecla blue function para habilitar de vez o modo numérico. Outra coisa que achei legal é o teclado possuir teclas próprias para os caracteres “ç”,”~” e “´”.&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;Aplicativos&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;O pacotão que vem de fabrica é mais do que suficiente para a maioria dos usuários, inclui aplicativos para visualizar e editar arquivos do Office (Word, Excel e PowerPoint), Adobe Acrobat para ler PDFs, Real Player e um outro carinha chamado Music Player que juntos suportam os mais variáveis formatos de áudio e vídeo ( mp3, mpg4, rm, acc, 3gp e etc...) &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Para instalar novos aplicativos é moleza, bastam dois cliques em qualquer arquivo sis ou jar no PC para o software na Nokia entrar na jogada e instalar no telefone. Já instalei o Putty para fazer conexões SSH e Telnel e um cliente do VNC para controlar minha maquina remotamente. Todos rodaram sem problemas. Também instalei uns emuladores de Nes, SNes e de GameBoy, mas removi porque se tratava de trials e também porque o som ficou travando. Ah ele também suporta MIDP 2.0.&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Conectividade&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;O E62 se comunica através de bluetooth, infrared ou cabo mini USB. Muitas pessoas reclamaram que ele não da suporte a WI-FI como no E61. Eu ainda não senti falta já que não tenho rede wireless em casa ou no trabalho, mas imagino que eu ainda vou sentir. Outra coisa é que os modelos vendidos pela Claro vêm com um recurso chamado Passagem de IP desabilitado, esse recurso te permitiria pegar um IP da sua rede através de bluetooth ou da conexão via cabo. Acredito que esse “inconveniente” pode ser resolvido através de atualização no firmware. &lt;span style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Nem tudo são flores: Fone de Ouvido, Despertador e uma Camerazinha não faz mal a ninguém&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;O despertador incorporado ao relógio é medíocre! Você não pode escolher os dias da semana que você quer que ele desperte, além disso, não é possível configurar o alarme para que ele fique recorrente. Outro problema é o fone de ouvido. Ele veio com um fone mono com microfone integrado que é útil para fazer ligações, mas pra escutar MP3 é um desastre só, ai você pode pensar: É só comprar um foninho stereo e colocar no lugar, né não? É sim, porem o modelo que ele suporta é um tal de HS-47 que eu não ainda consegui achar nem por reza brava nas lojas aqui do Brasil. Algumas pessoas estão usando o fone do Treo nele com sucesso, mas eu não arrisco comprar um sem ver funcionando antes. Finalmente ele não tem câmera, a justificativa e que ele é voltado para o mercado corporativo (o “E” do E62 significa Enterprise) e muitas empresas proíbem a utilização de dispositivos com câmeras. A desculpa é boa, mas convenhamos não faria mal uma camerazinha qualquer. &lt;/p&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;b style=""&gt;Conclusão&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;  &lt;p class="MsoNormal"&gt;Exceto por esses pequenos detalhes do fone e do despertador só tive surpresas agradáveis. Além dos recursos pontuados acima ele ainda oferece e-mail (pop3/imap/exchange/push), slot mini SD e não chega a ser nenhum trambolhão podendo inclusive ser carregado no bolso. Aproveite que ele está no mercado com um ótimo subsidio e compre um, você vai gostar. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-116484944111862138?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/7n2au7n1A2s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/116484944111862138/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=116484944111862138" title="24 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/116484944111862138?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/116484944111862138?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/7n2au7n1A2s/nokia-e62-review.html" title="Nokia E62 - Review" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><thr:total>24</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2006/11/nokia-e62-review.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkECR3c6fip7ImA9WBNbFEg.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-115845066690716471</id><published>2006-09-16T20:40:00.000-03:00</published><updated>2006-09-16T20:51:06.916-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2006-09-16T20:51:06.916-03:00</app:edited><title>Shoes procura Ninja</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/en/0/07/Ashida_Kim_Photo.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 117px; height: 111px;" src="http://upload.wikimedia.org/wikipedia/en/0/07/Ashida_Kim_Photo.gif" alt="" border="0" /&gt;&lt;/a&gt; &lt;a href="http://fragmental.com.br/blog/?p=259"&gt;http://fragmental.com.br/blog/?p=259&lt;/a&gt;&lt;br /&gt; &lt;p class="MsoNormal"&gt;Será que ele ficaria decepcionado se soubesse que o último livro que li foi &lt;span style="font-weight: bold;"&gt;Linguagem de Programação Algol - 60&lt;/span&gt; ?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-115845066690716471?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/fv5wpyVNdzY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/115845066690716471/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=115845066690716471" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/115845066690716471?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/115845066690716471?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/fv5wpyVNdzY/shoes-procura-ninja.html" title="Shoes procura Ninja" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2006/09/shoes-procura-ninja.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEMRXY5fip7ImA9WBJWFUg.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-114555468477994343</id><published>2006-04-20T13:56:00.000-03:00</published><updated>2006-04-20T14:38:04.826-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2006-04-20T14:38:04.826-03:00</app:edited><title>Fim do Mundo</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2978/2003/1600/catastrophic.jpg"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/2978/2003/320/catastrophic.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ocorreu no SQL Navigator por que o PATH tinha subido no telhado. Intiuitivo não?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-114555468477994343?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/n2tMReZ4L0o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/114555468477994343/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=114555468477994343" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/114555468477994343?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/114555468477994343?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/n2tMReZ4L0o/fim-do-mundo.html" title="Fim do Mundo" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2006/04/fim-do-mundo.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcGQHgzeCp7ImA9WBJXFEw.&quot;"><id>tag:blogger.com,1999:blog-20104457.post-114441802166199121</id><published>2006-04-07T10:52:00.000-03:00</published><updated>2006-04-07T10:53:41.680-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2006-04-07T10:53:41.680-03:00</app:edited><title>GPF</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://wiredblogs.tripod.com/cultofmac/bluscreenimac.jpg"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://wiredblogs.tripod.com/cultofmac/bluscreenimac.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20104457-114441802166199121?l=macacochefe.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/macacochefe/~4/Rhs3TyR1Vlk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://macacochefe.blogspot.com/feeds/114441802166199121/comments/default" title="Postar comentários" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=20104457&amp;postID=114441802166199121" title="0 Comentários" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/114441802166199121?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/20104457/posts/default/114441802166199121?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/macacochefe/~3/Rhs3TyR1Vlk/gpf.html" title="GPF" /><author><name>RodrigoSol</name><uri>http://www.blogger.com/profile/13745135664356318750</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://bp2.blogger.com/_cm1soNZSmFg/R2PhLbM0yTI/AAAAAAAAAto/SJzNMmrgvFk/S220/Photo+40.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://macacochefe.blogspot.com/2006/04/gpf.html</feedburner:origLink></entry></feed>

