<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>emDesenvolvimento</title>
	<atom:link href="http://eltonokada.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://eltonokada.wordpress.com</link>
	<description>elton okada</description>
	<lastBuildDate>Tue, 09 Nov 2010 23:56:32 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='eltonokada.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>emDesenvolvimento</title>
		<link>http://eltonokada.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://eltonokada.wordpress.com/osd.xml" title="emDesenvolvimento" />
	<atom:link rel='hub' href='http://eltonokada.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Gerenciando N versões de Ruby com RVM</title>
		<link>http://eltonokada.wordpress.com/2010/11/04/gerenciando-varias-versoes-de-ruby-com-rvm/</link>
		<comments>http://eltonokada.wordpress.com/2010/11/04/gerenciando-varias-versoes-de-ruby-com-rvm/#comments</comments>
		<pubDate>Fri, 05 Nov 2010 01:57:34 +0000</pubDate>
		<dc:creator>eltonokada</dc:creator>
		
		<guid isPermaLink="false">http://eltonokada.wordpress.com/?p=78</guid>
		<description><![CDATA[Hoje vou falar um pouco para vocês sobre o RVM (Ruby Version Manager) que viabiliza a instalação de N versões do interpretador Ruby com suas respectivas gemsets. Ou seja você pode desenvolver o projeto &#8220;ABC&#8221; usando o Ruby 1.8.7, com seu determinado conjunto de gems dentre elas o Rails 2.3.4, e ao mesmo tempo ter [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonokada.wordpress.com&amp;blog=221136&amp;post=78&amp;subd=eltonokada&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="font-family:Helvetica, sans-serif;font-size:small;">Hoje vou falar um pouco para vocês sobre o RVM (Ruby Version Manager) que viabiliza a instalação de N versões do interpretador Ruby com suas respectivas gemsets.</span></p>
<p><span style="color:#000000;"><span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;">Ou seja você pode desenvolver o projeto &#8220;ABC&#8221; usando o Ruby 1.8.7, com seu determinado conjunto de gems dentre elas o Rails 2.3.4, e ao mesmo tempo ter o projeto &#8220;DEF&#8221; usando o Jruby e o Rails 3.0.0, simples assim sem conflitos internos e liberdade total para o desenvolvimento.</span></span></span></p>
<p><span style="font-family:Helvetica, sans-serif;font-size:small;">Como faço ? Vamos lá, para quem quiser se aprofundar mais dê uma boa estudada em http://rvm.beginrescueend.com/, e para os mais ansiosos vou apresentar a receita de bolo <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </span></p>
<p><span style="font-family:Helvetica, sans-serif;font-size:small;"><strong>Instalando o RVM</strong></span></p>
<p><span style="color:#808080;"><span style="font-family:Courier, monospace;"><span style="font-size:x-small;">&lt;&lt;(curl http://rvm.beginrescueend.com/releases/rvm-install-head)</span></span></span></p>
<p><span style="font-family:Helvetica, sans-serif;font-size:small;">Habilite o comando RVM, inserindo a linha abaixo no arquivo ~/.bash_profile</span></p>
<p><span style="color:#000000;"> </span></p>
<p><span style="color:#000000;"> <span style="font-family:Courier, monospace;"><span style="font-size:small;"><span style="color:#808080;"><span style="font-size:x-small;">[[ -s "$HOME/.rvm/scripts/rvm" ]] &amp;&amp; . &#8220;$HOME/.rvm/scripts/rvm&#8221;</span></span></span></span></span></p>
<p><span style="color:#000000;"><span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;">Teste a instalação</span></span></span></p>
<p><span style="color:#000000;"> <span style="font-family:Courier, monospace;"><span style="font-size:small;"><span style="color:#808080;"><span style="font-size:x-small;">rvm</span></span></span></span></span></p>
<p><span style="color:#000000;"><span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;"><strong>Criando seu primeiro ambiente</strong></span></span></span></p>
<p><span style="color:#000000;"><span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;">Nesse primeiro exemplo vamos criar um ambiente com o Ruby Enterprise Edition, que é uma branch do MRI(Matz Ruby Interpreter, implementação canônica do Ruby) com uma série de patches que priorizam performance, escalabilidade, memória e etc. Para fazer isso faça o seguinte:</span></span></span></p>
<p><span style="color:#000000;"><span style="color:#808080;"> <span style="font-family:Courier, monospace;"><span style="font-size:small;"><span style="font-size:x-small;">rvm install ree</span></span> </span></span></span></p>
<p><span style="color:#000000;"> </span></p>
<p><span style="color:#000000;"><span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;">Aguarde, pode demorar um pouco, ao final da instalação para conferir se tudo deu certo:</span></span></span></p>
<p><span style="color:#000000;"> <span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;"><span style="color:#808080;"><span style="font-family:Courier, monospace;"><span style="font-size:x-small;">rvm list</span></span></span></span></span></span></p>
<p><span style="color:#000000;"><span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;">Será apresentado uma lista do rubies instalados a partir do RVM</span></span></span></p>
<p><span style="color:#000000;"><span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;"> <span style="color:#808080;"><span style="font-family:Courier, monospace;"><span style="font-size:x-small;">ree-1.8.7-2010.02 [ x86_64 ]</span></span></span></span></span></span></p>
<p><span style="color:#000000;"><span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;">Para saber mais comandos: </span></span></span></p>
<p><span style="color:#000000;"><span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;"> <span style="color:#808080;"><span style="font-family:Courier, monospace;"><span style="font-size:x-small;">rvm help</span></span></span></span></span></span></p>
<p><span style="color:#000000;"><span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;">Agora que você instalou o Ruby Enterprise Edition, para usá-lo faça o seguinte:</span></span></span></p>
<p><span style="color:#000000;"><span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;"> <span style="color:#808080;"><span style="font-family:Courier, monospace;"><span style="font-size:x-small;">rvm use ree</span></span></span></span></span></span></p>
<p><span style="color:#000000;"><span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;">A partir de agora o Ruby executado será o Enterprise Edition, vamos instalar um gemset para nosso novo ambiente:</span></span></span></p>
<p><span style="color:#000000;"><span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;"> <span style="color:#808080;"><span style="font-family:Courier, monospace;"><span style="font-size:x-small;">rvm gemset create meu-projeto</span></span></span></span></span></span></p>
<p><span style="color:#000000;"><span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;">Foi criado um gemset dentro do ambiente do Ruby Enterprise Edition, e para usar </span></span></span></p>
<p><span style="color:#000000;"> <span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;"><span style="color:#808080;"><span style="font-size:x-small;">rvm gemset use meu-projeto</span></span></span></span></span></p>
<p><span style="color:#000000;"><span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;">Pronto, instalamos o RVM, criamos um novo ambiente com o Ruby Enterprise Edition, e seu respectivo gemset, teoricamente tudo certo e para usarmos essas configurações em nosso projeto de uma maneira mais simples com um comando só, faça isso:</span></span></span></p>
<p><span style="color:#000000;"> <span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;"><span style="color:#808080;"><span style="font-family:Courier, monospace;"><span style="font-size:x-small;">rvm use ree@meu-projeto</span></span></span></span></span></span></p>
<p><span style="color:#000000;"><span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;">Entendeu ? informei ao RVM que quero usar o ambiente &#8220;ree&#8221; com o gemset &#8220;meu-projeto&#8221;</span></span></span></p>
<p><span style="color:#000000;"><span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;">Quer algo mais simples ainda que garanto vai te poupar possíveis dores de cabeça ?</span></span></span></p>
<p><span style="color:#000000;"><span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;">Crie um arquivo .rvmrc coloque na raiz do seu projeto com o seguinte conteúdo</span></span></span></p>
<p><span style="color:#000000;"><span style="font-family:Helvetica, sans-serif;"><span style="font-size:small;"> <span style="color:#808080;"><span style="font-family:Courier, monospace;"><span style="font-size:x-small;">rvm use ree@meu-projeto</span></span></span></span></span></span></p>
<p><strong><span style="color:#808080;font-family:Courier, monospace;"><span style="font-size:x-small;">BINGO !</span></span></strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonokada.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonokada.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonokada.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonokada.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonokada.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonokada.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonokada.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonokada.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonokada.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonokada.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonokada.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonokada.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonokada.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonokada.wordpress.com/78/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonokada.wordpress.com&amp;blog=221136&amp;post=78&amp;subd=eltonokada&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonokada.wordpress.com/2010/11/04/gerenciando-varias-versoes-de-ruby-com-rvm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/532a73a73285823cc893911f20947621?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eltonokada</media:title>
		</media:content>
	</item>
		<item>
		<title>Rails Rumble 2010</title>
		<link>http://eltonokada.wordpress.com/2010/10/31/rails-rumble-2010/</link>
		<comments>http://eltonokada.wordpress.com/2010/10/31/rails-rumble-2010/#comments</comments>
		<pubDate>Sun, 31 Oct 2010 17:21:43 +0000</pubDate>
		<dc:creator>eltonokada</dc:creator>
		
		<guid isPermaLink="false">http://eltonokada.wordpress.com/?p=72</guid>
		<description><![CDATA[Há 2 semanas atrás, junto com os amigos @alexanmtz, @pedroputz e @rodvlopes participei do Rails Rumble, onde cada time de no máximo 4 pessoas deve desenvolver um produto web usando Ruby on Rails (ou simplesmente o RACK) em 48 horas. Foi uma experiência extremamente interessante, não conseguimos ficar entre os 25 finalistas, mas finalizamos o [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonokada.wordpress.com&amp;blog=221136&amp;post=72&amp;subd=eltonokada&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Há 2 semanas atrás, junto com os amigos @alexanmtz, @pedroputz e @rodvlopes participei do <a href="http://www.railsrumble.com" target="_blank">Rails Rumble</a>, onde cada time de no máximo 4 pessoas deve desenvolver um produto web usando Ruby on Rails (ou simplesmente o RACK) em 48 horas.</p>
<p>Foi uma experiência extremamente interessante, não conseguimos ficar entre os 25 finalistas, mas finalizamos o nosso aplicativo, que basicamente é um produto que une dois &#8220;atores&#8221;:  guias turísticos independentes, ou empresas de turismo e é claro os turistas ! Dê uma olhada no <a href="http://takeawalk.r10.railsrumble.com">Take a Walk</a>.</p>
<p>Lições que aprendi:</p>
<p>Um planejamento prévio ajuda bastante, principalmente com relação ao escopo do produto.</p>
<p>Faça um protótipo antes (sim, é permitido)</p>
<p>Um pequeno exercício de modelagem também não faz mal a ninguém !</p>
<p>Se você vai usar alguma API faça um pequeno estudo antes (no nosso caso usamos a api do google maps)</p>
<p>O que fizemos bem:</p>
<p>Equipe multidisciplinar : 2 railers @eltonokada e @rodvlopes, 1 cara de criação @pedroputz e 1 desenvolvedor com foco no front-end @alexanmtz.</p>
<p>Deploy da aplicação no git push usando o esquema do <a href="http://help.github.com/post-receive-hooks/">post-receive-hook</a> do <a href="http://github.com">github</a>, implementamos uma solução bem simples e rápida que nos atendeu muito bem: cadastramos uma url de callback que é invocada após cada git push, essa url aponta para um arquivo .rb que executa os comandos git clone, roda as migrations e restarta o nginx <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Usamos o <a href="http://www.janrain.com/">janrain</a> sem precisar implementar nada relacionado a login em nosso aplicativo, usando os logins de facebook, twitter, e etc. <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Descansamos bem, afinal de contas 1 hora programando depois de 8 horas dormindo vale mais que 5 horas programando virado <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  fica a dica.</p>
<p>É isso, foi uma experiência excelente que pretendo repetir a dose no próximo ano.</p>
<p>E at last but not least parabéns a galera do <a href="http://beercheck.in/">BeerCheckin</a> que venceu com um aplicativo MUITO bom, e sim eles são brasileiros e assim como nós uma equipe formada por profissionais da <a href="http://www.globo.com">globo.com</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonokada.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonokada.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonokada.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonokada.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonokada.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonokada.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonokada.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonokada.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonokada.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonokada.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonokada.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonokada.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonokada.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonokada.wordpress.com/72/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonokada.wordpress.com&amp;blog=221136&amp;post=72&amp;subd=eltonokada&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonokada.wordpress.com/2010/10/31/rails-rumble-2010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/532a73a73285823cc893911f20947621?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eltonokada</media:title>
		</media:content>
	</item>
		<item>
		<title>Curso de Ruby on Rails Ilearn</title>
		<link>http://eltonokada.wordpress.com/2010/10/09/curso-de-ruby-on-rails-ilearn/</link>
		<comments>http://eltonokada.wordpress.com/2010/10/09/curso-de-ruby-on-rails-ilearn/#comments</comments>
		<pubDate>Sat, 09 Oct 2010 02:09:46 +0000</pubDate>
		<dc:creator>eltonokada</dc:creator>
		
		<guid isPermaLink="false">http://eltonokada.wordpress.com/2010/10/09/curso-de-ruby-on-rails-ilearn/</guid>
		<description><![CDATA[A partir de dezembro, passo a ministrar o curso &#8220;Desenvolvimento Web com Ruby on Rails&#8221; no Ilearn. O curso terá duração de 24 horas, distribuídas em 3 sábados, antes de cair dentro do Rails, vou dar um apanhado geral na sintaxe do Ruby, histórico da linguagem, metaprogramação, sintax sugar, símbolos, blocos, enfim&#8230; confira a ementa [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonokada.wordpress.com&amp;blog=221136&amp;post=67&amp;subd=eltonokada&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A partir de dezembro, passo a ministrar o curso &#8220;Desenvolvimento Web com Ruby on Rails&#8221; no Ilearn. O curso terá duração de 24 horas, distribuídas em 3 sábados, antes de cair dentro do Rails, vou dar um apanhado geral na sintaxe do Ruby, histórico da linguagem, metaprogramação, sintax sugar, símbolos, blocos, enfim&#8230; confira a <a href="http://ilearn.com.br/ilearn/detalheCurso.php?idcurso=103">ementa</a></p>
<p>Espero você lá !</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonokada.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonokada.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonokada.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonokada.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonokada.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonokada.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonokada.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonokada.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonokada.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonokada.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonokada.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonokada.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonokada.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonokada.wordpress.com/67/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonokada.wordpress.com&amp;blog=221136&amp;post=67&amp;subd=eltonokada&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonokada.wordpress.com/2010/10/09/curso-de-ruby-on-rails-ilearn/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/532a73a73285823cc893911f20947621?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eltonokada</media:title>
		</media:content>
	</item>
		<item>
		<title>Visualizando as queries geradas pelo ActiveRecord</title>
		<link>http://eltonokada.wordpress.com/2010/10/07/visualizando-as-queries-geradas-pelo-activerecord/</link>
		<comments>http://eltonokada.wordpress.com/2010/10/07/visualizando-as-queries-geradas-pelo-activerecord/#comments</comments>
		<pubDate>Thu, 07 Oct 2010 01:42:16 +0000</pubDate>
		<dc:creator>eltonokada</dc:creator>
		
		<guid isPermaLink="false">http://eltonokada.wordpress.com/?p=64</guid>
		<description><![CDATA[Quer visualizar as queries geradas pelo ActiveRecord em tempo de execução através do console do rails ? É simples: &#62;&#62; script/console &#62;&#62; ActiveRecord::Base.logger = Logger.new(STDOUT) &#62;&#62; Campanha.find(1) SQL (0.1ms)   SET NAMES &#8216;utf8&#8242; SQL (0.1ms)   SET SQL_AUTO_IS_NULL=0 Campanha Columns (1.4ms)   SHOW FIELDS FROM `campanhas` Campanha Load (0.4ms)   SELECT * FROM `campanhas` WHERE (`campanhas`.`id` = 1) Existe [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonokada.wordpress.com&amp;blog=221136&amp;post=64&amp;subd=eltonokada&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Quer visualizar as queries geradas pelo ActiveRecord em tempo de execução através do console do rails ?</p>
<p>É simples:</p>
<p>&gt;&gt; script/console</p>
<p>&gt;&gt; ActiveRecord::Base.logger = Logger.new(STDOUT)</p>
<p>&gt;&gt; Campanha.find(1)<br />
SQL (0.1ms)   SET NAMES &#8216;utf8&#8242;<br />
SQL (0.1ms)   SET SQL_AUTO_IS_NULL=0<br />
Campanha Columns (1.4ms)   SHOW FIELDS FROM `campanhas`<br />
Campanha Load (0.4ms)   SELECT * FROM `campanhas` WHERE (`campanhas`.`id` = 1)</p>
<p>Existe também uma outra maneira, que creio ser mais eficaz</p>
<p>adicione o método no seu arquivo .irbrc</p>
<pre>def log_to
  ActiveRecord::Base.logger = Logger.new($stdout)
  ActiveRecord::Base.connection_pool.clear_reloadable_connections!
end
e no console:
log_to</pre>
<p>após executar a consulta através dos models do activerecord</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonokada.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonokada.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonokada.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonokada.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonokada.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonokada.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonokada.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonokada.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonokada.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonokada.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonokada.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonokada.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonokada.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonokada.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonokada.wordpress.com&amp;blog=221136&amp;post=64&amp;subd=eltonokada&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonokada.wordpress.com/2010/10/07/visualizando-as-queries-geradas-pelo-activerecord/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/532a73a73285823cc893911f20947621?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eltonokada</media:title>
		</media:content>
	</item>
		<item>
		<title>Conflito to_json ActiveSupport</title>
		<link>http://eltonokada.wordpress.com/2010/09/18/conflitos-to_json-rails-vs-gem-json/</link>
		<comments>http://eltonokada.wordpress.com/2010/09/18/conflitos-to_json-rails-vs-gem-json/#comments</comments>
		<pubDate>Sat, 18 Sep 2010 02:57:15 +0000</pubDate>
		<dc:creator>eltonokada</dc:creator>
		
		<guid isPermaLink="false">http://eltonokada.wordpress.com/?p=55</guid>
		<description><![CDATA[Tenho um json cadastrado em um campo do meu banco de dados, preciso editar o json e em seguida fazer o update no banco, até aí nada demais, o problema veio quando ao atualizar o json no banco, caracteres como ã, é e etc eram convertidos para unicode, isso acontecia quando fazia o seguinte: class [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonokada.wordpress.com&amp;blog=221136&amp;post=55&amp;subd=eltonokada&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Tenho um json cadastrado em um campo do meu banco de dados, preciso editar o json e em seguida fazer o update no banco, até aí nada demais, o problema veio quando ao atualizar o json no banco, caracteres como ã, é e etc eram convertidos para unicode, isso acontecia quando fazia o seguinte:</p>
<p><em>class TesteController &lt; ApplicationController</em></p>
<p style="padding-left:30px;"><em> def meu_metodo<br />
</em></p>
<p style="padding-left:60px;"><em> meujson = JSON.parse(&#8216;{&#8220;teste&#8221;:&#8221;ÃO&#8221;}&#8217;)</em></p>
<p style="padding-left:60px;"><em> meujson.to_json</em></p>
<p style="padding-left:30px;"><em> end<br />
</em></p>
<p><em>end</em></p>
<p>com esse codigo a variável meujson recebia {&#8220;teste&#8221;:&#8221;\u00c3O&#8221;}</p>
<p>Para debugar resolvi executar a mesma operação em um programa ruby que fazia exatamente a mesma coisa, mas a variável meujson recebia {&#8220;teste&#8221;: &#8220;ÃO&#8221;}</p>
<p>Isolando o problema observei que existe um conflito do to_json.</p>
<p>O programa ruby que fiz usava o método to_json da gem json, mas o controller rails que extende o ApplicationController, usa o to_json do ActiveSupport, sobreescrevendo o método to_json da gem json que resolve o problema dos caracteres especiais.</p>
<p>Para contornar esse problema faça o seguinte:</p>
<p>salve o codigo abaixo em: config/initializers/patches.rb</p>
<p><em>module ActiveSupport<br />
</em></p>
<p style="padding-left:30px;"><em> module JSON<br />
</em></p>
<p style="padding-left:60px;"><em>module Encoding<br />
</em></p>
<p style="padding-left:90px;"><em>class &lt;&lt; self<br />
</em></p>
<p style="padding-left:120px;"><em>def escape(string)<br />
</em></p>
<p style="padding-left:150px;"><em>::JSON.generate([string])[1..-2]<br />
</em></p>
<p style="padding-left:120px;"><em>end<br />
</em></p>
<p style="padding-left:90px;"><em>end<br />
</em></p>
<p style="padding-left:60px;"><em>end<br />
</em></p>
<p style="padding-left:30px;"><em>end</em></p>
<p><em>end</em></p>
<p>pronto, agora você pode usar o to_json sem problemas !</p>
<p>É isso, caso alguém ache alguma solução mais elegante, comente ! Espero que seja útil <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonokada.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonokada.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonokada.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonokada.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonokada.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonokada.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonokada.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonokada.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonokada.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonokada.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonokada.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonokada.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonokada.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonokada.wordpress.com/55/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonokada.wordpress.com&amp;blog=221136&amp;post=55&amp;subd=eltonokada&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonokada.wordpress.com/2010/09/18/conflitos-to_json-rails-vs-gem-json/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/532a73a73285823cc893911f20947621?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eltonokada</media:title>
		</media:content>
	</item>
		<item>
		<title>Ruby e os símbolos</title>
		<link>http://eltonokada.wordpress.com/2010/07/26/ruby-e-os-simbolos/</link>
		<comments>http://eltonokada.wordpress.com/2010/07/26/ruby-e-os-simbolos/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 00:58:17 +0000</pubDate>
		<dc:creator>eltonokada</dc:creator>
		
		<guid isPermaLink="false">http://eltonokada.wordpress.com/?p=52</guid>
		<description><![CDATA[Meu primeiro contato com Ruby on Rails, foi em 2008 e confesso que estranhei muito toda a &#8220;feitiçaria&#8221; do Rails. Para quem está acostumado com Java o mundo de Convention over Configuration soa no mínimo estranho em um primeiro momento. Felizmente depois de algum tempo me familiarizei com a linguagem, com o framework e não [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonokada.wordpress.com&amp;blog=221136&amp;post=52&amp;subd=eltonokada&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Meu primeiro contato com Ruby on Rails, foi em 2008 e confesso que estranhei muito toda a &#8220;feitiçaria&#8221; do Rails. Para quem está acostumado com Java o mundo de Convention over Configuration soa no mínimo estranho em um primeiro momento. Felizmente depois de algum tempo me familiarizei com a linguagem, com o framework e não quero outra vida <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Como todos, comecei com o scaffold e analisando o código gerado o que me soou mais estranho foi essa sintaxe:</p>
<p><em>:alguma_coisa_estranha </em></p>
<p>Que isso ? dois pontos antes ?  que porra é essa ??</p>
<p>Se você também teve essa reação, vamos a explicação</p>
<p><em>:alguma_coisa_estranha</em> é nada mais nada menos do que um <a href="http://ruby-doc.org/core/classes/Symbol.html">Symbol</a> em Ruby</p>
<p>Tá, blz isso é um Symbol, mas p que usar isso e essa sintaxe esotérica ? vamos lá</p>
<p>:alguma_coisa_estranha <strong>é a mesma coisa que</strong> &#8220;alguma_coisa_estranha&#8221;</p>
<p>ambos criam uma nova string alocando um espaço de memória reservado, e é aí que vem o pulo do gato, quando você usa a mesma string diversas vezes em seu código, da forma trivial</p>
<p>&#8220;alguma_coisa_estranha&#8221;</p>
<p>a cada vez que seu programinha ruby lê essa string ele faz o seguinte: String.new(&#8220;alguma_coisa_estranha&#8221;)</p>
<p>agora se você cria um símbolo</p>
<p>:alguma_coisa_estranha</p>
<p>e esse símbolo aparece várias vezes em seu programinha ruby ele não vai dar um Symbol.new(&#8220;alguma_coisa_estranha&#8221;) sempre, isso será feito apenas uma vez, é alocado um espaço de memória e a cada nova chamada ao invés do Symbol.new(&#8220;alguma_coisa_estranha&#8221;) o interpretador vai ler do mesmo endereço de memória criado no primeiro new do Symbol, economizando esforço do interpretador.</p>
<p>Sacou ? pronto era só isso agora nem ficou tão esquisito <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Abraços!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonokada.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonokada.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonokada.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonokada.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonokada.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonokada.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonokada.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonokada.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonokada.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonokada.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonokada.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonokada.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonokada.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonokada.wordpress.com/52/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonokada.wordpress.com&amp;blog=221136&amp;post=52&amp;subd=eltonokada&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonokada.wordpress.com/2010/07/26/ruby-e-os-simbolos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/532a73a73285823cc893911f20947621?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eltonokada</media:title>
		</media:content>
	</item>
		<item>
		<title>TDD x Filosofia</title>
		<link>http://eltonokada.wordpress.com/2009/07/12/tdd-x-filosofia/</link>
		<comments>http://eltonokada.wordpress.com/2009/07/12/tdd-x-filosofia/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 21:31:00 +0000</pubDate>
		<dc:creator>eltonokada</dc:creator>
				<category><![CDATA[1]]></category>

		<guid isPermaLink="false">http://eltonokada.wordpress.com/?p=43</guid>
		<description><![CDATA[Numa dessas conversas casuais com minha namorada, que é formada em comunicação social, resolvi me atrever a explicar para ela o que é TDD. Não foi necessário eu exercitar minha didática, pois assim que eu ia começar a explicar (ensaiando mentalmente algumas analogias), ela meio que definiu muito bem. Como assim ? Bom, em seu [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonokada.wordpress.com&amp;blog=221136&amp;post=43&amp;subd=eltonokada&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Numa dessas conversas casuais com minha namorada, que é formada em comunicação social, resolvi me atrever a explicar para ela o que é TDD.</p>
<p>Não foi necessário eu exercitar minha didática, pois assim que eu ia começar a explicar (ensaiando mentalmente algumas analogias), ela meio que definiu muito bem. Como assim ? Bom, em seu dia-dia ela é responsável pelo jornalzinho interno da empresa em que  trabalha, no nosso bate bola ela me explicou suas técnicas de redação: Primeiro ela enumera os pontos que  deseja alcançar (nossos testes) e depois desenvolve o texto em acordo com os pontos (código).</p>
<p>TDD não se resume simplesmente a fazer testes unitários de código, já vi algumas situações em que se desenvolvia o sistema e depois eram criados os testes unitários, não, isso não é TDD.</p>
<p>Desenvolver orientado a testes é uma filosofia de desenvolvimento, onde primeiro você define o que você quer e depois cria-se a inteligência para se alcançar o resultado.  (Lembra quando a professorinha dizia &#8220;e melhor entender do que decorar&#8221;, pois então antes de sair fazendo testes unitários em seu sistema procure entender a essência do que esta fazendo, e os reais porques disso tudo, e esse é meu interesse nesse post <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> )</p>
<p>Vamos la, com essa abordagem, sua aplicação fica concisa, pragmática, orientada aos reais objetivos, sem devaneios ou loucuras ou códigos monstro que tentam se aproximar o máximo possivel de uma bala de prata, aqueles em que se fica horas e horas pensando: &#8220;&#8230; mas e se daqui algum tempo precisarmos de bla bla bla&#8230;.&#8221; , se cria um mecanismo ultra complexo, onde o real objetivo da aplicação se perde, e fatalmente as exceções começam a mandar na inteligência da aplicação</p>
<p>Além de grande interesse por tecnologia, também sou um amante da filosofia, a base do conhecimento da civilização ocidental vem dos gregos, sim, o TDD também, a essência dessa técnica vem do <a href="http://pt.wikipedia.org/wiki/Crivo_de_Erat%C3%B3stenes">Crivo de Erastótenes</a> que foi um matemático grego que viveu em 285 a.c e criou tal algoritmo para o cálculo de números primos, e na sua técnica, antes de efetuar o cálculo ele definia o que se esperava.</p>
<p>Já que falei um pouquinho de filosofia, caso você esteja lendo esse post certamente você é um aficcionado por tecnologia, desenvolvimento e afins. Minha sugestão é: abra a sua mente, não leia apenas blogs técnicos, livros sobre linguagens de programação a,b ou c, leia também romances, sociologia, psicologia, biografias e quantas &#8220;ias&#8221; mais você puder. Como assim ? sim, isso vai fazer com que você exercite outras área do cérebro e certamente isso  ajudará você a ser um ser humano melhor <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonokada.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonokada.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonokada.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonokada.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonokada.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonokada.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonokada.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonokada.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonokada.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonokada.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonokada.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonokada.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonokada.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonokada.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonokada.wordpress.com&amp;blog=221136&amp;post=43&amp;subd=eltonokada&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonokada.wordpress.com/2009/07/12/tdd-x-filosofia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/532a73a73285823cc893911f20947621?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eltonokada</media:title>
		</media:content>
	</item>
		<item>
		<title>playframework + spring</title>
		<link>http://eltonokada.wordpress.com/2009/06/21/playframework-spring/</link>
		<comments>http://eltonokada.wordpress.com/2009/06/21/playframework-spring/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 04:47:59 +0000</pubDate>
		<dc:creator>eltonokada</dc:creator>
				<category><![CDATA[1]]></category>

		<guid isPermaLink="false">http://eltonokada.wordpress.com/?p=38</guid>
		<description><![CDATA[Como disse no post retrasado, estamos usando o playframework em nosso projeto atual. Relatei um pouco sobre a facilidade de uso, mas, como nem tudo são flores, tivemos um pequeno problema. Precisamos fazer um mock de uma dependência externa para realizarmos os testes unitários adequadamente. Para isso a solução que encontramos foi utilizar injeção de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonokada.wordpress.com&amp;blog=221136&amp;post=38&amp;subd=eltonokada&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Como disse no post retrasado, estamos usando o <a href="http://www.playframework.com">playframework</a> em nosso projeto atual. Relatei um pouco sobre a facilidade de uso, mas, como nem tudo são flores, tivemos um pequeno problema.</p>
<p>Precisamos fazer um mock de uma dependência externa para realizarmos os testes unitários adequadamente.</p>
<p>Para isso a solução que encontramos foi utilizar injeção de dependencias, dentre seus plugins, o playframework  possui o <a href="http://pt.wikipedia.org/wiki/Spring_Framework">spring</a>, que é um framework que tem como funcionalidade fundamental: a <a href="http://pt.wikipedia.org/wiki/Inje%C3%A7%C3%A3o_de_depend%C3%AAncia">injeção de dependências</a>. Até aí tudo bem, desenvolvemos nossos testes como manda o figurino, tudo saiu redondo, até que quando fizemos o deploy para o ambiente de desenvolvimento, as coisas não deram muito certo ;-(</p>
<p>Por alguma razão quando rodávamos os testes explodia no log o seguinte erro: Spring Context not started.  Mas que raios ? se em nosso ambiente local de funcionava (cowboy code total :&#8221; na minha maquina funciona !&#8221;  <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ). Vamos lá a diferença era: no ambiente local funcionava rodando no webserver que o playframework levantava, mas, no jbossweb ja era diferente. Estavamos chegando perto, até que com ajuda do commiter principal do projeto descobrimos que o comando &#8220;play war&#8221; (empacota a aplicação para que ela rode em um container, no nosso caso o jbossweb) nao estava copiando alguns arquivos de configuração para seus respectivos lugares, dentre eles o play.plugins que era o responsavel por apontar o uso do spring, bingo !</p>
<p>Prontamente eles corrigiram o bug, é por essas e outras que cada vez mais acredito na filosofia open source, que busca sempre a evolução a partir do conhecimento coletivo !</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonokada.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonokada.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonokada.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonokada.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonokada.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonokada.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonokada.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonokada.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonokada.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonokada.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonokada.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonokada.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonokada.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonokada.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonokada.wordpress.com&amp;blog=221136&amp;post=38&amp;subd=eltonokada&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonokada.wordpress.com/2009/06/21/playframework-spring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/532a73a73285823cc893911f20947621?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eltonokada</media:title>
		</media:content>
	</item>
		<item>
		<title>Testes unitários com google app engine</title>
		<link>http://eltonokada.wordpress.com/2009/06/20/testes-unitarios-com-google-app-engine/</link>
		<comments>http://eltonokada.wordpress.com/2009/06/20/testes-unitarios-com-google-app-engine/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 23:59:25 +0000</pubDate>
		<dc:creator>eltonokada</dc:creator>
				<category><![CDATA[1]]></category>

		<guid isPermaLink="false">http://eltonokada.wordpress.com/?p=34</guid>
		<description><![CDATA[Há algum tempo atrás, comecei a fazer alguns testes usando o google appengine, coloquei uma aplicação simples em produção em pouco tempo, apesar de estranhar um pouco algumas coisas, gostei muito da praticidade e da ferramenta de administração que eles disponibilizam.  Mas&#8230; minha aplicação estava sem testes unitários. Confesso que fui um daqueles que dizia [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonokada.wordpress.com&amp;blog=221136&amp;post=34&amp;subd=eltonokada&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Há algum tempo atrás, comecei a fazer alguns testes usando o google appengine, coloquei uma aplicação simples em produção em pouco tempo, apesar de estranhar um pouco algumas coisas, gostei muito da praticidade e da ferramenta de administração que eles disponibilizam.  Mas&#8230; minha aplicação estava sem testes unitários. Confesso que fui um daqueles que dizia &#8220;se nao der tempo, vamos fazer sem testes mesmo&#8221;, mas o TDD é um caminho sem volta, conforme se vai praticando, surge um clarão e tudo começa a fazer sentido, o que senti mais dificuldade foi fazer os testes antes do código. Quanto a isso agradeço ao meu grande parceiro de código <a href="http://codificando.com">Emerson</a>, que me catequisou no TDD.</p>
<p>Nesse final de semana voltei a trabalhar com o google app engine, só que agora em um outro projeto,  lendo os tutoriais do google appengine não tinha encontrado muitos exemplos de TDD, até que encontrei um framework esperto de testes unitarios GAEUnit http://code.google.com/p/gaeunit/</p>
<p>Ainda não fiz muita coisa mas em breve venho com mais impressões =)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonokada.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonokada.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonokada.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonokada.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonokada.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonokada.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonokada.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonokada.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonokada.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonokada.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonokada.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonokada.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonokada.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonokada.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonokada.wordpress.com&amp;blog=221136&amp;post=34&amp;subd=eltonokada&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonokada.wordpress.com/2009/06/20/testes-unitarios-com-google-app-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/532a73a73285823cc893911f20947621?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eltonokada</media:title>
		</media:content>
	</item>
		<item>
		<title>playframework = pure fun</title>
		<link>http://eltonokada.wordpress.com/2009/06/13/flayframework-pure-fun/</link>
		<comments>http://eltonokada.wordpress.com/2009/06/13/flayframework-pure-fun/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 15:13:56 +0000</pubDate>
		<dc:creator>eltonokada</dc:creator>
				<category><![CDATA[1]]></category>

		<guid isPermaLink="false">http://eltonokada.wordpress.com/?p=30</guid>
		<description><![CDATA[Eis que nosso time recebe mais uma nova missão:  disponibilizar uma aplicação para que nossos usuários se inscrevam para um processo de seleção de perfis. A primeira vista simples, não ? Mas o buraco é muiiito mais embaixo, pois o nosso querido formulário tem cerca de 70 campos, dentre eles alguns dissertativos, com validações diversificadas, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonokada.wordpress.com&amp;blog=221136&amp;post=30&amp;subd=eltonokada&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Eis que nosso time recebe mais uma nova missão:  disponibilizar uma aplicação para que nossos usuários se inscrevam para um processo de seleção de perfis. A primeira vista simples, não ? Mas o buraco é muiiito mais embaixo, pois o nosso querido formulário tem cerca de 70 campos, dentre eles alguns dissertativos, com validações diversificadas,  integração com outros sistemas como o de autenticação e o  de envio de vídeos, além de um fator crítico: precisamos de alta disponibilidade, e sim, essa aplicação será MUITO acessada.</p>
<p>Esse é o cenário, agora a solução. A última aplicação que desenvolvemos era orientada a serviços, onde tínhamos o front-end feito em Flash/ActionScript, e os nossos serviços em python, utilizando o framework django, e posso te dizer que foi bem divertido, principalmente porque aprendemos muito. Nunca tínhamos feito nada expressivo em python e tivemos um grande avanço e satisfação. Tendo isso, pensamos &#8220;vamos fazer em python&#8221; sim, foi bem divertido a linguagem e pragmática, o django e muiito bom <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Mas&#8230; devido aos servidores que serão utilizados e o prazo apertado, é mais viável desenvolvermos a aplicação em Java. </p>
<p>Eis que surge o playframework, um full-stack framework com um propósito bem semelhante do django / rails, só que para java.</p>
<p>Ficamos muito impressionados, e bem felizes com a curva de aprendizado e velocidade de desenvolvimento, com configurações simples e, funcionalidades poderosas, nosso projeto está de vento em popa em apenas 3 dias de sprint. Usamos, spring, hibernate,junit, log4j, selenium e etc.. etc.. tudo isso sem configurações monstruosas,  enfim.. tudo isso de uma maneira bem ágil e sem reinventar nada !! e nos concentrarmos efetivamente no real propósito da aplicação !!! na lógica de negócio.</p>
<p>Em tempo de desenvolvimento ele levanta um webserver muito leve, nao há a necessidade de restarts na aplicação, e como disse com configurações extremamente simples</p>
<p>Vai lá e da uma olhada no <a href="http://www.playframework.org" target="_blank">play</a> !!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonokada.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonokada.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonokada.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonokada.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonokada.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonokada.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonokada.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonokada.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonokada.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonokada.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonokada.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonokada.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonokada.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonokada.wordpress.com/30/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonokada.wordpress.com&amp;blog=221136&amp;post=30&amp;subd=eltonokada&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonokada.wordpress.com/2009/06/13/flayframework-pure-fun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/532a73a73285823cc893911f20947621?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eltonokada</media:title>
		</media:content>
	</item>
	</channel>
</rss>
