<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title>lornlab.</title>
  <link href="http://lornlab.org/atom.xml" rel="self"/>
  <link href="http://lornlab.org/"/>
  <updated>2011-12-06T15:55:13-02:00</updated>
  <id>http://lornlab.org/</id>
  <author>
    <name>Lindolfo &#8216;Lorn&#8217; Rodrigues</name>
    
  </author>

  
  <entry>
    <title>A Busca Pelo Deploy Contínuo - Parte 3</title>
    <link href="http://lornlab.org/blog/2011/12/03/a-busca-pelo-deploy-continuo-parte-3/"/>
    <updated>2011-12-03T10:03:00-02:00</updated>
    <id>http://lornlab.org/blog/2011/12/03/a-busca-pelo-deploy-continuo-parte-3</id>
    <content type="html">&lt;div id=&quot;litlebox&quot;&gt;
Você está lendo a Parte 3 sobre &amp;#8220;A Busca pelo deploy contínuo&amp;#8221; eu recomendo você a começar pela &lt;a href=&quot;http://lornlab.org/blog/2011/12/02/a-busca-pelo-deploy-continuo-parte-1/&quot;&gt;Parte 1&lt;/a&gt; e depois ler a &lt;a href=&quot;http://lornlab.org/blog/2011/12/02/a-busca-pelo-deploy-continuo-parte-2/&quot;&gt;Parte 2&lt;/a&gt; se você já o fez, continue ;)
&lt;/div&gt;


&lt;p&gt;Agora um exemplo de arquitetura para facilitar o uso do deploy continuo usando um &lt;a href=&quot;http://en.wikipedia.org/wiki/Load_balancing_(computing&quot;&gt;Load Balancer&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Você não precisa de applicances milionários para fazer isso &lt;a href=&quot;http://www.anchor.com.au/blog/2009/10/load-balancing-at-github-why-ldirectord/&quot;&gt;o github&lt;/a&gt;, serve 2500 conexões TCP por &lt;strong&gt;SEGUNDO&lt;/strong&gt; usando o &lt;a href=&quot;http://horms.net/projects/ldirectord/&quot;&gt;ldirectord&lt;/a&gt; em uma máquina Xen com 128mb.&lt;/p&gt;

&lt;p&gt;Com um Load Balance, você consegue testar funcionalidades novas no site para uma pequena porção dos usuários do site e usar os gráficos ( que você já tem lógico ) para ver se ela é boa ou não.&lt;/p&gt;

&lt;p&gt;Como fazer isso? faça o deploy para apenas 1 das &amp;#8216;n&amp;#8217; máquinas que você tem atrás do Load Balancer e redirecione, 5% ~ 10% das suas conexões dos seus usuários para essa máquina, o resto os gráficos que você preparou da sua aplicação irão te dizer ;)&lt;/p&gt;

&lt;p&gt;Falando um pouco mais de arquitetura, e especificamente de Perl, eu gosto bastante de usar o Nginx + Starman a comunicação é feita via Unix Socket o Starman foi baseado no Unicorn do Ruby, ele funciona muito bem e&amp;#8230;&lt;/p&gt;

&lt;iframe width=&quot;420&quot; height=&quot;315&quot; src=&quot;http://www.youtube.com/embed/dFUlAQZB9Ng&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;


&lt;p&gt;&amp;#8220;It&amp;#8217;s a unix system I known this!&amp;#8221; arquiteturas unix, forks, sockets e afins funcionam muito bem :)&lt;/p&gt;

&lt;p&gt;O seu deploy consistiria em copiar os arquivos novos e mandar um sinal de reset para o pid do Starman:&lt;/p&gt;

&lt;figure class=&#8217;code&#8217;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre class=&quot;line-numbers&quot;&gt;&lt;span class=&#8217;line-number&#8217;&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&#8217;code&#8217;&gt;&lt;pre&gt;&lt;code class=&#8221;&gt;&lt;span class=&#8217;line&#8217;&gt;$ kill -s USR2 1337&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;Ele vai recarregar o código, e vai reiniciar todos os seus fork assim que eles forem ficando sem conexões ou seja para seus usuários a percepção de downtime será &lt;strong&gt;ZERO!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Abaixo uma conf de exemplo para se usar no Nginx para se conectar a um socket gerado pelo Starman:&lt;/p&gt;

&lt;div&gt;&lt;script src=&#8217;https://gist.github.com/1126172.js?file=&#8217;&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;upstream myapp_starman {
  server unix:/tmp/starman.sock fail_timeout=0;
}

server {
  listen 80;

  client_max_body_size 1024m;
  client_body_buffer_size 8k;
  proxy_read_timeout 300;

  ##
  # basic
  ##
  server_name www.localhost.com;
  root /home/user/MyApp/root;
  keepalive_timeout 0;

  ##
  # logging
  ##
  access_log /var/log/nginx/myapp.access combined;
  error_log /var/log/nginx/myapp.error;
  
  location /static {
        root  /home/user/MyApp/root/;
        autoindex on;
  }

  ##
  # proxy
  ##
  location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_buffering off;
    if (!-f $request_filename) {
      proxy_pass http://myapp_starman;
    }
  }
}&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;p&gt;Bom, basicamente é isso se tiver alguma duvida pergunte nos comentários :)&lt;/p&gt;

&lt;h2&gt;Bibliografia&lt;/h2&gt;

&lt;p&gt;Alguns slides foram copiados dessa palestra da etsy:&lt;/p&gt;

&lt;div style=&quot;width:425px&quot; id=&quot;__ss_8727786&quot;&gt; &lt;strong style=&quot;display:block;margin:12px 0 4px&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/OReillyOSCON/put-a-button-on-it-removing-barriers-to-going-fast&quot; title=&quot;Put a Button on It: Removing Barriers to Going Fast&quot; target=&quot;_blank&quot;&gt;Put a Button on It: Removing Barriers to Going Fast&lt;/a&gt;&lt;/strong&gt; &lt;iframe src=&quot;http://www.slideshare.net/slideshow/embed_code/8727786&quot; width=&quot;425&quot; height=&quot;355&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot;&gt;&lt;/iframe&gt; &lt;div style=&quot;padding:5px 0 12px&quot;&gt; View more presentations from &lt;a href=&quot;http://www.slideshare.net/OReillyOSCON&quot; target=&quot;_blank&quot;&gt;OSCON &lt;/a&gt; &lt;/div&gt; &lt;/div&gt;


&lt;p&gt;E outros foram copiados dessa palestra da AOE Media&lt;/p&gt;

&lt;div style=&quot;width:425px&quot; id=&quot;__ss_5345889&quot;&gt; &lt;strong style=&quot;display:block;margin:12px 0 4px&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/typo3media/continuous-deployment-5345889&quot; title=&quot;Continuous deployment&quot; target=&quot;_blank&quot;&gt;Continuous deployment&lt;/a&gt;&lt;/strong&gt; &lt;iframe src=&quot;http://www.slideshare.net/slideshow/embed_code/5345889&quot; width=&quot;425&quot; height=&quot;355&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot;&gt;&lt;/iframe&gt; &lt;div style=&quot;padding:5px 0 12px&quot;&gt; View more &lt;a href=&quot;http://www.slideshare.net/&quot; target=&quot;_blank&quot;&gt;presentations&lt;/a&gt; from &lt;a href=&quot;http://www.slideshare.net/typo3media&quot; target=&quot;_blank&quot;&gt;Daniel&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;


