<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="pt-BR" xmlns="http://www.w3.org/2005/Atom">
  <title>Thoughts Overflow</title>
  <id>tag:www.thoughtsoverflow.com,2009:mephisto/</id>
  <generator version="0.8.0" uri="http://mephistoblog.com">Mephisto Drax</generator>
  <link href="http://www.thoughtsoverflow.com/feed/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://www.thoughtsoverflow.com/" rel="alternate" type="text/html"/>
  <updated>2009-01-04T14:33:25Z</updated>
  <entry xml:base="http://www.thoughtsoverflow.com/">
    <author>
      <name>samflores</name>
    </author>
    <id>tag:www.thoughtsoverflow.com,2009-01-03:3</id>
    <published>2009-01-03T23:51:00Z</published>
    <updated>2009-01-04T14:33:25Z</updated>
    <category term="linode"/>
    <category term="mephisto"/>
    <category term="rails"/>
    <category term="tutorial"/>
    <link href="http://www.thoughtsoverflow.com/2009/1/3/configurando-o-mephisto-no-linode" rel="alternate" type="text/html"/>
    <title>Configurando o Mephisto no Linode</title>
<content type="html">
            &lt;p&gt;Como mencionei no &lt;a href=&quot;http://thoughtsoverflow.com/2008/11/24/puts-hello-blogosphere&quot;&gt;primeiro post&lt;/a&gt;, há algum tempo que penso em fazer um blog, e já cheguei até a ter um, usando Java/Blojsom e hospedado numa máquina que eu tinha; um negócio absolutamente tosco!&lt;/p&gt;


	&lt;p&gt;Então, como um bom railer iniciante, decidi migrar para o Mephisto e contratar um serviço de hospedagem decente. Eis-me aqui, postando no meu recém-criado blog (tá bom, não é mais tão recente assim, mas tá valendo&#8230;). Vou tentar listar aqui os passos que me levaram a colocá-lo de pé. Pode ser que eu esqueça alguma coisa, afinal também estou aprendendo e não fiz muitos registros do que eu ia fazendo. Vamos lá&#8230;&lt;/p&gt;


	&lt;h3&gt;1. Tomando decisões&lt;/h3&gt;


	&lt;p&gt;Já estava escolhido o Mephisto como &lt;i&gt;blog engine&lt;/i&gt;, mas faltavam algumas decisões a serem tomadas, a maioria delas bem fáceis, outras nem tanto.&lt;/p&gt;


	&lt;h4&gt;Hospedagem&lt;/h4&gt;


	&lt;p&gt;Não acho que este blog vá ter o mesmo número de visualizações do Google (quem sabe um dia&#8230; rs), por isso poderia ter optado por uma hospedagem compartilhada, mas eu queria fazer tudo por mim mesmo e queria usar o servidor pra testar várias aplicações, então escolhi um plano de &lt;span class=&quot;caps&quot;&gt;VPS&lt;/span&gt;. Dei uma boa pesquisada em várias empresas de hospedagem nacionais e estrangeiras e, com a ajudinha de um Tweet do &lt;a href=&quot;http://www.caironoleto.com/&quot;&gt;Cairo Noleto&lt;/a&gt;, conheci o &lt;a href=&quot;http://www.linode.com&quot;&gt;Linode&lt;/a&gt;. Eles tem um ótimo &lt;i&gt;uptime&lt;/i&gt;, colocar o servidor de pé é bem fácil, o console &lt;span class=&quot;caps&quot;&gt;AJAX&lt;/span&gt; premite que eu tenha acesso ao servidor rapidamente usando qualquer máquina, mesmo sem um cliente ssh disponível ou atrás de um firewall, os preços são bons (principalmente comparados aos &lt;span class=&quot;caps&quot;&gt;VPS&lt;/span&gt; nacionais) e eu não preciso fazer um contrato de um ano ou mais. Tudo que eu precisei foi de um cartão de crédito internacional.&lt;/p&gt;


	&lt;h4&gt;Distribuição Linux&lt;/h4&gt;


	&lt;p&gt;Uma vez escolhido o Linode para &lt;i&gt;me&lt;/i&gt; hospedar eu precisava escolher qual distribuição Linux eu iria instalar. Eu pessoalmente não gosto de discussões a respeito de qual é a melhor distro. Só precisava de uma na qual fosse fácil instalar e manter pacotes (já que a &#8220;instalação&#8221; da distro propriamente dita é automatizada pelo Linode), então poderia ser o &lt;b&gt;CentOS&lt;/b&gt; e usar o &lt;i&gt;yum&lt;/i&gt;, o &lt;b&gt;Ubuntu&lt;/b&gt; e usar o &lt;i&gt;apt-get&lt;/i&gt;/&lt;i&gt;aptitude&lt;/i&gt;, ou o &lt;b&gt;Gentoo&lt;/b&gt; e usar &lt;i&gt;emerge&lt;/i&gt; (o Gentoo linux foi meu OS padrão por muuuuito tempo). O Linode oferece também outras opções como &lt;i&gt;ArchLinux&lt;/i&gt;, &lt;i&gt;Fedora&lt;/i&gt; e &lt;i&gt;OpenSUSE&lt;/i&gt;, mas eu fiquei com o Ubuntu, por que, embora ele esteja sendo muito falado ultimamente, eu ainda não o conhecia direito. Vamos ver o que ele pode oferecer&#8230;&lt;/p&gt;


	&lt;h4&gt;Servidor&lt;/h4&gt;


	&lt;p&gt;Mongrel? Mongrel com ngnix? Thin? Lighttp? Apache? Eu tinha um monte de opções e não tenho muitos motivos plausíveis pra ter escolhido &lt;b&gt;Apache&lt;/b&gt; com &lt;b&gt;Passenger&lt;/b&gt;. Não fiz &lt;i&gt;benchmarks&lt;/i&gt;, nem entrei em discussões ferrenhas onde cada um empunha sua espada pra defender sua arquitetura predileta, nem mesmo perguntei pro universitários ;) Eu simplesmente li em algum lugar à respeito do Passenger, resolvi testar na minha máquina de desenvolvimento e está me atendendo bem. Por que não colocá-lo em produção?&lt;/p&gt;


	&lt;h4&gt;Banco de Dados&lt;/h4&gt;


	&lt;p&gt;Mais uma briga no estilo Ruby/PHP, Windows/Mac OS/Linux, na qual não pretendo me envolver. De novo não tenho nenhuma razão específica pra ter escolhido o &lt;b&gt;MySQL&lt;/b&gt;. É um banco &lt;i&gt;open source&lt;/i&gt;, estável e fácil de instalar e configurar, mas o PostgreSQL também é. Poderia tê-lo escolhido, mas fui com a corrente&#8230;&lt;/p&gt;


	&lt;h4&gt;Sistema de Controle de Versão&lt;/h4&gt;


	&lt;p&gt;Essa era óbvia. De que adianta usar uma tecnologia inovadora como Ruby/Rails e me manter usando &lt;b&gt;&lt;span class=&quot;caps&quot;&gt;CVS&lt;/span&gt;&lt;/b&gt; ou &lt;b&gt;&lt;span class=&quot;caps&quot;&gt;SVN&lt;/span&gt;&lt;/b&gt;? Nem pensar!! Sem sombra de dúvidas &lt;b&gt;Git&lt;/b&gt;!&lt;/p&gt;


	&lt;h3&gt;2. Configurando o Ambiente&lt;/h3&gt;


	&lt;p&gt;Poucos minutos depois de preencher o cadastro no Linode recebi um e-mail informando que minha conta estava ativa. Fiz login e entrei no &lt;i&gt;Distro Wizard&lt;/i&gt;. Escolhi o Ubuntu como distribuição, defini os tamanhos para a imagem de disco e para a partição de &lt;i&gt;Swap&lt;/i&gt; e criei uma senha para o &lt;i&gt;root&lt;/i&gt;. Depois é só dar o &lt;i&gt;boot&lt;/i&gt; no sistema.&lt;/p&gt;


	&lt;p&gt;Na minha máquina de desenvolvimento abri o terminal e fiz login via &lt;span class=&quot;caps&quot;&gt;SSH&lt;/span&gt; no servidor usando a senha que acabei de criar. O endereço IP estava disponível na seção &lt;i&gt;Network&lt;/i&gt; no &lt;i&gt;Linode Manager&lt;/i&gt;.&lt;/p&gt;


&lt;pre class=&quot;cobalt&quot;&gt;
$ ssh root@xxx.xxx.xxx.xxx
&lt;/pre&gt;

	&lt;p&gt;Uma vez &lt;i&gt;logado&lt;/i&gt; configurei o &lt;i&gt;hostname&lt;/i&gt;:&lt;/p&gt;


&lt;pre class=&quot;cobalt&quot;&gt;
$ echo thoughtsoverflow.com &lt;span class=&quot;Keyword&quot;&gt;&amp;gt;&lt;/span&gt; /etc/hostname
$ /bin/hostname -F /etc/hostname
&lt;/pre&gt;

	&lt;p&gt;e como não sabia qual versão o Linode tinha instalado pra mim resolvi atualizar o sistema:&lt;/p&gt;


&lt;pre class=&quot;cobalt&quot;&gt;
$ apt-get update
$ apt-get dist-upgrade
&lt;/pre&gt;

	&lt;p&gt;Depois disso fui instalando tudo o que ia precisar. À medida que eu tentava executar algum comando que não dava certo eu via que precisava instalar de mais pacote e não sei se vou lembrar de todos, mas vou tentar.&lt;/p&gt;


	&lt;h4&gt;Ruby, RubyGems e Rails&lt;/h4&gt;


	&lt;p&gt;Já que eu resolvi usar o Passenger entrei de cabeça nos produtos da Phusion e instalei também o &lt;b&gt;Ruby Enterprise Edition&lt;/b&gt;. A instalação é trivial. É só baixar o pacote:&lt;/p&gt;


&lt;pre class=&quot;cobalt&quot;&gt;
$ mkdir /usr/local/src
$ cd /usr/local/src
$ wget http://rubyforge.org/frs/download.php/48623/ruby-enterprise-1.8.6-20081215.tar.gz
&lt;/pre&gt;

	&lt;p&gt;Depois descompactar:&lt;/p&gt;


&lt;pre class=&quot;cobalt&quot;&gt;
$ tar xzvf ruby-enterprise-1.8.6-20081215.tar.gz
&lt;/pre&gt;

	&lt;p&gt;E executar a instalação:&lt;/p&gt;


&lt;pre class=&quot;cobalt&quot;&gt;
$ ./ruby-enterprise-X.X.X/installer
&lt;/pre&gt;

	&lt;p&gt;Nesse ponto eu recebi uma mensagem de erro. Não tinha instalado os pacotes necessários à configuração, compilação e construção de aplicativos e bibliotecas, mais conhecidos por todos nós como &lt;i&gt;autoconf&lt;/i&gt;, &lt;i&gt;automake&lt;/i&gt;, &lt;i&gt;gcc&lt;/i&gt; e família. dããhhh ;) Então:&lt;/p&gt;


&lt;pre class=&quot;cobalt&quot;&gt;
$ apt-get instal build-essentials
$ apt-get instal ruby1.8-dev
&lt;/pre&gt;

	&lt;p&gt;Executada novamente a instalação do Ruby-EE tudo correu bem. É só seguir as instruções. Para instalar o &lt;i&gt;Rails&lt;/i&gt; (e muitas outras coisas) precisava do &lt;i&gt;RubyGems&lt;/i&gt;. Baixa, descompacta e instala. Mole!&lt;/p&gt;


&lt;pre class=&quot;cobalt&quot;&gt;
$ cd /usr/local/src
$ wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
$ tar xvzf rubygems-1.3.1.tgz
$ cd rubygems-1.3.1
$ ruby setub.rb
&lt;/pre&gt;

	&lt;p&gt;E por fim (dessa sessão) o &lt;i&gt;Rails&lt;/i&gt;:&lt;/p&gt;


&lt;pre class=&quot;cobalt&quot;&gt;
$ gem install rails
&lt;/pre&gt;

	&lt;h4&gt;Apache 2&lt;/h4&gt;


	&lt;p&gt;Como tudo mais a instalação do Apache no Ubuntu é uma moleza. Simplesmente:&lt;/p&gt;


&lt;pre class=&quot;cobalt&quot;&gt;
$ apt-get install apache2
$ apt-get install apache2-utils
$ apt-get install apache2-mpm-prefork
$ a2enmod rewrite
$ a2dissite default
$ rm -rf /var/www/apache2-default
&lt;/pre&gt;

	&lt;p&gt;Depois disso já tinha o Apache instalado, o módulo Rewrite ativo e o site padrão deletado. Tão fácil que vou logo para p próximo item.&lt;/p&gt;


	&lt;h4&gt;Passenger (mod_rails)&lt;/h4&gt;


	&lt;p&gt;Mais uma instalação que chega até a ser chata de tão boba (o pessoal da Phusion merece os parabéns por isso também). Rubygems nele:&lt;/p&gt;


&lt;pre class=&quot;cobalt&quot;&gt;
$ gem install passenger
$ passenger-install-apache2-module
&lt;/pre&gt;

	&lt;p&gt;No final copiei as informações mostradas pelo instalador para o arquivo /etc/apache2/conf.d/passenger para não mexer no arquivo de configuração original do Apache, mas criei um &lt;i&gt;link simbólico&lt;/i&gt; antes pra facilitar &lt;i&gt;upgrades&lt;/i&gt; futuros do Ruby EE:&lt;/p&gt;


&lt;pre class=&quot;cobalt&quot;&gt;
$ ln -s /opt/ruby-enterprise-1.8.6-20081205 /opt/ruby-ee
&lt;/pre&gt;

	&lt;p&gt;e finalmente o arquivo /etc/apache2/conf.d/passenger:&lt;/p&gt;


&lt;pre class=&quot;cobalt&quot;&gt;
LoadModule passenger_module /opt/ruby-ee/lib/ruby/gems/1.8/gems/passenger-2.0.6/ext/apache2/mod_passenger.so
PassengerRoot /opt/ruby-ee/lib/ruby/gems/1.8/gems/passenger-2.0.6
PassengerRuby /opt/ruby-ee/bin/ruby
&lt;/pre&gt;

	&lt;h4&gt;Git&lt;/h4&gt;


	&lt;p&gt;Sem enrolar:&lt;/p&gt;


&lt;pre class=&quot;cobalt&quot;&gt;
$ apt-get isntall git-core
&lt;/pre&gt;

	&lt;h4&gt;MySQL&lt;/h4&gt;


	&lt;p&gt;Graças ao &lt;span class=&quot;caps&quot;&gt;APT&lt;/span&gt; e ao RubyGems o servidor MySQL entra em ação quase instantaneamente. Bastam os seguintes comandos:&lt;/p&gt;


&lt;pre class=&quot;cobalt&quot;&gt;
$ apt-get install mysql-server libmysqlclient15-dev
$ gem install mysql
&lt;/pre&gt;

	&lt;p&gt;Mais fácil impossível.&lt;/p&gt;


	&lt;h3&gt;3. Fazendo deploy da Aplicação&lt;/h3&gt;


	&lt;p&gt;Tudo instalado, hora de enviar a aplicação da minha máquina de desenvolvimento para o servidor. Bem que eu poderia usar o Capistrano pra fazer isso (e vou), mas ainda preciso aprender algumas coisas para poder usá-lo&#8230; Fiz o básico mesmo. Acessei o servidor usando um cliente de &lt;span class=&quot;caps&quot;&gt;SFTP&lt;/span&gt;, no meu caso o CyberDuck, e copiei os arquivos para /var/www/mephisto. Ai foi só configurar o arquivo /etc/apache2/sites-available/blog para que o Passenger possa reconhecer esse diretório como uma aplicação Rails:&lt;/p&gt;


&lt;pre class=&quot;cobalt&quot;&gt;
&lt;span class=&quot;MetaTagA&quot;&gt;&lt;span class=&quot;Punctuation&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;MetaTagA&quot;&gt;VirtualHost&lt;/span&gt; &lt;span class=&quot;MetaTagA&quot;&gt;*:80&lt;/span&gt;&lt;span class=&quot;Punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;SupportConstant&quot;&gt;ServerName&lt;/span&gt; www.thoughtsoverflow.com
  &lt;span class=&quot;SupportConstant&quot;&gt;DocumentRoot&lt;/span&gt; /var/www/mephisto/public
  RailsEnv production
&lt;span class=&quot;MetaTagA&quot;&gt;&lt;span class=&quot;Punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;MetaTagA&quot;&gt;VirtualHost&lt;/span&gt;&lt;span class=&quot;Punctuation&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;/pre&gt;

	&lt;p&gt;E iniciar habilitar este site no Apache:&lt;/p&gt;


&lt;pre class=&quot;cobalt&quot;&gt;
$ a2ensite blog
$ /etc/init.d/apache2 restart
&lt;/pre&gt;

	&lt;p&gt;Pronto! Apache reiniciado:&lt;/p&gt;


	&lt;p&gt;E finalmente o teste: &lt;a href=&quot;http://thoughtsoverflow.com&quot;&gt;http://thoughtsoverflow.com&lt;/a&gt;!&lt;/p&gt;


	&lt;p&gt;&lt;b&gt;IT&#8217;S &lt;span class=&quot;caps&quot;&gt;ALIVE&lt;/span&gt;!&lt;/b&gt;&lt;/p&gt;


	&lt;p&gt;&lt;i&gt;Bem, isso é o que me lembro de ter feito, mas tenho certeza que deve ter algo faltando por que não fiz qualquer registro das ações. Se por acaso alguém for tentar seguir isso e não funcionar ficarei feliz em tentar ajudar.&lt;/i&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.thoughtsoverflow.com/">
    <author>
      <name>samflores</name>
    </author>
    <id>tag:www.thoughtsoverflow.com,2008-11-24:1</id>
    <published>2008-11-24T02:16:00Z</published>
    <updated>2009-01-01T11:44:23Z</updated>
    <category term="pessoal"/>
    <category term="rails"/>
    <link href="http://www.thoughtsoverflow.com/2008/11/24/puts-hello-blogosphere" rel="alternate" type="text/html"/>
    <title>puts "Hello, Blogosphere!"</title>
<content type="html">
            &lt;p&gt;Olá, Blogosfera! Bem vindo pra &lt;strong&gt;mim&lt;/strong&gt; ;)&lt;/p&gt;


	&lt;p&gt;Já há algum tempo venho pensando em criar um blog. Pra quê? Nem eu mesmo sei, mas quem sabe divulgar alguns pensamentos (principalmente no mundo Rails) possa ajudar alguns iniciantes como eu e possa também me ajudar nas muitas dúvidas que venham a surgir nesse caminho que estou trilhando (trilhando&#8230; trilhos&#8230; rails, vocês sacaram, né? Ah! Deixa pra lá&#8230;)&lt;/p&gt;


	&lt;p&gt;E pra começar, nada melhor que o começo, claro.&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;No princípio criou Deus os céus e a terra.&lt;/em&gt; Opa, não é esse começo. O post ia ficar &lt;strong&gt;muito&lt;/strong&gt; grande, se é que eu o terminaria. Mas falando sério, aqui vai um pouco da história da minha entrada no mundo Digital até o Rails.&lt;/p&gt;


	&lt;p&gt;Eu sempre gostei muito de computadores, gadgets, video games e outras tralhas digitais e quando eu tinha uns onze anos, mais ou menos, meu pai comprou um PC (para ele). Muuuuito moderno, com um processador super poderoso de 133MHz, absurdos 128MB de &lt;span class=&quot;caps&quot;&gt;RAM&lt;/span&gt; e rodando o revolucionário Windows 95. Como a maioria dos garotos da minha idade (se não todos) aquele novo brinquedo não tinha outra utilidade, a não ser &lt;strong&gt;jogar&lt;/strong&gt;.&lt;/p&gt;


	&lt;p&gt;Um certo dia, descansando de uma rodada de Caesar II, vi meu pai sentado ao computador, com um livro do lado, e na tela uma janela de um programa que se chamava, como fiquei sabendo depois, &lt;strong&gt;Delphi&lt;/strong&gt;. Não sabia direito o que ele estava fazendo, mas me aproximei mesmo assim e fiquei de olho. Em algum tempo vi o resultado do estudo dele: uma &lt;strong&gt;calculadora&lt;/strong&gt;! (na época meu pai sabia tanto de programação quanto eu). Ela fazia somente as quatro operações básicas e o design não era de um produto da Apple (que por sinal eu nunca tinha ouvido falar), mas daquele momento em diante a minha relação com a Gina (esse era o nome do computador) entrou num novo estágio.&lt;/p&gt;


	&lt;p&gt;Tudo que eu fazia era ler sobre Delphi, Pascal e parentes e tentava aplicar aquilo de alguma forma. Entrei também no meu primeiro fórum de discussão: eu e meu pai na cozinha dele. Aprendi muito, fiquei fascinado quando terminei a minha primeira versão de &lt;strong&gt;Tetris&lt;/strong&gt;, mas não me satisfiz.&lt;/p&gt;


	&lt;p&gt;Ganhei do meu avô o meu próprio PC, mais ou menos quando entrei na universidade (em 2000). Esse sim, uma super-máquina: um Pentium 486 usado ;) Mas foi aí que eu aprendi realmente como as coisas funcionavam. Instalei alguns pentes de memória, instalei o Linux e conheci então meu primeiro amor digital: a &lt;strong&gt;linguagem C&lt;/strong&gt;. Estudava Pascal na universidade, mas aquilo era um tédio pra mim. Depois de vários anos e versões de Delphi eu queria mais e comecei a estudar o kernel do Linux.&lt;/p&gt;


	&lt;p&gt;Encontrei na Internet (ah! esqueci de falar: nessa época eu ganhei da minha mãe uma conexão &lt;span class=&quot;caps&quot;&gt;ADSL&lt;/span&gt; de 256kbps) o código-fonte do primeiro &lt;em&gt;release&lt;/em&gt; feito pelo &lt;em&gt;Torvalds&lt;/em&gt; e praticamente o refiz. Claro que eu ia acompanhando o original, não criei nada de novo, mas se o &lt;em&gt;Bill Gates&lt;/em&gt; ficou rico copiando suas janelas do Mac, por que eu não poderia aprender um pouco copiando o Linux? Entendi conceitos como processos, páginas de memória (que não existiam nessa versão), sistemas de arquivos e fui me apaixonando cada vez mais.&lt;/p&gt;


	&lt;p&gt;As coisas avançavam na universidade, eu comecei a trabalhar (num banco, nada a ver com computadores) e eu fui apresentado a uma coisa nova: &lt;strong&gt;Programação Orientada a Objetos&lt;/strong&gt;. Tá certo que eu comecei com Delphi, mas sem nenhuma teoria pra me dar suporte: eu arrastava um botão, definia algumas opções dele, dava um duplo &lt;em&gt;click&lt;/em&gt; e digitava uns comandos dizendo o que ele ia fazer. Mas agora era diferente. Entrou na minha vida uma nova paixão: &lt;strong&gt;Java&lt;/strong&gt;.&lt;/p&gt;


	&lt;p&gt;Como eu já era um fã incondicional de C foi uma transição não muito complicada. Pelo menos a sintaxe já era familiar. Não foi difícil me acostumar com as idéias de classes, instâncias, herança e etc. Mas ainda me faltava uma barreira: a &lt;strong&gt;Web&lt;/strong&gt;.&lt;/p&gt;


	&lt;p&gt;Tudo (ou quase) que eu já tinha feito eram aplicações que rodavam localmente, no máximo usavam um banco de dados remoto. Já tinha lido algumas coisas sobre &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt; e já era capaz de criar algumas páginas com &lt;strong&gt;Dreamweaver&lt;/strong&gt; (grande coisa!), mas me faltava dinamismo. Tudo era estático, parado e sem graça. Então eu resolvi atacar em várias frentes: na universidade estávamos estudando &lt;span class=&quot;caps&quot;&gt;PHP&lt;/span&gt; e em casa eu aprendia tudo que era possível de se aprender sozinho sobre Flash e &lt;span class=&quot;caps&quot;&gt;J2EE&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;Tenho que admitir que não sou bom designer, mas o Flash 5 me levou ao ActionScript, que anos depois me levou ao Flex (isso já é outra história). E o &lt;span class=&quot;caps&quot;&gt;J2EE&lt;/span&gt;? Nunca fiz nada de muito útil com ele. Coisas como EJBs e Servlets, com seus milhões de arquivos &lt;span class=&quot;caps&quot;&gt;XML&lt;/span&gt; me deixavam irritado. Mesmo com a chegada do Java 5, onde as anotações facilitavam bastante o trabalho ainda perdia muito tempo criando &lt;em&gt;Entity classes&lt;/em&gt; com infinitos &lt;em&gt;getters&lt;/em&gt; e &lt;em&gt;setters&lt;/em&gt; e foi aí, há uns dois anos que conheci o &lt;strong&gt;Rails&lt;/strong&gt; (quase não chegava lá, hein?).&lt;/p&gt;


	&lt;p&gt;Não me lembro bem como cheguei a ele, mas encontrei o super-ultra-mega-hiper-famoso vídeo do blog em 15 minutos (se você é Railer, nem adianta negar: você já viu ;). Imediatamente (mesmo) eu instalei o framework, pois já tinha o &lt;strong&gt;Ruby&lt;/strong&gt; instalado, embora nunca tivesse usado nem soubesse da sua existência. (esqueci de mencionar que estava rodando um Mac &lt;span class=&quot;caps&quot;&gt;OS X&lt;/span&gt; &lt;em&gt;hackedo&lt;/em&gt; num PC, dessa vez um bom de verdade).&lt;/p&gt;


	&lt;p&gt;Eis que encontrei o atual amor da minha vida &#8211; virtual, claro. O jeito Ruby de fazer as coisas me encantou. Não consigo mais pensar em um código sem tentar deixá-lo o mais &lt;span class=&quot;caps&quot;&gt;DRY&lt;/span&gt; possível (embora nem sempre eu consiga). Comprei logo o livro do &lt;a href=&quot;http://akitaonrails.com&quot;&gt;Fábio Akita&lt;/a&gt; e o li avidamente. Devorei também o &lt;a href=&quot;http://oreilly.com/catalog/9780596516178/&quot;&gt;The Ruby Programming Language&lt;/a&gt; do &lt;strong&gt;David Flanagam&lt;/strong&gt; e do &#8220;&lt;strong&gt;Matz&lt;/strong&gt;&#8221;. Hoje ouço vários Podcasts sobre Ruby/Rails, a grande maioria dos meus &lt;em&gt;feeds &lt;span class=&quot;caps&quot;&gt;RSS&lt;/span&gt;&lt;/em&gt; são sobre o assunto (ainda tenho alguns de Java ;) e o blog foi uma maneira que encontrei de aprender mais, por isso escolhi o &lt;a href=&quot;http://mephistoblog.com&quot;&gt;Mephisto&lt;/a&gt;, mas esse já é o tema de um outro post por que esse aqui ficou meio grande.&lt;/p&gt;


	&lt;p&gt;Blogosfera, é uma grande prazer conhecê-la.&lt;/p&gt;
          </content>  </entry>
</feed>
