<?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; Rails</title>
	<atom:link href="http://www.milfont.org/tech/category/ruby/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>Nodejs vs Rails, ou a ironia de quando apertam no meu calo.</title>
		<link>http://www.milfont.org/tech/2011/11/27/nodejs-vs-rails-ou-a-ironia-de-quando-apertam-no-meu-calo/</link>
		<comments>http://www.milfont.org/tech/2011/11/27/nodejs-vs-rails-ou-a-ironia-de-quando-apertam-no-meu-calo/#comments</comments>
		<pubDate>Sun, 27 Nov 2011 21:52:11 +0000</pubDate>
		<dc:creator>cmilfont</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[nodejs]]></category>

		<guid isPermaLink="false">http://www.milfont.org/tech/?p=1496</guid>
		<description><![CDATA[Por volta de 2007/2008 quando o Rails se popularizou no mundo inteiro, um tema comum em todas as listas de discussões era como o Rails ia matar o Java. Ficavam furiosos os mais exaltados, porém míopes, javeiros. Claro que era uma brincadeira com um fundo de verdade, um alerta para sermos poliglotas e usarmos o melhor [...]]]></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/2011/11/27/nodejs-vs-rails-ou-a-ironia-de-quando-apertam-no-meu-calo/";
				tweetmeme_source = "tweetmeme";
				tweetmeme_style = "";
				
			//-->
			</script>
                        <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></div></div><p>Por volta de 2007/2008 quando o Rails se popularizou no mundo inteiro, um tema comum em todas as listas de discussões era como o Rails ia matar o Java. Ficavam furiosos os mais exaltados, porém míopes, javeiros.</p>