&lt;p&gt;Obrigado :) qualquer dúvida estou a disposição nos comentários.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>A Busca Pelo Deploy Contínuo - Parte 2</title>
    <link href="http://lornlab.org/blog/2011/12/02/a-busca-pelo-deploy-continuo-parte-2/"/>
    <updated>2011-12-02T11:23:00-02:00</updated>
    <id>http://lornlab.org/blog/2011/12/02/a-busca-pelo-deploy-continuo-parte-2</id>
    <content type="html">&lt;div id=&quot;litlebox&quot;&gt;
Você está lendo a Parte 2 sobre &amp;#8220;A Busca pelo deploy contínuo&amp;#8221; eu recomendo você a começar pela &lt;a href=&quot;http://lornlab.org/blog/2011/12/02/a-busca-pelo-deploy-continuo-parte-1/&quot;&gt;Parte 1&lt;/a&gt; mas se já leu as duas partes, leia a &lt;a href=&quot;http://lornlab.org/blog/2011/12/03/a-busca-pelo-deploy-continuo-parte-3/&quot;&gt;Parte 3&lt;/a&gt;.
&lt;/div&gt;


&lt;p&gt;Agora que você já está convencido que precisa disso, ou não, vou começar a falar de algumas ferramentas/técnicas que você pode usar para te ajudar no processo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;SCM - Software Configuration Management&lt;/p&gt;

&lt;p&gt;Também conhecido como VCS ( Version Control System ), você precisa disso, se você não tem &lt;strong&gt;há algo muito errado&lt;/strong&gt; e se você está usando Subversion, isso não é tão ruim, mas comece a usar git a partir de hoje, sério.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Testes&lt;/p&gt;

&lt;p&gt;Se você acha que teste é besteira, então deploy continuo é besteira para você também. É impossível ter um deploy contínuo confiável sem testes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Continuos Integration Software&lt;/p&gt;

&lt;p&gt;Esse tipo de software tem um papel simples, porem eficaz, ele fica fazendo &amp;#8220;pooling&amp;#8221; no seu SCM, a cada commit seu ele vai rodar o seu processo de &amp;#8220;build&amp;#8221; para ver se ele continua funcionando depois do código que você acabou de comitar, um processo de build pode conter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gerar pacotes&lt;/li&gt;
&lt;li&gt;Verificar códigos/dependências&lt;/li&gt;
&lt;li&gt;Testes Unitários&lt;/li&gt;
&lt;li&gt;Testes de Integração&lt;/li&gt;
&lt;li&gt;Testes de Segurança&lt;/li&gt;
&lt;li&gt;Testes funcionais&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;E caso algum teste tenha parado de funcionar, ele vai te enviar um email avisando que o build está quebrado.&lt;/p&gt;

&lt;p&gt;Eu uso e gosto bastante do &lt;a href=&quot;http://jenkins-ci.org/&quot;&gt;Jenkins&lt;/a&gt;, conhecido antes como Hudson. Mas há muitos outros por ai, você só precisa escolher um.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Script de Deploy/Rollback para você começar, depois de ter todas essas coisas acima, você já pode a pensar em automatizar seu processo de deploy/rollback.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;./deploy.sh    # faz o deploy&lt;/li&gt;
&lt;li&gt;./rollback.sh  # faz o rollback do ultimo deploy&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Simples assim, mas tem que ser um script só que faz todo o trabalho, copiar arquivos, reinciar webserver etc&lt;/p&gt;

&lt;p&gt;Na Etsy quando o script ficou avançado eles evoluiram para um software web, que inclusive é opensource mais detalhes aqui: &lt;a href=&quot;http://codeascraft.etsy.com/2010/05/20/quantum-of-deployment/&quot;&gt;Deploynator Etsy&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Puppet/Chef - eu não sei qual o nome dessa categoria de software, o que você faz com eles é escrever &amp;#8220;receitas&amp;#8221; de máquinas, imagine que a empresa está crescendo e você precisa montar 10 novos webservers que incluem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instalar SO&lt;/li&gt;
&lt;li&gt;Configurar SO&lt;/li&gt;
&lt;li&gt;Configurar Firewall&lt;/li&gt;
&lt;li&gt;Configurar Webserver&lt;/li&gt;
&lt;li&gt;Configurar seu sistema&lt;/li&gt;
&lt;li&gt;Colocar ela no pool de webservers&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Tirando a instalação do Linux, todo o resto você pode automatizar com puppet ou chef você cria receitas nele dizendo como ele vai configurar seu Webserver, seu sistema e depois é só executar essa receita na máquina ele vai instalar o pacote e fazer todo o trabalho pra você.&lt;/p&gt;

&lt;p&gt;E você vai precisar fazer isso UMA vez para &amp;#8216;n&amp;#8217; maquinas, e quando precisar mudar algo e só alterar na receita ele mantém as maquinas sincronizadas com sua receitas, nada de sair editando o mesmo arquivo em várias máquinas.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Monitoramento&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Sistema Base/Nagios&lt;/p&gt;

&lt;p&gt;Você precisa monitorar o estado do seu sistema, vê se o Apache tá de pé se o disco tá cheio isso é bem comum, no minímo você já ouviu falar.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Seu negócio&lt;/p&gt;

&lt;p&gt;Você precisa também monitorar o seu negócio, você precisa saber que horas que acontecem mais vendas e precisa saber agora, nada de rodar aquela query no banco de dados &lt;strong&gt;faça gráfico de toda informação que você puder monitorar&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Além desses gráficos ajudar o pessoal de Marketing/Vendas vai te ajudar quando entrar alguma funcionalidade nova no site, porque sempre tem um espertão na empresa, e muitas vezes esse espertão é o dono, que vai dizer:&lt;/p&gt;

&lt;p&gt;&lt;blockquote&gt;&lt;p&gt;Acho que depois que você colocou aquela funcionalidade no site, o site está vendendo menos, estou com esse pressentimento.&lt;br/&gt;     - Espertão&lt;/p&gt;&lt;/blockquote&gt;&lt;/p&gt;

&lt;p&gt;A Etsy liberou recentemente a ferramente que eles fizeram para fazer gráficos, vale a pena dar uma olhada &lt;a href=&quot;http://codeascraft.etsy.com/2011/02/15/measure-anything-measure-everything/&quot;&gt;Measure Anything, Measure Everything&lt;/a&gt; eles contam bastante expêriencia deles com geração de gráfico para tudo, até para a quantidade de café na cozinha!&lt;/p&gt;

&lt;p&gt;Então tenha gráficos de tudo e mostre para ele no melhor sentido &lt;a href=&quot;https://twitter.com/opachefe&quot;&gt;Opa chefe! tranquilo chefe!&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;Continua ..&lt;/h2&gt;

&lt;div id=&quot;litlebox&quot;&gt;
Você está lendo a Parte 2 sobre &amp;#8220;A Busca pelo deploy contínuo&amp;#8221; eu recomendo você a começar pela &lt;a href=&quot;http://lornlab.org/blog/2011/12/02/a-busca-pelo-deploy-continuo-parte-1/&quot;&gt;Parte 1&lt;/a&gt; mas se já leu as duas partes, leia a &lt;a href=&quot;http://lornlab.org/blog/2011/12/03/a-busca-pelo-deploy-continuo-parte-3/&quot;&gt;Parte 3&lt;/a&gt;.
&lt;/div&gt;

</content>
  </entry>
  
  <entry>
    <title>A Busca Pelo Deploy Contínuo - Parte 1</title>
    <link href="http://lornlab.org/blog/2011/12/02/a-busca-pelo-deploy-continuo-parte-1/"/>
    <updated>2011-12-02T11:23:00-02:00</updated>
    <id>http://lornlab.org/blog/2011/12/02/a-busca-pelo-deploy-continuo-parte-1</id>
    <content type="html">&lt;div id=&quot;litlebox&quot;&gt;
