<?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>Blog de desenvolvimento da Milfont Consulting, Client e Server-side &#187; Ruby on Rails</title>
	<atom:link href="http://www.milfont.org/tech/tag/ruby-on-rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.milfont.org/tech</link>
	<description>Blog da Comunidade Milfont Consulting, uma empresa especializada em desenvolvimento Web, principalmente Javascript, node.js e muito Javascript.</description>
	<lastBuildDate>Thu, 26 Jan 2012 11:30:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>QCONSP 2010, eu fui!</title>
		<link>http://www.milfont.org/tech/2010/09/16/qconsp-2010-eu-fui/</link>
		<comments>http://www.milfont.org/tech/2010/09/16/qconsp-2010-eu-fui/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 20:22:44 +0000</pubDate>
		<dc:creator>cmilfont</dc:creator>
				<category><![CDATA[eventos]]></category>
		<category><![CDATA[javace]]></category>
		<category><![CDATA[caelum]]></category>
		<category><![CDATA[Douglas Crockford]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[qconsp]]></category>
		<category><![CDATA[qconsp2010]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[ruby rails]]></category>
		<category><![CDATA[RubyOnRails]]></category>

		<guid isPermaLink="false">http://www.milfont.org/tech/?p=1051</guid>
		<description><![CDATA[Jornada Começamos essa aventura desde que o evento foi anunciado no início do ano, não lembro com precisão o mês, mas a coordenação do Jug JavaCE entrou em contato pela lista de discussões para criarmos uma caravana cearense. A idéia desde o início era juntarmos gente suficiente para fechar com alguma agência de viagens um [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-vertical"><script type="text/javascript">
			<!-- 
				tweetmeme_url = "http://www.milfont.org/tech/2010/09/16/qconsp-2010-eu-fui/";
				tweetmeme_source = "tweetmeme";
				tweetmeme_style = "";
				
			//-->
			</script>
                        <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></div></div><h2>Jornada</h2>
<p>Começamos essa aventura desde que o evento foi anunciado no início do ano, não lembro com precisão o mês, mas a coordenação do Jug <a href="http://javace.org/">JavaCE</a> entrou em contato pela <a href="http://groups.google.com/group/javace">lista de discussões</a> para criarmos uma caravana cearense.</p>
<p>A idéia desde o início era juntarmos gente suficiente para fechar com alguma agência de viagens um desconto em passagens e hospedagem, não deu dessa vez, pelo menos conseguimos <a href="http://www.javace.org/caravanas-javace/caravana-javace-qcon-2010-sao-paulo/">mobilizar algumas pessoas</a> e negociar duas rodadas de descontos na inscrição do evento.</p>
<p><a href="http://picasaweb.google.com/handersonbf/QConSP2010CaravanaJavaCE#5516755725306909954"><img class="alignnone" title="Caravana JavaCE" src="http://lh3.ggpht.com/_ixVOzmHRw-A/TI90GmeFVQI/AAAAAAAAkyw/dlcnLMZsUmk/s640/DSC05955.JPG" alt="" width="533" height="399" /></a></p>
<h2>Caravana JavaCE</h2>
<p>A maioria chegou sexta de manhã [10/09] em São Paulo, a tarde fomos recepcionados pela Caelum em sua sede <a href="http://www.caelum.com.br/contato/">paulista</a>. O <a href="http://twitter.com/paulo_caelum">Paulo Silveira</a> preparou duas palestras para a caravana, além do pessoal da <a href="http://www.giran.com.br/">Giran</a> e o <a href="http://twitter.com/razenha">Rubem Azenha</a> que estavam lá.</p>
<p>O Paulo já sabia que iríamos lá para conhecer a empresa, afinal não chegaríamos de surpresa. Ele havia dado a sugestão de preparar algo, nem precisava, mas sabem como é, a Caelum não sabe fazer coisa pequena, então até uma visita informal virou um evento a tarde inteira com muita comida e bebida.</p>
<p><a title="10092010465 by chrismilfont, on Flickr" href="http://www.flickr.com/photos/cmilfont/4989999748/"><img class="alignleft" src="http://farm5.static.flickr.com/4109/4989999748_532f83ba35_m.jpg" alt="10092010465" width="240" height="180" /></a><br />
<a title="10092010466 by chrismilfont, on Flickr" href="http://www.flickr.com/photos/cmilfont/4989393055/"><img class="alignleft" src="http://farm5.static.flickr.com/4148/4989393055_f37cb506f7_m.jpg" alt="10092010466" width="240" height="180" /></a><br />
<a title="10092010462 by chrismilfont, on Flickr" href="http://www.flickr.com/photos/cmilfont/4990002520/"><img src="http://farm5.static.flickr.com/4111/4990002520_eeb0bb14b8_m.jpg" alt="10092010462" width="240" height="180" /></a></p>
<h2>QCON</h2>
<p>Minha avaliação do evento será muito parcial e específica, muito do que escreverei aqui tem a ver com o momento que vivo e portanto pode soar como irresponsável.</p>
<p>Tenho priorizado ultimamente palestras técnicas e mais avançadas em tecnologias que trabalho, não que isso seja errado, mas uma escolha que tomei esse ano para focar em código. Palestras de metodologias, métricas, filosofias ou algo diferente de código eu tento evitar. Não que eu tenha conseguido focar apenas em palestras técnicas, portanto não se assuste com o que vem.</p>
<h2>Palestras do Sábado</h2>
<p>O <a href="http://www.qconsp.com/palestra/nick-kallen/data-architecture-at-twitter-scale">Keynote do Nick Kallen</a> fui bacana, apesar de quase todas as informações mostradas já terem sido divulgadas em posts e outros eventos, de qualquer forma dá para sacar mais ou menos os problemas que é escalar um mundo gigante como o Twitter e os problemas que eles enfrentam. Foi muito bom.</p>
<p><a title="11092010468 by chrismilfont, on Flickr" href="http://www.flickr.com/photos/cmilfont/4989395329/"><img src="http://farm5.static.flickr.com/4110/4989395329_a92e2ddd47.jpg" alt="11092010468" width="500" height="375" /></a></p>
<p>O <a href="http://www.qconsp.com/palestra/guilherme-silveira/rest-semantica-e-o-futuro-da-arquitetura-web">Keynote do Guilherme Silveira</a>, que era para ser apenas no domingo,  foi trocado devido a um atraso no vôo do Randy Shoup, de qualquer forma ele deu seu show como sempre faz e demonstrou porque é o novo popstar da família Silveira. Apresentou algumas soluções de Rest e suas piadas infames, bom, pelo menos riram dessa vez <img src='http://www.milfont.org/tech/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p><a title="11092010467 by chrismilfont, on Flickr" href="http://www.flickr.com/photos/cmilfont/4989395645/"><img src="http://farm5.static.flickr.com/4107/4989395645_8b202faa55.jpg" alt="11092010467" width="500" height="375" /></a></p>
<p>O último Keynote do sábado foi meu ídolo <a href="http://www.qconsp.com/palestra/douglas-crockford/the-state-and-future-of-javascript">Douglas Crockford</a> que fez uma apresentação impecável. Demonstrou a história por trás da linguagem mais sofrida do mundo, falou sobre os comitês [confirmou minha opinião que comitê não funciona] e demonstrou código no final, apesar de pouco. Ouvi algumas críticas fora da palestra por pessoas que não entenderam qual o propósito desse Keynote, ou não leram o enunciado ou odeiam tanto javascript que não tiveram saco de ouvir de um dos pais da coisa toda aquela intrigante história.</p>
<p><a title="12092010480 by chrismilfont, on Flickr" href="http://www.flickr.com/photos/cmilfont/4990009760/"><img src="http://farm5.static.flickr.com/4145/4990009760_6acfe12d16.jpg" alt="12092010480" width="500" height="375" /></a></p>
<p>Era para termos saído para o almoço, mas a Caelum, como não gosta de gordinhos, nos entupiu de tanta comida que do nosso grupo ninguém foi almonçar, ficamos lá beliscando aquele banquete sem fim.</p>
<p>Risquei a <a href="http://www.qconsp.com/schedule/sabado">track .NET do sábado</a>, não por críticas à plataforma, mas como eu disse antes, querer focar na realidade que trabalho. Diante desse quadro restou dividir as duas outras tracks seguindo meu critério de ser mais próximo ao código. Até que no sábado eu tenha saído mais dessa linha do que no domingo, mas esse foi o meu objetivo.</p>
<p>Dividir-se em tracks sempre há prejuízo, não tem jeito, acabei ficando na <a href="http://www.qconsp.com/palestra/rodrigo-yoshima/a-guerra-dos-metodos-versao-2-0">track com o Yoshima</a> por curiosidade sobre o que ele falaria na guerra de métodos e acabei perdendo a do <a href="http://www.qconsp.com/palestra/paulo-silveira/java-como-plataforma-onipresente-apresentacao">Paulo</a> e a do <a href="http://www.qconsp.com/palestra/doug-clarke/toplink-grid-scaling-jpa-applications-with-coherence">Doug Clarke</a>. Não me arrependi, o Yoshima consegue cativar bastante e apresentou alguns pontos de vista muito interessantes. Como eu conheço o TopLink e sei que é muito inferior ao hibernate eu resolvi ignorar a palestra do Doug, contem nos comentários se o Doug falou sobre alguma novidade que o Hibernate não já tenha desde 2004 <img src='http://www.milfont.org/tech/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Houveram críticas ao Yoshima sobre um comentário dele, especificamente sobre o time priorizar ordem de entrega das features, eu entendi muito bem a mensagem, mas acho que deveria ter um post só sobre isso para esclarecer melhor.</p>
<p><a title="12092010484 by chrismilfont, on Flickr" href="http://www.flickr.com/photos/cmilfont/4990011710/"><img src="http://farm5.static.flickr.com/4090/4990011710_242714fc82.jpg" alt="12092010484" width="500" height="375" /></a></p>
<p>Logo em seguida fui assistir a palestra de um cara que admiro bastante, o <a href="http://www.qconsp.com/palestra/bruno-pereira/da-agua-ao-vinho-o-caminho-do-desenvolvimento-web">Bruno Pereira</a> da Concrete. O Bruno perdeu um bom tempo com histórico de Frameworks web e só demonstrou código da metade pro fim, o que me deixou com gostinho de quero mais. Acredito que o histórico seria suficiente em 5 minutos. De qualquer forma foi muito bom e principalmente para quem está começando agora foi excelente. Bruno é um nome que deve ser chamado próximo ano para apresentar coisas mais avançadas que ele domina bem.</p>
<p><a title="12092010501 by chrismilfont, on Flickr" href="http://www.flickr.com/photos/cmilfont/4990021152/"><img src="http://farm5.static.flickr.com/4092/4990021152_36caca7dbb.jpg" alt="12092010501" width="500" height="375" /></a></p>
<p>A partir dessa palestra eu notei um padrão que incomodou um pouco, o pessoal passou um bom tempo da palestra falando sobre coisas muito básicas e pormenores que acredito não serem necessários, depois eu tive uma informação que esclareceu tudo. Segundo um passarinho chinês [:D],  os palestrantes receberam um pedido da organização para cobrir o básico porque haveria pessoas de todos os níveis. Acredito que esse aspecto deve ser priorizado no próximo ano.</p>
<p>A palestra seguinte, <a href="http://www.qconsp.com/palestra/marcio-duarte/testes-unitarios-em-javascript-usar-ou-nao-usar-mock">Testes Unitários em javascript</a>, seguiu esse padrão de explicações exaustivas, os palestrantes demoraram muito tempo explicando o que era TDD e a importância de testes, acredito que isso deveria ser prerequisito para quem escolheu assistir essa palestra. Da mesma forma que a palestra do Bruno, o código foi enfatizado do meio para o fim, apresentaram algumas técnicas, ferramentas e conceitos bacanas. Foi muito boa também.</p>
<p>As duas palestras seguintes eu saltei, fui aumentar uns quilos e conversar um pouco com o pessoal. Conheci muita gente bacana que só conhecia pelas listas, fóruns e twitters da vida. Depois conto mais sobre isso.</p>
<p>Queria muito ter assistido a palestra do <a href="http://www.qconsp.com/palestra/sergio-lopes/mitos-e-verdades-do-cloud-do-google-1-ano-de-experiencias-no-appengine">Sérgio Lopes</a>, mas acabei escolhendo do <a href="http://www.qconsp.com/palestra/paulo-caroli/a-linha-de-montagem-de-sw-representada-como-cartoes-na-parede">Paulo Caroli</a>. Acabei escolhendo a do Caroli porque já li bastante material dele e havia ouvido falar muito bem, resolvi ver as idéias e gostei muito. A sacada da casca de banana foi a diversão do dia.</p>
<p><a title="12092010479 by chrismilfont, on Flickr" href="http://www.flickr.com/photos/cmilfont/4989401689/"><img src="http://farm5.static.flickr.com/4109/4989401689_4b31c18314.jpg" alt="12092010479" width="500" height="375" /></a></p>
<h2>Fim do Sábado</h2>
<p>Continua&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.milfont.org/tech/2010/09/16/qconsp-2010-eu-fui/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Setup do Sunspot-rails no Rspec</title>
		<link>http://www.milfont.org/tech/2010/06/23/setup-sunspot-e-rspec/</link>
		<comments>http://www.milfont.org/tech/2010/06/23/setup-sunspot-e-rspec/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 18:20:27 +0000</pubDate>
		<dc:creator>cmilfont</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[Rspec]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Sunspot]]></category>
		<category><![CDATA[rspec]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[ruby rails]]></category>
		<category><![CDATA[RubyOnRails]]></category>
		<category><![CDATA[sunspot]]></category>
		<category><![CDATA[sunspot-rails]]></category>

		<guid isPermaLink="false">http://www.milfont.org/tech/?p=965</guid>
		<description><![CDATA[Tínhamos um problema nos testes unitários por débito técnico [na verdade desleixo mesmo] com o setup do Rspec e Sunspot-rails em determinado projeto. O problema era que mesmo para executar um simples teste unitário, levantávamos o Sunspot no spec_helper.rb. Resolvi refatorar isso, acabei descobrindo no before/after do Spec::Runner.configure algo que eu não usava e que [...]]]></description>
			<content:encoded><![CDATA[<p>Tínhamos um problema nos testes unitários por débito técnico [na verdade desleixo mesmo] com o setup do <a href="http://rspec.info/rails/">Rspec</a> e <a href="http://github.com/outoftime/sunspot/">Sunspot-rails</a> em determinado projeto. O problema era que mesmo para executar um simples teste unitário, levantávamos o Sunspot no spec_helper.rb.</p>
<p>Resolvi refatorar isso, acabei descobrindo no <a href="http://rspec.info/documentation/before_and_after.html">before/after do Spec::Runner.configure</a> algo que eu não usava e que já existia desde o rspec &#8220;1.1.12 / 2009-01-11&#8243;, pelo que percebi no changelog.</p>
<p>O que fiz e parece bobo é separar pelo tipo (type) <strong>integration</strong> a subida de uma instancia real do Sunspot e agora dá para usar a estrutura de <a href="http://wiki.github.com/outoftime/sunspot/rspec-and-sunspot">Rspec que o Sunspot disponibiliza</a> para meus testes unitários.<br />
<div id="gist-450280" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="c1">#arquivo spec_helper.rb</span></div><div class='line' id='LC2'><br/></div><div class='line' id='LC3'><span class="no">ENV</span><span class="o">[</span><span class="s2">&quot;RAILS_ENV&quot;</span><span class="o">]</span> <span class="o">||=</span> <span class="s1">&#39;test&#39;</span></div><div class='line' id='LC4'><br/></div><div class='line' id='LC5'><span class="nb">require</span> <span class="no">File</span><span class="o">.</span><span class="n">expand_path</span><span class="p">(</span><span class="no">File</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="no">File</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="bp">__FILE__</span><span class="p">),</span><span class="s1">&#39;..&#39;</span><span class="p">,</span><span class="s1">&#39;config&#39;</span><span class="p">,</span><span class="s1">&#39;environment&#39;</span><span class="p">))</span></div><div class='line' id='LC6'><br/></div><div class='line' id='LC7'><span class="nb">require</span> <span class="s1">&#39;spec/autorun&#39;</span></div><div class='line' id='LC8'><span class="nb">require</span> <span class="s1">&#39;spec/rails&#39;</span></div><div class='line' id='LC9'><span class="nb">require</span> <span class="s1">&#39;rake&#39;</span></div><div class='line' id='LC10'><span class="nb">require</span> <span class="s1">&#39;ruby-debug&#39;</span> <span class="k">unless</span> <span class="no">RUBY_VERSION</span> <span class="o">&gt;</span> <span class="s1">&#39;1.9&#39;</span></div><div class='line' id='LC11'><span class="nb">require</span> <span class="s1">&#39;sunspot/rails/tasks&#39;</span></div><div class='line' id='LC12'><span class="nb">require</span> <span class="s1">&#39;authlogic/test_case&#39;</span></div><div class='line' id='LC13'><span class="nb">require</span> <span class="s1">&#39;sunspot/rails/spec_helper&#39;</span></div><div class='line' id='LC14'><br/></div><div class='line' id='LC15'><span class="nb">require</span> <span class="s1">&#39;database_cleaner&#39;</span></div><div class='line' id='LC16'><br/></div><div class='line' id='LC17'><span class="c1">#observe aqui que eu criei uma pasta support porque guardo algumas confs em arquivos contidos nela</span></div><div class='line' id='LC18'><span class="no">Dir</span><span class="o">[</span><span class="s2">&quot;</span><span class="si">#{</span><span class="no">File</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="bp">__FILE__</span><span class="p">)</span><span class="si">}</span><span class="s2">/support/**/*.rb&quot;</span><span class="o">].</span><span class="n">each</span> <span class="p">{</span><span class="o">|</span><span class="n">f</span><span class="o">|</span> <span class="nb">require</span> <span class="n">f</span><span class="p">}</span></div><div class='line' id='LC19'><br/></div><div class='line' id='LC20'><span class="no">Spec</span><span class="o">::</span><span class="no">Runner</span><span class="o">.</span><span class="n">configure</span> <span class="k">do</span> <span class="o">|</span><span class="n">config</span><span class="o">|</span></div><div class='line' id='LC21'>&nbsp;&nbsp;<span class="n">config</span><span class="o">.</span><span class="n">use_transactional_fixtures</span> <span class="o">=</span> <span class="kp">true</span></div><div class='line' id='LC22'>&nbsp;&nbsp;<span class="n">config</span><span class="o">.</span><span class="n">use_instantiated_fixtures</span>  <span class="o">=</span> <span class="kp">false</span></div><div class='line' id='LC23'>&nbsp;&nbsp;<span class="n">config</span><span class="o">.</span><span class="n">fixture_path</span> <span class="o">=</span> <span class="no">RAILS_ROOT</span> <span class="o">+</span> <span class="s1">&#39;/spec/fixtures/&#39;</span></div><div class='line' id='LC24'><br/></div><div class='line' id='LC25'>&nbsp;&nbsp;<span class="n">config</span><span class="o">.</span><span class="n">before</span><span class="p">(</span><span class="ss">:suite</span><span class="p">)</span> <span class="k">do</span></div><div class='line' id='LC26'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="no">DatabaseCleaner</span><span class="o">.</span><span class="n">strategy</span> <span class="o">=</span> <span class="ss">:truncation</span></div><div class='line' id='LC27'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="no">DatabaseCleaner</span><span class="o">.</span><span class="n">clean_with</span><span class="p">(</span><span class="ss">:truncation</span><span class="p">)</span></div><div class='line' id='LC28'>&nbsp;&nbsp;<span class="k">end</span></div><div class='line' id='LC29'><br/></div><div class='line' id='LC30'>&nbsp;&nbsp;<span class="n">config</span><span class="o">.</span><span class="n">before</span><span class="p">(</span><span class="ss">:each</span><span class="p">)</span> <span class="k">do</span></div><div class='line' id='LC31'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="no">DatabaseCleaner</span><span class="o">.</span><span class="n">start</span></div><div class='line' id='LC32'>&nbsp;&nbsp;<span class="k">end</span></div><div class='line' id='LC33'><br/></div><div class='line' id='LC34'>&nbsp;&nbsp;<span class="n">config</span><span class="o">.</span><span class="n">after</span><span class="p">(</span><span class="ss">:each</span><span class="p">)</span> <span class="k">do</span></div><div class='line' id='LC35'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="no">DatabaseCleaner</span><span class="o">.</span><span class="n">clean</span></div><div class='line' id='LC36'>&nbsp;&nbsp;<span class="k">end</span></div><div class='line' id='LC37'><br/></div><div class='line' id='LC38'>&nbsp;&nbsp;<span class="o">[</span><span class="ss">:model</span><span class="p">,</span> <span class="ss">:helper</span><span class="p">,</span> <span class="ss">:controller</span><span class="o">].</span><span class="n">each</span> <span class="p">{</span><span class="o">|</span><span class="n">type</span><span class="o">|</span></div><div class='line' id='LC39'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">config</span><span class="o">.</span><span class="n">before</span><span class="p">(</span><span class="ss">:each</span><span class="p">,</span> <span class="ss">:type</span> <span class="o">=&gt;</span> <span class="n">type</span><span class="p">)</span> <span class="k">do</span></div><div class='line' id='LC40'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="o">::</span><span class="no">Sunspot</span><span class="o">.</span><span class="n">session</span> <span class="o">=</span> <span class="o">::</span><span class="no">Sunspot</span><span class="o">::</span><span class="no">Rails</span><span class="o">::</span><span class="no">StubSessionProxy</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="o">::</span><span class="no">Sunspot</span><span class="o">.</span><span class="n">session</span><span class="p">)</span></div><div class='line' id='LC41'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">end</span></div><div class='line' id='LC42'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">config</span><span class="o">.</span><span class="n">after</span><span class="p">(</span><span class="ss">:each</span><span class="p">,</span> <span class="ss">:type</span> <span class="o">=&gt;</span> <span class="n">type</span><span class="p">)</span> <span class="k">do</span></div><div class='line' id='LC43'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="o">::</span><span class="no">Sunspot</span><span class="o">.</span><span class="n">session</span> <span class="o">=</span> <span class="o">::</span><span class="no">Sunspot</span><span class="o">.</span><span class="n">session</span><span class="o">.</span><span class="n">original_session</span></div><div class='line' id='LC44'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">end</span></div><div class='line' id='LC45'>&nbsp;&nbsp;<span class="p">}</span></div><div class='line' id='LC46'><br/></div><div class='line' id='LC47'>&nbsp;&nbsp;<span class="n">config</span><span class="o">.</span><span class="n">before</span><span class="p">(</span><span class="ss">:all</span><span class="p">,</span> <span class="ss">:type</span> <span class="o">=&gt;</span> <span class="ss">:integration</span><span class="p">)</span> <span class="k">do</span></div><div class='line' id='LC48'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="no">JojobaSunspot</span><span class="o">.</span><span class="n">new</span><span class="o">.</span><span class="n">start</span></div><div class='line' id='LC49'>&nbsp;&nbsp;<span class="k">end</span></div><div class='line' id='LC50'>&nbsp;&nbsp;<span class="n">config</span><span class="o">.</span><span class="n">after</span><span class="p">(</span><span class="ss">:suite</span><span class="p">)</span> <span class="k">do</span></div><div class='line' id='LC51'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="no">JojobaSunspot</span><span class="o">.</span><span class="n">new</span><span class="o">.</span><span class="n">stop</span></div><div class='line' id='LC52'>&nbsp;&nbsp;<span class="k">end</span></div><div class='line' id='LC53'><br/></div><div class='line' id='LC54'><span class="k">end</span></div><div class='line' id='LC55'><br/></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/450280/58362bde581f7929fffd831ee9fead2d0054c113/gistfile1.builder" style="float:right;">view raw</a>
            <a href="https://gist.github.com/450280#file_gistfile1.builder" style="float:right;margin-right:10px;color:#666">gistfile1.builder</a>
            <a href="https://gist.github.com/450280">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>
</p>
<p>Inspirado <a href="http://blog.kabisa.nl/2010/02/03/running-cucumber-features-with-sunspot_rails/">nesse post</a>, eu adaptei para o código que uso ao subir o sunspot com linha de comando para os testes de integração. Observe no código anterior que importo configurações da pasta <em><strong>support</strong></em>, inclusive a classe JojobaSunspot, usada no after e before de integration.</p>
<div id="gist-450298" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="nb">require</span> <span class="s2">&quot;net/http&quot;</span></div><div class='line' id='LC2'><br/></div><div class='line' id='LC3'><span class="k">class</span> <span class="nc">JojobaSunspot</span></div><div class='line' id='LC4'><br/></div><div class='line' id='LC5'>&nbsp;&nbsp;<span class="k">def</span> <span class="nf">start</span></div><div class='line' id='LC6'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="vi">@started</span> <span class="o">=</span> <span class="no">Time</span><span class="o">.</span><span class="n">now</span></div><div class='line' id='LC7'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">up_sunspot</span> <span class="k">if</span> <span class="n">starting</span></div><div class='line' id='LC8'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">up</span></div><div class='line' id='LC9'>&nbsp;&nbsp;<span class="k">end</span></div><div class='line' id='LC10'><br/></div><div class='line' id='LC11'>&nbsp;&nbsp;<span class="k">def</span> <span class="nf">stop</span></div><div class='line' id='LC12'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nb">system</span><span class="p">(</span><span class="s2">&quot;sunspot-solr stop --pid-dir=/tmp/pids&quot;</span><span class="p">)</span> <span class="k">unless</span> <span class="n">starting</span></div><div class='line' id='LC13'>&nbsp;&nbsp;<span class="k">end</span></div><div class='line' id='LC14'><br/></div><div class='line' id='LC15'>&nbsp;&nbsp;<span class="kp">private</span></div><div class='line' id='LC16'>&nbsp;&nbsp;<span class="k">def</span> <span class="nf">port</span></div><div class='line' id='LC17'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="no">Sunspot</span><span class="o">::</span><span class="no">Rails</span><span class="o">::</span><span class="no">Server</span><span class="o">.</span><span class="n">new</span><span class="o">.</span><span class="n">port</span></div><div class='line' id='LC18'>&nbsp;&nbsp;<span class="k">end</span></div><div class='line' id='LC19'><br/></div><div class='line' id='LC20'>&nbsp;&nbsp;<span class="k">def</span> <span class="nf">up_sunspot</span></div><div class='line' id='LC21'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nb">system</span><span class="p">(</span><span class="s2">&quot;sunspot-solr start -p 8981 -d /tmp/solr_data_test --pid-dir=/tmp/pids --log-file=/tmp/solr_log_test.log --log-level=INFO&quot;</span><span class="p">)</span></div><div class='line' id='LC22'>&nbsp;&nbsp;<span class="k">end</span></div><div class='line' id='LC23'><br/></div><div class='line' id='LC24'>&nbsp;&nbsp;<span class="k">def</span> <span class="nf">up</span></div><div class='line' id='LC25'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">while</span> <span class="n">starting</span></div><div class='line' id='LC26'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nb">puts</span> <span class="s2">&quot;Sunspot server is starting...&quot;</span></div><div class='line' id='LC27'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">end</span></div><div class='line' id='LC28'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nb">puts</span> <span class="s2">&quot;Sunspot server took </span><span class="si">#{</span><span class="s1">&#39;%.2f&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="no">Time</span><span class="o">.</span><span class="n">now</span> <span class="o">-</span> <span class="vi">@started</span><span class="p">)</span><span class="si">}</span><span class="s2"> sec. to get up and running. Let&#39;s Jojoba!&quot;</span></div><div class='line' id='LC29'>&nbsp;&nbsp;<span class="k">end</span></div><div class='line' id='LC30'><br/></div><div class='line' id='LC31'>&nbsp;&nbsp;<span class="k">def</span> <span class="nf">starting</span></div><div class='line' id='LC32'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">begin</span></div><div class='line' id='LC33'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nb">sleep</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span></div><div class='line' id='LC34'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">request</span> <span class="o">=</span> <span class="no">Net</span><span class="o">::</span><span class="no">HTTP</span><span class="o">.</span><span class="n">get_response</span><span class="p">(</span><span class="no">URI</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s2">&quot;http://localhost:</span><span class="si">#{</span><span class="n">port</span><span class="si">}</span><span class="s2">/solr/&quot;</span><span class="p">))</span></div><div class='line' id='LC35'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kp">false</span></div><div class='line' id='LC36'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">rescue</span> <span class="no">Errno</span><span class="o">::</span><span class="no">ECONNREFUSED</span></div><div class='line' id='LC37'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kp">true</span></div><div class='line' id='LC38'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">end</span></div><div class='line' id='LC39'>&nbsp;&nbsp;<span class="k">end</span></div><div class='line' id='LC40'><br/></div><div class='line' id='LC41'><span class="k">end</span></div><div class='line' id='LC42'><br/></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/450298/d7c9895f54595e5074a63efca8c003cf825eae9f/gistfile1.builder" style="float:right;">view raw</a>
            <a href="https://gist.github.com/450298#file_gistfile1.builder" style="float:right;margin-right:10px;color:#666">gistfile1.builder</a>
            <a href="https://gist.github.com/450298">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>

<p>Desde que colocamos testes de integração o tempo de execução da bateria subiu muito, provocamos um setup ineficiente e desnecessário para os testes unitários. Fica a dica para quem passar pelo mesmo problema.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.milfont.org/tech/2010/06/23/setup-sunspot-e-rspec/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Você está nivelando por baixo e/ou não conhece seus desenvolvedores</title>
		<link>http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/</link>
		<comments>http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 14:34:01 +0000</pubDate>
		<dc:creator>cmilfont</dc:creator>
				<category><![CDATA[Engenharia de Software]]></category>
		<category><![CDATA[Linguagens]]></category>
		<category><![CDATA[mercado]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[linguagens dinâmicas]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[ruby rails]]></category>
		<category><![CDATA[RubyOnRails]]></category>

		<guid isPermaLink="false">http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/</guid>
		<description><![CDATA[Um amigo fez a seguinte pergunta que é muito comum hoje em dia com adoção crescente sobre linguagens dinâmicas, principalmente Ruby: (&#8230;)&#8221;A dúvida era essa: Linguagens dinâmicas dão maiores possibilidades de inclusão de erro no código com isso aumentando de forma significativa a refatoração.&#8221;(&#8230;) Em conversa com um excelente desenvolvedor aqui no Ceará, Delberto Muniz, [...]]]></description>
			<content:encoded><![CDATA[<p>Um amigo fez a seguinte pergunta que é muito comum hoje em dia com adoção crescente sobre linguagens dinâmicas, principalmente Ruby:</p>
<blockquote><p><strong>(&#8230;)&#8221;A dúvida era essa: Linguagens dinâmicas dão maiores possibilidades de inclusão de erro no código com isso aumentando de forma significativa a refatoração.&#8221;(&#8230;)</strong></p></blockquote>
<p>Em conversa com um excelente desenvolvedor aqui no Ceará, <a href="http://twitter.com/delbert_ce">Delberto Muniz</a>, ele escreveu a seguinte resposta:</p>
<blockquote><p>Estava relendo um livro sobre os primórdios da programação e houve um debate semelhante: Os programadores Assembly achavam que programar em Fortan dava maiores possibilidades de erros porquê o programador não tinha total controle sobre o código gerado.</p>
<p>Dez anos depois o pessoal do Fortran falou mal do Algol porquê Algol abstraía demais e o programador não tinha total controle sobre a linguagem.</p>
<p>Aí veio o pessoal do C/C++ dizendo que Java abstraía demais, deixando margens a bugs serem introduzidos nos programas pelo compilador e/ou pela vm ou porquê simplesmente ele não estava alocando/desalocando memória manualmente.</p>
<p>Só mudaram as linguagens &#8211; o debate é sempre o mesmo: Se eu aumentar a abstração, meus programadores vão fazer besteira?<br />
<strong><br />
Se você está com essa dúvida, sinto muito: Você está nivelando por baixo e/ou não conhece seus desenvolvedores.</strong></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Slides do Maré de Agilidade Fortaleza &#8211; 2009</title>
		<link>http://www.milfont.org/tech/2009/08/09/slides-do-mare-de-agilidade-fortaleza-2009/</link>
		<comments>http://www.milfont.org/tech/2009/08/09/slides-do-mare-de-agilidade-fortaleza-2009/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 11:57:15 +0000</pubDate>
		<dc:creator>cmilfont</dc:creator>
				<category><![CDATA[Behaviour Driven Development]]></category>
		<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[Engenharia de Software]]></category>
		<category><![CDATA[Melhores práticas]]></category>
		<category><![CDATA[Metodologia]]></category>
		<category><![CDATA[Métodos Ágeis]]></category>
		<category><![CDATA[palestras]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Test Driven]]></category>
		<category><![CDATA[XP]]></category>
		<category><![CDATA[xpce]]></category>
		<category><![CDATA[Add new tag]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[behaviour driven development]]></category>
		<category><![CDATA[Extreme Programming]]></category>
		<category><![CDATA[maredeagilidade]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[ruby rails]]></category>
		<category><![CDATA[RubyOnRails]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[teste]]></category>

		<guid isPermaLink="false">http://www.milfont.org/tech/?p=735</guid>
		<description><![CDATA[Mare de Agilidade &#8211; BDD e TDD View more presentations from Christiano Milfont.]]></description>
			<content:encoded><![CDATA[<div style="width:425px;text-align:left" id="__ss_1832390"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/cmilfont/mare-de-agilidade-bdd-e-tdd" title="Mare de Agilidade - BDD e TDD">Mare de Agilidade &#8211; BDD e TDD</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=maredeagilidademilfont-090809062633-phpapp01&#038;stripped_title=mare-de-agilidade-bdd-e-tdd" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=maredeagilidademilfont-090809062633-phpapp01&#038;stripped_title=mare-de-agilidade-bdd-e-tdd" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/cmilfont">Christiano Milfont</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.milfont.org/tech/2009/08/09/slides-do-mare-de-agilidade-fortaleza-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maré de Agilidade</title>
		<link>http://www.milfont.org/tech/2009/08/05/mare-de-agilidade/</link>
		<comments>http://www.milfont.org/tech/2009/08/05/mare-de-agilidade/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 13:56:37 +0000</pubDate>
		<dc:creator>cmilfont</dc:creator>
				<category><![CDATA[Engenharia de Software]]></category>
		<category><![CDATA[Linguagens]]></category>
		<category><![CDATA[Metodologia]]></category>
		<category><![CDATA[Métodos Ágeis]]></category>
		<category><![CDATA[palestras]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Test Driven]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[XP]]></category>
		<category><![CDATA[Agil]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[CearaOnRails]]></category>
		<category><![CDATA[Extreme Programming]]></category>
		<category><![CDATA[maredeagilidade]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[ruby rails]]></category>
		<category><![CDATA[RubyOnRails]]></category>

		<guid isPermaLink="false">http://www.milfont.org/tech/?p=731</guid>
		<description><![CDATA[Ontem começou o Maré de Agilidade com o curso RR11 de Ruby on Rails da Caelum com o Fábio Kung, que não precisa de apresentações [se você não sabe quem é Fábio Kung então mude de profissão]. Como o Kung está indo integrar o time da Locaweb, [apesar de continuar como instrutor na Caelum] essa [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.igocoelho.com.br/wp-content/uploads/2009/05/mare_agilidade.jpeg" alt="Mare de Agilidade" /></p>
<p>Ontem começou o <a href="http://www.maredeagilidade.com.br/">Maré de Agilidade</a> com o curso <a href="http://www.caelum.com.br/curso/rr-11-ruby-on-rails/">RR11 de Ruby on Rails</a> da <a href="http://www.caelum.com.br">Caelum</a> com o <a href="http://www.fabiokung.com">Fábio Kung</a>, que não precisa de apresentações [se você não sabe quem é Fábio Kung então mude de profissão].</p>
<p>Como o Kung está <a href="http://fabiokung.com/2009/07/27/status-report-new-job-new-life/">indo integrar o time da Locaweb</a>, [apesar de continuar como instrutor na Caelum] essa é a última oportunidade de tê-lo conosco para ministrar esse curso, a turma foi agraciada com a sorte.</p>
<p><img src="http://s3.amazonaws.com/twitpic/photos/large/21428094.jpg?AWSAccessKeyId=0ZRYP5X5F6FSMBCCSE82&amp;Expires=1249479118&amp;Signature=4CwqGUZlOTxWlDFv3et3mnthV3Q%3D" alt="mare na Milfont Consulting" /></p>
<p>Na quinta e na sexta <a href="http://www.maredeagilidade.com.br/programacao.html">acontecerão os minicursos</a> oficiais do Maré de Agilidade com o <a href="http://manoelpimentel.blogspot.com/">Manoel Pimentel</a> da <a href="http://www.visaoagil.com/">Visão Ágil</a> e a turma da empresa <a href="http://www.seatecnologia.com.br">SEA Tecnologia</a> [ <a href="http://www.maredeagilidade.com.br/palestrantes.html?#willi">Renato Willi</a>, <a href="http://expressocapital.blogspot.com/">Bruno Pedroso</a> e <a href="http://www.maredeagilidade.com.br/palestrantes.html?#alegomes">Alexandre Gomes</a>],  ambos organizadores do evento.</p>
<p>No sábado acontecerão as palestras com todos que ministraram/rão cursos além de <a href="http://blogue.claviustales.com.br/">Clavius Tales</a>, Fabiano Milani da <a href="http://www.adaptworks.com.br/">Adaptworks</a> e um tal de Christiano Milfont.</p>
<p>Todos os minicursos estão com vagas esgotadas, se você quiser ainda participar do Maré de Agilidade, <a href="http://www.fortestreinamentos.com.br/v3/inscricaoOnline.php?id=465">corra para a inscrição das palestras</a> enquanto há tempo.</p>
<p>Para finalizar o Maré, a Adaptworks promove o curso &#8220;Planejamento e estimativas em projetos ágeis&#8221;, através do telefone (11)5585-7738 ou pelo e-mail contato@adaptworks.com.br na sede do CGDT.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.milfont.org/tech/2009/08/05/mare-de-agilidade/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Primeiro CearaOnRails em Novembro de 2008</title>
		<link>http://www.milfont.org/tech/2008/11/08/primeiro-cearaonrails-em-novembro-de-2008/</link>
		<comments>http://www.milfont.org/tech/2008/11/08/primeiro-cearaonrails-em-novembro-de-2008/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 18:30:12 +0000</pubDate>
		<dc:creator>cmilfont</dc:creator>
				<category><![CDATA[Linguagens]]></category>
		<category><![CDATA[palestras]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Akita]]></category>
		<category><![CDATA[CearaOnRails]]></category>
		<category><![CDATA[Fabio Akita]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[ruby rails]]></category>
		<category><![CDATA[RubyOnRails]]></category>

		<guid isPermaLink="false">http://www.milfont.org/tech/?p=373</guid>
		<description><![CDATA[Na próxima sexta [14-11-2008] acontecerá o primeiro CearaOnRails na faculdade Christus entre as 19 horas e 22:30 com a participação especial do Fábio Akita, grande divulgador do Framework RubyOnRails e da comunidade em volta da linguagem Ruby no Brasil, além de ter sido o escritor do primeiro livro em lingua portuguesa sobre RubyOnRails. Oportunidade especial [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" title="folder" src="http://www.handersonfrota.com.br/blog/wp-content/uploads/2008/11/banner_468x60.png" alt="" width="468" height="60" /></p>
<p>Na próxima sexta [14-11-2008] acontecerá o <a href="http://www.cearaonrails.org">primeiro</a> <a href="http://groups.google.com/group/cearaonrails">CearaOnRails</a> na faculdade Christus entre as 19 horas e 22:30 com a participação especial do <a href="http://www.akitaonrails.com/2008/11/7/e-os-eventos-continuam">Fábio Akita</a>, grande divulgador do Framework RubyOnRails e da comunidade em volta da linguagem Ruby no Brasil, além de ter sido o escritor do primeiro livro em lingua portuguesa sobre RubyOnRails.</p>
<p>Oportunidade especial de termos no Ceará um evento de qualidade com palestrantes excepcionais sobre um assunto tão em voga no círculo do desenvolvimento de software no mundo inteiro. Nos veremos lá sem dúvida alguma.</p>
<p>Nossa <a href="http://www.rponte.com.br/2008/11/05/cearaonrails-o-evento-e-a-comunidade-que-estavam-faltando/">turma</a> vai <a href="http://www.handersonfrota.com.br/ceara-on-rails/">toda</a> em peso ao evento que promete ser um sucesso. Se você quiser vir ao Ceará para assistir o evento, pode ver os preços levantados pelo site do CearaOnRails <a href="http://www.cearaonrails.org/noticias/9">nesse post</a>.</p>
<p><a href="http://www.cearaonrails.org/inscricoes/new">Faça já a sua inscrição</a>.</p>
<h2>Palestrantes</h2>
<p>Os palestrantes são profissionais experientes e gabaritados, dentre eles conheço (pessoalmente) o <a href="http://www.cearaonrails.org/palestrantes/2">Nabucodonosor Coutinho</a> que é o grande nome no Brasil em Postgree e o primeiro no Ceará que tenho conhecimento a trabalhar com Ruby e Rails.</p>
<p>A grade de palestras está dividida em:</p>
<h3>Onde está o método?</h3>
<p><strong>Descrição:</strong><br />
Uma introdução a recursos avançados da linguagem. Explicando como interceptar chamadas à métodos, monkey patching e avaliação de código. Mercado de trabalho.</p>
<p><strong>Horário:</strong> 19:10:00 às 19:40:00</p>
<p><strong>Palestrante:</strong> <a href="http://www.cearaonrails.org/palestrantes/3">Tiago Bastos</a></p>
<h3>ORM on Rails</h3>
<p><strong>Descrição:</strong><br />
A camada de persistência do ROR está realmente nos trilhos? A visão de um DBA sobre a camada de persistência do Rails. Analise dos padrões DAO e ActiveRecord. Análise das implementações ActiveRecord e iBatis para ruby. Análise das implementações Rails ActiveRecord e Hibernate (java).</p>
<p><strong>Horário:</strong> 19:40:00 às 20:40:00</p>
<p><strong>Palestrante:</strong> <a href="http://www.cearaonrails.org/palestrantes/2">Nabucodonosor Coutinho </a></p>
<h3>Desenvolvimento fora da Média com Ruby e Rails</h3>
<p><strong>Descrição:</strong><br />
Porque é importante entender as novas tecnologias como Ruby e Rails e como elas agilizam seus projetos web.</p>
<p><strong>Horário:</strong> 21:00:00 às 22:00:00</p>
<p><strong>Palestrante:</strong> <a href="http://www.cearaonrails.org/palestrantes/1">Fabio Akita</a></p>
<div class="content-box">
<h1>Organizadores</h1>
<ul>
<li>
<ul>
<li>Herminio Cesar Muniz Torres</li>
<li>Contato: <strong>herminiocesar@gmail.com </strong></li>
</ul>
</li>
</ul>
<ul>
<li>
<ul>
<li>Ítalo Matos Cavalcante Santos</li>
<li>Contato: <strong>italomatos@gmail.com</strong></li>
</ul>
</li>
</ul>
<ul>
<li>
<ul>
<li>Rafael Cruz Rubert</li>
<li>Contato: <strong>rafarubert@yahoo.com.br</strong></li>
</ul>
</li>
</ul>
<ul>
<li>
<ul>
<li>Victor Sobreira</li>
<li>Contato: <strong>victorcsv@gmail.com</strong></li>
</ul>
</li>
</ul>
<h3>Local e Data</h3>
<p><strong>Data:</strong> 14 de Novembro de 2008</p>
<p><strong>Horário</strong> 19:00:00 às 22:30:00</p>
<p><strong>Local:</strong> Faculdade Christus, Avenida Dom Luís, 911, Fortaleza-Ce</div>
]]></content:encoded>
			<wfw:commentRss>http://www.milfont.org/tech/2008/11/08/primeiro-cearaonrails-em-novembro-de-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

