<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>codificando.com &#187; rails</title>
	<atom:link href="http://codificando.com/category/rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://codificando.com</link>
	<description>Desenvolvimento de Software com qualidade</description>
	<lastBuildDate>Mon, 19 Jul 2010 21:28:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>RVM com Passenger e múltiplas instâncias HTTPD</title>
		<link>http://codificando.com/2010/07/rvm-passenger-multiplas-instancias-httpd/</link>
		<comments>http://codificando.com/2010/07/rvm-passenger-multiplas-instancias-httpd/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 19:31:29 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
				<category><![CDATA[infra]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[deploy]]></category>
		<category><![CDATA[passenger]]></category>
		<category><![CDATA[rvm]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=500</guid>
		<description><![CDATA[No artigo anterior, falei sobre sobre RVM (Ruby Version Manager), explicando sobre instalação, configuração e seu funcionamento interno. Porém, não mencionei nada sobre seu uso com o Phusion Passenger (A.K.A mod_rails, mod_rack), e algumas pessoas me perguntaram sobre isso. Eu &#8230; <a href="http://codificando.com/2010/07/rvm-passenger-multiplas-instancias-httpd/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>No <a href="http://codificando.com/2010/07/gerencie-ambiente-ruby-rvm/">artigo anterior</a>, falei sobre sobre <a href="http://rvm.beginrescueend.com/" target="_blank">RVM (Ruby Version Manager)</a>, explicando sobre instalação, configuração e seu funcionamento interno. Porém, não mencionei nada sobre seu uso com o <a href="http://www.modrails.com/" target="_blank">Phusion Passenger (A.K.A mod_rails, mod_rack)</a>, e algumas pessoas me perguntaram sobre isso. Eu não abordei essa parte no artigo anterior por duas razões: A primeira é porque já era madrugada e o sono já me dominava <img src='http://codificando.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  e a segunda porque o artigo iria ficar muito grande e o conteúdo inicial já era suficiente para montar um ambiente local na máquina do desenvolvedor.</p>
<p>Esse artigo basea-se no uso do <a href="http://httpd.apache.org/" target="_blank">Apache 2.x</a> e no <a href="http://www.apple.com/macosx/" target="_blank">Sistema Operacional OSX</a>. Porém, as configurações em SOs <a href="http://en.wikipedia.org/wiki/POSIX" target="_blank">POSIX</a> se assemelham, portanto usuários do <a href="http://www.ubuntu.com/" target="_blank">Ubuntu</a> e afins não deverão ter nenhum problema.</p>
<h3><strong>Instalando o Passenger em uma Rubie/Gemset</strong></h3>
<p>Se você já usa RVM ou seguiu os passos do <a href="http://codificando.com/2010/07/gerencie-ambiente-ruby-rvm/">artigo anterior</a>, já deve ter tudo instalado e configurado e já possui uma Rubie com ou sem Gemsets (não faz diferença ter Gemsets para esse artigo). Caso contrário, leia novamente.</p>
<p>Abra o terminal e entre na sua Rubie/Gemset, instale a gem do passenger e o módulo do apache (ou nginx):</p>
<p><strong>$ rvm use rubie@gemset </strong><strong><span style="font-weight: normal;">#ex: rvm use 1.8.7@minhaapp</span><br />
$ gem install passenger<br />
$ rvmsudo passenger-install-apache2-module</strong></p>
<p>Muita atenção nesse momento. A instalação do módulo do apache (ou nginx) deve ser feita usando rvmsudo. Sem isso não funcionou comigo e acho que com ninguém vai funcionar <img src='http://codificando.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Feito isso, no fim da instalação do módulo ele vai mandar você colocar aquelas 3 linhas de configuração do Passenger nas suas configs do apache. Eu sugiro criar um arquivo <strong>passenger.conf</strong> ou similar e colar esse código dentro desse arquivo, pra não misturar com as configs básicas do Servidor Http. Se você estiver usando Mac, as configurações do apache provavelmente estarão em <strong>/etc/apache2</strong> e existe um diretório <strong>other</strong>, onde colocamos as configurações adicionais, como esta que acabamos de criar para o passenger.</p>
<p>Agora precisamos ajustar um detalhe nessas configurações do Passenger. Quando instalamos o Passenger e módulo do apache em uma RVM, a terceira linha da configuração (PassengerRuby) que a instalação sugere, não aponta para o diretório correto, e não funciona. É necessário fazer uma modificação e vou explicar.</p>
<p>Quando instalamos a RMV, ele cria um diretório chamado <strong>~/.rvm/bin</strong>, onde ficam todos os executáveis das rubies (ruby, irb, gem, ri, rdoc). A instalação do Passenger não entende isso e aponta para uma estrutura diferente, formada da seguinte maneira: <strong>~/.rvm/rubies/{Rubie}/bin/ruby</strong>, e isso não funciona. Portanto, precisamos alterar essa linha para que fique da segunte forma:</p>
<p><strong>$ PassengerRuby ~/.rvm/bin/{Rubie}@{Gemset}</strong></p>
<p>A documentação sugere uma forma diferente dessa, nos indicando executar <strong>rvm {Rubie@Gemset} &#8211;passenger</strong> e substituir essa terceira linha da segunte forma:</p>
<p><strong>$ PassengerRuby ~/.rvm/bin/passenger_ruby</strong></p>
<p>O que isso faz é criar um link symbólico de <strong>passenger_ruby</strong> apontando para o <strong>{Rubie}@{Gemset}</strong> que você quer. Eu acho isso desnecessário, principalmente porque você pode querer usar o passenger com várias Rubies diferentes, que é o que vou abordar mais adiante. Portanto, eu prefiro ficar com a primeira opção.</p>
<p>Agora basta configurar o VirtualHost (presumo que você já sabiba fazer isso) e reiniciar o Apache. Nesse momento tudo já deve estar funcionando corretamente e você deve estar conseguindo ver sua aplicação funcionando. Não se esqueça de configurar o <strong>/etc/hosts</strong> (é bastante comum ver gente capotando porque esqueceu essa parte, rs).</p>
<h3><strong>Múltiplas apps em Rubies diferentes</strong></h3>
<p>Segundo a documentação do Passenger, <a href="http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerRuby" target="_blank">a diretiva PassengerRuby deve ser usada apenas uma vez</a>, nos limitando a ter nossas aplicações em uma Rubie/Gemset única. Uma maneira comum de trabalhar com essa limitação é instalar o <a href="http://www.rubyenterpriseedition.com/" target="_blank">Ruby Enterprise Edition (i.e. Ruby EE)</a> ou qualquer versão de Ruby e instalar todas as gems de todos os projetos nessa Rubie. A partir daí, basta criar um VirtualHost para cada Aplicação. Essa era a forma que trabalhavamos sem RVM. Com RVM a idéia e sair dessa limitação, podendo por exemplo rodar uma app usando Ruby 1.8.7 com Rails 2.3 e outra com Ruby 1.9.2 e Rails3. Isso inclusive num ambiente de produção, isolando bem as apps e evitando conflitos. Vamos portanto resolver o problema de outra maneira.</p>
<h3><strong>Criando uma nova configuração para o Apache</strong></h3>
<p>Talvez você não saiba, mas o diretório <strong>/etc/apache2</strong> não é o servidor Apache HTTPD propriamente dito, mas as configurações que esse servidor usa quando você sobe a instância. Por padrão, o <strong>apachectl</strong> procura as configurações nesse diretório, mas é perfeitamente possível indicar o path do arquivo de configuração que você quer usar, e é baseado nisto que vamos usar uma alternativa melhor.</p>
<p>Antes de qualquer coisa, vamos trocar alguns parâmetros na configuração default do Apache, para podermos rodar mais de uma instância sem nenhum tipo de problema acidental. Por padrão, nas configurações em <strong>/etc/apache2/httpd.conf</strong> tem um <strong>Listen</strong> definito para <strong>*:80</strong>. Vamos mudar isso:</p>
<p><strong>Listen 127.0.0.1:80</strong></p>
<p>Mudemos também quaisquer configurações de VirtualHost existentes que estejam usando *:80:</p>
<p><strong>VirtualHost 127.0.0.1:80</strong></p>
<p>Agora chegou a hora de clonar essas configurações para uma nova. Esse trabalho é um pouco chato, portanto resolvi criar um Shell Script para isso chamado <a href="http://gist.github.com/481665">osx-clone-apache.sh</a> que pode ser <a href="http://gist.github.com/raw/481665/63fe90110b0466a186b28d8be05a4e5194ab2db4/osx-clone-apache.sh" target="_blank">baixado aqui</a> e está no <a href="http://gist.github.com/emerleite" target="_blank">meu gist</a>. Já testei no Snow Leopard e Leopard. Se alguém quiser fazer um para ubuntu e outros SOs é bem vindo e eu coloco como update no artigo.</p>
<p>Baixe o Script e execute a seguinte linha no terminal:</p>
<p><strong>$ sudo ./osx-clone-apache.sh http-clone 127.0.0.1:80 127.0.0.2:80</strong></p>
<p>Onde <strong>http-clone</strong> é o nome da nova configuração que será criada dentro de <strong>/etc</strong>, <strong>127.0.0.1:80</strong> é o <strong>Listen</strong> que está configurado em <strong>/etc/apache2</strong> e <strong>127.0.0.2:80</strong> é o novo <strong>Listen</strong>. Essa nova configuração <strong>não leva nada do diretório other nem do passenger_pane_vhosts</strong> se você estiver usando o <a href="http://www.fngtps.com/passenger-preference-pane" target="_blank">Passenger Preference Pane</a>.</p>
<p>Agora que temos uma nova config do apache apontando para 127.0.0.2:80 precisamos configurar nossa interface de rede para passar a responder a esse ip:</p>
<p><strong>$ ifconfig lo0 alias 127.0.0.2/32</strong></p>
<p>Se não me engano, no Ubuntu isso não é necessário, mas no Mac eu não conheço outra forma de fazer isso. Se alguém souber é bem vindo.</p>
<p>Nesse ponto basta repetir os mesmos procedimentos de configuração de Passenger para novas Rubies e Gemsets para essa nova configuração do apache que acabamos de criar. Mais uma vez não esqueça de ajustar suas configurações no <strong>/etc/hosts</strong>.</p>
<p>O último passo é subir uma instância do apache usando as novas configurações criadas.</p>
<p><strong>$ sudo apachectl -f /etc/{novaconfig}/httpd.conf -k start</strong></p>
<p>Pronto, você já tem 2 instâncias do Apache rodando versões de Ruby/Rails diferentes na mesma máquina.</p>
<h3><strong>Conclusão</strong></h3>
<p>O RVM (Ruby Version Manager) trouxe uma nova perspectiva no gerênciamento de ambientes Ruby/Rails. O Deploy de Aplicações com versões de Ruby e Rails usando Phusion Passenger numa mesma máquina se torna trivial, desde que se saiba o que está fazendo. As configurações apresentadas neste artigo podem (e acho que devem) ser usadas também em ambiente de produção, pois a SANDBOX criada é muito mais simples de ser gerênciada do que aquela mistura habitual de VirtualHosts, Gems e afins.</p>
<p>Mãos a obra !!!
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2010/07/rvm-passenger-multiplas-instancias-httpd/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Rails Summit 2009 &#8211; Resumo</title>
		<link>http://codificando.com/2009/10/rails-summit-2009-resumo/</link>
		<comments>http://codificando.com/2009/10/rails-summit-2009-resumo/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 23:57:17 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[engenharia]]></category>
		<category><![CDATA[jruby]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[testes]]></category>
		<category><![CDATA[evento]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=238</guid>
		<description><![CDATA[O Rails Summit terminou. Foi um evento bem legal, com ótimas palestras e a galera de sempre, que já conhecemos. Vou fazer um resumo das palestras que assisti. Chad Fowler &#8211; http://chadfowler.com A palestra do Chad foi como sempre focada &#8230; <a href="http://codificando.com/2009/10/rails-summit-2009-resumo/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>O Rails Summit terminou. Foi um evento bem legal, com ótimas palestras e a galera de sempre, que já conhecemos.</p>
<p>Vou fazer um resumo das palestras que assisti.</p>
<p><strong>Chad Fowler &#8211; <a href="http://chadfowler.com">http://chadfowler.com</a><br />
</strong></p>
<p>A palestra do Chad foi como sempre focada em carrreia. Ele advertiu os desenvolvedores que produzem porcaria todo dia sem peso algum na consciência. Ele pensa (e eu também) que nós não devemos investir tempo desnvolvendo coisas que já sabemos que são porcaria. E isso não é pessimismo, simplesmente é não perder tempo.</p>
<p>Chad falou também sobre os FUDs que sempre usam contra Ruby/Rails. Isso não foi nenhuma novidade mas ele abordou de forma bem divertida e valeu muto a pena.</p>
<p>Uma das partes mais legais foi a estatística mostrando que Ruby só faz parte de 6% da requisição do usuário. Na verdade não só ruby, mas outra tecnologia também. Isso bom para refletirmos sobre as discussões sobre performance e escalabilidade das aplicações web.</p>
<p><strong>Gregg Pollack &#8211; <a href="http://envlabs.com">http://envlabs.com</a><br />
</strong></p>
<p>O foco da palestra do gregg foi sobre como atacar alguns pontos para o otimizar sua aplicação Rails. Dentre as formas, ele apresentou algumas gems/plugins que ajudam a identificar alguns pontos para melhoria de performance em uma aplicação. Vou destacar algumas:</p>
<ul>
<li>Bullet &#8211; Ajuda a identificar queries com alguns problemas. Ex: N + 1</li>
<li>Rails Indexes &#8211; Identifica colunas onde deveriam ter índices. Se baseia nas buscas do sistema.</li>
<li>Scrooge &#8211; Faz com que o ActiveRecord passe a buscar somente os campos que estão sendo usados, ao invés de buscar todos os campos. Ex: em um find(:all), após a primeira execução, o scrooge identifica quais campos foram usados e ná próxima vez modifica a query para não buscar os campos desnecessários.</li>
<li>Rack Bug &#8211; É uma Monitor para aplicações Rack. Fornece basicamente todas as informações. Sessões, CPU, Memória, etc. Bem útil</li>
<li>oink &#8211; Mostra detalhes dos requests de cada controller. Ex: consumo de memória.</li>
<li>Cloud Crowd &#8211; Servidor para rodar tarefas em background. Feito em sinatra.</li>
</ul>
<p><strong>Ilya Grigorik &#8211; <a href="http://www.igvita.com/about/">http://www.igvita.com/about/</a><br />
</strong></p>
<p>Ilya falou sobre integração/comunicação de aplicações baseadas em web, utilizando-se de tecnologias como XMPP, AMQP, Webhooks, PubsubHubbub. Foi bem interessante, pois a maioria do auditório conhecia pouco sobre o assunto.</p>
<p><strong>Fabio Akita &#8211; <a href="http://akitaonrails.com">http://akitaonrails.com</a><br />
</strong></p>
<p>A palestra do akita foi sobre agile. Ele falou bastante sobre a teoria do caos, sistemas complexos e a evolução das coisas. No fim, o recado maior foi alertar que agile não é o último estágio no desenvolvimento de software, deixando claro que temos (e vamos) que evoluir ainda mais.</p>
<p><strong>Glenn Vanderburg &#8211; <a href="http://blog.thinkrelevance.com">http://blog.thinkrelevance.com</a><br />
</strong></p>
<p>Palestra sobre o framework Tarantula, que tem por objetivo fazer testes de ataques XSS, SQL Injection, entre outros. Achei bem interessante, pois é possível automatizar esse passo, que geralmente fazemos manualmente. Glenn inclusive sugeriu que faça parte do build antes de lançar um release.</p>
<p><strong>Fabio Kung &#8211; <a href="http://fabiokung.com/">http://fabiokung.com/</a><br />
</strong></p>
<p>Fabio fez uma ótima palestra sobre DSLs (Domain Specific Languages) internas usando Ruby. Ao invés de apresentar exemplos simples ele apresentou um exemplo real de uma necessidade de uma aplicação que trata de instâncias de máquinas na cloud da Locaweb.</p>
<p><strong>Carlos Vilella <a href="http://lixo.org">http://lixo.org</a><br />
</strong></p>
<p>Carlos fez uma palestra bem curta, falando sobre o uso de Ruby na Thoughtworks. Falou sobre os poucos projetos que falharam e deixou o restante do tempo para perguntas.</p>
<p><strong>Tapajós &#8211; <a href="http://tapajos.me/">http://tapajos.me/</a><br />
</strong></p>
<p>A palestra do Tapajós foi sobre bancos de dados não relacionais. Focado bastante em CouchDB e Rails, ele explorou algumas features chaves na utilização dessa abordagem de banco de dados, também fazendo uma curta palestra e deixando boa parte do tempo para perguntas.</p>
<p><strong>Bruno Miranda &#8211; Rails não escala</strong></p>
<p>Eu gostei muto da palestra do Bruno, apesar de achar que o que ele falou é básico para qualquer Arquiteto de Software experiente.  Bruno falou bastante sobre filas, sharding, Cache, Proxy reverso, otimização de queries e sobre rodar processos em background. Acho que a palestra dele foi válida pois qualquer um hoje em dia que aprende tecnologias como Rails sai fazendo aplicações sem um conhecimento mínimo de arquitetura de software. Quando as coisas não dão certo culpam a tecnologia, gerando FUDs.</p>
<p><strong>Vinicius Teles (<a href="http://improveit.com.br/">http://improveit.com.br/</a>) &#8211; Empreendorismo</strong></p>
<p>A palestra do Vinícius foi ótima para quem pretende desenvolver um produto e/ou abrir seu próprio negócio. Ele abordou pontos como Fluxo de Caixa, oportunidades vastas que existem no Brasil e o impacto de pequenas decisões certas ou erradas que tomamos na nossa vida profissional.</p>
<p><strong>Obie Fernandes &#8211; <a href="http://obiefernandez.com/">http://obiefernandez.com/</a><br />
</strong></p>
<p>A palestra do Obie encerrou o evento em grande estilo, falando sobre talento, esforço e reforçando bem <a href="http://codificando.com/2009/06/07/afinal-o-que-seria-um-profissional-senior/">o que eu disse há um tempo atrás nesse blog</a>. Não adianta você saber um monte de coisas se não souber bem, se não tiver experiência com isso, treino, treino e mais treino. Você só ganha nível com tempo e treino, isso é fato.</p>
<p>Pra finalizar, gostaria de parabenizar ao <a href="http://akitaonrails.com">Fabio Akita</a> e a <a href="http://www.locaweb.com.br">Locaweb</a> pelo excelente evento mais uma vez.</p>
<p>E ano que vem tem mais.
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2009/10/rails-summit-2009-resumo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Rails Summit 2009, e la vamos nós!!!</title>
		<link>http://codificando.com/2009/08/rails-summit-2009-e-la-vamos-nos/</link>
		<comments>http://codificando.com/2009/08/rails-summit-2009-e-la-vamos-nos/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 20:04:05 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[testes]]></category>
		<category><![CDATA[linguagens]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=175</guid>
		<description><![CDATA[Dias 13 e 14 de outubro estarei presente no Rails Summit 2009. Acontecerá em São Paulo com a organização do Fabio Akita da Locaweb. No ano passado pude estar presente e realmente foi um evento excelente e de muito alto &#8230; <a href="http://codificando.com/2009/08/rails-summit-2009-e-la-vamos-nos/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dias 13 e 14 de outubro estarei presente no Rails Summit 2009. Acontecerá em São Paulo com a organização do <a href="http://akitaonrails.com/" target="_blank">Fabio Akita da Locaweb</a>.</p>
<p>No ano passado pude estar presente e realmente foi um evento excelente e de muito alto nível. Fiquei super satisfeito e esse ano acredito que será melhor ainda. Participaram diversos palestrantes internacionais e os nossos colegas palestrantes nacionais também mandaram muito bem.</p>
<p><img class="alignnone" title="Rails Summit" src="http://www.railssummit.com.br/images/banners/vouParticipar_210x60.jpg" alt="" width="210" height="60" /></p>
<p>E você, está esperando o que para se inscrever?</p>
<p><a href="http://www.railssummit.com.br/" target="_blank">http://www.railssummit.com.br/</a>
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2009/08/rails-summit-2009-e-la-vamos-nos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails Summit: Mais um Evento, mais um livro</title>
		<link>http://codificando.com/2008/10/rails-summit-mais-um-evento-mais-um-livro/</link>
		<comments>http://codificando.com/2008/10/rails-summit-mais-um-evento-mais-um-livro/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 19:45:17 +0000</pubDate>
		<dc:creator>Emerson Macedo</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[livros]]></category>
		<category><![CDATA[pragmatic]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://codificando.com/?p=43</guid>
		<description><![CDATA[Nesses últimos 2 dias, estive presentei no Rails Summit Latin américa. A organização do evento está de parabéns, principalmente o Fabio Akita, que conseguiu trazer pessoas chave da comunidade Rails mundial. As únicas coisas que senti falta foi uma camiseta &#8230; <a href="http://codificando.com/2008/10/rails-summit-mais-um-evento-mais-um-livro/">Continue lendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.pragprog.com/titles/twa/thoughtworks-anthology" target="_blank"><img class="alignright" src="http://www.pragprog.com/images/covers/120x144/twa.jpg?1202927363" alt="" /></a>Nesses últimos 2 dias, estive presentei no <a href="http://www.locaweb.com.br/railssummit">Rails Summit Latin américa</a>. A organização do evento está de parabéns, principalmente o <a href="http://www.akitaonrails.com/" target="_blank">Fabio Akita</a>, que conseguiu trazer pessoas chave da comunidade Rails mundial. As únicas coisas que senti falta foi uma camiseta do evento e a tradicional livraria, essa última eu tolerei pois ganhei um livro na palestra do <a href="http://www.dtsato.com/blog/" target="_blank">Danilo Sato</a> <img src='http://codificando.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Até a próxima &#8230;
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://codificando.com/2008/10/rails-summit-mais-um-evento-mais-um-livro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