Você está lendo a Parte 1 sobre &amp;#8220;A Busca pelo deploy contínuo&amp;#8221; esse post tem mais duas continuações: &lt;a href=&quot;http://lornlab.org/blog/2011/12/02/a-busca-pelo-deploy-continuo-parte-2/&quot;&gt;Parte 2&lt;/a&gt; e &lt;a href=&quot;http://lornlab.org/blog/2011/12/03/a-busca-pelo-deploy-continuo-parte-3/&quot;&gt;Parte 3.&lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;No dia 05/11 apresentei  no &lt;a href=&quot;http://www.yapcbrasil.org.br/2011/&quot;&gt;YAPC::Brasil&lt;/a&gt; uma palestra com o nome
&amp;#8220;Em busca do deploy continuo&amp;#8221; nesse post vou tentar descrever sobre tudo o que eu falei.&lt;/p&gt;

&lt;div style=&quot;width:425px&quot; id=&quot;__ss_10173611&quot;&gt; &lt;strong style=&quot;display:block;margin:12px 0 4px&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/lornlab/a-busca-pelo-deploy-continuo&quot; title=&quot;A busca pelo deploy continuo&quot; target=&quot;_blank&quot;&gt;A busca pelo deploy continuo&lt;/a&gt;&lt;/strong&gt; &lt;iframe src=&quot;http://www.slideshare.net/slideshow/embed_code/10173611&quot; width=&quot;425&quot; height=&quot;355&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot;&gt;&lt;/iframe&gt; &lt;div style=&quot;padding:5px 0 12px&quot;&gt; View more &lt;a href=&quot;http://www.slideshare.net/&quot; target=&quot;_blank&quot;&gt;presentations&lt;/a&gt; from &lt;a href=&quot;http://www.slideshare.net/lornlab&quot; target=&quot;_blank&quot;&gt;Lindolfo Rodrigues Oliveira Neto&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;


&lt;h2&gt;Como começar?&lt;/h2&gt;

&lt;p&gt;Infelizmente o principal problema do &amp;#8220;Deploy Continuo&amp;#8221; não é técnico e sim cultural, e mudança de cultura é muito mais difícil que mudança de Banco de Dados ou de Linguagem de Programação é enraizado nas fundações da empresa, esses são alguns exemplos culturais:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Falta de confiança&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Processos complicado/complexos para tudo&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;blockquote&gt;&lt;p&gt;Processo é uma reação à estupidez incorporada antes&lt;br/&gt; - Clay Shirky&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt; Em português claro, esse seria o famoso &amp;#8220;vai que&amp;#8230;&amp;#8221; :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vai que alguém faz uma alteração errada e o site fica fora do ar&lt;/li&gt;
&lt;li&gt;Vai que alguém cria uma tabela nova e o site fica fora do ar.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Ainda bem que esse pessoal de processo não conhece o &lt;a href=&quot;http://pt.wikipedia.org/wiki/Efeito_borboleta&quot;&gt;Efeito Borboleta&lt;/a&gt; se não eles iam criar coisas bem piores.&lt;/p&gt;

&lt;p&gt;Em Startups esse tipo de coisa não acontece porque, geralmente, se tem pouco recurso e é necessário já pensar em Deploy/Integração continua desde o início, pois você precisa entregar valor para seu usuário para continuar vivo, você não tem uma receita fixa.&lt;/p&gt;

&lt;p&gt;Então, se você for esperar a próxima madrugada para subir a funcionalidade que já está pronta, , fica dificil pivotear talvez essa funcionalidade não seja bem vista por seus usuários, eles entenderam errado, então é necessário não só coloca-la rápida em produção como tirar rápido também :)&lt;/p&gt;

&lt;p&gt;Imagine demorar 48h para concluir esse fluxo todo, você pode perder usuários preciosos.&lt;/p&gt;

&lt;p&gt;O &lt;a href=&quot;http://github.com&quot;&gt;github.com&lt;/a&gt; que é era uma startup e agora, mesmo depois de passar dos 40 funcionários, continua com as mesmas idéias de desenvolvimento baseado em software livre e deploy contínuo.&lt;/p&gt;

&lt;p&gt;Caso você queira conhecer como funciona o processo de desenvolvimento/trabalho no github, eu recomendo a lida desse &lt;a href=&quot;http://zachholman.com/posts/how-github-works/&quot;&gt;post do Zach Holman&lt;/a&gt; que é um dos funcionário mais antigos por lá e caso você não queira conhecer :)&lt;/p&gt;

&lt;p&gt;Recentemente &lt;a href=&quot;http://zachholman.com/talk/how-github-uses-github-to-build-github&quot;&gt;ele deu uma palestra&lt;/a&gt; falando um pouco mais sobre isso e como se usar o github como plataforma para esse processo ser aplicado em qualquer empresa.&lt;/p&gt;

&lt;p&gt;Mas até agora, eu sou falei de empresinhas pequenas, por mais que elas ganhem algum dinheiro não tem um nome a zelar.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Quero ver isso funcionar em uma empresa grande!&lt;br/&gt; - Cara de processo&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;Funciona, vou te dizer dois exemplos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Amazon&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Etsy&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;A &lt;a href=&quot;http://amazon.com&quot;&gt;Amazon&lt;/a&gt; chegou a divulgar em um apresentação na Velocity 2011 que faz um deploy a cada 11.6 segundos e você aí feliz por ter conseguido uma janela mais cedo para fazer seu deploy né?&lt;/p&gt;

&lt;p&gt;A &lt;a href=&quot;http://etsy.com&quot;&gt;Etsy&lt;/a&gt;, não é muito famosa aqui no Brasil, e a conheci ela antes de me interessar sobre deploy continuo comprei um adesivo com uma frase de StarWars lá :) eles funcionam como um Mercado Livre para artesões e outras profissões &amp;#8220;hand-made&amp;#8221;.&lt;/p&gt;

&lt;p&gt;Eles tem a bagatela de 1 bilhão de pageview por mês!&lt;/p&gt;

&lt;p&gt;Caso você queira entender como funciona o deploy continuo na Etsy, e como era a vida deles antes do deploy continuo veja essa palestra:&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;340&quot; src=&quot;http://cdn.livestream.com/embed/etsy?layout=4&amp;amp;clip=pla_adbab6e2-c629-4bfe-b1fd-21c898693282&amp;amp;height=340&amp;amp;width=560&amp;amp;autoplay=false&quot; style=&quot;border:0;outline:0&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot;&gt;&lt;/iframe&gt;


&lt;div style=&quot;font-size: 11px;padding-top:10px;text-align:center;width:560px&quot;&gt;Watch &lt;a href=&quot;http://www.livestream.com/?utm_source=lsplayer&amp;amp;utm_medium=embed&amp;amp;utm_campaign=footerlinks&quot; title=&quot;live streaming video&quot;&gt;live streaming video&lt;/a&gt; from &lt;a href=&quot;http://www.livestream.com/etsy?utm_source=lsplayer&amp;amp;utm_medium=embed&amp;amp;utm_campaign=footerlinks&quot; title=&quot;Watch etsy at livestream.com&quot;&gt;etsy&lt;/a&gt; at livestream.com&lt;/div&gt;


&lt;p&gt;Tudo isso começou na Etsy, porque um ex-flickr foi contratado para ser o CTO lá e o flickr foi bem pioneiro nesse negócio de deploy contínuo, você pode ver um pouco mais sobre isso nessa outra palestra:&lt;/p&gt;

&lt;iframe src=&quot;http://blip.tv/play/AYGMoH8C.html&quot; width=&quot;480&quot; height=&quot;300&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;