<p>Claro que era uma brincadeira com um fundo de verdade, um alerta para sermos <a href="http://www.programadorpoliglota.com.br/">poliglotas</a> e usarmos o melhor ambiente/plataforma/ferramenta/etc para resoluções de problemas.</p>
<p>Claro que a comparação era esdrúxula porque comparavam um Framework com uma linguagem, aliás, não só linguagem, mas uma plataforma. Não importa se o Rails poderia ser executado na plataforma Java, a mensagem era o alerta de que não adianta fazer tudo com apenas uma ferramenta. Naquele momento se voce era programador DotNet, voce tentaria fazer tudo com DotNet, se voce fosse programador Java, o mesmo com sua linguagem/plataforma.</p>
<p>Na época Java era Mainstream, Rails um Framework que trazia consigo uma linguagem &#8220;Underground&#8221; com uma comunidade ainda muito pequena, porém vibrante.</p>
<h2>A História se repete</h2>
<p>Hoje em dia <a href="http://rubyonrails.org/">Rails</a> é um Framework muito popular que criou um ecossistema em sua volta, graças a ele que a linguagem Ruby tem uma certa penetração até em <a href="http://www.grupofortes.com.br/">grandes</a> corporações. Ouso dizer que Rails é uma &#8220;plataforma&#8221; e que tudo gira em torno dele, retire esse Framework e a linguagem Ruby dificilmente se mantém no Mainstream.</p>
<p>Em 2009 surgiu uma ferramenta chamada <a href="http://nodejs.org/">Nodejs</a>. Um &#8220;Evented I/O for <a href="http://code.google.com/p/v8/">V8 JavaScript</a>&#8220;, ou seja, uma ferramenta para fazer <a href="http://en.wikipedia.org/wiki/Asynchronous_I/O">IO não-bloqueante</a> usando a VM do Chrome. Em pouco tempo a comunidade em volta do Nodejs repetiu o mesmo processo que o Rails levou de 2004 a 2010 só que em menos tempo. Esse ano (2011), as duas comunidades chamam a mesma atenção do mercado, principalmente as Startups do Vale do Silício.</p>
<p>Nodejs criou uma comunidade em sua volta, apesar de ter um propósito bem definido. Não existe um Framework no ecossistema Nodejs que sequer chegue aos pés do Rails, o máximo é algo similar o <a href="http://www.sinatrarb.com/">Sinatra</a> chamado de <a href="http://expressjs.com/">Express</a>. Mas somente a possibilidade de uma comunidade/ecossistema desviar a atenção e rivalizar no efeito &#8220;Sou foda, estou na crista da onda&#8221; já deixa incomodado muitos Railers.</p>
<p>Pois bem, eu dizia há alguns dias para amigos e clientes que a comunidade Rails iria subir nas tamancas quando o Nodejs crescesse mais do que já cresceu. O motivo que alerto é que a comunidade se tornou tão pedante quão a comunidade Java de 2007/2008. Hoje em dia temos &#8220;Railstards&#8221; que pregam o desenvolvimento somente com Ruby ao ponto de <a href="http://www.milfont.org/tech/2011/07/25/coffeescript/">escreverem Javascript em Ruby</a> por conveniência de não sair da sua zona de conforto.</p>
<p>Há alguns dias a <a href="http://www.nodejitsu.com/">Nodejitsu</a> publicou <a href="http://nodejs-vs-ror.nodejitsu.com/">uma página</a> para acompanhar o momento onde o número de Watchers (observadores) do projeto nodejs no github ultrapassou o mesmo número no projeto Rails.</p>
<p><a href="http://www.milfont.org/tech/wp-content/uploads/2011/11/Captura-de-tela-2011-11-27-às-18.36.50.png"><img class="size-medium wp-image-1499 alignnone" title="Nodejs Vs Rails" src="http://www.milfont.org/tech/wp-content/uploads/2011/11/Captura-de-tela-2011-11-27-às-18.36.50-300x115.png" alt="" width="300" height="115" /></a></p>
<p>A Notícia por si só não deveria ter nenhum significado. Comparar um Framework popular com uma Ferramenta de Evented IO?</p>
<p>Ops, há alguns anos comparamos uma linguagem/plataforma com um Framework, ninguém disse na época que era descabido a comparação, porque seria hoje comparar Nodejs vs Rails?</p>
<p>Não rir dessa piada irônica só demonstra que você deveria subir um alerta, a grande maioria dos Javeiros já calçou a sandália da humildade, acho que ta na hora de nós Railers também <img src='http://www.milfont.org/tech/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Como disse o <a href="https://twitter.com/#!/leonardoeloy">@leonardoeloy</a>: Se Java é o novo Cobol, Rails o novo Java, Nodejs o novo Rails, quem é o novo Nodejs?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.milfont.org/tech/2011/11/27/nodejs-vs-rails-ou-a-ironia-de-quando-apertam-no-meu-calo/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Terceiro Encontro GURU-CE</title>
		<link>http://www.milfont.org/tech/2010/12/18/terceiro-encontro-guru-ce/</link>
		<comments>http://www.milfont.org/tech/2010/12/18/terceiro-encontro-guru-ce/#comments</comments>
		<pubDate>Sat, 18 Dec 2010 20:33:36 +0000</pubDate>
		<dc:creator>cmilfont</dc:creator>
				<category><![CDATA[Ext]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[sencha]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[guruce]]></category>

		<guid isPermaLink="false">http://www.milfont.org/tech/?p=1134</guid>
		<description><![CDATA[Galera da guru_ce está mandando muito bem, dê uma sacada como foi o encontro: Fiz código na hora e como sempre não deu tempo de mostrar tudo que eu gostaria, estourei o tempo e saímos de lá por volta de 12:30. Espero ter gerado curiosidade na dobradinha sencha e rails, vamos ver se a galera [...]]]></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/12/18/terceiro-encontro-guru-ce/";
				tweetmeme_source = "tweetmeme";
				tweetmeme_style = "";
				
			//-->
			</script>
                        <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></div></div><p>Galera da <a href="http://guruce.org/">guru_ce</a> está mandando muito bem, dê uma sacada como foi o <a href="http://guruce.org/iii-encontro-guru-ce/">encontro</a>:</p>
