<?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>leonardofaria.net &#187; rubyonrails</title>
	<atom:link href="http://leonardofaria.net/tags/rubyonrails/feed/" rel="self" type="application/rss+xml" />
	<link>http://leonardofaria.net</link>
	<description>Esse é o laboratório de trabalhos, textos, experimentos e (algumas) bobagens de Leonardo Faria, Programador de Interfaces do interior de Minas. Leonardo desenvolve projetos com Ruby on Rails, PHP e Flash.</description>
	<lastBuildDate>Wed, 26 Oct 2011 00:20:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>Geração de PDFs indolor no Rails 3</title>
		<link>http://leonardofaria.net/2011/08/31/geracao-de-pdfs-indolor-no-rails-3/</link>
		<comments>http://leonardofaria.net/2011/08/31/geracao-de-pdfs-indolor-no-rails-3/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 00:50:10 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=1244</guid>
		<description><![CDATA[Em um trabalho recente, precisei gerar relatórios em PDF. Considerei algumas soluções e optei por uma que não me fizesse perder os cabelos e reescrever código: wicked_pdf. wicked_pdf usa wkhtmltopdf, um incrível utilitário que converte HTML para PDF, usando Webkit e QT. Você não precisa compilá-lo, basta apenas copiar o binário certo do site do [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2007/04/12/criando-rss-com-rails/' rel='bookmark' title='Permanent Link: Criando RSS com Rails'>Criando RSS com Rails</a></li>
<li><a href='http://leonardofaria.net/2009/06/07/sitemapxml-no-rails/' rel='bookmark' title='Permanent Link: sitemap.xml no Rails'>sitemap.xml no Rails</a></li>
<li><a href='http://leonardofaria.net/2007/05/06/manipulando-datas-no-rails/' rel='bookmark' title='Permanent Link: Manipulando datas no Rails'>Manipulando datas no Rails</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Em um trabalho recente, precisei gerar relatórios em PDF. Considerei algumas soluções e optei por uma que não me fizesse perder os cabelos e reescrever código: <a href="https://github.com/mileszs/wicked_pdf">wicked_pdf</a>.</p>
<p>wicked_pdf usa <a href="http://code.google.com/p/wkhtmltopdf/">wkhtmltopdf</a>, um incrível utilitário que converte HTML para PDF, usando Webkit e QT. Você não precisa compilá-lo, basta apenas copiar o binário certo do site do projeto.</p>
<h3>Uso</h3>
<p>Após instalar a gem em seu sistema, você pode gerar os PDFs sem escovar bits: adicione o formato pdf entre as possibilidades de respostas de uma action, como abaixo:
<div class="syntax_hilite">
<div id="ruby-4">
<div class="ruby"><span class="kw1">def</span> report<br />&nbsp; @order = Order.<span class="me1">find</span><span class="br0">&#40;</span>params<span class="br0">&#91;</span>:id<span class="br0">&#93;</span><span class="br0">&#41;</span><br />&nbsp; <br />&nbsp; respond_to <span class="kw1">do</span> |format|<br />&nbsp; &nbsp; <span class="kw3">format</span>.<span class="me1">html</span><br />&nbsp; &nbsp; <span class="kw3">format</span>.<span class="me1">pdf</span> <span class="kw1">do</span><br />&nbsp; &nbsp; &nbsp; render :pdf =&gt; <span class="st0">"order-#{params[:id]}"</span><br />&nbsp; &nbsp; <span class="kw1">end</span><br />&nbsp; <span class="kw1">end</span>&nbsp; <br /><span class="kw1">end</span></div>
</div>
</div>
<p>
Se quiser, você pode usar a mesma view do formato html:
<div class="syntax_hilite">
<div id="ruby-5">
<div class="ruby">render :pdf =&gt; <span class="st0">"order-#{params[:id]}"</span>, :template =&gt; <span class="st0">"/orders/report.html.erb"</span></div>
</div>
</div>
<p>
O readme da gem apresenta as informações pertinentes para seu uso e não é meu objetivo reproduzi-lo aqui, apenas chamo a atenção para um detalhe: em hosts compartilhados, você precisará definir o path correto do wkhtmltopdf. Para isso, você pode criar um initializer com o seguinte conteúdo:
<div class="syntax_hilite">
<div id="ruby-6">
<div class="ruby">WickedPdf.<span class="me1">config</span> = <span class="br0">&#123;</span> :exe_path =&gt; '/home/meuusario/wkhtmltopdf' <span class="br0">&#125;</span></div>
</div>
</div>
<p>
PS. você pode usar o wkhtmltopdf no PHP com o <a href="https://github.com/knplabs/snappy">Snappy</a>. Não testei, mas pode ser uma boa opção.</p>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2007/04/12/criando-rss-com-rails/' rel='bookmark' title='Permanent Link: Criando RSS com Rails'>Criando RSS com Rails</a></li>
<li><a href='http://leonardofaria.net/2009/06/07/sitemapxml-no-rails/' rel='bookmark' title='Permanent Link: sitemap.xml no Rails'>sitemap.xml no Rails</a></li>
<li><a href='http://leonardofaria.net/2007/05/06/manipulando-datas-no-rails/' rel='bookmark' title='Permanent Link: Manipulando datas no Rails'>Manipulando datas no Rails</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2011/08/31/geracao-de-pdfs-indolor-no-rails-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Validações personalizadas no Rails 3</title>
		<link>http://leonardofaria.net/2011/06/05/validacoes-personalizadas-no-rails-3/</link>
		<comments>http://leonardofaria.net/2011/06/05/validacoes-personalizadas-no-rails-3/#comments</comments>
		<pubDate>Sun, 05 Jun 2011 22:55:12 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=1180</guid>
		<description><![CDATA[O método validates do Rails 3 agrupou os antigos métodos de validação do Rails 2. Na versão 3, usamos o método validates acompanhado do atributo a ser validado e de suas respectivas regras de validação. Trabalhando em um novo projeto necessito validar CPFs e CNPJs, e consequentemente, precisei criar validações adicionais. Esse post mostra como [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2008/12/26/edge-rails-metodo-render-mais-esperto/' rel='bookmark' title='Permanent Link: Edge Rails: método render mais esperto'>Edge Rails: método render mais esperto</a></li>
<li><a href='http://leonardofaria.net/2007/12/19/ruby-on-rails-na-caveira/' rel='bookmark' title='Permanent Link: Ruby on Rails na caveira!'>Ruby on Rails na caveira!</a></li>
<li><a href='http://leonardofaria.net/2009/10/15/o-ecossistema-rails/' rel='bookmark' title='Permanent Link: O ecossistema Rails'>O ecossistema Rails</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>O método <a href="http://api.rubyonrails.org/classes/ActiveModel/Validations/ClassMethods.html#method-i-validates">validates</a> do Rails 3 <a href="http://lindsaar.net/2010/1/31/validates_rails_3_awesome_is_true">agrupou os antigos métodos</a> de validação do Rails 2. Na versão 3, usamos o método validates acompanhado do atributo a ser validado e de suas respectivas regras de validação. Trabalhando em um novo projeto necessito validar CPFs e CNPJs, e consequentemente, precisei criar validações adicionais. Esse post mostra como realizei isso.</p>
<p>Inicialmente, criei na pasta <code>lib/</code> o arquivo <code>my_validations.rb</code>, com o seguinte conteúdo:</p>
<div class="syntax_hilite">
<div id="ruby-9">
<div class="ruby"><span class="co1"># encoding: utf-8</span></p>
<p><span class="kw1">class</span> MyValidations &lt;ActiveModel::Validator<br />&nbsp; <span class="kw1">def</span> validate<span class="br0">&#40;</span>record<span class="br0">&#41;</span><br />&nbsp; &nbsp; record.<span class="me1">errors</span><span class="br0">&#91;</span>:cpf<span class="br0">&#93;</span> &lt;&lt;<span class="st0">"CPF (#{record.cpf}) é inválido"</span> <span class="kw1">unless</span> Cpf.<span class="me1">new</span><span class="br0">&#40;</span>record.<span class="me1">cpf</span><span class="br0">&#41;</span>.<span class="me1">valido</span>?<br />&nbsp; &nbsp; record.<span class="me1">errors</span><span class="br0">&#91;</span>:cnpj<span class="br0">&#93;</span> &lt;&lt;<span class="st0">"CNPJ (#{record.cnpj}) é inválido"</span> <span class="kw1">unless</span> Cnpj.<span class="me1">new</span><span class="br0">&#40;</span>record.<span class="me1">cnpj</span><span class="br0">&#41;</span>.<span class="me1">valido</span>?<br />&nbsp; <span class="kw1">end</span><br /><span class="kw1">end</span></div>
</div>
</div>
<p></p>
<p>Veja que na primeira linha desse arquivo eu indico o encoding usado, para evitar problemas com os acentos. Utilizo o <a href="https://github.com/tapajos/brazilian-rails">brazilian-rails</a> para confirmar se os documentos informados são ou não válidos. No meu model, eu invoco o método <a href="http://api.rubyonrails.org/classes/ActiveModel/Validations/ClassMethods.html#method-i-validates_with">validates_with</a>, indicando a classe recém-criada. </p>
<div class="syntax_hilite">
<div id="ruby-10">
<div class="ruby">validates_with MyValidations</div>
</div>
</div>
<p></p>
<p>Esse foi um exemplo de como resolvi meu problema. Existem <a href="http://thelucid.com/2010/01/08/sexy-validation-in-edge-rails-rails-3/">outros</a> <a href="http://omgbloglol.com/post/392895742/improved-validations-in-rails-3">posts</a> sobre o assunto por aí, boa sorte!</p>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2008/12/26/edge-rails-metodo-render-mais-esperto/' rel='bookmark' title='Permanent Link: Edge Rails: método render mais esperto'>Edge Rails: método render mais esperto</a></li>
<li><a href='http://leonardofaria.net/2007/12/19/ruby-on-rails-na-caveira/' rel='bookmark' title='Permanent Link: Ruby on Rails na caveira!'>Ruby on Rails na caveira!</a></li>
<li><a href='http://leonardofaria.net/2009/10/15/o-ecossistema-rails/' rel='bookmark' title='Permanent Link: O ecossistema Rails'>O ecossistema Rails</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2011/06/05/validacoes-personalizadas-no-rails-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Novo micro-projeto: Guia da TV</title>
		<link>http://leonardofaria.net/2011/01/25/novo-micro-projeto-guia-da-tv/</link>
		<comments>http://leonardofaria.net/2011/01/25/novo-micro-projeto-guia-da-tv/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 18:33:40 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[empreendedorismo]]></category>
		<category><![CDATA[portfolio]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=1125</guid>
		<description><![CDATA[Aproveitei algumas horas das minhas férias e lancei um novo micro-projeto: Guia da TV. O Guia da TV permite você saber quais programas estão para começar. Algumas coisas ainda serão aprimoradas, mas o aplicativo já está em produção. Ele foi feito com Rails 3 e algumas pitadas de jQuery em sua interface. O conteúdo é [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2010/10/09/novo-micro-projeto-horoscopo-no-msn/' rel='bookmark' title='Permanent Link: Novo micro-projeto: HORÓSCOPO NO MSN'>Novo micro-projeto: HORÓSCOPO NO MSN</a></li>
<li><a href='http://leonardofaria.net/2010/02/21/novo-micro-projeto-xavecator/' rel='bookmark' title='Permanent Link: Novo micro-projeto: XAVECATOR'>Novo micro-projeto: XAVECATOR</a></li>
<li><a href='http://leonardofaria.net/2007/07/05/deployment-na-dreamhost-e-railsplayground/' rel='bookmark' title='Permanent Link: Deployment na Dreamhost e RailsPlayground'>Deployment na Dreamhost e RailsPlayground</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Aproveitei algumas horas das minhas férias e lancei um novo micro-projeto: <strong><a href="http://guiadatv.divirta.me">Guia da TV</a></strong>. O <strong>Guia da TV</strong> permite você saber quais programas estão para começar.</p>
<p><center><a href="http://guiadatv.divirta.me"><img src="http://leonardofaria.net/wp-content/uploads/2011/01/guiadatv.jpg" class="foto" width="500" /></a></center></p>
<p>Algumas coisas ainda serão aprimoradas, mas o aplicativo já está em produção. Ele foi feito com Rails 3 e algumas pitadas de jQuery em sua interface. O conteúdo é fornecido pela <a href="http://revistaeletronica.com.br/">Revista Eletrônica</a>. Se você gosta de ver TV, use-o e o recomende no Facebook ;)</p>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2010/10/09/novo-micro-projeto-horoscopo-no-msn/' rel='bookmark' title='Permanent Link: Novo micro-projeto: HORÓSCOPO NO MSN'>Novo micro-projeto: HORÓSCOPO NO MSN</a></li>
<li><a href='http://leonardofaria.net/2010/02/21/novo-micro-projeto-xavecator/' rel='bookmark' title='Permanent Link: Novo micro-projeto: XAVECATOR'>Novo micro-projeto: XAVECATOR</a></li>
<li><a href='http://leonardofaria.net/2007/07/05/deployment-na-dreamhost-e-railsplayground/' rel='bookmark' title='Permanent Link: Deployment na Dreamhost e RailsPlayground'>Deployment na Dreamhost e RailsPlayground</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2011/01/25/novo-micro-projeto-guia-da-tv/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Novo micro-projeto: HORÓSCOPO NO MSN</title>
		<link>http://leonardofaria.net/2010/10/09/novo-micro-projeto-horoscopo-no-msn/</link>
		<comments>http://leonardofaria.net/2010/10/09/novo-micro-projeto-horoscopo-no-msn/#comments</comments>
		<pubDate>Sat, 09 Oct 2010 20:16:04 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[experiment]]></category>
		<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[empreendorismo]]></category>
		<category><![CDATA[portfolio]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=1085</guid>
		<description><![CDATA[Chegou mais um serviço de utilidade pública feita por mim. Depois do codestacker, autosimulado e xavecator, por acaso tive contato com algumas coisinhas do protocolo do MSN e desse contato saiu o Horóscopo por MSN. Horóscopo por MSN foi uma aplicação escrita em algumas noites e seu nome já diz tudo: você recebe o horóscopo [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2011/01/25/novo-micro-projeto-guia-da-tv/' rel='bookmark' title='Permanent Link: Novo micro-projeto: Guia da TV'>Novo micro-projeto: Guia da TV</a></li>
<li><a href='http://leonardofaria.net/2010/02/21/novo-micro-projeto-xavecator/' rel='bookmark' title='Permanent Link: Novo micro-projeto: XAVECATOR'>Novo micro-projeto: XAVECATOR</a></li>
<li><a href='http://leonardofaria.net/2007/07/05/deployment-na-dreamhost-e-railsplayground/' rel='bookmark' title='Permanent Link: Deployment na Dreamhost e RailsPlayground'>Deployment na Dreamhost e RailsPlayground</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Chegou mais um serviço de utilidade pública feita por mim. Depois do <a href="http://codestacker.com"><strong>codestacker</strong></a>, <a href="http://autosimulado.com.br"><strong>autosimulado</strong></a> e <a href="http://xavecator.leonardofaria.net"><strong>xavecator</strong></a>, por acaso tive contato com algumas coisinhas do protocolo do MSN e desse contato saiu o <a href="http://horoscopo.leonardofaria.net"><strong>Horóscopo por MSN</strong></a>. <a href="http://horoscopo.leonardofaria.net"><strong>Horóscopo por MSN</strong></a> foi uma aplicação escrita em algumas noites e seu nome já diz tudo: você recebe o horóscopo do dia em seu MSN.</p>
<p><center><a href="http://horoscopo.leonardofaria.net/"><img src="http://leonardofaria.net/wp-content/uploads/2010/10/horoscopo.jpg" alt="Horóscopo no MSN" title="Horóscopo no MSN" width="500" class="foto" /></a></center></p>
<p>Funciona assim: você adiciona na sua lista de AmIgUxOs o contato horoscopo@leonardofaria.net. Vai no site e escolhe o signo que deseja ser informado. Pronto. Uma vez por dia, o robozinho da aplicação vai entregar no seu MSN o seu horóscopo.</p>
<p>P.S. eu não acredito em horóscopo.<br />
P.S. 2: aplicação foi feita com Rails 3 e PHP. O PHP é responsável por conversar com o MSN enquanto a parte Rails do aplicativo gerencia todo o resto. Minha vontade é portar a parte PHP para Ruby.</p>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2011/01/25/novo-micro-projeto-guia-da-tv/' rel='bookmark' title='Permanent Link: Novo micro-projeto: Guia da TV'>Novo micro-projeto: Guia da TV</a></li>
<li><a href='http://leonardofaria.net/2010/02/21/novo-micro-projeto-xavecator/' rel='bookmark' title='Permanent Link: Novo micro-projeto: XAVECATOR'>Novo micro-projeto: XAVECATOR</a></li>
<li><a href='http://leonardofaria.net/2007/07/05/deployment-na-dreamhost-e-railsplayground/' rel='bookmark' title='Permanent Link: Deployment na Dreamhost e RailsPlayground'>Deployment na Dreamhost e RailsPlayground</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2010/10/09/novo-micro-projeto-horoscopo-no-msn/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iPhone e Rails</title>
		<link>http://leonardofaria.net/2010/02/21/iphone-e-rails/</link>
		<comments>http://leonardofaria.net/2010/02/21/iphone-e-rails/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 23:36:13 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[macintosh]]></category>
		<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=927</guid>
		<description><![CDATA[O desenvolvimento de web apps para iPhone requer alguns cuidados especiais. Em nossas aplicações significa pensar em um layout para o gadget. Uma forma rápida de definir o layout para iPhone é através do código abaixo: Para quem quer conhecer o desenvolvimento de web apps para iPhone, vale conhecer os projetos jQTouch e iWebKit. O [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2010/02/21/novo-micro-projeto-xavecator/' rel='bookmark' title='Permanent Link: Novo micro-projeto: XAVECATOR'>Novo micro-projeto: XAVECATOR</a></li>
<li><a href='http://leonardofaria.net/2007/08/19/5-dicas-para-trabalhar-com-rails/' rel='bookmark' title='Permanent Link: 5 dicas para trabalhar com Rails'>5 dicas para trabalhar com Rails</a></li>
<li><a href='http://leonardofaria.net/2010/08/15/cylay-alternativa-ao-find-my-iphone/' rel='bookmark' title='Permanent Link: Cylay, alternativa ao Find My iPhone'>Cylay, alternativa ao Find My iPhone</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>O desenvolvimento de web apps para iPhone requer alguns cuidados especiais. Em nossas aplicações significa pensar em um layout para o gadget. Uma forma rápida de definir o layout para iPhone é através do código abaixo:  </p>
<p>Para quem quer conhecer o desenvolvimento de web apps para iPhone, vale conhecer os projetos <a href="http://www.jqtouch.com">jQTouch</a> e <a href="http://iwebkit.net/">iWebKit</a>. O jQTouch é um plugin do jQuery com uma série de recursos de animação semelhantes ao do aparelho e possui inclusive a funcionalidade de <a href="http://www.jqtouch.com/preview/demos/ext_location/">Geo Location</a>. Já o iWebKit é um framework que não depende de nenhuma biblioteca e que possui também bons recursos para montagem de interfaces.</p>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2010/02/21/novo-micro-projeto-xavecator/' rel='bookmark' title='Permanent Link: Novo micro-projeto: XAVECATOR'>Novo micro-projeto: XAVECATOR</a></li>
<li><a href='http://leonardofaria.net/2007/08/19/5-dicas-para-trabalhar-com-rails/' rel='bookmark' title='Permanent Link: 5 dicas para trabalhar com Rails'>5 dicas para trabalhar com Rails</a></li>
<li><a href='http://leonardofaria.net/2010/08/15/cylay-alternativa-ao-find-my-iphone/' rel='bookmark' title='Permanent Link: Cylay, alternativa ao Find My iPhone'>Cylay, alternativa ao Find My iPhone</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2010/02/21/iphone-e-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Novo micro-projeto: XAVECATOR</title>
		<link>http://leonardofaria.net/2010/02/21/novo-micro-projeto-xavecator/</link>
		<comments>http://leonardofaria.net/2010/02/21/novo-micro-projeto-xavecator/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 23:14:47 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[empreendorismo]]></category>
		<category><![CDATA[portfolio]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=922</guid>
		<description><![CDATA[O nome até parece de app do Aurélio, ou de produtos das Organizações Tabajara, mas num fim-de-semana sem nada pra fazer, resolvi fazer um pet project para ver o Rails 3 funcionando e, para conhecer o jQTouch. O XAVECATOR é para nerds pessoas cara-de-pau e/ou sem inspiração. Bem é verdade que tem coisa aí que [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2010/10/09/novo-micro-projeto-horoscopo-no-msn/' rel='bookmark' title='Permanent Link: Novo micro-projeto: HORÓSCOPO NO MSN'>Novo micro-projeto: HORÓSCOPO NO MSN</a></li>
<li><a href='http://leonardofaria.net/2011/01/25/novo-micro-projeto-guia-da-tv/' rel='bookmark' title='Permanent Link: Novo micro-projeto: Guia da TV'>Novo micro-projeto: Guia da TV</a></li>
<li><a href='http://leonardofaria.net/2009/04/03/integracao-continua-no-autosimulado/' rel='bookmark' title='Permanent Link: Integração contínua no autosimulado'>Integração contínua no autosimulado</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>O nome até parece de <a href="http://www.coisinha.com.br/miguxeitor/">app</a> do <a href="http://aurelio.wordpress.com/">Aurélio</a>, ou de produtos das Organizações Tabajara, mas num fim-de-semana sem nada pra fazer, resolvi fazer um pet project para ver o Rails 3 funcionando e, para conhecer o <a href="http://jqtouch.com/">jQTouch</a>.</p>
<p><center><a href="http://xavecator.leonardofaria.net"><img src="http://leonardofaria.net/wp-content/uploads/2010/02/captura-de-tela-2010-02-21-as-200030.jpg" alt="xavecator" title="xavecator" width="500" class="foto" /></a></center></p>
<p>O <strong><a href="http://xavecator.leonardofaria.net">XAVECATOR</a></strong> é para <s>nerds</s> pessoas cara-de-pau e/ou sem inspiração. Bem é verdade que tem coisa aí que digno de <a href="http://www.youtube.com/watch?v=_-Fi9Sy52jI">beijo na boca ou tapa na cara</a>, mas tudo é conversado e entendido ;)</p>
<p>P.S. 1: ainda estou atualizando o 'banco de dados'. Não está tudo pronto ainda.<br />
P.S. 2: se você tem um iPhone pode acessar o site nele onde precisar<br />
P.S. 3: você pode seguir o <a href="http://www.twitter.com/xavecator">XAVECATOR no Twitter</a></p>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2010/10/09/novo-micro-projeto-horoscopo-no-msn/' rel='bookmark' title='Permanent Link: Novo micro-projeto: HORÓSCOPO NO MSN'>Novo micro-projeto: HORÓSCOPO NO MSN</a></li>
<li><a href='http://leonardofaria.net/2011/01/25/novo-micro-projeto-guia-da-tv/' rel='bookmark' title='Permanent Link: Novo micro-projeto: Guia da TV'>Novo micro-projeto: Guia da TV</a></li>
<li><a href='http://leonardofaria.net/2009/04/03/integracao-continua-no-autosimulado/' rel='bookmark' title='Permanent Link: Integração contínua no autosimulado'>Integração contínua no autosimulado</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2010/02/21/novo-micro-projeto-xavecator/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Syntax Highlight on Rails</title>
		<link>http://leonardofaria.net/2009/12/02/syntax-highlight-on-rails/</link>
		<comments>http://leonardofaria.net/2009/12/02/syntax-highlight-on-rails/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 20:52:12 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[codestacker]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=903</guid>
		<description><![CDATA[Quer fazer um syntax highlight igual ao do codestacker abaixo, a la Textmate? É fácil: Faça o download da biblioteca de expressões regulares Oniguruma. A versão mais recente é a 5.9.1. Compile-a: ./configure &#038;&#038; make &#038;&#038; make install Após isso instale as gems Oniguruma, Textpow e Ultraviolet e instale o plugin tm_syntax_highlighting em seu projeto. [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2007/01/27/apresentando-ruby-on-rails/' rel='bookmark' title='Permanent Link: Apresentando Ruby on Rails'>Apresentando Ruby on Rails</a></li>
<li><a href='http://leonardofaria.net/2008/05/24/rails-git-mysql-e-mod_rails-no-leopard/' rel='bookmark' title='Permanent Link: Rails, Git, MySQL e mod_rails no Leopard'>Rails, Git, MySQL e mod_rails no Leopard</a></li>
<li><a href='http://leonardofaria.net/2007/04/12/criando-rss-com-rails/' rel='bookmark' title='Permanent Link: Criando RSS com Rails'>Criando RSS com Rails</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Quer fazer um syntax highlight igual ao do codestacker abaixo, <i>a la Textmate</i>? É fácil:</p>
<p><script src='http://codestacker.com/207.js'></script></p>
<p>Faça o download da biblioteca de expressões regulares <a href="http://www.geocities.jp/kosako3/oniguruma/">Oniguruma</a>. A versão mais recente é a <a href="http://www.geocities.jp/kosako3/oniguruma/archive/onig-5.9.1.tar.gz">5.9.1</a>. Compile-a: </p>
<div class="syntax_hilite">
<pre class="bash"><code> ./configure &#038;& make &#038;& make install </code></pre>
</div>
<p>Após isso instale as gems Oniguruma, Textpow e Ultraviolet e instale o plugin <a href="http://github.com/arya/tm_syntax_highlighting">tm_syntax_highlighting</a> em seu projeto.</p>
<p>Em suas views, utilize:</p>
<div class="syntax_hilite">
<pre class="ruby"><code> code(some_ruby_code, :theme => "twilight", :lang => "ruby", :line_numbers => true) </code></pre>
</div>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2007/01/27/apresentando-ruby-on-rails/' rel='bookmark' title='Permanent Link: Apresentando Ruby on Rails'>Apresentando Ruby on Rails</a></li>
<li><a href='http://leonardofaria.net/2008/05/24/rails-git-mysql-e-mod_rails-no-leopard/' rel='bookmark' title='Permanent Link: Rails, Git, MySQL e mod_rails no Leopard'>Rails, Git, MySQL e mod_rails no Leopard</a></li>
<li><a href='http://leonardofaria.net/2007/04/12/criando-rss-com-rails/' rel='bookmark' title='Permanent Link: Criando RSS com Rails'>Criando RSS com Rails</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2009/12/02/syntax-highlight-on-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Internacionalização em labels</title>
		<link>http://leonardofaria.net/2009/11/22/internacionalizacao-em-labels/</link>
		<comments>http://leonardofaria.net/2009/11/22/internacionalizacao-em-labels/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 19:49:16 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=892</guid>
		<description><![CDATA[Desenvolvendo uma aplicação onde apliquei os recurso de internacionalização do Rails, percebi que o framework não traduz os valores dos labels para a tradução do atributo. Para corrigir isso, existem duas formas: um plugin chamado i18n_label ou uma gambiarra um recurso técnico avançado adaptado a condições tecnológicas precárias em um determinado momento: Cole o código [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2007/05/06/manipulando-datas-no-rails/' rel='bookmark' title='Permanent Link: Manipulando datas no Rails'>Manipulando datas no Rails</a></li>
<li><a href='http://leonardofaria.net/2008/08/02/mudancas-no-rails-22/' rel='bookmark' title='Permanent Link: Mudanças no Rails 2.2'>Mudanças no Rails 2.2</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Desenvolvendo uma aplicação onde apliquei os recurso de internacionalização do Rails, percebi que o framework <a href="https://rails.lighthouseapp.com/projects/8994/tickets/745-form-label-should-use-i18n">não traduz os valores dos labels</a> para a tradução do atributo.</p>
<p>Para corrigir isso, existem duas formas: um plugin chamado <a href="http://github.com/iain/i18n_label">i18n_label</a> ou <s>uma gambiarra</s> um recurso técnico avançado adaptado a condições tecnológicas precárias em um determinado momento:</p>
<p><script src='http://codestacker.com/206.js'></script></p>
<p>Cole o código acima em um arquivo da pasta 'lib', por exemplo e o inclua com <code>require</code> no environment.rb.</p>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2007/05/06/manipulando-datas-no-rails/' rel='bookmark' title='Permanent Link: Manipulando datas no Rails'>Manipulando datas no Rails</a></li>
<li><a href='http://leonardofaria.net/2008/08/02/mudancas-no-rails-22/' rel='bookmark' title='Permanent Link: Mudanças no Rails 2.2'>Mudanças no Rails 2.2</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2009/11/22/internacionalizacao-em-labels/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Rails e cia no Snow Leopard</title>
		<link>http://leonardofaria.net/2009/11/14/rails-e-cia-no-snow-leopard/</link>
		<comments>http://leonardofaria.net/2009/11/14/rails-e-cia-no-snow-leopard/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 20:00:24 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[macintosh]]></category>
		<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[passenger]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=878</guid>
		<description><![CDATA[Fiz uma instalação nova do Snow Leopard no meu MacBook e ao migrar os dados do Time Machine, do Leopard, algumas coisas pararam de funcionar. Resolvi então escrever para complementar meu post anterior sobre o assunto. Xcode ANTES DE MAIS NADA, instalei o Xcode. Ele está junto no DVD do Snow Leopard, na pasta de [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2008/05/24/rails-git-mysql-e-mod_rails-no-leopard/' rel='bookmark' title='Permanent Link: Rails, Git, MySQL e mod_rails no Leopard'>Rails, Git, MySQL e mod_rails no Leopard</a></li>
<li><a href='http://leonardofaria.net/2008/08/02/mudancas-no-rails-22/' rel='bookmark' title='Permanent Link: Mudanças no Rails 2.2'>Mudanças no Rails 2.2</a></li>
<li><a href='http://leonardofaria.net/2008/06/28/passenger-no-painel-de-preferencias-do-leopard/' rel='bookmark' title='Permanent Link: Passenger no painel de preferências do Leopard'>Passenger no painel de preferências do Leopard</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Fiz uma instalação nova do Snow Leopard no meu MacBook e ao migrar os dados do Time Machine, do Leopard, algumas coisas pararam de funcionar. Resolvi então escrever para complementar meu <a href="http://leonardofaria.net/2008/05/24/rails-git-mysql-e-mod_rails-no-leopard/">post anterior sobre o assunto</a>.</p>
<h3>Xcode</h3>
<p><strong>ANTES DE MAIS NADA</strong>, instalei o Xcode. Ele está junto no DVD do Snow Leopard, na pasta de Instalações Opcionais.</p>
<h3>Rails</h3>
<p>O Snow Leopard já vem com duas versões do Rails já instaladas: 2.2.2 e 1.13.6. Caso queira atualizar seu ambiente:<br />
<span id="more-878"></span>
<div class="syntax_hilite">
<pre class="bash"><code>sudo gem update --system
sudo gem update rails
</code></pre>
</div>
<h3>Passenger</h3>
<div class="syntax_hilite">
<pre class="bash"><code>sudo gem install passenger
sudo passenger-install-apache2-module </code></pre>
</div>
<p>Terminada a instalação, do Passenger, você precisa editar o arquivo <code>/etc/apache2/httpd.conf</code> e acrescentar o seguinte conteúdo:</p>
<div class="syntax_hilite">
<pre class="bash"><code>LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-2.2.5/ext/apache2/mod_passenger.so
PassengerRoot /Library/Ruby/Gems/1.8/gems/passenger-2.2.5
PassengerRuby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
</code></pre>
</div>
<p>A configuração dos sites também pode ser feita nesse arquivo, por exemplo:</p>
<div class="syntax_hilite">
<pre class="bash"><code>&lt;VirtualHost *:80&gt;
  ServerName codestacker
  DocumentRoot "/Users/leonardofaria/Sites/codestacker/public"
&lt;/VirtualHost&gt;
</code></pre>
</div>
<h3>MySQL</h3>
<p>A instalação do gem do MySQL pode ser feita da mesma forma que <a href="http://leonardofaria.net/2008/08/02/mudancas-no-rails-22/">postei anteriormente</a>: basta <a href="http://dev.mysql.com/downloads/mysql/5.1.html#macosx-dmg">instalar o pacote do site</a> e executar a instalação da gem com o comando:</p>
<div class="syntax_hilite">
<pre class="bash"><code>sudo gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
</code></pre>
</div>
<h3>ImageMagick &#038; rmagick</h3>
<p>Fiz a instalação do ImageMagick com o <a href="http://github.com/chdorner/magick-installer/blob/master/magick-installer.sh">script do chdorner</a>:</p>
<div class="syntax_hilite">
<pre class="bash"><code>#!/bin/sh
curl -O http://nongnu.askapache.com/freetype/freetype-2.3.9.tar.gz
tar xzvf freetype-2.3.9.tar.gz
cd freetype-2.3.9
./configure --prefix=/usr/local
make
sudo make install
cd ..

curl -O http://surfnet.dl.sourceforge.net/project/libpng/00-libpng-stable/1.2.39/libpng-1.2.39.tar.gz
tar xzvf libpng-1.2.39.tar.gz
cd libpng-1.2.39
./configure --prefix=/usr/local
make
sudo make install
cd ..

curl -O http://www.ijg.org/files/jpegsrc.v7.tar.gz
tar xzvf jpegsrc.v7.tar.gz
cd jpeg-7
ln -s `which glibtool` ./libtool
export MACOSX_DEPLOYMENT_TARGET=10.5
./configure --enable-shared --prefix=/usr/local
make
sudo make install
cd ..

curl -O ftp://ftp.remotesensing.org/libtiff/tiff-3.8.2.tar.gz
tar xzvf tiff-3.8.2.tar.gz
cd tiff-3.8.2
./configure --prefix=/usr/local
make
sudo make install
cd ..

curl -O http://voxel.dl.sourceforge.net/project/wvware/libwmf/0.2.8.4/libwmf-0.2.8.4.tar.gz
tar xzvf libwmf-0.2.8.4.tar.gz
cd libwmf-0.2.8.4
make clean
./configure
make
sudo make install
cd ..

curl -O http://www.littlecms.com/lcms-1.17.tar.gz
tar xzvf lcms-1.17.tar.gz
cd lcms-1.17
make clean
./configure
make
sudo make install
cd ..

curl -O http://voxel.dl.sourceforge.net/project/ghostscript/GPL%20Ghostscript/8.70/ghostscript-8.70.tar.gz
tar zxvf ghostscript-8.70.tar.gz
cd ghostscript-8.70/
./configure  --prefix=/usr/local
make
sudo make install
cd ..

curl -O http://voxel.dl.sourceforge.net/project/gs-fonts/gs-fonts/8.11%20%28base%2035%2C%20GPL%29/ghostscript-fonts-std-8.11.tar.gz
tar zxvf ghostscript-fonts-std-8.11.tar.gz
sudo mv fonts /usr/local/share/ghostscript

curl -O http://image_magick.veidrodis.com/image_magick/ImageMagick-6.4.8-7.tar.gz
tar xzvf ImageMagick-6.4.8-7.tar.gz
cd ImageMagick-6.4.8-7
export CPPFLAGS=-I/usr/local/include
export LDFLAGS=-L/usr/local/lib
./configure --prefix=/usr/local --disable-static --with-modules --without-perl --without-magick-plus-plus --with-quantum-depth=8 --with-gs-font-dir=/usr/local/share/ghostscript/fonts
make
sudo make install
cd ..
</code></pre>
</div>
<p>A instalação do gem rmagick é como todas as outras instalações de gem:</p>
<div class="syntax_hilite">
<pre class="bash"><code>sudo gem install rmagick
</code></pre>
</div>
<h3>E o resto?</h3>
<p>O resto é <a href="http://leonardofaria.net/2008/05/24/rails-git-mysql-e-mod_rails-no-leopard/">como na instalação do Leopard</a>.</p>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2008/05/24/rails-git-mysql-e-mod_rails-no-leopard/' rel='bookmark' title='Permanent Link: Rails, Git, MySQL e mod_rails no Leopard'>Rails, Git, MySQL e mod_rails no Leopard</a></li>
<li><a href='http://leonardofaria.net/2008/08/02/mudancas-no-rails-22/' rel='bookmark' title='Permanent Link: Mudanças no Rails 2.2'>Mudanças no Rails 2.2</a></li>
<li><a href='http://leonardofaria.net/2008/06/28/passenger-no-painel-de-preferencias-do-leopard/' rel='bookmark' title='Permanent Link: Passenger no painel de preferências do Leopard'>Passenger no painel de preferências do Leopard</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2009/11/14/rails-e-cia-no-snow-leopard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O que é Ruby on Rails?</title>
		<link>http://leonardofaria.net/2009/11/09/o-que-e-ruby-on-rails/</link>
		<comments>http://leonardofaria.net/2009/11/09/o-que-e-ruby-on-rails/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 21:10:15 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[faculdade]]></category>
		<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[acadêmico]]></category>
		<category><![CDATA[autosimulado]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=846</guid>
		<description><![CDATA[A essa altura do campeonato todo mundo já deve saber o que vem a ser o framework Ruby on Rails. Minha monografia e meu trabalho de conclusão de curso da Faculdade foram sobre o autosimulado. Na monografia fiz uma introdução sobre as características do framework, reproduzido abaixo: Ruby on Rails O framework Ruby on Rails [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2007/03/11/ruby-on-rails-on-mac-os-x/' rel='bookmark' title='Permanent Link: Ruby on Rails on Mac OS X'>Ruby on Rails on Mac OS X</a></li>
<li><a href='http://leonardofaria.net/2007/01/27/apresentando-ruby-on-rails/' rel='bookmark' title='Permanent Link: Apresentando Ruby on Rails'>Apresentando Ruby on Rails</a></li>
<li><a href='http://leonardofaria.net/2008/09/10/edge-rails-no-windows-vista/' rel='bookmark' title='Permanent Link: Edge Rails no Windows Vista'>Edge Rails no Windows Vista</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>A essa altura do campeonato todo mundo já deve saber o que vem a ser o framework Ruby on Rails. Minha monografia e meu trabalho de conclusão de curso da Faculdade foram sobre o <a href="http://www.autosimulado.com.br"><strong>autosimulado</strong></a>. Na monografia fiz uma introdução sobre as características do framework, reproduzido abaixo:</p>
<h2>Ruby on Rails</h2>
<p>O framework Ruby on Rails foi extraído de um sistema para gerenciamento de projetos chamado Basecamp. A primeira versão do framework foi oficialmente lançada em 25 de Julho de 2004 e seu desenvolvimento conta com colaboradores em todo o mundo liderados pelo programador dinamarquês David Heinemeier Hansson. </p>
<h3>MVC</h3>
<p>Um padrão de projeto descreve e provê uma solução para um problema freqüente, sendo genérico e reusável. São criados a partir de problemas de problemas comuns enfrentados no desenvolvimento de projetos de software.<br />
A criação de componentes reutilizáveis é uma das técnicas mais exploradas em Engenharia de Software. O uso de componentes diminui o tempo de desenvolvimento e a taxa de erros de codificação. Um padrão pode ser entendido como a abstração de detalhes sobre a implementação de um software.</p>
<p><center><img src="http://leonardofaria.net/wp-content/uploads/2009/11/imagem20.jpg" alt="MVC" title="MVC" class="foto" /></center><br />
<span id="more-846"></span><br />
O padrão de projeto MVC divide o desenvolvimento de um aplicativo em três camadas: View (Visão), Controller (Controle) e Model (Modelo). A separação das camadas permite o aumento da flexibilidade e reuso do código. Sem essa separação, as funcionalidades podem ficar mescladas, o que acarreta um maior esforço para eventuais manutenções, pois as responsabilidades podem ser difundidas entre as camadas.<br />
A camada Modelo representa o estado da aplicação. É responsável por fazer a interação da aplicação com a fonte de dados, muito freqüentemente um banco de dados. Quando existe a necessidade de se guardar o estado da aplicação, é através dessa camada que as informações manipuladas pelo sistema podem ser armazenadas na base de dados. É na camada Modelo que são incorporadas as regras de negócio de um aplicativo.<br />
A camada Controle é responsável por receber os dados do usuário e definir o fluxo da aplicação, invocando alterações dos dados da camada Modelo.<br />
A camada Visão é responsável por apresentar a aplicação ao usuário. Nas aplicações Web, essa camada é construída com HTML, CSS e Javascript. </p>
<h3>Recursos e características</h3>
<p>DRY - Don’t Repeat Yourself, em português, Não Se Repita é um conceito intrínseco do Ruby on Rails. Não é preciso copiar trechos de código por todo aplicativo. Para reaproveitamento de código, o desenvolvedor conta com os métodos helpers e com as partials, arquivos que podem ser incluídos no seu aplicativo reduzindo redundâncias.<br />
Helpers são uma importante funcionalidade do framework. Um helper é um módulo que contém funções para auxiliar a camada View do aplicativo, retirando lógicas complexas do código da apresentação. Ruby on Rails conta com helpers para diversas funções, incluindo formatação de datas, moedas, números, formulários HTML, Javascript, entre outros. Alguns exemplos da aplicação de helpers:</p>
<div class="syntax_hilite">
<div id="ruby-12">
<div class="ruby">&lt;%= distance_of_time_in_words<span class="br0">&#40;</span>Time.<span class="me1">now</span>, Time.<span class="me1">now</span> + <span class="nu0">33</span>, <span class="kw2">false</span><span class="br0">&#41;</span> %&gt; <br />&nbsp; &nbsp; &nbsp;<span class="nu0">1</span> minute</p>
<p>&lt;%= human_size<span class="br0">&#40;</span><span class="nu0">123</span>_456<span class="br0">&#41;</span> %&gt; <br />&nbsp; &nbsp; &nbsp;<span class="nu0">120</span>.<span class="nu0">6</span> KB</p>
<p>&lt;%= number_to_currency<span class="br0">&#40;</span><span class="nu0">234</span>.<span class="nu0">56</span>, :unit =&gt; <span class="st0">"R$ "</span>, :precision =&gt; <span class="nu0">2</span><span class="br0">&#41;</span> %&gt; <br />&nbsp; &nbsp; &nbsp;R$ <span class="nu0">235</span>.<span class="nu0">56</span> </p>
<p>&lt;%= number_to_percentage<span class="br0">&#40;</span><span class="nu0">33</span>.<span class="nu0">66666</span><span class="br0">&#41;</span> %&gt; <br />&nbsp; &nbsp; &nbsp;<span class="nu0">33</span>.<span class="nu0">667</span>% </p>
<p>&lt;%= number_to_phone<span class="br0">&#40;</span><span class="nu0">2125551212</span>, :area_code =&gt; <span class="kw2">true</span>, :delimiter =&gt; <span class="st0">" "</span><span class="br0">&#41;</span> %&gt;<br />&nbsp; &nbsp; &nbsp;<span class="br0">&#40;</span><span class="nu0">212</span><span class="br0">&#41;</span> <span class="nu0">555</span> <span class="nu0">1212</span></p>
<p>&lt;%= truncate<span class="br0">&#40;</span>@text, <span class="nu0">9</span><span class="br0">&#41;</span> %&gt; <br />&nbsp; &nbsp; &nbsp; Hello wor... </p>
<p>&lt;%= pluralize<span class="br0">&#40;</span><span class="nu0">1</span>, <span class="st0">"person"</span><span class="br0">&#41;</span> %&gt; <span class="kw1">and</span> &lt;%= pluralize<span class="br0">&#40;</span><span class="nu0">2</span>, <span class="st0">"person"</span><span class="br0">&#41;</span> %&gt; <br />&nbsp; &nbsp; &nbsp;<span class="nu0">1</span> person <span class="kw1">and</span> <span class="nu0">2</span> people</div>
</div>
</div>
<p></p>
<p>Além dos helpers, existem ainda os plugins, pequenas bibliotecas que adicionam novas funcionalidades ao framework sem que haja necessidade da alteração do seu núcleo e que permitem ser reaproveitados em diferentes projetos.<br />
O framework Ruby on Rails possui suporte aos mais comuns banco de dados do mercado, como IBM DB2, Microsoft SQL Server, Oracle OCL8, PostgreSQL, MySQL e SQLite. Para definir qual banco utilizar, é necessário apenas especificar os dados de conexão em um único arquivo.<br />
Outra característica interessante são os perfis de execução do aplicativo: desenvolvimento, produção e teste. No perfil desenvolvimento, o programador encontra mensagens de log detalhadas para cada requisição no aplicativo. Além disso, erros são apresentados com mensagens claras das inconsistências. O modo teste é utilizado para testes funcionais do aplicativo e produção é o modo utilizado para quando o aplicativo estiver pronto e estável. Para cada um desses perfis é possível utilizar um banco de dados diferente, evitando conflitos entre dados de testes, desenvolvimento e produção.<br />
Além disso, o framework já foi criado com suporte integrado a duas bibliotecas Javascript bastante conhecidas: Prototype, que manipula as interações dos objetos do documento, e Script.aculo.us, responsável por criação de efeitos visuais com Javascript.</p>
<p><center><img src="http://leonardofaria.net/wp-content/uploads/2009/11/imagem21.jpg" alt="Ciclo de requisições" title="Ciclo de requisições" class="foto" /></center></p>
<p>A figura acima exemplifica o ciclo de requisições no Ruby on Rails. Ao fazer uma requisição de uma página, o navegador faz uma chamada ao servidor - normalmente Apache - que é encaminhada para o dispatcher. O dispatcher é o responsável por transformar a URL do browser em uma URL que é entendida pelo framework. Em seguida, o Action Controller é invocado para decidir o que fazer com a requisição. Caso seja necessária alguma interação com o banco de dados, o Active Record entra em ação. Também é possível que o Action Mailer seja invocado, caso seja necessário enviar algum email e a resposta da requisição é processada pelo Action View.<br />
Ruby on Rails é composto por 5 módulos independentes:
<ul>
<li>O módulo Active Record conecta objetos de negócio com tabelas do banco de dados para criar um modelo de domínio onde lógica e dados se encontram presentes em conjunto. Trata-se portanto de uma implementação de um padrão de mapeamento objeto-relacional (ORM), baseado em convenções. Por exemplo, para uma classe Book espera-se a existência de uma tabela Books. Cada linha dessa tabela corresponde a um objeto da classe Book. Atributos da classe representarão as colunas da tabela Books, com os mesmos nomes, por padrão.</li>
<li>O módulo Action Pack compreende o Action Controller e o Action View. O Action Controller coordena a interação entre o usuário, as visões e o modelo. Ele é responsável por rotear URLs para ações internas dos controllers, gerenciando URLs de fácil leitura para as pessoas; por responder o usuário exibindo uma view ou um arquivo qualquer e por gerenciar cookies e sessões. Já o Action View é responsável por compor toda a funcionalidade necessária para renderizar views, mais comumente gerando código HTML e XML para o usuário.</li>
<li>O módulo Action Support agrupa várias classes úteis e extensões de bibliotecas padrão, que foram consideradas relevantes para aplicações com Ruby on Rails.</li>
<li>O módulo Action Mailer é um framework poderoso para serviços de entrega e recebimento de emails.</li>
<li>O módulo Action WebServices provê uma maneira de criar APIs inter-operáveis com Rails. Na versão 2.0 do framework esse módulo foi retirado, devido a implementação do modelo Rest no Rails. </li>
</ul>
<h3>Estrutura de um aplicativo Ruby on Rails</h3>
<p><center><img src="http://leonardofaria.net/wp-content/uploads/2009/11/imagem24.jpg" class="foto" /></center></p>
<p>A estrutura de um projeto Rails compreende a criação dos diretórios especificados na acima.
<ul>
<li>A pasta “app” possui subdiretórios que armazenam controllers, helpers, models e views. </li>
<li>A pasta “config” abriga diversos arquivos de configuração, incluindo o responsável por determinar qual o banco de dados será utilizado. </li>
<li>A pasta “db” possui as migrations. Migrations são um recurso do Rails onde o desenvolvedor escreve arquivos Ruby em uma DSL exclusiva para manipular o banco de dados. Desse modo, é possível criar tabelas, campos e modificar a estrutura de banco de dados sem precisar escrever uma linha de SQL ou utilizar outro aplicativo.</li>
<li>A pasta “lib” é usada para que o desenvolvedor salve nesse local suas bibliotecas externas do projeto.</li>
<li>A pasta “log” é utilizada para salvar os logs gerados em tempo de execução do aplicativo. As ações executadas no aplicativos são salvas nos arquivos de log dessa pasta.</li>
<li>A pasta “public” é usada para armazenar as imagens, folhas de estilo e documentos Javascript do aplicativo.</li>
<li>A pasta “script” possui scripts usados para auxiliar o desenvolvedor. Com esses scripts, o programador pode gerar novos controllers e models pela linha de comando. Além disso, essa pasta possui um programa server, que é um servidor web para desenvolvimento.</li>
<li>A pasta “test” possui arquivos para realização de testes unitários, funcionais e de integração. </li>
<li>A pasta “vendor” é usada para armazenar os plugins do projeto e em alguns casos, armazenar o próprio framework.</li>
</ul>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2007/03/11/ruby-on-rails-on-mac-os-x/' rel='bookmark' title='Permanent Link: Ruby on Rails on Mac OS X'>Ruby on Rails on Mac OS X</a></li>
<li><a href='http://leonardofaria.net/2007/01/27/apresentando-ruby-on-rails/' rel='bookmark' title='Permanent Link: Apresentando Ruby on Rails'>Apresentando Ruby on Rails</a></li>
<li><a href='http://leonardofaria.net/2008/09/10/edge-rails-no-windows-vista/' rel='bookmark' title='Permanent Link: Edge Rails no Windows Vista'>Edge Rails no Windows Vista</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2009/11/09/o-que-e-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>O que é Ruby?</title>
		<link>http://leonardofaria.net/2009/11/09/o-que-e-ruby/</link>
		<comments>http://leonardofaria.net/2009/11/09/o-que-e-ruby/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 21:09:50 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[faculdade]]></category>
		<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[acadêmico]]></category>
		<category><![CDATA[autosimulado]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=836</guid>
		<description><![CDATA[A essa altura do campeonato todo mundo já deve saber o que vem a ser a linguagem Ruby. Minha monografia e meu trabalho de conclusão de curso da Faculdade foram sobre o autosimulado. Na monografia fiz uma introdução sobre as características da linguagem Ruby, reproduzido abaixo: Ruby A linguagem Ruby foi criada em 1993 pelo [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2007/06/28/curiosidade-ruby-do-dia/' rel='bookmark' title='Permanent Link: Curiosidade Ruby do dia'>Curiosidade Ruby do dia</a></li>
<li><a href='http://leonardofaria.net/2009/11/09/o-que-e-ruby-on-rails/' rel='bookmark' title='Permanent Link: O que é Ruby on Rails?'>O que é Ruby on Rails?</a></li>
<li><a href='http://leonardofaria.net/2007/01/27/apresentando-ruby-on-rails/' rel='bookmark' title='Permanent Link: Apresentando Ruby on Rails'>Apresentando Ruby on Rails</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>A essa altura do campeonato todo mundo já deve saber o que vem a ser a linguagem Ruby. Minha monografia e meu trabalho de conclusão de curso da Faculdade foram sobre o <a href="http://www.autosimulado.com.br"><strong>autosimulado</strong></a>. Na monografia fiz uma introdução sobre as características da linguagem Ruby, reproduzido abaixo:</p>
<h2>Ruby</h2>
<p>A linguagem Ruby foi criada em 1993 pelo japonês Yukihiro “Matz” Matsumoto, com sua primeira versão pública lançada em 1995. Para Matz, o primeiro desejo é de Ruby tornar os programadores felizes, reduzindo o trabalho manual que precisasse ser feito. Segundo ele, o desenvolvimento de sistemas deveria enfatizar as necessidades do homem e não da máquina:</p>
<blockquote><p>Muitas pessoas, especialmente engenheiros de computação, focam nas máquinas. Eles pensam, “Fazendo isso, a máquina será mais rápida. Fazendo isso, a máquina será mais eficiente. Fazendo isso, a máquina irá fazer determinada coisa melhor”. Eles estão focando nas máquinas. Mas de fato nós precisamos focar nos humanos, em como os humanos lidam com programação ou operação das aplicações das máquinas. Nós somos os mestres. Elas são as escravas. (VENNERS, 2003).
</p></blockquote>
<p>Ruby é uma linguagem orientada a objetos, ou seja, qualquer variável é um objeto, mesmo classes e tipos que em muitas linguagens são designadas como primitivos. Por exemplo: </p>
<div class="syntax_hilite">
<div id="ruby-19">
<div class="ruby">putz <span class="st0">"meu exemplo"</span>.<span class="me1">upcase</span> <span class="co1"># imprimirá MEU EXEMPLO </span></div>
</div>
</div>
<p>
<span id="more-836"></span><br />
Acima, aplica-se o método upcase da classe String no objeto “meu exemplo”. Ruby é extensível: um objeto pode receber melhorias e novos métodos em tempo de execução. </p>
<div class="syntax_hilite">
<div id="ruby-20">
<div class="ruby"><span class="kw1">class</span> Fixnum <br />&nbsp; <span class="kw1">def</span> +<span class="br0">&#40;</span>numero<span class="br0">&#41;</span> <br />&nbsp; &nbsp; <span class="nu0">10</span> <br />&nbsp; <span class="kw1">end</span><br /><span class="kw1">end</span></div>
</div>
</div>
<p>
No exemplo anterior, o método +() da classe Fixnum foi sobrescrito e retornará sempre 10. A linguagem apresenta tipagem dinâmica, conforme no exemplo abaixo:
<div class="syntax_hilite">
<div id="ruby-21">
<div class="ruby">=&gt; <span class="st0">"meu exemplo"</span><br />&gt;&gt; minhavariavel.<span class="kw1">class</span><br />=&gt; <span class="kw3">String</span><br />&gt;&gt; minhavariavel = <span class="nu0">4</span> * <span class="nu0">4</span><br />=&gt; <span class="nu0">16</span><br />&gt;&gt; minhavariavel.<span class="kw1">class</span><br />=&gt; Fixnum<br />&gt;&gt; minhavariavel = <span class="nu0">1000000</span> * <span class="nu0">1000000</span><br />=&gt; <span class="nu0">1000000000000</span><br />&gt;&gt; minhavariavel.<span class="kw1">class</span><br />=&gt; Bignum</div>
</div>
</div>
<p>
No exemplo acima, ela recebeu alterações em sua tipagem em tempo de execução. São tipos de variáveis em Ruby:
<ul>
<li>Fixnum: inteiros com até o tamanho da palavra binária do processador menos 1 bit. Exemplos: 1, 81, 6589, 100;</li>
<li>Bignum: inteiros maiores que Fixnum. Exemplo: 1234567890;</li>
<li>Float: números decimais. Exemplos: 1.41, 1.0;</li>
<li>String: corresponde a uma cadeia de caracteres. Exemplo: “teste”;</li>
<li>Range: representa intervalos entre valores. Exemplos: 1..10 e a..z;</li>
<li>Expressão regular: representa uma expressão regular. Exemplos: /a/ ou /^s*[a-z]/.</li>
</ul>
<p>Ruby é uma linguagem simples e elegante: nela não é obrigatório o uso de parênteses, colchetes e chaves e além disso a sintaxe da linguagem é humana e intuitiva, refletindo o minimalismo descrito por Matz. Em um comparativo entre as sintaxes das linguagens Java e Ruby:<br />
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td width="49%" style="padding-right: 5px">
<div class="syntax_hilite">
<div id="java-22">
<div class="java"><span class="co1">// java</span><br />l = list.<span class="me1">get</span><span class="br0">&#40;</span>list.<span class="me1">size</span><span class="br0">&#40;</span><span class="br0">&#41;</span> - <span class="nu0">1</span><span class="br0">&#41;</span>;<br />l = list.<span class="me1">get</span><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>;</p>
<p><span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> i=<span class="nu0">0</span>; i&amp;lt;<span class="nu0">10</span>; i++<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />&nbsp; &nbsp; <a href="http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&amp;bntl=1"><span class="kw3">System</span></a>.<span class="me1">out</span>.<span class="me1">println</span><span class="br0">&#40;</span>i + <span class="st0">"times"</span><span class="br0">&#41;</span>;<br /><span class="br0">&#125;</span></div>
</div>
</div>
<p></td>
<td>
<div class="syntax_hilite">
<div id="ruby-23">
<div class="ruby"><span class="co1"># ruby</span><br />l = list.<span class="me1">last</span><br />l = list.<span class="me1">first</span></p>
<p><span class="nu0">10</span>.<span class="me1">times</span> <span class="kw1">do</span> |i|<br />&nbsp; &nbsp; <span class="kw3">puts</span> <span class="st0">"#{i} times"</span><br /><span class="kw1">end</span></div>
</div>
</div>
<p>
</td>
</tr>
</table>
<p>No Ruby, também é possível criar DSLs - linguagens específicas de domínio - uma espécie de sub-linguagem onde o programador pode criar a sintaxe a sua necessidade. Desse modo, um algoritmo que fizesse uma receita de bolo poderia ser programado da seguinte forma:
<div class="syntax_hilite">
<div id="ruby-24">
<div class="ruby">receita <span class="st0">"Bola de Fubá"</span> <span class="kw1">do</span> <br />&nbsp; &nbsp; ingrediente <span class="st0">"Farinha"</span>, <span class="st0">"1 quilo"</span> <br />&nbsp; &nbsp; ingrediente <span class="st0">"Açúcar"</span>, <span class="st0">"200 gramas"</span> <br />&nbsp; &nbsp; ingrediente <span class="st0">"Ovos"</span>, <span class="st0">"2 unidades"</span> <br />&nbsp; &nbsp; preparo <span class="st0">"Misture todos ingredientes"</span> <br />&nbsp; &nbsp; preparo <span class="st0">"Leve ao forno"</span> <br />&nbsp; &nbsp; preparo <span class="st0">"Sirva"</span> <br />&nbsp; &nbsp; tempo <span class="st0">"2 horas"</span> <br />&nbsp; &nbsp; porcoes <span class="nu0">3</span> <br /><span class="kw1">end</span></div>
</div>
</div>
<p></p>
<p>Além disso, Ruby é portável e livre. É possível executar Ruby em ambientes Windows e Unix e não é preciso pagar para usá-lo, copiá-lo, modificá-lo ou distribuí-lo. </p>
<h3>Frameworks Ruby</h3>
<p>Desenvolvedores de software constantemente se deparam com situações em que os problemas começam a se repetir em diversas partes do sistema. Para resolvê-los, rotinas são criadas e replicadas por todo o sistema, o que pode tornar o código facilmente suscetível a erros e demasiadamente replicado.</p>
<p>Os frameworks são soluções semi-prontas, para agilizar e tornar mais rápido o desenvolvimento de projetos. Eles seguem padrões de projeto bem definidos, que permitem que suas soluções sejam reutilizadas para problemas que outros desenvolvedores já enfrentaram. Dessa forma, os frameworks tornam-se recursos altamente confiáveis.</p>
<p>A linguagem Ruby possui vários frameworks web: Merb, Ruby on Rails, Sinatra. A adoção do Ruby on Rails deu-se a sua riqueza de funcionalidades e ampla documentação.</p>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2007/06/28/curiosidade-ruby-do-dia/' rel='bookmark' title='Permanent Link: Curiosidade Ruby do dia'>Curiosidade Ruby do dia</a></li>
<li><a href='http://leonardofaria.net/2009/11/09/o-que-e-ruby-on-rails/' rel='bookmark' title='Permanent Link: O que é Ruby on Rails?'>O que é Ruby on Rails?</a></li>
<li><a href='http://leonardofaria.net/2007/01/27/apresentando-ruby-on-rails/' rel='bookmark' title='Permanent Link: Apresentando Ruby on Rails'>Apresentando Ruby on Rails</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2009/11/09/o-que-e-ruby/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>O ecossistema Rails</title>
		<link>http://leonardofaria.net/2009/10/15/o-ecossistema-rails/</link>
		<comments>http://leonardofaria.net/2009/10/15/o-ecossistema-rails/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 23:32:07 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[opiniao]]></category>
		<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=805</guid>
		<description><![CDATA[Escrevo esse artigo dentro do meu voo de São Paulo para Belo Horizonte. Passei 4 dias em São Paulo, participei do Rails Summit, bloguei ao vivo um resumo das palestras e vou expor meus comentários sobre o ecossistema Rails - ou se preferir, o gueto Rails. Trilhos da oportunidade Conheci durante o evento vários pessoas [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2008/08/10/ruby-on-rails-na-webmobile/' rel='bookmark' title='Permanent Link: Ruby on Rails na WebMobile'>Ruby on Rails na WebMobile</a></li>
<li><a href='http://leonardofaria.net/2009/10/13/rails-summit-resumo-do-primeiro-dia/' rel='bookmark' title='Permanent Link: Rails Summit: resumo do primeiro dia'>Rails Summit: resumo do primeiro dia</a></li>
<li><a href='http://leonardofaria.net/2009/04/11/para-aprender-ruby-on-rails/' rel='bookmark' title='Permanent Link: Para aprender Ruby on Rails'>Para aprender Ruby on Rails</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Escrevo esse artigo dentro do meu voo de São Paulo para Belo Horizonte. Passei 4 dias em São Paulo, participei do Rails Summit, bloguei ao vivo um <a href="http://leonardofaria.net/2009/10/14/rails-summit-resumo-do-segundo-dia/">resumo</a> das <a href="http://leonardofaria.net/2009/10/13/rails-summit-resumo-do-primeiro-dia/">palestras</a> e vou expor meus comentários sobre o ecossistema Rails - ou se preferir, o gueto Rails.</p>
<h2>Trilhos da oportunidade</h2>
<p>Conheci durante o evento vários pessoas que só conhecia pelo Twitter. Muitas dessas pessoas possuem aplicativos web, outras desenvolvem no tempo livre por prazer (como eu), outras trabalham offshore. De tudo isso, a única coisa que possuo concluir é que de fato existe um trem da oportunidade. Existem vagas para bons programadores nesse mercado, o trabalho remoto É possível e É uma realidade. Globalização é um americano morar na Argentina e contratar um programador brasileiro no evento. </p>
<h2>Maturidade da comunidade</h2>
<p>Rails definitivamente é mais do que somente um framework para desenvolvimento de aplicações web. Rails é resultado de um trabalho coletivo e maduro de uma comunidade. No Brasil essa comunidade é formada de gente vinda de várias tecnologias (Java, PHP, Python, programação desktop) e que se identifica com um software de opinião, com metodologias agéis e com computadores de Cupertino.</p>
<p>Essa pluralidade de pessoas tornam um encontro como o Rails Summit rico não somente de potenciais técnicos, mas sim de potenciais humanos.</p>
<h2>Programadores podem ser empreendedores</h2>
<p>Existe muita programador com vontade de empreender. As apresentações do Vinícius são uma provocação para botar para fazer. Negócios na web são como aplicações. É necessário fazer, testar, refatorar e nesse sentido a troca de experiências no Rails Summit é inspiradora a sonhar e a agir. Com Rails, aplicações são feitas rapidamente e é dessa velocidade que o seu negócio precisa.</p>
<h2>Conclusão</h2>
<p>Rails não é só código, é um tag que pessoas de diferentes opiniões, experiências e lugares carregam. Nessa comunidade o foto não está nos comos e sim nos porques. Após o Rails Summit, só posso confirmar o quanto é único esse gueto. </p>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2008/08/10/ruby-on-rails-na-webmobile/' rel='bookmark' title='Permanent Link: Ruby on Rails na WebMobile'>Ruby on Rails na WebMobile</a></li>
<li><a href='http://leonardofaria.net/2009/10/13/rails-summit-resumo-do-primeiro-dia/' rel='bookmark' title='Permanent Link: Rails Summit: resumo do primeiro dia'>Rails Summit: resumo do primeiro dia</a></li>
<li><a href='http://leonardofaria.net/2009/04/11/para-aprender-ruby-on-rails/' rel='bookmark' title='Permanent Link: Para aprender Ruby on Rails'>Para aprender Ruby on Rails</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2009/10/15/o-ecossistema-rails/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Rails Summit: resumo do segundo dia</title>
		<link>http://leonardofaria.net/2009/10/14/rails-summit-resumo-do-segundo-dia/</link>
		<comments>http://leonardofaria.net/2009/10/14/rails-summit-resumo-do-segundo-dia/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 13:07:05 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=770</guid>
		<description><![CDATA[Richard Kilmer: MacRuby A primeira palestra do segundo dia trouxe o americano Richard Kilmer que falou sobre MacRuby, a união entre Ruby e Objective-C. Notas dos slides: Problems with RubyCocoa: It's a bridge; 2 runtimes, 2 GC, different syntax MacRuby 0.4: Objective-C 2 + Ruby 1.9 Every Ruby class is an Objective-C class Every Ruby [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2009/10/13/rails-summit-resumo-do-primeiro-dia/' rel='bookmark' title='Permanent Link: Rails Summit: resumo do primeiro dia'>Rails Summit: resumo do primeiro dia</a></li>
<li><a href='http://leonardofaria.net/2007/12/02/um-resumo-do-minas-on-rails/' rel='bookmark' title='Permanent Link: Um resumo do Minas on Rails'>Um resumo do Minas on Rails</a></li>
<li><a href='http://leonardofaria.net/2007/08/19/5-dicas-para-trabalhar-com-rails/' rel='bookmark' title='Permanent Link: 5 dicas para trabalhar com Rails'>5 dicas para trabalhar com Rails</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<h2><a href="http://twitter.com/rich_kilmer">Richard Kilmer</a>: MacRuby</h2>
<p>A primeira palestra do segundo dia trouxe o americano Richard Kilmer que falou sobre <a href="http://www.macruby.org">MacRuby</a>, a união entre Ruby e Objective-C. Notas dos slides:</p>
<ul>
<li>Problems with RubyCocoa: It's a bridge; 2 runtimes, 2 GC, different syntax</li>
<li>MacRuby 0.4: Objective-C 2 + Ruby 1.9</li>
<li>Every Ruby class is an Objective-C class</li>
<li>Every Ruby object is an Objective-C object</li>
<li>Every Ruby method is an Objective-C method</li>
<li>MacRuby é um pouco mais rápido do que Objective-C</li>
<li>MacRuby utiliza recursos de processamento paralelo do OS X</li>
<li>HotCocoa is an idiomatic Ruby API that simplifies the configuration and wiring together of Objetive-C/Cocoa classes - resumindo: simplifica a sintaxe e deixa algo mais 'Ruby Way'</li>
</ul>
<p><center><a href="http://github.com/railssummit/morena_opensource"><img src="http://leonardofaria.net/wp-content/uploads/2009/10/summit6.jpg" alt="imagem ilustrativa" title="imagem ilustrativa" class="foto" /></a><br /><i>Imagem ilustrativa</i></center><br />
<h2><a href="http://www.twitter.com/fnando">Nando Vieira</a>: Ruby 1.9</h2>
<p>O Nando falou do que há de novo no Ruby 1.9, tema inclusive de um <a href="http://howtocode.com.br/o-que-mudou-no-ruby-19">PDF</a> de sua série <a href="http://howtocode.com.br/">HOWTO</a>. Sua apresentação, bem bonita, trouxe inúmeras notas sobre as mudanças da linguagem. Alguns pontos:<br />
<span id="more-770"></span>
<ul>
<li>Lançado em dezembro de 2008, prévia do Ruby 2.0. Mais rápido e com menos memória.</li>
<li>m17n (multilingualization): várias formas de fazê-lo: text.encode("codificação"); através de instruções no arquivo; File.open("file.txt", "r:utf-8</li>
<li>regexp: utiliza a biblioteca oniguruma, uma biblioteca multi-linguagem. Essa engine é mais rápida e suporta variadas codificações.</li>
<li>Nova sintaxe para hash, o que torna a sintaxe da linguagem *ainda* mais limpa:
<div class="syntax_hilite">
<div id="ruby-26">
<div class="ruby"><span class="co1"># 1.8</span><br />dict = <span class="br0">&#123;</span><br />&nbsp; &nbsp; mac =&gt; <span class="st0">"Mac OS X"</span>,<br />&nbsp; &nbsp; win =&gt; <span class="st0">"Windows"</span><br /><span class="br0">&#125;</span></p>
<p><span class="co1"># 1.9</span><br />dict = <span class="br0">&#123;</span><br />&nbsp; &nbsp; mac: <span class="st0">"Mac OS X"</span>,<br />&nbsp; &nbsp; win: <span class="st0">"Windows"</span><br /><span class="br0">&#125;</span></p>
<p><span class="co1"># no rails</span><br />render partial: <span class="st0">"hello"</span></div>
</div>
</div>
<p>
</li>
<li>Ruby 1.9 já traz nativamente rubygems, rake, rdoc, não precisando de instalação a parte.</li>
<li>Migrar ou não migrar? Verifique antes se todas suas gems já foram portadas e acesse o site: <a href="http://isitruby19.com">isitruby19.com</a>. Projetos com testes migram para a versão 1.9 com mais segurança.</li>
<li><a href="http://svn.ruby-lang.org/repos/ruby/tags/v1_9_1_0/NEWS">Changelog da versão</a> - <a href="http://simplesideias.com.br/rails-summit-o-que-mudou-no-ruby-1-9/">Slides da apresentação</a></li>
</ul>
<p><a href="http://www.flickr.com/photos/danicuki/4014186648/"><img src="http://leonardofaria.net/wp-content/uploads/2009/10/summit61.jpg" align="right" class="foto" /></a><br />
<h2><a href="http://twitter.com/lifo">Pratik Naik</a>: Experiências recentes com Rails</h2>
<p>Essa foi a primeira apresentação do Pratik Naik. Ele apresentou suas experiências recentes sobre Rails. Algumas notas:</p>
<ul>
<li>Use Ruby Enterprise Edition (também usuário pelo Twitter, 37 Signals, Shopify). É recomendado porque é mais rápido e executará seus testes mais rápidos.</li>
<li>Use o plugin Tickle para execução de testes em paralelo, o que agiliza o processo.</li>
<li>Focar em testes de integração e não em testes unitários.</li>
<li>Segurança: <a href="http://github.com/NZKoz/rails_xss">rails_xss</a>, default no Rails 3.</li>
<li>will_paginate não escala. Alternativa: usar Ajax para criar paginações como Twitter</li>
</ul>
<h2><a href="http://www.twitter.com/brupm">Bruno Miranda</a> / <a href="http://www.twitter.com/jseifer">Jason Seifer</a>: Rails não Escala</h2>
<p>O Bruno trouxe seu caso de uso: <a href="http://br.msn.cyloop.com/">Cyloop</a> é o canal de música do MSN. O Jason só estava presente no Keynote, já que teve alguns problemas com visto. Algumas notas da apresentação:</p>
<ul>
<li>13500 requests per minute</li>
<li>Using Memcached</li>
<li>Using Scrooge (já citado em outra apresentação)</li>
<li>Using Webservices com Sinatra</li>
<li>Proxies: Round Robin, HA Proxy, Nginx Fair Proxy</li>
<li>Testes: testar aplicações com dados reais</li>
<li>Logs para tudo, para garantir a segurança caso algo caia</li>
</ul>
<h2><a href="http://twitter.com/arthurgeek">Arthur Geek</a>: Controle de Versões com Git</h2>
<p>Arthur falou sobre o que são sistemas de controle de versão, os tipos (centralizado e distribuído). Git, para quem não sabe, é um sistema de controle de versões criado pelo Linus Torvals (sim, o do Linux). Seu foco é em rapidez, eficiência e uso em grandes projetos.</p>
<p>Sua palestra foi técnica com o Git em ação. <a href="http://www.slideshare.net/arthurgeek/git-controle-de-verses-do-jeito-certo">Slides da apresentação</a></p>
<p>ps. A palestra na outra sala foi do genial Vinícius Teles. <a href="http://blog.improveit.com.br/articles/2009/10/19/palestra-no-rails-summit-2009">Para quem não viu</a>.</p>
<h2><a href="http://twitter.com/obie">Obie Fernandez</a>: Dominando a Arte de Desenvolvimento de Aplicações</h2>
<p>A última apresentação do Rails Summit foi com o Obie Fernandez. Pontos da apresentação:
<ul>
<li>Software é criatividade</li>
<li>Desenvolvedores não são simplesmente cientistas, são também artistas</li>
<li>Qualidade artística não tem nada a ver com talento</li>
<li>10.000 horas = 10 anos de prática, tempo para se dar bem em algo</li>
<li>Passe pelas specs da mesma maneira como um músico lê partituras musicais</li>
<li>Lição Final: Keep Practicing</li>
</ul>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2009/10/13/rails-summit-resumo-do-primeiro-dia/' rel='bookmark' title='Permanent Link: Rails Summit: resumo do primeiro dia'>Rails Summit: resumo do primeiro dia</a></li>
<li><a href='http://leonardofaria.net/2007/12/02/um-resumo-do-minas-on-rails/' rel='bookmark' title='Permanent Link: Um resumo do Minas on Rails'>Um resumo do Minas on Rails</a></li>
<li><a href='http://leonardofaria.net/2007/08/19/5-dicas-para-trabalhar-com-rails/' rel='bookmark' title='Permanent Link: 5 dicas para trabalhar com Rails'>5 dicas para trabalhar com Rails</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2009/10/14/rails-summit-resumo-do-segundo-dia/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Rails Summit: resumo do primeiro dia</title>
		<link>http://leonardofaria.net/2009/10/13/rails-summit-resumo-do-primeiro-dia/</link>
		<comments>http://leonardofaria.net/2009/10/13/rails-summit-resumo-do-primeiro-dia/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 12:46:10 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=726</guid>
		<description><![CDATA[Esse é um rascunho do que foi abordado no primeiro dia do Rails Summit. Chad Fowler: Insurgência Ruby on Rails Stop doing things you know are wrong! A primeira Rubyconf aconteceu em 2001 com 34 pessoas. Nenhum dos participantes ganhava $ com Ruby. 5 dos 34 participantes escreveram o Agile Manifesto. "The survival rate for [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2009/10/14/rails-summit-resumo-do-segundo-dia/' rel='bookmark' title='Permanent Link: Rails Summit: resumo do segundo dia'>Rails Summit: resumo do segundo dia</a></li>
<li><a href='http://leonardofaria.net/2007/12/02/um-resumo-do-minas-on-rails/' rel='bookmark' title='Permanent Link: Um resumo do Minas on Rails'>Um resumo do Minas on Rails</a></li>
<li><a href='http://leonardofaria.net/2007/08/04/3-anos-de-rails/' rel='bookmark' title='Permanent Link: 3 anos de Rails'>3 anos de Rails</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Esse é um rascunho do que foi abordado no primeiro dia do Rails Summit. </p>
<h2><a href="http://twitter.com/chadfowler/">Chad Fowler</a>: Insurgência Ruby on Rails</h2>
<p><a href="http://github.com/railssummit/morena_opensource/"><img src="http://leonardofaria.net/wp-content/uploads/2009/10/summit.jpg" align="right" class="foto" /></a>
<ul>
<li>Stop doing things you know are wrong!</li>
<li>A primeira Rubyconf aconteceu em 2001 com 34 pessoas.</li>
<li>Nenhum dos participantes ganhava $ com Ruby.</li>
<li>5 dos 34 participantes escreveram o Agile Manifesto.</li>
<li>"The survival rate for startups is way less than 50%. So if you're running a startup, you had betted be doing something old. If not, you're in Trouble"</li>
<li>Implante uma nova tecnologia gradativamente.</li>
<li>Don't do (.Net | Java | C++ | C | Perl l PHP) in Ruby: a razão de trocar de tecnologia é fazer as coisas diferentes!</li>
<li>Linguagens de computador são como namoradas: a nova é melhor porque você é melhor.</li>
</ul>
<h2><a href="http://twitter.com/greggpollack">Gregg Pollack</a>: Na Vanguarda da Performance em Rails</h2>
<p>Gregg Pollack, o cara dos screencasts do <a href="http://www.RailsEnvy.com/">RailsEnvy</a>, falou sobre performance. Primeiramente ele trouxe em 60 segundos algumas coisinhas para otimizar apps.</p>
<ul>
<li>Usar Yslow</li>
<li>Cache: Page Caching, Action Caching, Fragment Caching, Object Caching</li>
<li>Avoid Cache expiration</li>
<li>Use memcached</li>
<li>Use background process</li>
<li>Client-side caching: etags &#038; last-modified</li>
<li>Don't pre-optimize: 99% of the time you'll need 0%</li>
<li>Don't abuse your database</li>
</ul>
<p><span id="more-726"></span></p>
<p>Trouxe também um monte de plugins interessantes. Alguns deles:</p>
<ul>
<li>Bullet: verifica queries e dá dicas de otimização</li>
<li>Rails_index: mostra onde falta índice nas tabelas</li>
<li>Scrooge: otimiza queries</li>
</ul>
<p>A apresentação dele tem o mesmo estilo dos seus screencasts. <a href="http://blog.envylabs.com/summit/">Links da apresentação</a>.<br />
<a href="http://github.com/railssummit/morena_opensource/"><img src="http://leonardofaria.net/wp-content/uploads/2009/10/summit21.jpg" align="right" class="foto" /></a><br />
<h2><a href="http://twitter.com/carlosbrando">Carlos Brando</a>: Yet Another Ruby Framework – Como o Rails funciona por dentro</h2>
<p>Carlos Brando trouxe sua experiência sobre aplicações sociais.
<ul>
<li>OpenSocial: xml + js (eu já sabia)</li>
<li>Rails não foi feito para construir coisas para o OpenSocial</li>
</ul>
<p>Carlos prometeu falar mais do funcionamento do Rails em seu blog. <a href="http://www.nomedojogo.com/2009/10/13/os-slides-da-minha-apresentacao-no-rails-summit-latin-america-2009/">Slides de sua apresentação</a>.</p>
<h2><a href="http://twitter.com/Igrigorik">Ilya Grigorik</a>: Ruby em tempo real para Web em tempo real</h2>
<p>Essa palestra foi concomitante a palestra do Carlos e não assisti. <a href="http://www.slideshare.net/igrigorik/realtime-ruby-for-the-realtime-web">Slides da apresentação</a>.</p>
<h2><a href="http://twitter.com/josevalim">José Valim</a>: Geradores de código com Thor</h2>
<p>José Valim falou dos novos generators do Rails 3. A necessidade de reescrevê-lo deu-se ao fato do código duplicado existe caso você alterasse algumas coisas padrões (tests, erb). O resultado disso tudo é o Thor.</p>
<p>Thor = Rake + Sake + Rubigen + Rails template</p>
<p><a href="http://blog.plataformatec.com.br/2009/10/thor-e-devise-no-rails-summit-latin-america-2009/">Slides da apresentação</a></p>
<h2><a href="http://twitter.com/dchelimsky">David Chelimsky</a>: RSpec e Cucumber: Além do Básico</h2>
<p>David é líder do projeto RSpec. Sua palestra, naturalmente sobre o assunto, apresentou algumas técnicas do TDD.</p>
<h2><a href="http://www.twitter.com/akitaonrails">Fabio Akita</a>: Agile, além do Caos</h2>
<p>A palestra do Akita trouxe pensamentos aleatórios sobre agilidade. Entre várias falas, Akita quebrou o paradigma do "time que está ganhando não se mexe". Isso é uma falácia porque com o tempo há deterionamento do time.<br />
Foi uma palestra altamente conceitual, uma verdadeira viagem envolvendo psicologia. Algumas mensagens dos seus slides:
<ul>
<li>Não interessa os comos. Me interessa os porques.</li>
<li>Sucesso não vem de um plano. Vem da adaptabilidade ao ambiente.</li>
<li>Quebre as regras!</li>
<li>Agilidade é importante. Mas não é o último passo</li>
</ul>
<p><center><object width="600" height="450"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7099091&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=7099091&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="600" height="450"></embed></object>
<p><a href="http://vimeo.com/7099091">Além do Caos - Pensamentos Aleatórios sobre Agilidade</a> from <a href="http://vimeo.com/locaweb">Locaweb</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p></center><br />
<h2><a href="http://twitter.com/mattetti">Matt Aimonetti</a>: O futuro do Ruby &#038; Rails</h2>
<p>A última palestra do dia foi do francês Matt Aimonetti. Matt é um dos programadores que estão trabalhando no Rails 3. Algumas mudanças:
<ul>
<li>HTML 5 e Javascript não-obstrusivo: uma única interface para você utilizar a biblioteca que quiser (Prototype, jQuery, YUI) </li>
<li>Active Record continua padrão, mas existirá no Rails uma API comum para que você possa usar qualquer ORM (Active Record, Data Mapper)</li>
<li>Otimização Interna: Rails 3 está entre 2 e 3x mais rápido do que a versão anterior em benchmark do Matt, entretanto outros benchmarks mostram resultados ainda melhores.</li>
<li><a href="http://www.slideshare.net/mattetti/future-of-ruby-and-rails-2223913">Slides da apresentação do Matt</a></li>
</ul>
<h2>Desconferência &#038; Hora extra</h2>
<p><a href="http://twitter.com/danicuki"><img src="http://leonardofaria.net/wp-content/uploads/2009/10/summit4.jpg" alt="melô do teste automatizado" title="melô do teste automatizado" class="foto" align="right" /></a>
<ul>
<li>IMPORTANTE: A <a href="http://github.com/railssummit/morena_opensource/">morena opensource</a> está de novo no evento e há <a href="http://github.com/railssummit/morena_opensource/tree/master/RailsSummit2009/">fotos novinhas dela</a> no Github</li>
<li>O pessoal do Guru SP apareceu e falou de seus projetos, como o Coding Dojo.</li>
<li>A desconferência teve a participação do pessoal do Rio Grande do Norte que organizou o Oxente Rails. Eles falaram sobre 'como não fazer um evento'. </li>
<li>O pessoal do Rio também falou da sua experiência em organizar eventos e pessoas. Segundo eles, o foco está nas pessoas. Eles parecem ser um grupo bem organizado, onde até as esposas se reúnem!</li>
<li>O <a href="http://twitter.com/rafaelp">Rafael Lima</a> apresentou sobre aplicações e empreendimento. Entre várias coisas interessante, ele disse que o desenvolvedor esquece de que ele também precisa conhecer de negócios para manter sua aplicação no ar.</li>
<li>O <a href="http://blog.areacriacoes.com.br/">Daniel Lopes</a> apresentou seu problema quanto as finanças de sua empresa e sua solução: uma aplicação de gerenciamento financeiro que está para vir.</li>
<li>O <a href="http://twitter.com/lfcipriani">@lfcipriani</a> apresentou seu case de aplicação: <a href="http://www.maratonadebasquete.com.br/marathons/1">Maratona de Basquete</a>. Trata-se de uma maratona de basquete cujo placar eletrônico é uma aplicação com um mega esquema de arquitetura envolvendo Rails, jQuery, XMPP, bots Ruby e tudo mais. <a href="http://prezi.com/-9hz7py6rkkc/">Sua apresentação</a></li>
<li>O Alexandre Gomes falou <a href="http://bluesoft.wordpress.com/2009/10/15/manifesto-2-0-por-alexandre-gomes-no-rails-summit-2009/">sobre o manifesto 2.0</a> que representa uma nova escola de pensamento de Tecnologia da Informação que vem transformando a industria de desenvolvilmento de software.</li>
<li>O George apresentou o <a href="http://github.com/plataformatec/devise">Devise</a>, plugin para autenticação</li>
<li>Por último, o <a href="http://twitter.com/danicuki">Daniel Cukier</a> cantou duas músicas: Melô dos Testes e o <a href="http://agileandart.blogspot.com/2009/10/samba-do-akita.html">Samba do Akita</a>. *excelente*</li>
<li>Além disso, rolou um #horaextra no <a href="http://www.barbrahmasp.com/aeroclube/">Bar Brahma do Clube de Aviação</a>, com umas 100 pessoas. Hora de tomar um chopp gelado e encontrar pessoas do mundo online.</li>
</ul>
<h2>Etc.</h2>
<ul>
<li>No evento rolou o lançamento de um produto, o <a href="http://trendti.me/">trendi.me</a>. Trata-se de um app para coberturas de eventos e o Rails Summit foi o <a href="http://trendti.me/events/railssummit">primeiro evento monitorado</a>.</li>
<li>Também teve o <a href="http://live.blogblogs.com.br/railssummit2009/">live stream</a> do pessoal do <a href="http://www.blogblogs.com.br">BlogBlogs</a></li>
</ul>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2009/10/14/rails-summit-resumo-do-segundo-dia/' rel='bookmark' title='Permanent Link: Rails Summit: resumo do segundo dia'>Rails Summit: resumo do segundo dia</a></li>
<li><a href='http://leonardofaria.net/2007/12/02/um-resumo-do-minas-on-rails/' rel='bookmark' title='Permanent Link: Um resumo do Minas on Rails'>Um resumo do Minas on Rails</a></li>
<li><a href='http://leonardofaria.net/2007/08/04/3-anos-de-rails/' rel='bookmark' title='Permanent Link: 3 anos de Rails'>3 anos de Rails</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2009/10/13/rails-summit-resumo-do-primeiro-dia/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Paperclip validando imagens no IE</title>
		<link>http://leonardofaria.net/2009/08/16/paperclip-validando-imagens-no-ie/</link>
		<comments>http://leonardofaria.net/2009/08/16/paperclip-validando-imagens-no-ie/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 21:47:57 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=691</guid>
		<description><![CDATA[No autosimulado, tive um problema onde o IE (sempre ele) não validava o mime-type de uma imagem. Mesmo tentando enviar uma imagem JPG - imagem permitida - o IEca não aceitava o arquivo. A solução: O (pseudo)browser da turma do tio Ballmer e cia não compreende o mime-type image/jpeg e sim o image/pjpeg.]]></description>
			<content:encoded><![CDATA[<p>No <strong><a href="http://www.autosimulado.com.br">autosimulado</a></strong>, tive um problema onde o IE (sempre ele) não validava o mime-type de uma imagem.  Mesmo tentando enviar uma imagem JPG - imagem permitida - o IEca não aceitava o arquivo. A solução: </p>
<p><script src='http://codestacker.com/191.js'></script></p>
<p>O (pseudo)browser da turma do tio Ballmer e cia não compreende o mime-type image/jpeg e sim o image/pjpeg.</p>
]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2009/08/16/paperclip-validando-imagens-no-ie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Descubra de onde vem seus usuários com SQL</title>
		<link>http://leonardofaria.net/2009/07/12/descubra-de-onde-vem-seus-usuarios-com-sql/</link>
		<comments>http://leonardofaria.net/2009/07/12/descubra-de-onde-vem-seus-usuarios-com-sql/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 17:51:44 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[autosimulado]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=683</guid>
		<description><![CDATA[Tenho no autosimulado algumas queries para acompanhar a evolução dos usuários do site. Periodicamente, vejo o número de usuários criados dia-a-dia no site e o número de testes realizados por esses usuários. Relacionado as essas queries, vi uma interessante consulta para agrupar o número de usuários por domínio de email, através da função substring. Confira: [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2009/03/14/nasceu-autosimulado/' rel='bookmark' title='Permanent Link: Nasceu: autosimulado'>Nasceu: autosimulado</a></li>
<li><a href='http://leonardofaria.net/2007/06/28/curiosidade-ruby-do-dia/' rel='bookmark' title='Permanent Link: Curiosidade Ruby do dia'>Curiosidade Ruby do dia</a></li>
<li><a href='http://leonardofaria.net/2009/04/03/integracao-continua-no-autosimulado/' rel='bookmark' title='Permanent Link: Integração contínua no autosimulado'>Integração contínua no autosimulado</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Tenho no <a href="http://www.autosimulado.com.br"><strong>autosimulado</strong></a> algumas queries para acompanhar a evolução dos usuários do site. Periodicamente, vejo o número de usuários criados dia-a-dia no site e o número de testes realizados por esses usuários.</p>
<p>Relacionado as essas queries, <a href="http://www.mendable.com/sql-trick-where-are-your-users-from/">vi uma interessante consulta</a> para agrupar o número de usuários por domínio de email, através da função <a href="http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_substring-index">substring</a>. Confira:</p>
<p><script src='http://codestacker.com/186.js'></script></p>
<p>O resultado, quando aplicado ao banco de dados do <a href="http://www.autosimulado.com.br"><strong>autosimulado</strong></a>:</p>
<div class="syntax_hilite">
<div id="code-28">
<div class="code">+-------+----------------+<br />| Total | Domain&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|<br />+-------+----------------+<br />|&nbsp; &nbsp;<span class="nu0">644</span> | hotmail.<span class="me1">com</span>&nbsp; &nbsp; | <br />|&nbsp; &nbsp;<span class="nu0">116</span> | gmail.<span class="me1">com</span>&nbsp; &nbsp; &nbsp; | <br />|&nbsp; &nbsp; <span class="nu0">98</span> | yahoo.<span class="me1">com</span>.<span class="me1">br</span>&nbsp; &nbsp;| <br />|&nbsp; &nbsp; <span class="nu0">37</span> | bol.<span class="me1">com</span>.<span class="me1">br</span>&nbsp; &nbsp; &nbsp;| <br />|&nbsp; &nbsp; <span class="nu0">33</span> | ig.<span class="me1">com</span>.<span class="me1">br</span>&nbsp; &nbsp; &nbsp; | <br />|&nbsp; &nbsp; <span class="nu0">15</span> | uol.<span class="me1">com</span>.<span class="me1">br</span>&nbsp; &nbsp; &nbsp;| <br />|&nbsp; &nbsp; <span class="nu0">11</span> | oi.<span class="me1">com</span>.<span class="me1">br</span>&nbsp; &nbsp; &nbsp; | <br />|&nbsp; &nbsp; <span class="nu0">10</span> | yahoo.<span class="me1">com</span>&nbsp; &nbsp; &nbsp; | <br />|&nbsp; &nbsp; &nbsp;<span class="nu0">9</span> | hotmail.<span class="me1">com</span>.<span class="me1">br</span> | <br />|&nbsp; &nbsp; &nbsp;<span class="nu0">8</span> | terra.<span class="me1">com</span>.<span class="me1">br</span>&nbsp; &nbsp;| <br />+-------+----------------+<br /><span class="nu0">10</span> rows in set <span class="br0">&#40;</span><span class="nu0">0</span>.<span class="nu0">00</span> sec<span class="br0">&#41;</span></div>
</div>
</div>
<p></p>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2009/03/14/nasceu-autosimulado/' rel='bookmark' title='Permanent Link: Nasceu: autosimulado'>Nasceu: autosimulado</a></li>
<li><a href='http://leonardofaria.net/2007/06/28/curiosidade-ruby-do-dia/' rel='bookmark' title='Permanent Link: Curiosidade Ruby do dia'>Curiosidade Ruby do dia</a></li>
<li><a href='http://leonardofaria.net/2009/04/03/integracao-continua-no-autosimulado/' rel='bookmark' title='Permanent Link: Integração contínua no autosimulado'>Integração contínua no autosimulado</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2009/07/12/descubra-de-onde-vem-seus-usuarios-com-sql/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Curiosidade Ruby do dia #2</title>
		<link>http://leonardofaria.net/2009/07/01/curiosidade-ruby-do-dia-2/</link>
		<comments>http://leonardofaria.net/2009/07/01/curiosidade-ruby-do-dia-2/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 21:03:22 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=678</guid>
		<description><![CDATA[Em outra curiosidade Ruby do dia, eu falei do elsif. Hoje eu lembro do método succ, da classe String. Veja os exemplo: Não é simplesmente incrível? P.S.: o método chama-se succ e não suck. Trocadilhos desse tipo serão desconsiderados. Posts relacionados:Curiosidade Ruby do dia O que é Ruby? Documentação sobre Ruby e seus gems

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2007/06/28/curiosidade-ruby-do-dia/' rel='bookmark' title='Permanent Link: Curiosidade Ruby do dia'>Curiosidade Ruby do dia</a></li>
<li><a href='http://leonardofaria.net/2009/11/09/o-que-e-ruby/' rel='bookmark' title='Permanent Link: O que é Ruby?'>O que é Ruby?</a></li>
<li><a href='http://leonardofaria.net/2007/12/14/documentacao-sobre-ruby-e-seus-gems/' rel='bookmark' title='Permanent Link: Documentação sobre Ruby e seus gems'>Documentação sobre Ruby e seus gems</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Em outra curiosidade Ruby do dia, <a href="http://leonardofaria.net/2007/06/28/curiosidade-ruby-do-dia/">eu falei do elsif</a>. Hoje eu lembro do método succ, da classe <a href="http://www.ruby-doc.org/core/classes/String.html">String</a>. Veja os exemplo:</p>
<p><script src='http://codestacker.com/184.js'></script></p>
<p>Não é simplesmente incrível?</p>
<p>P.S.: o método chama-se succ e não suck. Trocadilhos desse tipo serão desconsiderados.</p>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2007/06/28/curiosidade-ruby-do-dia/' rel='bookmark' title='Permanent Link: Curiosidade Ruby do dia'>Curiosidade Ruby do dia</a></li>
<li><a href='http://leonardofaria.net/2009/11/09/o-que-e-ruby/' rel='bookmark' title='Permanent Link: O que é Ruby?'>O que é Ruby?</a></li>
<li><a href='http://leonardofaria.net/2007/12/14/documentacao-sobre-ruby-e-seus-gems/' rel='bookmark' title='Permanent Link: Documentação sobre Ruby e seus gems'>Documentação sobre Ruby e seus gems</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2009/07/01/curiosidade-ruby-do-dia-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>hirb, dados tabulados no console</title>
		<link>http://leonardofaria.net/2009/07/01/hirb-dados-tabulados-no-console/</link>
		<comments>http://leonardofaria.net/2009/07/01/hirb-dados-tabulados-no-console/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 20:21:22 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=672</guid>
		<description><![CDATA[hirb é uma gem que, num rápido resumo, tabula e organiza em árvores dados que, entre várias origens, podem vir de um array. A instalação gem install cldwalker-hirb --source http://gems.github.com A partir daí, basta chamar a biblioteca (require 'hirb'), habilitá-la na execução (Hirb.enable) e correr pro abraço. Confira abaixo: Posts relacionados:Syntax Highlight on Rails Mudanças [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2009/12/02/syntax-highlight-on-rails/' rel='bookmark' title='Permanent Link: Syntax Highlight on Rails'>Syntax Highlight on Rails</a></li>
<li><a href='http://leonardofaria.net/2008/08/02/mudancas-no-rails-22/' rel='bookmark' title='Permanent Link: Mudanças no Rails 2.2'>Mudanças no Rails 2.2</a></li>
<li><a href='http://leonardofaria.net/2007/12/14/documentacao-sobre-ruby-e-seus-gems/' rel='bookmark' title='Permanent Link: Documentação sobre Ruby e seus gems'>Documentação sobre Ruby e seus gems</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p><a href="http://tagaholic.me/hirb/"><strong>hirb</strong></a> é uma gem que, num rápido resumo, tabula e organiza em árvores dados que, entre várias origens, podem vir de um array. A instalação</p>
<div class="syntax_hilite">
<div id="code-30">
<div class="code">gem install cldwalker-hirb --source http:<span class="co1">//gems.github.com </span></div>
</div>
</div>
<p></p>
<p>A partir daí, basta chamar a biblioteca (require 'hirb'), habilitá-la na execução (Hirb.enable) e correr pro abraço. Confira abaixo:</p>
<p><script src='http://codestacker.com/183.js'></script></p>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2009/12/02/syntax-highlight-on-rails/' rel='bookmark' title='Permanent Link: Syntax Highlight on Rails'>Syntax Highlight on Rails</a></li>
<li><a href='http://leonardofaria.net/2008/08/02/mudancas-no-rails-22/' rel='bookmark' title='Permanent Link: Mudanças no Rails 2.2'>Mudanças no Rails 2.2</a></li>
<li><a href='http://leonardofaria.net/2007/12/14/documentacao-sobre-ruby-e-seus-gems/' rel='bookmark' title='Permanent Link: Documentação sobre Ruby e seus gems'>Documentação sobre Ruby e seus gems</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2009/07/01/hirb-dados-tabulados-no-console/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>sitemap.xml no Rails</title>
		<link>http://leonardofaria.net/2009/06/07/sitemapxml-no-rails/</link>
		<comments>http://leonardofaria.net/2009/06/07/sitemapxml-no-rails/#comments</comments>
		<pubDate>Sun, 07 Jun 2009 14:30:52 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=660</guid>
		<description><![CDATA[Usado para SEO, Sitemaps servem para informar aos sites de busca como indexar as páginas de um site. Indexadores descobrem páginas com base em links no site e outros sites e o que os Sitemaps fazem é complementar esses dados, para permitir que os indexadores com suporte para Sitemaps peguem todos os URLs no Sitemap [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2007/04/12/criando-rss-com-rails/' rel='bookmark' title='Permanent Link: Criando RSS com Rails'>Criando RSS com Rails</a></li>
<li><a href='http://leonardofaria.net/2008/11/26/php-junto-com-o-passenger-no-leopard/' rel='bookmark' title='Permanent Link: PHP junto com o Passenger no Leopard'>PHP junto com o Passenger no Leopard</a></li>
<li><a href='http://leonardofaria.net/2007/04/13/por-que-vale-a-pena-trabalhar-com-rails/' rel='bookmark' title='Permanent Link: Por que vale a pena trabalhar com Rails'>Por que vale a pena trabalhar com Rails</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Usado para SEO, <a href="http://www.sitemaps.org/">Sitemaps</a> servem para informar aos sites de busca como indexar as páginas de um site. Indexadores descobrem páginas com base em links no site e outros sites e o que os Sitemaps fazem é complementar esses dados, para permitir que os indexadores com suporte para Sitemaps peguem todos os URLs no Sitemap e aprendam sobre esses URLs usando os metadados associados.</p>
<p>Existem <a href="http://www.xml-sitemaps.com/">sites</a> para gerar o arquivo, mas fazer isso no Rails não é complicado e faremos isso em 4 passos. A dica vem do <a href="http://tonycode.com/wiki/index.php?title=Ruby_on_Rails_Sitemap_Generator">Tony</a> no livro <a href="http://www.pragprog.com/titles/fr_arr/advanced-rails-recipes">Advanced Rails Recipes</a>.</p>
<p><span id="more-660"></span><br />
<h3>1. Controller</h3>
<p>Crie um controller chamado sitemap:</p>
<div class="syntax_hilite">
<div id="code-35">
<div class="code">script/generate controller sitemap</div>
</div>
</div>
<p></p>
<h3>2. Busca das URLs</h3>
<p>Crie o método para listar todas as entradas do seu banco:</p>
<div class="syntax_hilite">
<div id="ruby-36">
<div class="ruby"><span class="kw1">class</span> SitemapController &lt;ApplicationController<br />&nbsp; <span class="kw1">def</span> sitemap<br />&nbsp; &nbsp; @entries = Model.<span class="me1">find</span><span class="br0">&#40;</span>:all, :order =&gt; <span class="st0">"updated_at DESC"</span>, :limit =&gt; <span class="nu0">50000</span><span class="br0">&#41;</span><br />&nbsp; &nbsp; headers<span class="br0">&#91;</span><span class="st0">"Content-Type"</span><span class="br0">&#93;</span> = <span class="st0">"text/xml"</span><br />&nbsp; &nbsp; <span class="co1"># set last modified header to the date of the latest entry.</span><br />&nbsp; &nbsp; headers<span class="br0">&#91;</span><span class="st0">"Last-Modified"</span><span class="br0">&#93;</span> = @entries<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>.<span class="me1">updated_at</span>.<span class="me1">httpdate</span>&nbsp; &nbsp; <br />&nbsp; <span class="kw1">end</span><br /><span class="kw1">end</span></div>
</div>
</div>
<p></p>
<p>As entradas do arquivo sitemap.xml são limitadas em seu <a href="http://www.sitemaps.org/pt_BR/protocol.php">protocolo</a> em 50000 registros. Você pode se quiser, gerar esse arquivo com as URLs de várias entidades, como o <a href="http://www.igvita.com/">Ilya Grigorik</a> faz em <a href="http://www.igvita.com/2006/11/24/google-yahoo-sitemaps-in-rails/">seu artigo</a>.</p>
<h3>3. View</h3>
<p>Crie o arquivo sitemap.rxml</p>
<div class="syntax_hilite">
<div id="ruby-37">
<div class="ruby">xml.<span class="me1">instruct</span>!<br />xml.<span class="me1">urlset</span> <span class="st0">"xmlns"</span> =&gt; <span class="st0">"http://www.sitemaps.org/schemas/sitemap/0.9"</span> <span class="kw1">do</span><br />&nbsp; @entries.<span class="me1">each</span> <span class="kw1">do</span> |entry|<br />&nbsp; &nbsp; xml.<span class="me1">url</span> <span class="kw1">do</span><br />&nbsp; &nbsp; &nbsp; xml.<span class="me1">loc</span> url_for<span class="br0">&#40;</span>:controller =&gt; 'controller', :action =&gt; 'show', :id =&gt; entry.<span class="me1">id</span>, :only_path =&gt; <span class="kw2">false</span><span class="br0">&#41;</span><br />&nbsp; &nbsp; &nbsp; xml.<span class="me1">lastmod</span> entry.<span class="me1">updated_at</span>.<span class="me1">to_date</span><br />&nbsp; &nbsp; <span class="kw1">end</span><br />&nbsp; <span class="kw1">end</span><br /><span class="kw1">end</span></div>
</div>
</div>
<p></p>
<h3>4. Atualização do arquivo de rotas</h3>
<p>Crie a rota para que você tenha o arquivo www.seusite.com.br/sitemap.xml</p>
<div class="syntax_hilite">
<div id="ruby-38">
<div class="ruby">map.<span class="me1">connect</span> 'sitemap.<span class="me1">xml</span>', :controller =&gt; <span class="st0">"sitemap"</span>, :action =&gt; <span class="st0">"sitemap"</span></div>
</div>
</div>
<p></p>
<h3>Conclusão</h3>
<p>Com o arquivo pronto, é só indicá-lo no <a href="http://www.google.com/webmasters/sitemaps/">Google Webmaster</a> e no <a href="http://siteexplorer.search.yahoo.com/">Yahoo Site Explorer</a>. Caso queira conhecer mais sobre sitemaps, visite <a href="http://www.google.com/support/webmasters/bin/answer.py?answer=40318&#038;hl=pt_BR">essa página</a> do Google.</p>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2007/04/12/criando-rss-com-rails/' rel='bookmark' title='Permanent Link: Criando RSS com Rails'>Criando RSS com Rails</a></li>
<li><a href='http://leonardofaria.net/2008/11/26/php-junto-com-o-passenger-no-leopard/' rel='bookmark' title='Permanent Link: PHP junto com o Passenger no Leopard'>PHP junto com o Passenger no Leopard</a></li>
<li><a href='http://leonardofaria.net/2007/04/13/por-que-vale-a-pena-trabalhar-com-rails/' rel='bookmark' title='Permanent Link: Por que vale a pena trabalhar com Rails'>Por que vale a pena trabalhar com Rails</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2009/06/07/sitemapxml-no-rails/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Para aprender Ruby on Rails</title>
		<link>http://leonardofaria.net/2009/04/11/para-aprender-ruby-on-rails/</link>
		<comments>http://leonardofaria.net/2009/04/11/para-aprender-ruby-on-rails/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 16:49:03 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=508</guid>
		<description><![CDATA[Esse post é para indicar 2 dicas matadoras que mostram como a comunidade Ruby on Rails é organizada e colaborativa. Essa semana foi finalmente terminado a tradução/edição/revisão d'O Guia (comovente) de Ruby do Why. Essa é tradução do livro do Why the Lucky Stiff, um cara que ensina fantasticamente bem. Já ontem o Daniel Lopes [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2007/08/19/5-dicas-para-trabalhar-com-rails/' rel='bookmark' title='Permanent Link: 5 dicas para trabalhar com Rails'>5 dicas para trabalhar com Rails</a></li>
<li><a href='http://leonardofaria.net/2009/02/08/documentacao-do-rails-e-ruby-no-spotlight/' rel='bookmark' title='Permanent Link: Documentação do Rails e Ruby no Spotlight'>Documentação do Rails e Ruby no Spotlight</a></li>
<li><a href='http://leonardofaria.net/2007/01/27/apresentando-ruby-on-rails/' rel='bookmark' title='Permanent Link: Apresentando Ruby on Rails'>Apresentando Ruby on Rails</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Esse post é para indicar 2 dicas matadoras que mostram como a comunidade Ruby on Rails é organizada e colaborativa. Essa semana foi finalmente terminado a tradução/edição/revisão d'<a href="http://www.why.nomedojogo.com/">O Guia (comovente) de Ruby do Why</a>. Essa é tradução do livro do <a href="http://www.whytheluckystiff.net/">Why the Lucky Stiff</a>, um cara que ensina fantasticamente bem. </p>
<p><center><a href="http://guias.rubyonrails.pro.br/"><img src="http://leonardofaria.net/wp-content/uploads/2009/04/railsguides.jpg" alt="RailsGuides" title="RailsGuides" class="foto" /></a></center></p>
<p>Já ontem o <a href="http://blog.areacriacoes.com.br/">Daniel Lopes</a> anunciou a publicação do <a href="http://guias.rubyonrails.pro.br/">RailsGuides</a>. O <a href="http://guias.rubyonrails.pro.br/">RailsGuides</a> existe para mostrar como as peças do framework funcionam e como trabalhar com toda a produtividade que o Rails proporciona aos desenvolvedores. Boa viagem!</p>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2007/08/19/5-dicas-para-trabalhar-com-rails/' rel='bookmark' title='Permanent Link: 5 dicas para trabalhar com Rails'>5 dicas para trabalhar com Rails</a></li>
<li><a href='http://leonardofaria.net/2009/02/08/documentacao-do-rails-e-ruby-no-spotlight/' rel='bookmark' title='Permanent Link: Documentação do Rails e Ruby no Spotlight'>Documentação do Rails e Ruby no Spotlight</a></li>
<li><a href='http://leonardofaria.net/2007/01/27/apresentando-ruby-on-rails/' rel='bookmark' title='Permanent Link: Apresentando Ruby on Rails'>Apresentando Ruby on Rails</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2009/04/11/para-aprender-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integração contínua no autosimulado</title>
		<link>http://leonardofaria.net/2009/04/03/integracao-continua-no-autosimulado/</link>
		<comments>http://leonardofaria.net/2009/04/03/integracao-continua-no-autosimulado/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 20:31:38 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[autosimulado]]></category>
		<category><![CDATA[empreendorismo]]></category>
		<category><![CDATA[portfolio]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=492</guid>
		<description><![CDATA[Assim como no codestacker, não lancei o autosimulado com todos os features prontos. Naturalmente, lançar um projeto sem estar com 100% dos recursos completos pode ser um risco, mas é uma gostosa corrida contra o tempo - e mais uma chance para avaliar se essa ou aquela funcionalidade é realmente útil para o aplicativo. Como [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2009/03/14/nasceu-autosimulado/' rel='bookmark' title='Permanent Link: Nasceu: autosimulado'>Nasceu: autosimulado</a></li>
<li><a href='http://leonardofaria.net/2008/10/23/integracao-continua-no-codestacker/' rel='bookmark' title='Permanent Link: Integração contínua no codestacker'>Integração contínua no codestacker</a></li>
<li><a href='http://leonardofaria.net/2009/12/05/monografia-on-rails-autosimulado/' rel='bookmark' title='Permanent Link: Monografia on Rails: autosimulado'>Monografia on Rails: autosimulado</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Assim como no <a href="http://www.codestacker.com"><strong>codestacker</strong></a>, não lancei o <a href="http://www.autosimulado.com.br"><strong>autosimulado</strong></a> com todos os features prontos. Naturalmente, lançar um projeto sem estar com 100% dos recursos completos pode ser um risco, mas é uma gostosa corrida contra o tempo - e mais uma chance para avaliar se essa ou aquela funcionalidade é realmente útil para o aplicativo. Como disse Steve Jobs em uma apresentação sobre a iTunes Music Store, "Inovação não é dizer sim para tudo. É dizer NÃO para tudo exceto as funcionalidades mais cruciais".</p>
<p>Hoje eu estou postando para falar de uma nova funcionalidade do <a href="http://www.autosimulado.com.br"><strong>autosimulado</strong></a>. Agora, o seu desempenho é salvo e você pode acompanhar o resultado dos testes em uma página exclusiva e com gráficos. Para ilustrar:</p>
<p><center><a href-"http://www.autosimulado.com.br"><img src="http://leonardofaria.net/wp-content/uploads/2009/04/autosimulado1.jpg" alt="autosimulado" title="autosimulado" class="foto" /></a></center></p>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2009/03/14/nasceu-autosimulado/' rel='bookmark' title='Permanent Link: Nasceu: autosimulado'>Nasceu: autosimulado</a></li>
<li><a href='http://leonardofaria.net/2008/10/23/integracao-continua-no-codestacker/' rel='bookmark' title='Permanent Link: Integração contínua no codestacker'>Integração contínua no codestacker</a></li>
<li><a href='http://leonardofaria.net/2009/12/05/monografia-on-rails-autosimulado/' rel='bookmark' title='Permanent Link: Monografia on Rails: autosimulado'>Monografia on Rails: autosimulado</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2009/04/03/integracao-continua-no-autosimulado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nasceu: autosimulado</title>
		<link>http://leonardofaria.net/2009/03/14/nasceu-autosimulado/</link>
		<comments>http://leonardofaria.net/2009/03/14/nasceu-autosimulado/#comments</comments>
		<pubDate>Sat, 14 Mar 2009 20:41:36 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[faculdade]]></category>
		<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[acadêmico]]></category>
		<category><![CDATA[empreendorismo]]></category>
		<category><![CDATA[portfolio]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[web2.0]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=477</guid>
		<description><![CDATA[autosimulado é um aplicativo web com simulados de provas de legislação, aquelas que você faz quando vai tirar sua carteira de motorista. A inspiração para o autosimulado apareceu quando minha namorada foi tirar carteira, e ao tentar ajudá-la procurando provas, só encontrei coisas chatas, feias e sem usabilidade. Provas do Detran metem medo em muita [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2009/04/03/integracao-continua-no-autosimulado/' rel='bookmark' title='Permanent Link: Integração contínua no autosimulado'>Integração contínua no autosimulado</a></li>
<li><a href='http://leonardofaria.net/2009/12/05/monografia-on-rails-autosimulado/' rel='bookmark' title='Permanent Link: Monografia on Rails: autosimulado'>Monografia on Rails: autosimulado</a></li>
<li><a href='http://leonardofaria.net/2008/07/02/nasceu-codestackercom/' rel='bookmark' title='Permanent Link: Nasceu: codestacker.com'>Nasceu: codestacker.com</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.autosimulado.com.br"><b>autosimulado</b></a> é um aplicativo web com simulados de provas de legislação, aquelas que você faz quando vai tirar sua carteira de motorista. A inspiração para o <a href="http://www.autosimulado.com.br"><b>autosimulado</b></a> apareceu quando minha namorada foi tirar carteira, e ao tentar ajudá-la procurando provas, só encontrei coisas chatas, feias e sem usabilidade. Provas do Detran metem medo em muita gente - eu mesmo só passei da segunda tentativa - e ser simples, rápido, inteligente e grátis é o objetivo do site, que nasceu sobre a concepção do <a href="https://gettingreal.37signals.com/GR_por.php">Getting Real</a> e da integração contínua.</p>
<p><center><a href="http://www.autosimulado.com.br"><img src="http://leonardofaria.net/wp-content/uploads/2009/03/autosimulado.jpg" alt="autosimulado" title="autosimulado" width="450" class="foto" /></a></center></p>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2009/04/03/integracao-continua-no-autosimulado/' rel='bookmark' title='Permanent Link: Integração contínua no autosimulado'>Integração contínua no autosimulado</a></li>
<li><a href='http://leonardofaria.net/2009/12/05/monografia-on-rails-autosimulado/' rel='bookmark' title='Permanent Link: Monografia on Rails: autosimulado'>Monografia on Rails: autosimulado</a></li>
<li><a href='http://leonardofaria.net/2008/07/02/nasceu-codestackercom/' rel='bookmark' title='Permanent Link: Nasceu: codestacker.com'>Nasceu: codestacker.com</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2009/03/14/nasceu-autosimulado/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Documentação do Rails e Ruby no Spotlight</title>
		<link>http://leonardofaria.net/2009/02/08/documentacao-do-rails-e-ruby-no-spotlight/</link>
		<comments>http://leonardofaria.net/2009/02/08/documentacao-do-rails-e-ruby-no-spotlight/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 23:12:35 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[macintosh]]></category>
		<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=452</guid>
		<description><![CDATA[Essa é uma dica bem interessante: um cara chamado Priit Haamer migrou as documentações do Rails e do Ruby para o dicionário do Mac OS. Como o Spotlight do sistema busca - além de arquivos, emails, músicas e o que for - as entradas do dicionário, você ganha mais uma forma rápida de acesso a [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2009/05/25/jquery-no-spotlight/' rel='bookmark' title='Permanent Link: jQuery no Spotlight'>jQuery no Spotlight</a></li>
<li><a href='http://leonardofaria.net/2007/12/14/documentacao-sobre-ruby-e-seus-gems/' rel='bookmark' title='Permanent Link: Documentação sobre Ruby e seus gems'>Documentação sobre Ruby e seus gems</a></li>
<li><a href='http://leonardofaria.net/2007/01/27/apresentando-ruby-on-rails/' rel='bookmark' title='Permanent Link: Apresentando Ruby on Rails'>Apresentando Ruby on Rails</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://leonardofaria.net/wp-content/uploads/2009/02/imagem1.jpg" class="foto" /></center></p>
<p>Essa é uma dica bem interessante: um cara chamado <a href="http://www.priithaamer.com/">Priit Haamer</a> migrou as documentações do <a href="http://www.priithaamer.com/blog/ruby-on-rails-dictionary-for-macosx">Rails</a> e do <a href="http://www.priithaamer.com/blog/ruby-dictionary-for-mac-os-x">Ruby</a> para o dicionário do Mac OS. Como o Spotlight do sistema busca - além de arquivos, emails, músicas e o que for - as entradas do dicionário, você ganha mais uma forma rápida de acesso a documentação de sua linguagem favorita.</p>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2009/05/25/jquery-no-spotlight/' rel='bookmark' title='Permanent Link: jQuery no Spotlight'>jQuery no Spotlight</a></li>
<li><a href='http://leonardofaria.net/2007/12/14/documentacao-sobre-ruby-e-seus-gems/' rel='bookmark' title='Permanent Link: Documentação sobre Ruby e seus gems'>Documentação sobre Ruby e seus gems</a></li>
<li><a href='http://leonardofaria.net/2007/01/27/apresentando-ruby-on-rails/' rel='bookmark' title='Permanent Link: Apresentando Ruby on Rails'>Apresentando Ruby on Rails</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2009/02/08/documentacao-do-rails-e-ruby-no-spotlight/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Edge Rails: método render mais esperto</title>
		<link>http://leonardofaria.net/2008/12/26/edge-rails-metodo-render-mais-esperto/</link>
		<comments>http://leonardofaria.net/2008/12/26/edge-rails-metodo-render-mais-esperto/#comments</comments>
		<pubDate>Fri, 26 Dec 2008 16:02:10 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=435</guid>
		<description><![CDATA[Quem já está usando o Rails 2.2 já deve estar vendo um warning: no Rails 2.3, o método render está mais esperto e dispensará a instrução sobre qual tipo de renderização ele está fazendo. Confira: Agora, você não precisa especificar se quer renderizar uma action, template ou file. Isso é bem legal e mostra cada [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2008/08/02/mudancas-no-rails-22/' rel='bookmark' title='Permanent Link: Mudanças no Rails 2.2'>Mudanças no Rails 2.2</a></li>
<li><a href='http://leonardofaria.net/2008/09/10/edge-rails-no-windows-vista/' rel='bookmark' title='Permanent Link: Edge Rails no Windows Vista'>Edge Rails no Windows Vista</a></li>
<li><a href='http://leonardofaria.net/2008/08/10/ruby-on-rails-na-webmobile/' rel='bookmark' title='Permanent Link: Ruby on Rails na WebMobile'>Ruby on Rails na WebMobile</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Quem já está usando o Rails 2.2 já deve estar vendo um warning: no Rails 2.3, o método render está mais esperto e dispensará a instrução sobre qual tipo de renderização ele está fazendo. Confira: </p>
<p><script src='http://codestacker.com/142.js'></script></p>
<p>Agora, você não precisa especificar se quer renderizar uma action, template ou file. Isso é bem legal e mostra cada vez mais o minimalismo do framework.</p>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2008/08/02/mudancas-no-rails-22/' rel='bookmark' title='Permanent Link: Mudanças no Rails 2.2'>Mudanças no Rails 2.2</a></li>
<li><a href='http://leonardofaria.net/2008/09/10/edge-rails-no-windows-vista/' rel='bookmark' title='Permanent Link: Edge Rails no Windows Vista'>Edge Rails no Windows Vista</a></li>
<li><a href='http://leonardofaria.net/2008/08/10/ruby-on-rails-na-webmobile/' rel='bookmark' title='Permanent Link: Ruby on Rails na WebMobile'>Ruby on Rails na WebMobile</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2008/12/26/edge-rails-metodo-render-mais-esperto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>gem cheat</title>
		<link>http://leonardofaria.net/2008/11/29/gem-cheat/</link>
		<comments>http://leonardofaria.net/2008/11/29/gem-cheat/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 20:23:04 +0000</pubDate>
		<dc:creator>Leonardo</dc:creator>
				<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://leonardofaria.net/?p=432</guid>
		<description><![CDATA[Essa é uma gem do Chris Wanstrath que muita gente não conhece e que só hoje me deparei. Para instalar: Para usar, basta executar no terminal o comando cheat acrescido do assunto desejado, como por exemplo: cheat rails_svn A saída, para esse cheat, é uma lista de comandos para ignorar arquivos temporários e de log [...]

<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2008/11/09/migrations-sem-timestamp/' rel='bookmark' title='Permanent Link: Migrations sem timestamp'>Migrations sem timestamp</a></li>
<li><a href='http://leonardofaria.net/2007/12/19/ruby-on-rails-na-caveira/' rel='bookmark' title='Permanent Link: Ruby on Rails na caveira!'>Ruby on Rails na caveira!</a></li>
<li><a href='http://leonardofaria.net/2008/06/30/annotate_model-gem-util-da-semana/' rel='bookmark' title='Permanent Link: annotate_model, gem útil da semana'>annotate_model, gem útil da semana</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Essa é uma <a href="http://cheat.errtheblog.com/">gem</a> do <a href="http://www.errtheblog.com">Chris Wanstrath</a> que muita gente não conhece e que só hoje me deparei. Para instalar:</p>
<p><script src='http://codestacker.com/121.js'></script></p>
<p>Para usar, basta executar no terminal o comando cheat acrescido do assunto desejado, como por exemplo: cheat rails_svn</p>
<p>A saída, para esse cheat, é uma lista de comandos para ignorar arquivos temporários e de log do seu aplicativo rails no subversion é:</p>
<p><script src='http://codestacker.com/122.js'></script></p>
<p>A lista de todas cheats é encontradada executando:</p>
<p><script src='http://codestacker.com/123.js'></script></p>


<h3>Posts relacionados:</h3><ul><li><a href='http://leonardofaria.net/2008/11/09/migrations-sem-timestamp/' rel='bookmark' title='Permanent Link: Migrations sem timestamp'>Migrations sem timestamp</a></li>
<li><a href='http://leonardofaria.net/2007/12/19/ruby-on-rails-na-caveira/' rel='bookmark' title='Permanent Link: Ruby on Rails na caveira!'>Ruby on Rails na caveira!</a></li>
<li><a href='http://leonardofaria.net/2008/06/30/annotate_model-gem-util-da-semana/' rel='bookmark' title='Permanent Link: annotate_model, gem útil da semana'>annotate_model, gem útil da semana</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://leonardofaria.net/2008/11/29/gem-cheat/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