&lt;p&gt;&lt;embed type=&quot;application/x-shockwave-flash&quot; src=&quot;http://a.blip.tv/api.swf#AYGMoH8C&quot; style=&quot;display:none&quot;&gt;&lt;/embed&gt;&lt;/p&gt;

&lt;h2&gt;Continua ..&lt;/h2&gt;

&lt;div id=&quot;litlebox&quot;&gt;
Você está lendo a Parte 1 sobre &amp;#8220;A Busca pelo deploy contínuo&amp;#8221; esse post tem mais duas continuações: &lt;a href=&quot;http://lornlab.org/blog/2011/12/02/a-busca-pelo-deploy-continuo-parte-2/&quot;&gt;Parte 2&lt;/a&gt; e &lt;a href=&quot;blog/2011/12/03/a-busca-pelo-deploy-continuo-parte-3/&quot;&gt;Parte 3.&lt;/a&gt;
&lt;/div&gt;



</content>
  </entry>
  
  <entry>
    <title>Lá E Devolta Outra Vez</title>
    <link href="http://lornlab.org/blog/2011/09/26/la-e-devolta-outra-vez/"/>
    <updated>2011-09-26T15:05:00-03:00</updated>
    <id>http://lornlab.org/blog/2011/09/26/la-e-devolta-outra-vez</id>
    <content type="html">&lt;p&gt;Depois de muito pensar, e a preguiça dominar, resolvi continuar no bom e velho wordpress até fiz o tão
prometido blog em catalyst, mas a parte de design css/html e afins deu um trabalhinho e não está do jeito que eu quero e
o wordpress tem tantos temas legais. Pelo menos aprendi bastante fazendo o blog, inclusive tem um branch ativo agora porque
estou migrando a parte de persistencia para CouchDB.&lt;/p&gt;

&lt;p&gt;Update: Mudei para o tumblr e meu blog agora fica no &lt;a href=&quot;http://blog.lornlab.or&quot;&gt;http://blog.lornlab.org&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Update 2: Agora estou migrando para o &lt;a href=&quot;http://octopress.org&quot;&gt;Octopress&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>A Biblioteca Pessoal De Neil Gaiman</title>
    <link href="http://lornlab.org/blog/2011/05/19/a-biblioteca-pessoal-de-neil-gaiman/"/>
    <updated>2011-05-19T00:03:00-03:00</updated>
    <id>http://lornlab.org/blog/2011/05/19/a-biblioteca-pessoal-de-neil-gaiman</id>
    <content type="html">&lt;p&gt;Quando vi esse site pela primeira vez, e como eu já tinha lido alguma entrevista do Donald Knuth em que ele falava que tinha
a mesma poltrona desde 1960 e só trocava o forro externo, eu percebi que precisava comprar uma poltrona para ler livros  :)&lt;/p&gt;

&lt;p&gt;Ainda estou a procura, aquelas que tem na Starbucks é tudo importada :/ estou procurando algum clone brasileiro delas, mas acho que não vai ser fácil achar.&lt;/p&gt;

&lt;p&gt;Bom, voltando ao título olha como é a biblioteca pessoal do Neil Gaiman! para quem não conhece Neil Gaiman é o criador do Sandman e
outras livros/quadrinhos famosos, mas o que eu mais gosto e li foi Sandman, e só pelo Sandman ele já merece algum respeito.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://blog.shelfari.com/my_weblog/2009/09/neil.html&quot;&gt;http://blog.shelfari.com/my_weblog/2009/09/neil.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img class=&#8217;center &#8217; src=&#8217;http://blog.shelfari.com/.a/6a00d8341e478253ef0120a53fe68a970c-800wi&#8217; width=&#8221; height=&#8221; alt=&#8221; title=&#8221;&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Hackers Que Você Deveria Conhecer (1): Brad Fitzpatrick</title>
    <link href="http://lornlab.org/blog/2011/05/17/hackers-que-voce-deveria-conhecer-1-brad-fitzpatrick/"/>
    <updated>2011-05-17T22:45:00-03:00</updated>
    <id>http://lornlab.org/blog/2011/05/17/hackers-que-voce-deveria-conhecer-1-brad-fitzpatrick</id>
    <content type="html">&lt;p&gt;Esta série de posts é baseada na idéia do site  &lt;a href=&quot;http://papodehomem.com.br/homens-que-voce-deveria-conhecer-homem-da-capa-preta-tenorio-cavalcante/&quot;&gt;Papodehomem&lt;/a&gt;
que tem uma série parecida chamada &amp;#8220;Homens que você devia conhecer&amp;#8221;.&lt;/p&gt;

&lt;p&gt;A ideia é falar de hackers em geral, tipo algum dia pode ter uma história de um cortador de lenha que fez uma mesa só com seu machado
por exemplo :) Esse é um exemplo clássico de hacker.&lt;/p&gt;

&lt;p&gt;&lt;img class=&#8217;center &#8217; src=&#8217;http://media.tumblr.com/tumblr_ljiu9qSdTJ1qhdaqj.png&#8217; width=&#8221; height=&#8221; alt=&#8221; title=&#8221;&gt;&lt;/p&gt;

&lt;p&gt;Brad Fitzpatrick é um dos muitos hackers programadores que você deveria conhecer ou ao menos saber o que ele já fez.&lt;/p&gt;

&lt;p&gt;Ele é o criador do Memcached e do OpenID.&lt;/p&gt;

&lt;p&gt;Lá nos meados de 1999 ele começou um projeto pessoal para manter o pessoal do colegio informado, algo parecido com o
que fazemos na lista de discussões da faculdade ele chamou esse projetinho de Live Journal, que até pouco tempo [citation needed] era o maior serviço de blogs do mundo.&lt;/p&gt;

&lt;p&gt;Essa empresa não foi só importante para o Brad Fitzpatrick mas também para a internet como um todo pois, com o sucesso dela,
foi necessário criar coisas como Memcached e OpenID, dentre outros excelentes &lt;a href=&quot;http://www.danga.com/&quot;&gt;Software&lt;/a&gt; Livres que foram criados baseados na demanda do LiveJornal.&lt;/p&gt;

&lt;p&gt;No evento &lt;a href=&quot;http://www.perlworkshop.com.br/&quot;&gt;Perl Workshop&lt;/a&gt; , ele contou que teve a ideia do Memcached quando o LiveJornal estava crescendo e ia demorar 2 semanas para chegar
os novos servidores, em 12h ele fez a primeira versão do Memcached.&lt;/p&gt;

&lt;p&gt;Outra coisa engraçada que ele contou no evento foi dizer que &lt;a href=&quot;http://www.danga.com/mogilefs/&quot;&gt;MogileFS&lt;/a&gt;  é um anagrama para OMG files :)&lt;/p&gt;

&lt;p&gt;Em 2005 o &lt;a href=&quot;http://news.livejournal.com/82926.html&quot;&gt;LiveJornal foi comprado pela Sixapart&lt;/a&gt;, e em 2008 ele foi trabalhar no Google.&lt;/p&gt;

&lt;p&gt;Ele também é contribuidor ativo no &lt;a href=&quot;http://search.cpan.org/~bradfitz/&quot;&gt;CPAN&lt;/a&gt; , apesar de estar trabalhando no Google focando na linguagem de programação Go, o ultimo projeto que ele
está trabalhando é o &lt;a href=&quot;http://camlistore.org/&quot;&gt;Camlistore&lt;/a&gt; - escrito em Go, que vale um post só pra ele porque é um proejto bem interessante.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Como Funciona a Escala Pentatonica</title>
    <link href="http://lornlab.org/blog/2011/04/15/como-funciona-a-escala-pentatonica/"/>
    <updated>2011-04-15T23:59:00-03:00</updated>
    <id>http://lornlab.org/blog/2011/04/15/como-funciona-a-escala-pentatonica</id>
    <content type="html">&lt;iframe src=&quot;http://player.vimeo.com/video/5732745&quot; width=&quot;400&quot; height=&quot;300&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;