<p style="text-align: center;"><a href="http://www.milfont.org/tech/wp-content/uploads/2010/12/210115888.jpg"><img class="aligncenter size-full wp-image-1136" title="guruce1" src="http://www.milfont.org/tech/wp-content/uploads/2010/12/210115888.jpg" alt="" width="384" height="287" /></a></p>
<p>Fiz código na hora e como sempre não deu tempo de mostrar tudo que eu gostaria, estourei o tempo e saímos de lá por volta de 12:30. Espero ter gerado curiosidade na dobradinha sencha e rails, vamos ver se a galera manda dúvidas para a lista.</p>
<div id="__ss_6230362" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a title="Construindo WebApps ricas com Rails e Sencha" href="http://www.slideshare.net/cmilfont/gurucesencha">Construindo WebApps ricas com Rails e Sencha</a></strong><object id="__sse6230362" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=6230362&amp;stripped_title=gurucesencha&amp;userName=cmilfont" /><param name="name" value="__sse6230362" /><param name="allowfullscreen" value="true" /><embed id="__sse6230362" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=6230362&amp;stripped_title=gurucesencha&amp;userName=cmilfont" name="__sse6230362" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/cmilfont">Christiano Milfont</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.milfont.org/tech/2010/12/18/terceiro-encontro-guru-ce/feed/</wfw:commentRss>
		<slash:comments>1</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>Retrospectiva 2009</title>
		<link>http://www.milfont.org/tech/2009/12/28/retrospectiva-2009/</link>
		<comments>http://www.milfont.org/tech/2009/12/28/retrospectiva-2009/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 15:43:52 +0000</pubDate>
		<dc:creator>cmilfont</dc:creator>
				<category><![CDATA[Maré de Agilidade]]></category>
		<category><![CDATA[offtopic]]></category>
		<category><![CDATA[palestras]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[xpce]]></category>

		<guid isPermaLink="false">http://www.milfont.org/tech/?p=844</guid>
		<description><![CDATA[Fonte: Jornal OPOVO Esse foi um bom ano, iniciei 2009 abrindo outra empresa e saindo da Triadworks que continua Triad (com o Carlos Átila, além do Handerson Frota e o Rafael Ponte) e agora parceira e amiga. Minha empresa, a Milfont Consulting foi o profissionalismo de algo que eu já vinha fazendo há algum tempo: [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Jornal OPOVO  (Foto: IGOR DE MELO)" href="http://www.milfont.org/tech/wp-content/uploads/2010/01/937000_not_fot.jpg"><img src="http://www.milfont.org/tech/wp-content/uploads/2010/01/937000_not_fot.jpg" alt="Jornal OPOVO  (Foto: IGOR DE MELO)" /></a><br />
<cite>Fonte: <a href="http://opovo.uol.com.br/opovo/esportes/937000.html">Jornal OPOVO</a> </cite></p>
<p>Esse foi um bom ano, iniciei 2009 abrindo outra empresa e saindo da <a href="http://www.triadworks.com.br/">Triadworks</a> que continua Triad (com o <a href="http://www.carlosatilaabreu.blogspot.com/">Carlos Átila</a>, além do <a href="http://www.handersonfrota.com.br/">Handerson Frota</a> e o <a href="http://www.rponte.com.br/">Rafael Ponte</a>) e agora parceira e amiga.</p>
<p>Minha empresa, a Milfont Consulting foi o profissionalismo de algo que eu já vinha fazendo há algum tempo: Mentoring, treinamento e coaching em desenvolvimento de software, só que agora focado em XP e um nicho específico de linguagem, Ruby. Sobre Rails eu vou fazer um post a parte, sobre o mercado local e meus projetos.</p>
<p>Dois clientes em especial marcaram o ano da Milfont Consulting, o Grupo <a href="http://www.grupotubform.com.br/">Tubform</a> que vem montando um dos maiores projetos em Rails no Brasil que tenho notícia e o <a href="http://www.grupofortes.com.br/">Grupo Fortes</a> que lançou recentemente o <a href="http://www.f2rh.com.br/">F2RH</a>, um portal gratuito para empresas e profissionais que desejam contratar e serem contratados respectivamente. Claro que meus antigos clientes continuam com atenção especial, mas já estão bem maduros em seus sistemas e processos o que me alegra enormemente e me dão aquela satisfação profissional que é motivo para continuar o trabalho que estamos fazendo.</p>
<p>Em relação à comunidade de desenvolvimento de software começamos (eu e <a href="http://www.igocoelho.com.br/">Igo Coelho</a>) o ano criando um grupo de discussões sobre XP exclusivamente do Ceará, o <a href="http://www.xpce.org/">XPCE</a>, do qual <a href="http://www.milfont.org/tech/2009/03/08/extreme-programming-no-ceara/">explico os motivos nesse post</a>. Depois convidamos o Henrique Landim e por último o <a href="http://franciscobarroso.blogspot.com/">Francisco Barroso</a> para se tornarem coordenadores.</p>
<p><a class="alignleft" title="Curso Caelum em Fortaleza - agosto 2009 on Twitpic" href="http://twitpic.com/vl5kd"><img class="alignleft" style="margin-left: 5px; margin-right: 5px;" src="http://twitpic.com/show/thumb/vl5kd.jpg" alt="Curso Caelum em Fortaleza - agosto 2009 on Twitpic" width="150" height="150" /></a></p>
<p>Em agosto realizamos o <a href="http://www.milfont.org/tech/2009/08/12/cobertura-do-mare-de-agilidade/">Maré de Agilidade Fortaleza</a>, que nos deu uma boa perspectiva de como fazer um evento, aprendemos muito com os erros cometidos e vamos para 2010 agora com profissionalismo. Nesse mesmo evento nós formamos a primeiro turma da <a href="http://www.caelum.com.br/">Caelum</a> em Fortaleza, aos trancos e barrancos conseguimos trazer o <a href="http://www.fabiokung.com/">Fábio Kung</a> para nos ensinar um Rails de qualidade. Agradeço a <a href="http://www.caelum.com.br/">Caelum</a> e principalmente ao <a href="http://twitter.com/paulo_caelum/">Paulo Silveira</a> por nos ter presenteado com a vinda do Fábio Kung, que é um dos melhores profissionais do mundo e conseguiu impressionar profissionais com anos de mercado e alguns com mais de um ano em Rails mesmo sendo um curso básico. Em 2010 vamos tentar trazer a Caelum mais vezes.</p>
<p>Não daria para citar todos os amigos e profissionais envolvidos nesses eventos da XPCE, mas agradeço o desprendimento de todos vocês, quem nos acompanha sabe o esforço e dedicação que todos fizeram.</p>
<p><a class="alignleft" title="Share photos on twitter with Twitpic" href="http://twitpic.com/vl1hs"><img style="margin-left: 5px; margin-right: 5px;" src="http://twitpic.com/show/thumb/vl1hs.jpg" alt="Share photos on twitter with Twitpic" width="150" height="150" /></a></p>
<p>Esse ano li <a href="http://www.shelfari.com/cmilfont/tags/web%202_2e_0">cerca de 20 livros</a> para um <a href="http://www.milfont.org/tech/research/crowds/">projeto de pesquisa que estou escrevendo</a>, além de <a href="http://www.shelfari.com/cmilfont/shelf">alguns livros técnicos</a>. Fui muito ao cinema para assistir desenhos e filmes de ação com meu filho mas tive pouco tempo para escrever como eu gostaria.<a href="http://www.lastfm.com.br/user/cmilfont"> Ouvi pouco rock esse ano</a>, já que passo o tempo quase todo em clientes e não dá para voce botar fones de ouvidos quando trabalhamos com consultoria.</p>
<h2>Tempo de correr</h2>
<p>Em Setembro eu comecei um <a href="http://blogs.opovo.com.br/tempodecorrer/categorias/desafio-do-christiano/">desafio do jornal OPOVO</a> a convite do jornalista <a href="http://blogs.opovo.com.br/tempodecorrer/hamilton-nogueira/">Hamilton Nogueira</a> para sair do sedentarismo e <a href="http://opovo.uol.com.br/opovo/esportes/906206.html">fazer uma corrida de 5 km</a>. Como não nego uma boa briga, além de topar eu aumentei para 10 km, se vamos morrer pelo menos vamos com classe. O <a href="http://opovo.uol.com.br/opovo/esportes/937000.html">resultado foi que fiz a prova da Unifor</a>, 10 km, em 1:16 aproximadamente.</p>
<p><a class="alignright" title="CampeÃ£o on Twitpic" href="http://twitpic.com/ucbm8"><img style="margin-left: 5px; margin-right: 5px;" src="http://twitpic.com/show/thumb/ucbm8.jpg" alt="CampeÃ£o on Twitpic" width="150" height="150" /></a></p>
<p>Essa saída do sedentarismo foi graças ao acompanhamento do preparador físico Pedro Sena (<a href="http://opovo.uol.com.br/hotsite/quality/quality-acessoria-esportiva.html">Quality Assessoria</a>) que teve muita paciência e profissionalismo para suportar minha agenda um pouco fora do convencional. Essa saga vou publicar com mais calma em outro post.</p>
<p><a class="alignleft" title="treino de Jiujitsu na Gautama um tempo atrÃ¡s on Twitpic" href="http://twitpic.com/vl6u6"><img style="margin-left: 5px; margin-right: 5px;" src="http://twitpic.com/show/thumb/vl6u6.jpg" alt="treino de Jiujitsu na Gautama um tempo atrÃ¡s on Twitpic" width="150" height="150" /></a></p>
<p>Com um bom preparo físico o rendimento é outro, você consegue trabalhar e se divertir melhor. Até dores nas costas devido à obesidade eu já tinha, cheguei a pesar 110 kg.</p>
<p>Meus objetivos para o próximo ano com essa reviravolta  como atleta é correr uma meia maratona (que pretendo ser a do RJ no meio do ano) e voltar ao Jiujitsu que é meu esporte favorito. Até dei um treino em uma academia lá em Iguatu onde meu irmão treina. Em termos de esporte esse ano marcou meu renascimento.</p>
<p>Em termos familiar nunca estivemos tão bem, esposa amada (Renata Milfont) e filho saudável que #asgatapira. Feliz ano-novo para todos vocês e que 2010 seja melhor do que foi esse ano.</p>
<p><a title="FamÃ­lia on Twitpic" href="http://twitpic.com/tdg2a"><img src="http://twitpic.com/show/thumb/tdg2a.jpg" alt="FamÃ­lia on Twitpic" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.milfont.org/tech/2009/12/28/retrospectiva-2009/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Material do terceiro encontro XPCE</title>
		<link>http://www.milfont.org/tech/2009/10/27/material-do-terceiro-encontro-xpce/</link>
		<comments>http://www.milfont.org/tech/2009/10/27/material-do-terceiro-encontro-xpce/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 11:27:47 +0000</pubDate>
		<dc:creator>cmilfont</dc:creator>
				<category><![CDATA[Behaviour Driven Development]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Test Driven]]></category>
		<category><![CDATA[XP]]></category>
		<category><![CDATA[xpce]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[behaviour driven development]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[selenium]]></category>

		<guid isPermaLink="false">http://www.milfont.org/tech/?p=801</guid>
		<description><![CDATA[Projeto de exemplo com Cucumber, Selenium e Rails http://github.com/cmilfont/bddonrails Para executar o exemplo deve se lembrar de ter o java instalado [de preferência o da SUN] por dependência do Selenium. Execute os comandos abaixo para baixar e rodar a aplicação: BDD com Cucumber, Selenium e Rails View more presentations from Christiano Milfont.]]></description>
			<content:encoded><![CDATA[<p>Projeto de exemplo com Cucumber, Selenium e Rails <a href="http://github.com/cmilfont/bddonrails">http://github.com/cmilfont/bddonrails</a></p>
<p>Para executar o exemplo deve se lembrar de ter o java instalado [de preferência o da SUN] por dependência do Selenium. Execute os comandos abaixo para baixar e rodar a aplicação:</p>
<div id="gist-219501" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="n">git</span> <span class="nb">clone</span> <span class="n">git</span><span class="vi">@github</span><span class="o">.</span><span class="n">com</span><span class="ss">:cmilfont</span><span class="o">/</span><span class="n">bddonrails</span><span class="o">.</span><span class="n">git</span></div><div class='line' id='LC2'><span class="n">cd</span> <span class="n">bddonrails</span><span class="o">/</span></div><div class='line' id='LC3'><span class="n">sudo</span> <span class="n">rake</span> <span class="n">gems</span><span class="ss">:install</span> <span class="no">RAILS_ENV</span><span class="o">=</span><span class="nb">test</span></div><div class='line' id='LC4'><span class="c1">#lembre de trocar a senha do root no mysql ou mudar o banco</span></div><div class='line' id='LC5'><span class="n">rake</span> <span class="n">db</span><span class="ss">:create:all</span></div><div class='line' id='LC6'><span class="n">rake</span> <span class="n">db</span><span class="ss">:migrate</span></div><div class='line' id='LC7'><span class="n">rake</span> <span class="n">cucumber</span><span class="ss">:ok</span></div></pre></div>
          </div>

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

<div id="__ss_2356178" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="BDD com Cucumber, Selenium e Rails" href="http://www.slideshare.net/cmilfont/bdd-com-cucumber-selenium-e-rails">BDD com Cucumber, Selenium e Rails</a><object style="margin:0px" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=3encontro-091027061527-phpapp01&amp;stripped_title=bdd-com-cucumber-selenium-e-rails" /><param name="allowfullscreen" value="true" /><embed style="margin:0px" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=3encontro-091027061527-phpapp01&amp;stripped_title=bdd-com-cucumber-selenium-e-rails" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<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/10/27/material-do-terceiro-encontro-xpce/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>3º Encontro XPCE &#8211; 2º Palestra confirmada</title>
		<link>http://www.milfont.org/tech/2009/09/21/3-encontro-xpce-2-palestra-confirmada/</link>
		<comments>http://www.milfont.org/tech/2009/09/21/3-encontro-xpce-2-palestra-confirmada/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 11:29:35 +0000</pubDate>
		<dc:creator>cmilfont</dc:creator>
				<category><![CDATA[Behaviour Driven Development]]></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[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[teste]]></category>
		<category><![CDATA[XP]]></category>
		<category><![CDATA[xpce]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[behaviour driven development]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[rspec]]></category>
		<category><![CDATA[selenium]]></category>
		<category><![CDATA[testes]]></category>

		<guid isPermaLink="false">http://www.milfont.org/tech/?p=782</guid>
		<description><![CDATA[A grade foi finalizada com a confirmação da segunda palestra para o evento com um profissional experiente falando e demonstrando na prática como desenvolver com Rspec e Cucumber seguindo uma moderna abordagem chamada Behaviour Driven Development. Palestra: BDD prático com Cucumber, Selenium e RSpec Resumo: Palestra na forma de &#8220;hands on&#8221; com a construção de [...]]]></description>
			<content:encoded><![CDATA[<p>A grade foi finalizada com a confirmação da segunda palestra para o evento com um profissional experiente falando e demonstrando na prática como desenvolver com Rspec e Cucumber seguindo uma moderna abordagem chamada Behaviour Driven Development.</p>
<p><strong>Palestra: </strong><strong>BDD prático com Cucumber, Selenium e RSpec</strong></p>
<p><strong>Resumo:</strong> Palestra na forma de &#8220;hands on&#8221; com a construção de uma aplicação utilizando conceitos de BDD. Outside in development visto na prática através da construção e automação de user stories com Cucumber + Selenium e descrição de comportamento com RSpec e Remarkable</p>
<p><strong>Palestrante: Jefferson Jean Martins Girão</strong><br />
Desenvolvedor no Grupo Tubform (<a href="http://www.grupotubform.com.br/" target="_blank">http://www.grupotubform.com.br</a>) atualmente trabalhando na migração de um ERP industrial de MS FoxPro para Ruby on Rails e Javascript com EXTjs. Tem 4 anos de experiência em desenvolvimento de software já tendo passado por áreas como automação comercial, terceiro setor e gestão pública municipal.</p>
<p>Informações sobre o evento:</p>
<h2>Título: 3º Encontro XPCE &#8211; Comunidade eXtreme Programming do Ceará</h2>
<h2>Local: Faculdade FA7</h2>
<h2>Data: 24 de Outubro</h2>
<h2>Agenda</h2>
<ol>
<li>08:30 as 09:30 &#8211; BDD prático com Cucumber, Selenium e RSpec &#8211; Jefferson Girão</li>
<li>09:30 as 10:00 &#8211; Intervalo</li>
<li>10:00 as 11:00 &#8211; Automação de Testes Funcionais de Software com Selenium &#8211; Fabrício Lemos</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.milfont.org/tech/2009/09/21/3-encontro-xpce-2-palestra-confirmada/feed/</wfw:commentRss>
		<slash:comments>0</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>