&lt;p&gt;&lt;a href=&quot;http://vimeo.com/5732745&quot;&gt;World Science Festival 2009: Bobby McFerrin Demonstrates the Power of the Pentatonic Scale&lt;/a&gt; from &lt;a href=&quot;http://vimeo.com/user1103909&quot;&gt;World Science Festival&lt;/a&gt; on &lt;a href=&quot;http://vimeo.com&quot;&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Como funciona a escala pentatonica e sua ligação com o cérebro&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Meu Ambiente De Trabalho Em N Itens</title>
    <link href="http://lornlab.org/blog/2011/04/12/meu-ambiente-de-trabalho-em-n-itens/"/>
    <updated>2011-04-12T14:59:00-03:00</updated>
    <id>http://lornlab.org/blog/2011/04/12/meu-ambiente-de-trabalho-em-n-itens</id>
    <content type="html">&lt;p&gt;O peka me convidou para a correntinha do bem, e ainda me intimou pelo twitter :/ aqui está como é meu ambiente de trabalho.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://lornlab.org/blog/2011/04/12/usando-zsh/&quot;&gt;ZSH&lt;/a&gt;, o cara é tão bom que tem um post só para ele :)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://code.google.com/p/iterm2/&quot;&gt;iTerm2&lt;/a&gt; - Eu sempre usei o Terminal.App padrão do MacOSX, há um tempo atrás ouvi falar do iTerm, mas
dado a minha pessima organização, acabei me esquecendo. Por causa dessa foto no twitter/facebook recebi a dica do
iTerm2 e vou dizer, deixa o Terminal.App no chinelo tem fullscreen, 256 cores, busca, histórico propia, só instalando para
você ver o que eu estou falando pena que está em alpha, mas estou atualizando a cada relase.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Git - No trabalho apenas o git, em casa git e github.com/lorn onde faço minhas brincadeiras&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.virtualbox.org/&quot;&gt;Virtualbox&lt;/a&gt; - Para emular um Linux ou Windows quando preciso&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.irssi.org/&quot;&gt;Irssi&lt;/a&gt; - irc remoto ( via ssh ) 24/7 na irc.freenode.net e irc.perl.org :)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://sites.google.com/site/yorufukurou/&quot;&gt;Yorufukoru&lt;/a&gt; - Cliente de twitter, vejo pouco o twitter, mas quando vejo é com ele.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Musica - Tudo o que eu preciso/quero ouvir está no iPhone então ligo o fone de ouvido nele e já era, de vez em quando ouço uma
coisa ou outra do youtube.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://www.vim.org/&quot;&gt;Vim&lt;/a&gt; - Por ultimo, mas não menos importante &amp;#8220;O Editor&amp;#8221;, minhas configurações estão &lt;a href=&quot;https://github.com/lorn/vim_confs&quot;&gt;aqui&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Passo a bola agora para o &lt;a href=&quot;http://bitforest.org/&quot;&gt;@dsouza&lt;/a&gt;, @pahagon, @ldaugusto e 2 hit combo no @wendelscardua&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Usando ZSH</title>
    <link href="http://lornlab.org/blog/2011/04/12/usando-zsh/"/>
    <updated>2011-04-12T13:31:00-03:00</updated>
    <id>http://lornlab.org/blog/2011/04/12/usando-zsh</id>
    <content type="html">&lt;p&gt;Esses dias re-descobri o zsh, já havia testado a um tempo atrás mas agora foi pra valer :)&lt;/p&gt;

&lt;p&gt;E vou dizer, não há shell melhor :) muito melhor que o Bash&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;O historico do ZSH é compartilhado por &lt;em&gt;TODAS&lt;/em&gt; sessões dele, diferente do bash que cada sessão tem seu histórico
( e você tem que ficar procurando onde foi que digitou aquele comando para recuperar ele do histórico ).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ZSH tem autocomplete para tudo, ok bash também, mas o ZSH é bem mágico ele tem autocomplete para o kill, listando os
processos que estão rolando e você digita o nome ele já tras o pid para você, ps -aux? nunca mais.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Autocomplete do ssh baseado no seu ~/.ssh/know_hosts ou seja, acessou a maquina, ssh ma&lt;tab&gt; autocomplete :D&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Continuando o autocomplete, no MacOSX temos um instalado de pacote chamado brew para instalar pacotes nele é
mais ou menos como no apt-get, busca e depois install então: brew seach xyz, brew install xyz. Com o zsh ele irá fazer
a busca no install então brew install x&lt;tab&gt; pronto, já mostra para você todos os pacotes que casam com aquela string.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;E bem compativell com o bash, eu não tive nenhum problema em fazer: cat ~/.bashrc &gt;&gt; ~/.zshrc e tudo que eu tinha configurado no bash funciona no zsh&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Comece usando agora é só seguir a receita de bolo desse repositorio &lt;a href=&quot;https://github.com/robbyrussell/oh-my-zsh/&quot;&gt;https://github.com/robbyrussell/oh-my-zsh/&lt;/a&gt; ele deixou
 o zsh bem bonito, com suporte a temas e plugins ( e você verá como é facil fazer temas e plugins ) o meu fork desse repositorio você acha aqui.&lt;/p&gt;

&lt;p&gt;Esse são os motivos básicos, caso eu lembro de mais algum matador eu coloco aqui. Mas fica a dica, use zsh e &lt;a href=&quot;http://www.youtube.com/watch?v=3oB2rMaY0ho&amp;amp;feature=related&quot;&gt;filtro solar&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Perl Para Sysadmins E DBAs</title>
    <link href="http://lornlab.org/blog/2009/01/20/perl-para-sysadmins-e-dbas/"/>
    <updated>2009-01-20T15:08:00-02:00</updated>
    <id>http://lornlab.org/blog/2009/01/20/perl-para-sysadmins-e-dbas</id>
    <content type="html">&lt;p&gt;Rau!&lt;/p&gt;

&lt;p&gt;Depois de séculos sem posts, apenas um post para linkar para o material da minha palestra no fisl ( que não foi das melhores porque não terminei a palestra antes e fiquei BEM doente em POA :/ )&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://lornlab.org/palestra_fisl&quot;&gt;http://lornlab.org/palestra_fisl/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agradecimentos para o Claudemir Ivan, que disse que não estava conseguindo acessar os arquivos.&lt;/p&gt;

&lt;p&gt;Falow, algum dia meu blog em Catalyst sai&lt;/p&gt;

&lt;p&gt;Update: O problema era que o Dreamhost estava interpretando os .pl :/ coloquei as extensões em .txt e tudo&lt;/p&gt;

&lt;p&gt;funcionou.&lt;/p&gt;

&lt;p&gt;Update 2: Agora com o plugin de gist do github.com o código fica bonito e indentado&lt;/p&gt;

&lt;p&gt;Update 3: Agora quem trata o gist é o octopress \,,/&lt;/p&gt;

&lt;div&gt;&lt;script src=&#8217;https://gist.github.com/760136.js?file=&#8217;&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;#!/usr/bin/perl

=head1 NAME

    conta_acessos 
    
=head1 DESCRIPTION

=head1 AUTHOR

    Renan Rangel &amp;lt;rvr777@gmail.com&amp;gt;
    Lorn &amp;lt;lorn.br@gmail.com.br&amp;gt;

=head1 COPYRIGHT 

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see &amp;lt;http://www.gnu.org/licenses/&amp;gt;.
    
=cut

use strict;
use Data::Dumper;

die &amp;lt;DATA&amp;gt;
  unless scalar @ARGV;
  
our $VERSION = &#8216;0.1&#8217;;

my ($c, @p, %option) = 0;
my %hash_count = ();
# look for options and patterns
my $ip = 0;
foreach (@ARGV) {
  if (/^-(.+)$/) {
      my $arg = $1;
    if($arg eq &#8216;ip&#8217;){
        $ip = 1;
    }elsif ($arg eq &#8216;h&#8217;){
        do { 
            print &amp;lt;DATA&amp;gt;;
            exit(0);
        };
    }elsif ($arg eq &#8216;i&#8217;){
        do {
            $option{i} = 1;
            next;
        };
    }elsif ($arg eq &#8216;v&#8217;){
        do {
            print &amp;quot;conta_acessos $VERSION\nAuthor: Renan Rangel &amp;lt;rvr777\@gmail.com&amp;gt;\n        Lorn &amp;lt;lorn.br\@gmail.com.br&amp;gt;\n&amp;quot;;
            exit(0)
        };
    }else{
        die &amp;lt;DATA&amp;gt;;
    }
  }else{
      die &amp;lt;DATA&amp;gt;;
  }
}

# search and replace the pattern with the colored text
my $found = 0;
while (my $line = &amp;lt;STDIN&amp;gt;) {
    my ($ip) = split(/\s/,$line);
    $hash_count{$ip} = $hash_count{$ip} + 1;
}

print Dumper \%hash_count;    
foreach my $line ( sort { $hash_count{$b} &amp;lt;=&amp;gt; $hash_count{$a} } keys
%hash_count) {
    my $acessos = $hash_count{$line};
    print &amp;quot;ip: $line\tacessos:\t$acessos\n&amp;quot;;
}

exit(0);

__DATA__
Usage: 
  tail -1000 /var/log/apache2/access.log | perl conta_acessos.pl -ip 
  
Options:
  -h = Print help message
  -i = Case insensitive
  -v = Show version&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;




&lt;iframe scrolling=&quot;no&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; frameborder=&quot;0&quot; height=&quot;355&quot; width=&quot;425&quot; src=&quot;http://www.slideshare.net/slideshow/embed_code/7618654&quot;&gt;&lt;/iframe&gt;


&lt;p&gt;&lt;a href=&quot;http://www.slideshare.net/lornlab/perl-sysadmin-dba-7618654&quot;&gt;Link slideshare&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Sandman - Casa De Bonecas</title>
    <link href="http://lornlab.org/blog/2007/02/17/sandman-casa-de-bonecas/"/>
    <updated>2007-02-17T13:06:00-02:00</updated>
    <id>http://lornlab.org/blog/2007/02/17/sandman-casa-de-bonecas</id>
    <content type="html">&lt;p&gt;Como Sandman é tão famoso e eu nunca tinha lido, não resisti, e comecei a ler  a queria começar pelo 1o mas a edição
está esgotada (!!) então comecei pelo 2o, Casa de Bonecas pelo que percebi não há nenhum problema com isso você não perde nada.&lt;/p&gt;

&lt;p&gt;&lt;img class=&#8217;center &#8217; src=&#8217;http://media.tumblr.com/tumblr_ljitlep23m1qhdaqj.jpg&#8217; width=&#8221; height=&#8221; alt=&#8221; title=&#8221;&gt;&lt;/p&gt;

&lt;p&gt;O titulo é estranho e você só entende o porque dele nas ultimas 10 páginas.&lt;/p&gt;

&lt;p&gt;Sandman é muito legal, eu nunca tinha lido nada do Neil Gaiman ok, outro erro, mas depois de Sandman, fiquei animado a comprar
 alguns livros dele, agora preciso comprar outro “livro” de Sandman mas, só 1 por mês então, o próximo só no mês que vem é muito caro.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Livro Minority Report</title>
    <link href="http://lornlab.org/blog/2007/01/23/livro-minority-report/"/>
    <updated>2007-01-23T12:11:00-02:00</updated>
    <id>http://lornlab.org/blog/2007/01/23/livro-minority-report</id>
    <content type="html">&lt;p&gt;Se você está pensando em comprar este livro para conhecer mais detalhes sobre o filme, coisas escondidas, esquece.&lt;/p&gt;

&lt;p&gt;&lt;img class=&#8217;center &#8217; src=&#8217;http://media.tumblr.com/tumblr_ljitkhfY8P1qhdaqj.jpg&#8217; width=&#8221; height=&#8221; alt=&#8221; title=&#8221;&gt;&lt;/p&gt;

&lt;p&gt;O livro é bem diferente do filme, tem os precogs e o personagem do Tom Cruise, mais o resto é bem diferente.&lt;/p&gt;

&lt;p&gt;O livro tem vários contos, o 1a é o Minority Report tem apenas 60 paginas (!!), e não é um dos melhores do livro,
o melhor na minha opinião é o conto que originou o filme &lt;a href=&quot;http://pt.wikipedia.org/wiki/Total_Recall&quot;&gt;&amp;#8220;Vingador do futuro&amp;#8221;&lt;/a&gt;  lembra? o conto chama-se:&lt;/p&gt;

&lt;p&gt;Podemos recordar para você, por um preço razoável
O bom de um livro com vários contos pequenos, é que você não precisa passar por 300 ~ 400 paginas para saber o final, a história é bem sucinta. Acabou um conto? leia outro livro se quiser.&lt;/p&gt;

&lt;p&gt;Isso é uma das coisas que eu mais gosto em Ficção Cientifica, vai direto ao ponto não tem encheção de linguiça e você fica pensando:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;“Como conseguiram pensar isso a 20 ~ 30 anos atrás?”&lt;/p&gt;&lt;/blockquote&gt;



</content>
  </entry>
  
  <entry>
    <title>Relato Conilsi - YAPC::SA::2006</title>
    <link href="http://lornlab.org/blog/2006/11/21/relato-conilsi-yapc-sa-2006/"/>
    <updated>2006-11-21T13:21:00-02:00</updated>
    <id>http://lornlab.org/blog/2006/11/21/relato-conilsi-yapc-sa-2006</id>
    <content type="html">&lt;p&gt;O Conisli desse ano, certamente foi o melhor que eu participei, e como já disse para alguns amigos
 monges para o Perl, foi melhor que o Fisl&lt;/p&gt;

&lt;p&gt;Infelizmente não podemos contar com a presença do Larry Wall, ele ficou doente aos 45 do 2a tempo e não pode vir,
 mas a Hacker Audrey Tang deu conta do recado, dando palestrar muito boas.&lt;/p&gt;

&lt;p&gt;PS: vocês precisam ver ela programando, é meio insano, as vezes parece que ela está escrevendo um texto normal,
 sem contar que ela digita muito rápido.&lt;/p&gt;

&lt;p&gt;Vamos a palestra:&lt;/p&gt;

&lt;p&gt;1a Dia:&lt;/p&gt;

&lt;p&gt;Optimization for fun: Primeiro Keynote do evento, Audrey Tang começou falando sobre comida, sim comida! achei estranho
 também, mas depois entendi, ela comparou o Mc Donald’s com o software proprietário, vem em uma caixinha fechada, você não
 pode dar opinião, já a comida em restaurante normal, muitas vezes o chefe pergunta se você gostou, se você der uma sugestão talvez eles aceitem.&lt;/p&gt;

&lt;p&gt;Ela também falou do modelo “anarquismo” de desenvolvimento, como se você acha que uma coisa tá errada, não vá falar pro
criador que está errada, faça a coisa certa e mostre pro criador, muitas vezes ao fazer isso você descobre que seu jeito é
errado, mas modificando um pouco é legal, e como ela mesmo disse você ganha mais um “commit bit”&lt;/p&gt;

&lt;p&gt;Nesse meio tempo no stand da TheSource o Alex, que eu esqueci o apelido porque é muito complicado, alguma coisa zohar sei lá,
 pois bem ele me mostrou um bug no mysql, mas especificamente no UDF do mysql, que me deixou um pouco assustado e que me
 lembra como eu sou feliz sendo programador agora ao invés de Administrador de rede&lt;/p&gt;

&lt;p&gt;2a dia:&lt;/p&gt;

&lt;p&gt;A Filosofia do Unix: Conheci a famosa figura do software livre, Rubens Queiroz, responsável pelo Dicas-L e pelo Rautu. Deu uma
palestra muito boa, mostrando de forma divertida que ( ironicamente … ) era sua experiência de trabalho, disse coisas do
 tipo “quando você digita um comando e ele demora muito, é porque há algo errado..” hehe, muito bom.
Depois do almoço foi as palestras dos monges&lt;/p&gt;

&lt;p&gt;ETL e Perl: Fui ver essa palestra mais interessado nas Expressões Regulares, era como se ETL fosse “yet another” sigla para
 alguma coisa que se faz com expressão regular  mas ai que fui entender, que ETL é uma coisa muito legal, não sei explicar
 em poucas palavras se estão interessado vejam na wikipedia.&lt;/p&gt;

&lt;p&gt;PPS ( Postfix Perl Spam): O mda, contou para nós nessa palestra um pouco da sua experiência com postfix, e o quanto a empresa que
 ele trabalha economizou com softwares livres, com o Clamav, eu não me lembro muito bem o valor, mais era muito, sem contar que com
 software livre tudo funcionava, o outro proprietário levava o servidor a 100% de load average e não funcionava direito.&lt;/p&gt;

&lt;p&gt;Construindo um motor de similiaridade com Perl: O monge português lá da terra do “vira-vira…” Nelio Nunes nos mostrou uma introducão
 sobre “Information Retrieval” com Perl, muito legal, o problema era que qualquer errinho que ele cometia no exemplo que ele estava escrevendo
 o mago já zuava “ele é português…” hehe.&lt;/p&gt;

&lt;p&gt;Teste, Perl e TAP: Adriano Ferreira um monge que veio lá de Minas, mostrou como é fácil o “jeito” Perl de testar as coisas, eu nunca
 tinha tido curiosidade sobre isso, mas quando ele começou a mostrar eu já pensei “hmm, vou parar com aqueles programinhas testes_foobar.pl,
 e fazer algo mais &lt;em&gt;Perl&lt;/em&gt;”&lt;/p&gt;

&lt;p&gt;3a Dia:&lt;/p&gt;

&lt;p&gt;Este dia perdi a hora, estava cansado  e perdi a palestra do Flavio Glock sobre o v6.pm a implementação do Perl6 em Perl5,
 mas cheguei a tempo para a palestra da Audrey.&lt;/p&gt;

&lt;p&gt;Perl6 Now!: Um introdução ao Perl6, aquele tipo de coisa que voce fica babando “eu quero..” hehe&lt;/p&gt;

&lt;p&gt;Depois o Solli deu um curso de Perl5 na parte de mini-cursos do Conisli, muito bem pensado por sinal, não estou certo se
 o mini-curso foi no 3a dia ou no 2a, tenho certeza que o mini-curso de Perl6 foi no 3a dia, e pasmem vocês lotou, tinha pessoas que
 não conhecia o Perl, que queria conhecer o Perl6, o curso foi ministrado pelo Flávio Glock.&lt;/p&gt;

&lt;p&gt;Na mesma hora estava acontecendo também a palestra do David Fetter.
PL/Perl: Como fazer Procedures usando Perl, isso pode ser usado para muitas coisas, ele deu foco no uso para Benchmark, em um dos
 scripts de exemplo dele, ele pegava o pid que um SELECT criava, e analisava olhando no output do ps, quanto tempo demorou, etc.&lt;/p&gt;

&lt;p&gt;Paralelamente  estava acontecendo também os LightningTalks de Perl ( Sim, eu estava pulando de uma sala a outra ) Cheguei no começo da
 palestra da Audrey, que de acordo a descrição que ela me mandou por email.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;I’d like to add one “ppencode” talk to the LT schedule. The abstract is simply: “The highly acclaimed talk from YAPC::Asia now comes to Latin America!”&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;Vocês podem ter uma previa da palestra neste link do youtube.&lt;/p&gt;

&lt;p&gt;Bom, depois disso foi o fechamento, para terminar algumas coisas:&lt;/p&gt;

&lt;p&gt;-O Conisli está ficando melhor a cada ano&lt;/p&gt;

&lt;p&gt;-Agradecimento a Segula, pelo patrocinio da Audrey Tang e do Larry Wall.&lt;/p&gt;

&lt;p&gt;-Usuarios de Slackware não gostam de chaves ssh dos outros&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>FISL 7.0</title>
    <link href="http://lornlab.org/blog/2006/04/19/fisl-7-0/"/>
    <updated>2006-04-19T13:27:00-03:00</updated>
    <id>http://lornlab.org/blog/2006/04/19/fisl-7-0</id>
    <content type="html">&lt;p&gt;ae pessoal, estou no FISL o Google esta aqui, vou atualizando esse post sempre que possivel e logo mais tem fotos&lt;/p&gt;

&lt;p&gt;Cheguei ontem ao FISL, não postei nada de la porque o telecentro vivia cheio de gente, e a maioria vendo o orkut -_-&lt;/p&gt;

&lt;p&gt;Bom, mas eis o meu relato, chegando lá logo na entrada já dava para perceber que o Google patrocinou boa parte do fisl,
 banners logo na entrada e o crachá estava escrito Google embaixo, a parte de grupo de usuários estava menor que o ano passado,
 estava bom, rever velhos amigos, e adquirir mais uns novos&lt;/p&gt;

&lt;p&gt;Bom antes de mais nada, esse e o MEU relato do evento, o computador que eu estou digitando está com problemas no assento e eu
estou com preguica de arrumar, essa foi minha visão das palestrar, se eu errei alguma coisa, ou entedi mal, adoraria que alguém me
 mandasse um email dizendo isso lorn dot br at gmail dot com, eu arrumarei o mais rápido possivel.&lt;/p&gt;

&lt;p&gt;1a Dia – 19/06&lt;/p&gt;

&lt;p&gt;11:00 – Comparando PostgreSQL e MySQL: Desempenho de Aplicações Transacionais&lt;/p&gt;

&lt;p&gt;Uma palestra bem interessante, apesar de eu desconfiar dos resultados, hehe, os palestrantes ( Carlos Eduardo Santos, Rilson Oscar do Nascimento )
 tinham muito conhecimento sobre SGBDs.&lt;/p&gt;

&lt;p&gt;O Resultado dessa briga foi que ate 1100 warehouse, eles tinham o mesmo desempenho, acima disso o pgsql foi ganhando exponencialmente do mysql devo
lembrar que os 2 estavam “tunados”.&lt;/p&gt;

&lt;p&gt;12:00 – The Filesystem namespace past and present&lt;/p&gt;

&lt;p&gt;A 1a palestra em inglês que eu vi no evento, boa tambem, o palestrante e um dos desenvolvedores do kernel, e explicou muito bem tudo,
o Filesystem namespace quando sair, vai substituir o chroot, porque?&lt;/p&gt;

&lt;p&gt;Porque para usuarios diferente eu vou poder ter pastas iguais com conteudos diferente  , deixa eu explicar melhor&lt;/p&gt;

&lt;p&gt;no caso do apache&lt;/p&gt;

&lt;p&gt;o /var/www/htdocs/ tem todas as paginas do seu servidor, isso hoje em dia estaria em chroot pra poder proteger o sistema em si, com o
 Filesystem namespace o /var/www/htdocs/ so teria aquivos para o usuario apache, se eu desse um &lt;code&gt;ls&lt;/code&gt; la como meu usuario, nao iria mostrar nada, interessante nao?&lt;/p&gt;

&lt;p&gt;16:00 -The X Community — History and Directions&lt;/p&gt;

&lt;p&gt;Essa palestra e o tipo de palestra historica, um dos criadores do X!!, sim, o cara explicou todas historia como tudo comecou, o que aconteceu com o Xfree86 versus X.org,
bem legal, eu nao sabia mais o X de inicio era um software 100% comercial ai um pessoal de Berkley se nao me engano comecou fazer sua versao do X, baseada na que ja existia,
logico que o pessoal do comercial nem ligou, encurtando a historia alguns anos depois o X comercial quase faliu, diz o palestrante que ele existe ate hoje, alguem ja ouviu falar dele?&lt;/p&gt;

&lt;p&gt;Bom esse dia eu perdi 2 palestras importantes&lt;/p&gt;

&lt;p&gt;Migrando de Oracle para PostgreSQL&lt;/p&gt;

&lt;p&gt;DBI-Link: A Universal Database Connector&lt;/p&gt;

&lt;p&gt;A 1a foi porque eu perdi o horario quando fui ver ja estava acabando e a segunda, foi porque teve um problema na organizacao e o horario
ficou mudando, nao sou eu mais todos os perl mongers perderam&lt;/p&gt;

&lt;p&gt;2a Dia – 20/06&lt;/p&gt;

&lt;p&gt;10:00 - Communication is Free&lt;/p&gt;

&lt;p&gt;Quem deu essa palestra foi o Randal, ele falou dos meios de comunicacao livre, de hoje e de antigamente, desde o email ate USENET, IRC..&lt;/p&gt;

&lt;p&gt;11:00 – 13:00&lt;/p&gt;

&lt;p&gt;Nesse horario comecou “oficialmente” o YAPC::Brasil ( Yet Another Perl Conference )&lt;/p&gt;

&lt;p&gt;A primeira palestra foi sobre Perl6, o novo perl realmente esta muito bom, esta seguindo um novo lema um linguagem para todas as linguagens,
hehe isso me lembra LOTR  com ela voce vai poder programar em perl6, e gerar o bytecode em Java, JavaScript, Flash ( fizeram pra brincar )
entrei outras, foras os novos recursos de gramatica, ah, ainda ganhei um livro nessa palestra Perl6 &amp;amp; Parrot.&lt;/p&gt;

&lt;p&gt;A Segunda foi do Randal explicando inside-out objects uma coisa meio complicada que eu não entendi muito bem, hehe.&lt;/p&gt;

&lt;p&gt;14:00 – Open Source at Google&lt;/p&gt;

&lt;p&gt;Essa foi a palestra do Eric. Pollman, basicamente explicando o summer of code uma palestra muito legal que de certo modo me insentivou a participar,
o palestrante comentou que no ano passado teve 3 participantes brasileiros 1 deles estava aqui no FISL e inclusive vai palestrar sobre a ferramente
que ele fez para o summer of code, parabens ao Adriano Monteiro Marques pelo seu frontend do nmap, vou testa-lo logo que puder, não pude ver a palestra.&lt;/p&gt;

&lt;p&gt;15:00 – C Minimal Perfect Hash – hashing large ammounts of data&lt;/p&gt;

&lt;p&gt;Essa palestra apesar do titulo em ingles foi em portugues, foi de um dos empregados do google em BH, o pessoal de la e super gente fina e nessa
 palestra ele explicou como seria uma hash minimamente perfeito, sem “colisoes” ele baseou esse projeto numa tese de um amigo dele bem legal&lt;/p&gt;

&lt;p&gt;Logo depois dessa apesar de nao estar na programacao outro cara de BH falou sobre o seu ftpfs, que ele fez em cima da libcurl, bem legal.&lt;/p&gt;

&lt;p&gt;18:00 – PL/Perl em Postgresql&lt;/p&gt;

&lt;p&gt;Essa palestra foi do David Better, inicialmente seria no YAPC, mais depois foi passada pro Stand do Governo Federal bem legal fazer procedures em Perl
para o Postgresql, e ainda poder usar modulos perl nessas procedures.&lt;/p&gt;

&lt;p&gt;Depois escrevo dos outros dias e mais detalhes, estou realmente cansado&lt;/p&gt;

&lt;p&gt;3a Dia – 21/06&lt;/p&gt;

&lt;p&gt;11:00 - O Portal do Monastério, como se tornar um Monge Perl.&lt;/p&gt;

&lt;p&gt;Essa palestra nos surpreendeu, todos os monges falaram “voces viram como lotou a sala?” hehe, uma palestra muito boa, com um visao de todos os principais
sites/comunidades de Perl&lt;/p&gt;

&lt;p&gt;15:00 -Ferramentas de software livre ou código aberto para bioinformática&lt;/p&gt;

&lt;p&gt;Fui ver essa palestra porque e um assunto que me interessa, mais particularmente por causa do Perl, e nao deu outra o palestrante, falou muito de Perl,
mas e uma coisa meio complicada principalmente a parte da Biologia, hehe, mas valeu pra conhecer.&lt;/p&gt;

&lt;p&gt;16:00 – Software livre no Nintendo DS&lt;/p&gt;

&lt;p&gt;Sem comentarios, essas foi uma das melhores palestras do FISL, o palestrante, Ricardo Bittencourt transformou um assunto massantes, em uma coisa engracada
contando muitas curiosidades sobre os videogames antigos , deu ate vontade de comprar um Nintendo DS&lt;/p&gt;

&lt;p&gt;18:00 -Deixe o gerenciamento do anti-spam com os usuários&lt;/p&gt;

&lt;p&gt;Uma solucao estilo gmail, muito interessantes, pois pode ser implementada por usuario ou por grupo de usuarios, foi explicado muito bem o conceito e o
interessante e que do jeito que foi apresentado voce nao precisa usar as mesmas ferramentas do palestrante.&lt;/p&gt;

&lt;p&gt;Esse dia perdi a palestra de XUL  , fiquei preocupado com a carona e nao lembrei da palestra&lt;/p&gt;

&lt;p&gt;Infelizmente nao pude ficar no ultimo dia, logo nao tenho um relato sobre o “leilao”.&lt;/p&gt;

&lt;p&gt;Nesse meu relato eu nao disse, mesmo porque nao iria lembrar mais as “rodas” formadas na parte de grupo de usuario, as trocas de ideias, foi quase
tao bom quanto qualquer palestra, que venha o Conisli, ah! para os amantes de Perl, estao confirmados:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Larry Wall ( Criado do Perl, arquiteto do Perl6 )&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Audrey Tang ( chefe do desenvolvimento do Pugs/Perl 6 )&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;E esta prevista a vinda do Theo de Raadt, ja ouviram falar?&lt;/p&gt;

&lt;p&gt;Ate mais.. ( post longo nao?)&lt;/p&gt;
</content>
  </entry>
  
</feed>

