<?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>PotHix &#187; Rails</title>
	<atom:link href="http://pothix.com/blog/tag/rails/feed" rel="self" type="application/rss+xml" />
	<link>http://pothix.com/blog</link>
	<description>class Blog &#60; PotHix; def initialize; super end end</description>
	<lastBuildDate>Sat, 09 Jul 2011 00:41:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Conto da migração para Rails 3</title>
		<link>http://pothix.com/blog/development/conto-da-migracao-para-rails-3</link>
		<comments>http://pothix.com/blog/development/conto-da-migracao-para-rails-3#comments</comments>
		<pubDate>Thu, 21 Oct 2010 10:33:38 +0000</pubDate>
		<dc:creator>PotHix</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://pothix.com/blog/?p=1033</guid>
		<description><![CDATA[Æ!! Pessoal, Nesse post eu vou falar um pouco de como foi atualizar a aplicação que eu trabalho atualmente para Rails3. Em uma segunda feira eu tive a brilhante ideia de aproveitar que as tasks que eu estava fazendo estavam dependentes de algumas coisas que ainda não estavam feitas, e resolvi começar a atualizar a [...]]]></description>
			<content:encoded><![CDATA[<p>Æ!!</p>

<p>Pessoal,</p>

<p>Nesse post eu vou falar um pouco de como foi atualizar a aplicação que eu trabalho atualmente para Rails3.</p>

<p>Em uma segunda feira eu tive a brilhante ideia de aproveitar que as tasks que eu estava fazendo estavam dependentes de algumas coisas que ainda não estavam feitas, e resolvi começar a atualizar a aplicação para Rails3 só para saber o trabalho que ia dar, e no final do dia eu já tinha feito todas as alterações necessárias para o boot da aplicação e para rodar a suite de testes (não fazer os testes passar, apenas rodar!).
Depois disso foi mais 1 dia para fazer todos os testes passar, e mais alguns outros testando a aplicação e resolvendo pequenos problemas de safe html e derivados.</p>

<h4>Dicas para fazer a conversão do código</h4>

<h5>Tenha testes</h5>

<p>Se não tiver testes, esqueça essa idéia e pare de ler o post, a menos que você queira quebrar sua app em produção.</p>

<h5>Faça sua aplicação e suite de testes funcionar</h5>

<p>Primeiramente, se você ainda não conhece, vale a pena dar uma olhada no plugin chamado Rails Upgrade que te dá um guideline do que você precisa ir alterando para tornar sua aplicação compatível com Rails 3.
Esse plugin faz algumas coisas como criar o application.rb baseado no seu environment, te dar alguns guias das configurações que mudaram e tenta converter suas rotas para o novo padrão (vide próximo tópico)
O primeiro passo a se tomar é utilizar o plugin (ou não, pode fazer manualmente também) e trocar as coisas principais para que sua aplicação pelo menos passe pela etapa de boot.
Quando passar por esse passo vá para seus testes, e se for RSpec prepare-se para ter alguns problemas de conversão, por que algumas coisas mudaram do RSpec 1 para o RSpec 2, e você vai ter que lidar com os problemas de atualização dos seus testes tambem. A maioria das coisas que tive problemas foi com métodos que não existem mais como o have_tag por exemplo.</p>

<h5>Não use o Rails Upgrade para a conversão das rotas</h5>

<p>Como disse acima, esse plugin é um ótimo guia, mas tome cuidado com ele como solução final. Você pode dizer para ele converter suas rotas, mas tome cuidado, por que dependendo da forma que as suas rotas estão diagramadas o resultado que ele dá não é muito conciso. O que eu fiz foi utilizar a conversão dele apenas como estudo para saber como está a nova syntax e refiz o arquivo de rotas do zero.</p>

<h5>Pare de usar remarkable</h5>

<p>Eu sempre gostei de usar Remarkable para testar relacionamentos, validações e etc, mas remarkable no Rails 3 é uma grande porcaria. Os desenvolvedores que começaram o projeto ficaram sem tempo para o mesmo e deixaram na mão de outros, que não tem a mesma qualidade ou preocupação com o projeto, portanto, a menos que você queira ser o novo mantenedor do projeto e fazer as alterações necessárias para que funcione bem no Rails 3, fuja dele agora.
O que eu fiz foi começar a usar o Shoulda para algumas coisas que me convinham, como por exemplo testes de relacionamento e validações. Para quem estiver interessado em fazer essa migração, eu fiz grande parte das trocas do que eu usava (validações e relacionamentos) facinho com grep e sed! Fiz <a href="http://gist.github.com/640517">um Gist</a> disso.</p>

<h5>Evite dependencias</h5>

<p>Assim como o remarkable acima, cada outra gem/plugin que você está utilizando pode ter problemas com o Rails 3, portanto, antes de fazer a migração procure manter o menor número possível de dependencias no seu projeto, e as que você tiver veja se já possui uma versão funcional para Rails 3, e se não possuir você já pode se voluntariar para fazer <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>

<h5>Use o sufixo _html nos locales necessários</h5>

<p>Suponho que as aplicações Rails estão usando os formatos de internacionalização do Rails, portanto suas string não estão perdidas pelas Views, Controllers e Models e sim estão em seus devidos arquivos de locale.
Levando esse cenário óbvio em conta lembre-se de que você não precisa dar raw em toda mensagem que possui HTML por que Rails já faz isso para você quando você adiciona o sufixo _html na sua chave de locale. Exemplo:</p>

<pre><code>not_yet: "&lt;strong&gt;Ainda não&lt;/strong&gt;"
</code></pre>

<p>Ficaria:</p>

<pre><code>not_yet_html: "&lt;strong&gt;Ainda não&lt;/strong&gt;"
</code></pre>

<p>E assim ele não vai escapar automaticamente o HTML dessa chave.</p>

<h5>Vá lidando aos poucos com DEPRECATION WARNING</h5>

<p>Quando você rodar sua suite de testes pela primeira vez já vai ser bombardeado por uma quantidade monstra de DEPRECATION WARNINGs, mas não saia atacando eles de uma vez, primeiramente tenha em mente fazer sua aplicação funcionar e você vai corrigir esses probleminhas aos poucos enquanto estiver corrigindo os erros ou desenvolvendo coisas novas.
Felizmente a API do ActiveRecord não deixou de funcionar, portanto você ainda não vai precisar fazer grandes modificações para a nova syntax utilizando Arel por enquanto, o que vai tornar a migração menos dolorosa e você pode migrar aos poucos enquanto seu código já estiver rodando.</p>

<h4>Dicas de organização para a migração</h4>

<h5>Crie um branch separado e altere aos poucos</h5>

<p>Sim! Todos queríamos que toda a equipe parasse por alguns dias e fosse alterar o projeto para funcionar com Rails 3, mas todos sabemos que isso não é possível na realidade de ninguém. Então uma coisa legal para se fazer (principalmente quando se está trabalhando com controle de versão distribuído, onde branches não são tão penosos) é criar um branch e manter uma pessoa trabalhando nele enquanto os outros vão tocando o projeto, sempre com muita comunicação para evitar que as pessoas criem cada vez mais código legado que precisará ser migrado, até que chegue uma hora que você possa voltar para o master e ficar sem deploy por alguns poucos dias para que a aquipe termine o trabalho e faça alguns testes.</p>

<h5>Ataque um problema de cada vez</h5>

<p>Acho muito legal a combinação Rails + Ruby1.9, mas acho que as coisas ficam bem mais fáceis quando atacamos no estilo estripador (por partes), assim você tem um caminho a menos para analizar de onde vem o possível erro, e assim que terminar uma migração para Rails 3 já pode começar uma para Ruby 1.9 e ver o que vai quebrar apenas para essa implementação específica.</p>

<h5>Use seu ambiente de homologação</h5>

<p>Não sei como seu deploy funciona atualmente, mas talvez com a migração você precise alterar ele e é na hora que você for colocar no seu ambiente de homologação que você vai descobrir isso, portanto, use-o bem! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<h4>Conclusão e Saldo final</h4>

<p>Fazer a migração para o Rails 3 foi mais simples do que eu imaginei, mas mesmo assim tomou vários dias para a conclusão.
Nos meus calculos levou mais ou menos 2 dias só meus e uns 3 dias meus e de outro desenvolvedor, isso contando os problemas de merge e etc. Portanto acho que em 1 semana é possível migrar uma aplicação bem coberta por testes sem grandes problemas e sem precisar parar a sua equipe inteira por um grande período. Escolha aquela semana com um feriado e atualize sua aplicação. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p>Há braços</p>
]]></content:encoded>
			<wfw:commentRss>http://pothix.com/blog/development/conto-da-migracao-para-rails-3/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Crontab dentro da sua aplicação rails com whenever</title>
		<link>http://pothix.com/blog/development/crontab-dentro-da-sua-aplicacao-rails-com-whenever</link>
		<comments>http://pothix.com/blog/development/crontab-dentro-da-sua-aplicacao-rails-com-whenever#comments</comments>
		<pubDate>Wed, 02 Dec 2009 23:06:03 +0000</pubDate>
		<dc:creator>PotHix</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://pothix.com/blog/?p=843</guid>
		<description><![CDATA[Æ!! Hoje estou aqui para falar de uma coisa que quando vi pela primeira vez ignorei por parecer uma coisa boba, mas olhando melhor eu percebi que é uma idéia bem interessante. O que a gem whenever faz é manter o seu crontab de uma forma mais Ruby, e melhor, dentro da sua aplicação! A [...]]]></description>
			<content:encoded><![CDATA[<p>Æ!!</p>

<p>Hoje estou aqui para falar de uma coisa que quando vi pela primeira vez ignorei por parecer uma coisa boba, mas olhando melhor eu percebi que é uma idéia bem interessante.
O que a gem whenever faz é manter o seu crontab de uma forma mais Ruby, e melhor, dentro da sua aplicação!</p>

<p>A principio parece estranho tentar manter o crontab dentro da sua aplicação, mas ganhamos muitas vantagens com isso:</p>

<ul>
<li>versionamento</li>
<li>menos acesso ao servidor</li>
<li>rapida atualização do crontab do servidor via capistrano</li>
<li>forma mais legível de ver o crontab</li>
</ul>

<p>E tudo isso não influi no crontab que você já possui ( e que muitas vezes tem muita coisa que não é relacionada com a aplicação ), pois o whenever cria uma seção que ele atualiza mantendo a seção antiga onde está.</p>

<p>Para instalar o whenever é a mesma facilidade de sempre:</p>


<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">   sudo gem sources -a &quot;http://gemcutter.org&quot;
   sudo gem install whenever</pre></div></div>


<p><strong>OBS</strong>: Lembrando que a primeira linha só é necessária uma vez, se você já tem o gemcutter no seu sources então ignore-a.</p>

<p>Depois disso execute:</p>


<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">   wheneverize .</pre></div></div>


<p>O comando acima vai gerar os arquivos necessários para a utilização do whenever ( básicamente o config/schedule.rb ).</p>

<p>E a partir de agora você já pode atualizar o seu crontab com as suas configurações feitas no config/schedule.rb executando o comando:</p>


<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">   whenever --update-crontab suaaplicacao</pre></div></div>


<p>Quando você passa como parametro a sua aplicação ele cria um bloco apenas para as configurações da sua aplicação no crontab.</p>

<p>Mas é claro que você não vai precisar acessar o servidor e executar esse comando toda vez que você alterar o arquivo de schedule, para isso você provavelmente deve estar usando o capistrano para ser mais DRY. Se estiver usando inclua algumas linhas no seu deploy.rb:</p>


<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">   after <span style="color:#996600;">&quot;deploy:symlink&quot;</span>, <span style="color:#996600;">&quot;deploy:update_crontab&quot;</span>
&nbsp;
   namespace <span style="color:#ff3333; font-weight:bold;">:deploy</span> <span style="color:#9966CC; font-weight:bold;">do</span>
      desc <span style="color:#996600;">&quot;Update the crontab file&quot;</span>
      task <span style="color:#ff3333; font-weight:bold;">:update_crontab</span>, <span style="color:#ff3333; font-weight:bold;">:roles</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#ff3333; font-weight:bold;">:db</span> <span style="color:#9966CC; font-weight:bold;">do</span>
         run <span style="color:#996600;">&quot;cd #{release_path} &amp;&amp; whenever --update-crontab #{application}&quot;</span>
      <span style="color:#9966CC; font-weight:bold;">end</span>
   <span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>


<p><strong>OBS:</strong> Se você tiver problemas no deploy com essa linha ( como se o comando whenever não existisse ), tente adicionar o path absoluto para o whenever.</p>

<p>E com isso a cada vez que você fizer um cap server deploy seu crontab será atualizado com as configurações contidas no config/schedule.rb.</p>

<p>Veja alguns exemplos do que pode ter no seu schedule.rb:</p>


<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">  every <span style="color:#006666;">4</span>.<span style="color:#9900CC;">minutes</span> <span style="color:#9966CC; font-weight:bold;">do</span>
    rake <span style="color:#996600;">&quot;ts:in&quot;</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
  every <span style="color:#006666;">1</span>.<span style="color:#9900CC;">day</span>, <span style="color:#ff3333; font-weight:bold;">:at</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'5:25 am'</span> <span style="color:#9966CC; font-weight:bold;">do</span>
    rake <span style="color:#996600;">&quot;bla_bla&quot;</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
  every <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:monday</span>, <span style="color:#ff3333; font-weight:bold;">:thursday</span><span style="color:#006600; font-weight:bold;">&#93;</span>, <span style="color:#ff3333; font-weight:bold;">:at</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'11:59 am'</span> <span style="color:#9966CC; font-weight:bold;">do</span>
    command <span style="color:#996600;">&quot;sudo rm -rf /&quot;</span> <span style="color:#008000; font-style:italic;"># claro!</span>
  <span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>


<p>Nada do que eu demonstrei aqui é uma grande novidade, você pode ver mais exemplos de como usar no <a href="http://www.railscasts.com">Railscasts</a> e na <a href="http://github.com/javan/whenever">própria página do plugin</a>.</p>

<p>Espero que seja útil para mais alguem como está sendo para mim.</p>

<p>Há braços</p>
]]></content:encoded>
			<wfw:commentRss>http://pothix.com/blog/development/crontab-dentro-da-sua-aplicacao-rails-com-whenever/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Dev In Sampa</title>
		<link>http://pothix.com/blog/events/dev-in-sampa</link>
		<comments>http://pothix.com/blog/events/dev-in-sampa#comments</comments>
		<pubDate>Wed, 02 Dec 2009 03:26:31 +0000</pubDate>
		<dc:creator>PotHix</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://pothix.com/blog/?p=826</guid>
		<description><![CDATA[Æ!! Nesse sábado, dia 28/11/2009 aconteceu aqui em São Paulo (obviamente! ) o Dev In Sampa! Um evento para desenvolvedores em geral, sem foco em uma determinada linguagem de programação, ou seja, um evento bem legal e pragmatico! Perdi um pouco a hora, portanto não assisti o começo da palestra do José Valim, que por [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://pothix.com/blog/wp-content/uploads/2009/12/logo_dev.jpg"><img class="aligncenter size-full wp-image-828" title="logo_dev" src="http://pothix.com/blog/wp-content/uploads/2009/12/logo_dev.jpg" alt="logo_dev" width="388" height="135" /></a>Æ!!</p>

<p>Nesse sábado, dia 28/11/2009 aconteceu aqui em São Paulo (obviamente! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  ) o Dev In Sampa! Um evento para desenvolvedores em geral, sem foco em uma determinada linguagem de programação, ou seja, um evento bem legal e pragmatico! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<p>Perdi um pouco a hora, portanto não assisti o começo da palestra do José Valim, que por sinal é um assunto que muito me interessa, portanto recorri aos vídeos do <a title="Hugo Borges" href="http://twitter.com/agaelebe">@agaelebe</a> para assistir o comecinho. Para quem quiser ver os vídeos confira no <a title="Blip Tv do agaelebe" href="http://agaelebe.blip.tv/">blip.tv do agaelebe</a>.</p>

<p>Agora vamos para  a programação e meus comentários:</p>

<h4>José Valim &#8211; Tópicos de machine learning: classificação de textos</h4>

<p>Como disse no começo do post, eu <span>perd</span>i o começo da palestra do Jose Valim por que eu me atrasei (<a title="Show do ACDC" href="http://pothix.com/blog/music/show-do-acdc"> foi por um bom motivo</a> ), mas compensei depois assistindo o vídeo.
A palestra foi muito boa, e abordou um dos tipos de tema que eu gosto, machine learning é bem interessante! Essa é uma das coisas que eu pretendo estudar só por diversão, por que parece ser bem legal.
O <a title="José Valim" href="http://twitter.com/josevalim">@josevalim</a> fez sua tese sobre classificação de textos, portanto conhece bem do assunto e foi muito interessante ver as pesquisas dele consolidadas e simplificadas em uma apresentação. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<h4>Rodrigo Yoshima &#8211; Design de Software: As técnicas esquecidas&#8230;</h4>

<p>O <a title="Rodrigo Yoshima" href="http://twitter.com/rodrigoy">@rodrigoy</a> fez uma palestra bem legal comentando sobre várias técnicas esquecidas sobre design de software, e muitos programadores que assistiram essa palestra devem ter se visto em várias situações por ele citadas ( eu fui um deles em alguns pontos ). Algumas das coisas citadas foram:</p>

<ul>
    <li>Design incremental
Nunca pense naquela história de &#8220;Preciso do pedido para poder fazer a tela de cadastro&#8221; sempre comece por aquilo que agrega mais valor.
Faça as coisas sempre usando um pensamento incremental, criando testes para que quando você resolva um bug não crie mais outros por não saber as consequências de suas modificações.
Sempre tomar cuidado com o design incremental para que ele não se torne um problema pelo mal crescimento da sua aplicação.</li>
</ul>

<ul>
    <li>Tomar cuidado com arquiteturas monolíticas / egípcias
Arquiteturas difíceis de refatorar, que usam componentes pesados, quem ninguém sabe como foi feita e etc.</li>
    <li>Separar a função de cada unidade, não deixando que o produto tenha que saber sobre vendas, por exemplo.</li>
    <li>É melhor um design ruim com testes do que um design bom sem testes por que com testes você pode refatorar, agora sem testes a situação já muda bastante.</li>
</ul>

<p>Entre outras coisas muito interessantes que eu não vou mencionar por que senão meu post vai ficar enorme, mas assista o vídeo e veja as dicas interessantes que ele dá.</p>

<p>Primeiro <strong>Coffee break</strong> para encontrar os amigos e bater papo! Tinha bastante gente do Guru-sp por lá ( <a title="Ricardo Almeida" href="http://twitter.com/almeidaricardo">@almeidaricardo</a>, <a title="Ricardo Yasuda" href="http://twitter.com/shadow11">@shadow</a>, <a title="Rafael Rosa" href="http://twitter.com/rafaelrosafu">@rafaelrosafu</a>, <a title="Thiago Scalone" href="http://twitter.com/scalone">@scalone</a>, <a title="bbcoimbra é o caramba! Esse é o sceadugenga" href="http://twitter.com/bbcoimbra">@bbcoimbra</a>, <a title="Nelson" href="http://twitter.com/nelsonmhjr">@nelsonmhjr</a>, <a title="Altair" href="http://twitter.com/_bojak">@_bojak</a>, <a title="Cassio Marques" href="http://twitter.com/cassiomarques">@cassiomarques</a>, <a title="Diego Carrion" href="http://twitter.com/dcreq">@dcreq</a> e mais um monte de gente! ), foi legal para bater um papo com os conhecidos. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> 
Só para constar, o Ronaldp Ferraz (<a title="Ronaldo Ferraz" href="http://twitter.com/rferraz">@rferraz</a>) veio falar comigo sem crachá e sem cavanhaque, e eu obviamente não conheci, tinha que se apresentar formalmente ( ou seja, com cavanhaque! O <a href="http://twitter.com/tinogomes">@tinogomes</a> já aprendeu! haha ). <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>

<h4>Ronaldo Ferraz &#8211; Criando sua própria linguagem de programação</h4>

<p>Palestra muito boa do <a title="Ronaldo Ferraz" href="http://twitter.com/rferraz">@rferraz</a>! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> 
O assunto foi bem denso, mas bem interessante, ele mostrou alguns conceitos e informações interessantes sobre como criar e brincar com a sua própria linguagem de programação de uma maneira não tão difícil usando Treetop e Ruby.
Como muitos já sabem o Ronaldo tem conhecimento infinito em linguagens de programação, portanto a palestra foi bem legal com vários exemplos em várias linguagens.</p>

<h4>João S. O. Bueno &#8211; Desenvolvimento de jogos com Python</h4>

<p>Puxa vida&#8230;Essa palestra foi um grande <strong>417</strong> ( Código de retorno do HTTP para<strong> Expectation Failed</strong> ), por que como muitos sabem eu adoro desenvolvimento de jogos, e fiquei muito feliz por ver uma palestra desse segmento nesse evento. Outra coisa que me entusiasmou bastante foi o fato de ser com Python, que assim como Ruby é uma linguagem que eu gosto bastante, mas em outra palestra que eu tinha visto ( no<strong> CONISLI 2008</strong> ) o palestrante não foi muito feliz com o conteúdo. Enfim,  e fui com muita vontade de ver essa palestra.</p>

<p>No início da palestra quando falaram o nome do palestrante e eu o vi, percebi que parecia familiar, e por incrível que pareça&#8230;Era o mesmo do CONISLI 2008&#8230; Mas até aí tudo bem, agora o nível do pessoal é diferente e já se passou mais de 1 ano desde a ultima palestra, ou seja, essa prometia ser bem melhor.</p>

<p>Como puderam ver pelo começo do post, foi um grande engano meu, apesar de o palestrante falar que ia focar mais em jogos já que o pessoal já conhecia Python, ele ficou muito em Python e no finalzinho mostrou alguns joguinhos feitos em PyGame, como se a idéia da palestra fosse mostrar que Python é legal (que nós já sabemos! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  ) e dá para fazer jogos tambem.
Enfim&#8230;Me decepcionou&#8230; <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>

<h4>Intervalo para almoço</h4>

<p>O Almoço foi meio corrido por que o evento estava meio atrasado, mas mesmo assim deu para conversar bastante com a galera do Guru-sp no shopping ( não me pergunte qual ).</p>

<h4>Guilherme Silveira e Adriano Almeida &#8211; Do REST ao RESTFul</h4>

<p>Na volta do almoço tivemos uma palestra teórica sobre REST e RESTful, que por sinal abriu muito a mente sobre o assunto. Mesmo o assunto sendo teórico o Guilherme Silveira e o Adriano passaram muito bem a idéia e souberam conduzir bem a palestra para manter o conteúdo bem dinâmico.</p>

<h4>Nando Vieira &#8211; Escrevendo testes no JavaScript</h4>

<p>Aqui um assunto que vem me interessando cada vez mais, testes! E como eu sempre gostei de Javascript, a palestra foi bem relevante.
Infelizmente o Nando Vieira não conseguiu mostrar todos os exemplos que ele tinha planejado, mas foi bem interessante ver o live coding, e as amostras de testes para determinadas coisas.
Gostei bastante da syntax do JSpec, não sei como fica a integração dele com o prototype ( que é o que eu estou usando atualmente no trabalho, mesmo preferindo JQuery ), mas pretendo dar uma chance para ele assim que possível.</p>

<h4>Luis Cipriani &#8211; Web em tempo real com Ruby e XMPP</h4>

<p>Bem legal o case que o Cipriani mostrou sobre a sua aplicação da maratona de basquete, achei muito interessante as ferramentas que ele usou, e vi que ele soube passar bem as informações sobre o XMPP que foram necessárias.</p>

<h4>Coffee-break</h4>

<p>Agora sim um coffee break que deu um tempinho para conversar com uma outra galerinha como o <a title="Ronaldo Ferraz" href="http://twitter.com/rferraz">@rferraz</a>, a <a title="Thais Camilo" href="http://twitter.com/narwen">@narwen</a>, o <a title="Fabio Kung" href="http://twitter.com/fabiokung">@fabiokung</a> e mais outra galera.</p>

<h4>Ricardo Almeida &#8211; Buscas poderosas com Solr</h4>

<p>Estava curioso desde o ultimo post do <a title="Diego Carrion" href="http://twitter.com/dcreq">@dcrec</a> sobre o Solr, e a palestra do Ricardo foi o ponto para tirar as minhas dúvidas.
Vi muitas vantagens do Solr sobre o Sphinx e nenhuma do Sphinx sobre o Solr, acho que vale a pena tentar uma migração num futuro não tão distante.</p>

<h4>Radamés Ajna &#8211; Arduino &#8211; Computação Física</h4>

<p>A palestra do Radamés foi demais! Além do Arduino ser fantástico, o Radamés soube apresentar muito bem, mesmo com alguns problemas nos slides ele mostrou muito bem algumas coisas legais que dá para fazer com o Arduino, sempre com exemplos muito interessantes de coisas que já fizeram ou que ele pretende fazer.
A interface para mexer com arduino realmente não parece ser tão complexa, e eu gostaria mesmo de ter algum conhecimento em eletronica nesses momentos, mas quem sabe algum dia eu tiro um tempinho para dar uma brincada. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<h4>Fabio Kung &#8211; Cloud Computing. E eu com isso?</h4>

<p>Para fechar o evento tivemos uma palestra muito legal do Kung mostrando o que &#8220;ele acha&#8221; que é cloud computing, e os tipos de cloud computing que são oferecidos ( IaaS, PaaS e SaaS ).
Ele mostrou como funciona e por que são usados os cloud computings atualmente, e como estão as experiencias dele com cluod computing atualmente. Achei a palestra bem legal, e é interessante ver as opiniões e experiências de alguem que realmente está vivendo essa parte de cloud computing.</p>

<h4>Conclusão</h4>

<p>O evento terminou bem atrasado ( mais de 20:00 ), mas valeu muito a pena ter ido. Há tempos estava sentindo falta de um evento que não levasse em consideração apenas uma linguagem de programação, algo que fosse mais pragmático mas que fosse totalmente voltado a desenvolvimento.</p>

<p>Parabens a todos os organizadores do evento e espero ver vocês novamente na próxima edição! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<p>Há braços</p>
]]></content:encoded>
			<wfw:commentRss>http://pothix.com/blog/events/dev-in-sampa/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Rails Summit 2009</title>
		<link>http://pothix.com/blog/events/rails-summit-2009</link>
		<comments>http://pothix.com/blog/events/rails-summit-2009#comments</comments>
		<pubDate>Mon, 19 Oct 2009 01:54:06 +0000</pubDate>
		<dc:creator>PotHix</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://pothix.com/blog/?p=799</guid>
		<description><![CDATA[Æ!! Esse é um post para relatar como foi o Rails Summit Latin America desse ano! Já começo o post com um grande #win para a organização do #railssummit, por que eles tem tomadas para todos e wi-fi liberado para todos os participantes, o que ajuda para que pessoas como eu possam ficar postando no [...]]]></description>
			<content:encoded><![CDATA[<p>Æ!!</p>

<p>Esse é um post para relatar como foi o Rails Summit Latin America desse ano! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> 
Já começo o post com um grande #win para a organização do #railssummit, por que eles tem tomadas para todos e wi-fi liberado para todos os participantes, o que ajuda para que pessoas como eu possam ficar postando no blog durante o evento, <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> 
Vamos ao evento!</p>

<h4>Rails Insurgency &#8211; Chad Fowler</h4>

<p>A palestra foi muito interessante e o Chad Fowler falou sobre como é a dificuldade de implantar uma aplicação Rails em uma grande empresa quando você tem grandes gerentes que te enchem de perguntas do tipo: &#8220;Rails faz X?, &#8220;Rails faz Y&#8221; até que voc6e responda um não para que ele possa dizer: &#8220;Aháá! Então não podemos usar&#8221;. O Chad Fowler já foi um desses gerentes e decidiu passar a experiencia de um desses gerentes e por que eles pensam dessa maneira.</p>

<p>Uma outra coisa bem legal que o Chad comentou foi sobre fazer um modelo junto com o seu cliente na hora do planejamento, até por que você consegue fazer isso facilmente com o Rails e até mostrar uma pequena funcionalidade com um Scaffold sem muito transtorno, e seu cliente pode facilmente ver se é isso mesmo que ele está pensando.</p>

<h4>Gregg Pollack &#8211; Na vanguarda da performance em Rails</h4>

<p>O Greg Pollack falou sobre page scaling Rails, comentando sobre uma grande quantidade de plugins para medir e ajudar a corrigir alguns problemas de escalabilidade que são detectados. Foi apresentado ferramentas para melhorar performance de banco de dados, para verificar quais <span>queries</span> que podem ser melhoradas, onde podem ser incluídos índices e outras coisas bem interessantes.</p>

<p>No fim da palestra ele falou sobre o <a title="madmimi" href="http://madmimi.com/">madmimi</a> que ajuda a lidar com um dos grandes gargalos de aplicações, que é quando se tem que trabalhar com grandes listas de e-mails.</p>

<p>Para saber os outros assuntos que o Greg falou é só ver no blog do EnvyLabs: <a title="Blog do EnvyLabs" href="http://blog.envylabs.com/summit">http://blog.envylabs.com/summit</a></p>

<h4>Carlos Brando &#8211; Como o Rails funciona por dentro</h4>

<p>Agora começa o problema por que temos que escolher uma palestra e eu fiquei em dúvida entre a palestra do Ilya Grigorick e a do <a href="http://nomedojogo.com">Carlos Brando</a>, mas no fim das contas resolvi assistir a do Carlos.</p>

<p>O Carlos Brando falou sobre como o Rails funciona por dentro, usando a sua experiência na criação de um framework ( que ele está fazendo na nova empresa que está trabalhando ), ele falou um pouco sobre como o Rails trata as requisições, como utilizar as coisas certas de Rails quando se está fazendo um framework, e comentou um pouco sobre o framework que ele está criando como exemplo.</p>

<p>Achei a palestra muito superficial&#8230;Achei que o Carlos fosse pegar pesado mostrando bastante coisa do Rails, mas ele decidiu mostrar algo mais simples pois ao mostrar para algumas pessoas percebeu que elas estavam achando meio massante. Enfim, como ele mesmo disse, não dá para agradar a todos, mas na minha opinião a palestra foi fraca <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>

<h4>José Valim &#8211; Aprenda a customizar os geradores do Rails 3.0</h4>

<p>A palestra do José Valim foi bem legal! Ele falou sobre o Thor e sobre os geradores do Rails 3, como você poderá facilmente customiza-los e como o thor pode te ajudar em suas aplicações.</p>

<p>Ele mostrou um pouco do motivo de se trocar utilizar o thor, e por que os antigos geradores são ruins do jeito que estão. Um exemplo legal foi mostrar como um plugin tem que fazer para gerar coisas, tomando como exemplo o RSpec, que com um spec_model vai ter que gerar migrations tambem, sendo que não é do escopo do RSpec ter que se preocupar com migrations, mas do jeito que está atualmente ele apenas pode trocar o &#8220;script/generate model&#8221; pelo &#8220;script/generate rspec_model&#8221;. Utilizando o exemplo anterior como base foi mostrado como os novos geradores vão ajudar nas tarefas dos plugins a partir de agora.</p>

<p>Gostei da palestra e acho que o José Valim conseguiu passar bem o que ele queria. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<h4>David Chelimsky &#8211; RSpec e Cucumber alem do básico</h4>

<p>A palestra do chelimsky foi sobre o uso do <a title="RSpec" href="http://rspec.info/">RSpec</a> e do <a title="Cucumber page" href="http://cukes.info/">Cucumber</a>, que na minha opinião foi bem similar a palestra do ano passado, mas mesmo assim mostrou algumas boas práticas sobre RSpec que foram interessantes.</p>

<p>Eu ainda tive a chance de conversar com o Chelimsky no final da palestra para fazer umas perguntas sobre o Spork e como melhorar o tempo de execução dos meus testes que demoram muito para serem executados, tornando o desenvolvimento com o autospec não tão bom quando poderia ser.</p>

<h4>Fabio Akita &#8211; Agile, além do caos</h4>

<p>A palestra do Akita foi uma grande viagem de pensamentos aleatórios dele sobre a teoria do caos baseado nos estudos que ele tem feito nos últimos tempos. Eu achei que foi muita informação para um curto período de tempo para as pessoas, mas quem conseguiu abstrair muita coisa e entender qual foi a finalidade da palestra deve ter gostado bastante, por que a idéia central é bem interessante. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<h4>Matt Aimonetti &#8211; O Futuro do Ruby &amp; Rails</h4>

<p>O Matt falou sobre as novidades que virão no Rails 3, sobre o que poderá ser incorporado do merb e o quanto &#8220;plugável&#8221; o Rails 3 será.
Ele não falou apenas de Rails, mas falou tambem um pouco de Ruby e quais são as novidades em termos de velocidade.</p>

<h4>Desconferência</h4>

<p>E chegou a hora que muitos estavam esperando, a desconferência! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> 
Na ultima desconferência o Elomar deu show falando um pouco sobre grupos de estudo, e muita gente estava esperando coisas legais para esse ano.</p>

<p>Teve muita coisa interessante, mas infelizmente não pude ficar até o final por causa da minha faculdade, mas o que pude ver foi:</p>

<ul>
    <li>Pessoal do<a title="Guru-sp falando no Rails Summit" href="http://blip.tv/file/2728861"> Guru-sp apresentando o grupo e falando sobre o crescimento e futuras atividades</a> ( eu fui o primeiro a falar! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  )</li>
    <li>George Guimarães falando do Devise</li>
    <li>Aldo França contando sua história para aprender Rails e fazendo um blog em 15 minutos ( com 11 anos de idade )</li>
    <li>Guilherme Chapiewsky e Henrique Bastos falando sobre    os eventos e grupos que eles participam no Rio</li>
</ul>

<p><!--        @page { margin: 0.79in }        P { margin-bottom: 0.08in } -->Sei que teve muito mais coisas legais alem disso, mas essas foram as unias que eu pude ver e achei todas bem legais! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> 
Acho muito interessante essa idéia de desconferência, pois serve tanto para integrar o pessoal e dar risada quanto para apresentar projetos interessantes e muito úteis para alguns.</p>

<p>Sem contar que eu ganhei um Ipod nano da <a title="ThoughtWorks" href="http://www.thoughtworks.com/">ThoughtWorks</a> em um sorteio pouco antes da desconferência. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<h4>Manhã do primeiro dia</h4>

<p><!--        @page { margin: 0.79in }        P { margin-bottom: 0.08in } -->Agora vem a parte triste&#8230;Não pude estar no evento no segundo dia de manhã. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> 
O <a title="Ikwa Orientação Profissional" href="http://www.ikwa.com.br">ikwa</a> não liberou todos os programadores para ficar lá em tempo integral, portanto fizemos um revezamento, e para mim ficou o segundo dia de manhã.</p>

<p>Perdi duas palestras que eu gostaria muito de assistir. A primeira é do <a title="Carlos Vilela no Twitter" href="http://twitter.com/cv">Carlos Vilela</a> que falou sobre o uso do Ruby na ThoughtWorks e a segunda é do<a title="Simples Ideias - Por Nando Vieira" href="http://simplesideias.com.br/"> Nando Vieira</a> que estava falando do Ruby 1/9.</p>

<p>Uma coisa que me animou um pouco foi saber que as palestras eram simultâneas, portanto eu ia perder uma de qualquer jeito.</p>

<h4>Marcos Tapajós &#8211; CouchDB no Rails</h4>

<p>Como não pude estar no evento no segundo dia de manhã eu já cheguei direto para a palestra do <a title="Tapajós na improve-it" href="http://improveit.com.br/empresa/tapajos">Tapajós</a> sobre CouchDB, que por sinal foi bem interessante! O Tapajós mostrou um pouco de como é trabalhar com CouchDB e como deve ser a mudança de paradigma da saída de um banco relacional para ir para um banco orientado a documentos.</p>

<p>Como o próprio Tapajós disse, a idéia da palestra dele era dar um Overview do couchDB e depois abrir para perguntas para tirar as dúvidas do pessoal, e na minha opinião ficou muito bom! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<h4>Bruno Miranda &#8211; Rails não escala</h4>

<p>O <a title="Twitter do Bruno Miranda" href="http://twitter.com/brupm">Bruno Miranda</a> apresentou &#8220;juntamente&#8221; com o Jason Seifer (infelizmente o <a title="Jason Seifer" href="http://jasonseifer.com/">Jason Seifer</a> não pode estar no railssummit por problemas com a viagem, portanto apenas enviou vídeos da parte que ele ia falar) sobre &#8220;Rails não escala&#8221;, falando sobre a aplicação que está em baixo do canal de audio do MSN e como eles conseguem manter uma infra escalável usando Rails.</p>

<h4>Vinicius Teles &#8211; Do serviço ao produto</h4>

<p>Uma das melhores palestras do Rails Summit ( as palestras não técnicas são sempre as mais marcantes, por melhor que sejam as técnicas&#8230; ), onde o Vinícius contou sua história passando por bons e maus momentos com a sua empresa, começando com serviços e terminando em produto.</p>

<p>Coisas interessantes da palestra do Vinícius foi o grande enfoque em &#8220;reserva&#8221;, ou seja, sempre tenha uma reserva em caixa para segurar a sua empresa nos piores momentos ou ajudar quando vem aquela grande oportunidade. Apenas investir em passivo ( como carros por exemplo ) quando isso não for um grande empecilho, por que no começo um carro (por exemplo) só vai te trazer prejuízo com desvalorização e manutenção.</p>

<p>O Vinícius deu ótimas dicas para quem quer começar uma empresa, várias dicas de experiencias que ele passou, e me animou muito a preparar as coisas par a empresa que eu vou abrir no futuro. Acho que já posso começar a me preparar. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>

<h4>Obie Fernandez &#8211; Dominando a arte do desenvolvimento de aplicações</h4>

<p>Outra palestra no mesmo nível da palestra do Vinícius ( também não técnica ), portanto muito boa! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<p>O Obie Fernandez falou sobre como dominar o desenvolvimento de aplicações, e achei muito interessante os exemplos que ele passou sobre musica, comentando da quantidade de esforço de um grupo de músicos em termos de horas e o que isso implicava em seu nível. Ainda sobre o tempo de estudo, não é &#8220;apenas estudo&#8221; por que pratica não leva a perfeição,  &#8220;prática perfeita leva a perfeição&#8221;. Programação é como musica, é sempre bom pegar musicas dos outros para estudar, por que assim você pode aprender sutilezas para fazer a sua.</p>

<p>A palestra do Obie assim como a do Vinícius teve frases chave como:</p>

<ul>
    <li>Se eu estiver trabalhando e um dia descobrir que eu não estou feliz eu simplesmente saio</li>
    <li>Fuck the enterprize ( muito boa! haha )</li>
    <li>Pratica não leva a perfeição, pratica perfeita leva a perfeição</li>
</ul>

<p>Gostei bastante da palestra, e bateu certinho com algumas coisas que estou pensando para os meus estudos para os próximos tempos.</p>

<h4>#horaextra</h4>

<p>O #horaextra foi muito legal! Tivemos um problema com o primeiro bar que fomos por que não podiam entrar menores e nem com short, portanto o Mergulhão e o Aldo ficariam de fora, então o pessoal foi para outro bar, que ficava do lado desse e lotamos o lugar <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>

<p>Como o bar era pequeno para a quantidade de pessoas, as coisas demoravam um pouco para chegar, mas nada que uma boa conversa não pudesse ajudar você a relevar isso. A mesa era gigante, mas as pessoas que a voz alcançava eram:<a title="Carlos Brando" href="http://twitter.com/carlosbrando"> Carlos Brando</a>, <a title="Rafael" href="http://twitter.com/r4f4e1">r4f4e1</a>, <a title="Vinicius Baggio" href="http://twitter.com/vinibaggio">Vinícius Baggio</a>, <a title="Ricardo Yasuda" href="http://twitter.com/shadow11">Shadow</a> e <a title="Hugo Borges" href="http://twitter.com/agaelebe">Agaelebe</a>.</p>

<p>Batemos papo por um bom tempo, com participação de mais uma galera ( <a href="http://akitaonrails.com">Akita</a>, <a title="Rafael Rosa Fu" href="http://rafaelrosafu.com/">Rafael Rosa</a>, <a title="Thiago Scalone" href="http://twitter.com/scalone">Thiago Scalone</a> &#8230;. ), e acabei saindo de lá mais de 00:00.</p>

<p>Aqui chega o fim do evento e o que fica são os bons momentos passados por lá, o conhecimento adquirido e a vontade de participar novamente no ano que vem! Parabens aos organizadores ( e patrocinadores! ) do evento, por que ficou ótimo!</p>

<p>Se quiser ver as fotos que eu tirei no evento veja <a title="Album do Rails Summit no Picasa" href="http://picasaweb.google.com/Willian.molinari/20091013RailsSummit?feat=directlink">o album no meu picasaweb</a>.</p>

<p>Há braços</p>
]]></content:encoded>
			<wfw:commentRss>http://pothix.com/blog/events/rails-summit-2009/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Encontro de numero 5 do Guru-sp</title>
		<link>http://pothix.com/blog/events/encontro-de-numero-5-do-guru-sp</link>
		<comments>http://pothix.com/blog/events/encontro-de-numero-5-do-guru-sp#comments</comments>
		<pubDate>Tue, 21 Jul 2009 02:55:23 +0000</pubDate>
		<dc:creator>PotHix</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://pothix.com/blog/?p=667</guid>
		<description><![CDATA[Æ!! Nesse sábado aconteceu o quinto encontro do Guru-sp! O encontro estava marcado para as 10 da manhã com uma seção para iniciantes e começou as 10:30 ( sempre atrasa um pouquinho né? hehe ), já com um bate papo legal coordenado pelo @rafaelrosafu após uma breve apresentação de todos os participantes. Rails para iniciantes [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://pothix.com/blog/wp-content/uploads/2009/07/dpp-0026.jpg"><img class="size-medium wp-image-674 alignleft" title="dpp-0026" src="http://pothix.com/blog/wp-content/uploads/2009/07/dpp-0026-300x199.jpg" alt="dpp-0026" width="300" height="199" /></a></p>

<p>Æ!!</p>

<p>Nesse sábado aconteceu o <a title="Quinto encontro do Guru-sp" href="http://guru-sp.com/index.php/Quinto_Encontro">quinto encontro do Guru-sp</a>! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p>O encontro estava marcado para as 10 da manhã com uma seção para iniciantes e começou as 10:30 ( sempre atrasa um pouquinho né? hehe ), já com um bate papo legal coordenado pelo <a title="Rafael Rosa" href="http://www.rafaelrosafu.com">@rafaelrosafu</a> após uma breve apresentação de todos os participantes.</p>

<h4>Rails para iniciantes</h4>

<p>Nessa primeira seção tiveram muitas conversas interessantes sobre algumas filosofias Rails, como <a title="Don't Repeat Yourself" href="http://en.wikipedia.org/wiki/Don%27t_repeat_yourself">DRY</a>, <a title="REST" href="http://pt.wikipedia.org/wiki/REST">REST</a>, <a title="TDD" href="http://en.wikipedia.org/wiki/Test-driven_development">TDD</a>, Test all the Fucking Time, Skynny Controllers and Fat Models e mais algumas outras coisas bem interessantes que fomentaram uma ótima discussão sobre quais os melhores padrões para se seguir quando se constrói uma aplicação Rails ( sim, falamos tomando como base uma aplicação Rails ), como utilizar plugins como o <a title="ResourceController on GitHUb" href="http://github.com/giraffesoft/resource_controller/tree/master">ResourceController</a> ( que tem seus prós e contras ), manter seus scripts num lugar diferente da pasta scripts, que é a pasta padrão para scripts &#8220;internos&#8221; do Rails e tentar centralizar em uma pasta dentro de lib, além de usar Rake sempre que possível para essas tarefas ficarem organizadas e de fácil acesso.</p>

<p>Uma parada rápida para o almoço no Shopping e lá se vão mais de 20 programadores para comer a bater papo! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<h4>DataMapper</h4>

<p>Após o almoço tivemos a palestra sobre <a title="DataMapper" href="http://datamapper.org/doku.php">DataMapper</a> do  <a title="Rafael Rosa" href="http://www.rafaelrosafu.com">@rafaelrosafu</a> ( olha ele aí novamente! ) que explicou muito bem dando várias referências sobre o seu blog pessoal e como ele fez para utilizar o DataMapper ao invés do Active Record. O Rails é mais difícil de se sair do padrão, mas ficará mais simples de se escolher um ORM quando chegarmos ao Rails 3. Aproveitando o gancho de DataMapper eu falei um pouco de Sinatra dando alguns pitacos na condução do Rafael.</p>

<h4>Git</h4>

<p>Após a palestra de DataMapper passamos para uma palestra de Git com o Douglas ( qmx ), que foi muito interessante e participativa! Pegamos uma galera do grupo para fazer um scaffold e commitar no projeto para começar a ver coisas diferentes, como merges, rebases, mudanças de commit, e algumas outras coisas legais, como usar tags, procurar por um código em meio aos commits e outras coisas interessantes! =)</p>

<p>Levantamos a idéia de participar do Rails Rumble, aproveitando que o Diego Carrion estava conosco e comentou que a GoNow estava patrocinando 3 equipes para o evento, mas não conseguimos ter uma idéia legal para propor para o concurso.</p>

<h4>Coding Dojo</h4>

<p><a href="http://pothix.com/blog/wp-content/uploads/2009/07/dpp-0025.jpg"><img class="size-medium wp-image-673 alignright" title="dpp-0025" src="http://pothix.com/blog/wp-content/uploads/2009/07/dpp-0025-300x199.jpg" alt="dpp-0025" width="300" height="199" /></a>E finalmente como ultima coisa do dia tivemos o nosso coding dojo, que era uma das coisas que eu mais estava esperando nesse econtro! O Vinicius Baggio  &#8220;se ofereceu&#8221; ( com um empurrãozinho meu&#8230;hahah ) para ficar com o notebook ligado no datashow e conduzir o código. O dojo foi muito divertido com participação de todos da sala, o que sempre trazia novas idéias para fazer um código melhor e agregava conhecimento para todos. Fizemos TDD para construir umas classes simples de usuário. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<h4>Conclusão</h4>

<p>Gostaria de agradecer ao André e o pessoal da Voice Technology por todo o apoio ao evento e ao grupo, com local, organização, fotos e mais várias outras coisas! Guys you Rock! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<p>Infelizmente algumas pessoas não puderam aparecer, e outras apareceram por pouco tempo ( o Marcelo Castellani ), por motivos pessoais, mas espero que estejam presentes no próximo! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p>O evento realmente valeu a pena e aprendi muita coisa por lá, alem de conhecer muita gente interessante tambem! Agora é marcar os próximos e esperar que o grupo cada vez cresça mais e podemos fortalecer as amizades e conhecimentos!</p>

<p>Há braços</p>
]]></content:encoded>
			<wfw:commentRss>http://pothix.com/blog/events/encontro-de-numero-5-do-guru-sp/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Começando a falar de Ruby</title>
		<link>http://pothix.com/blog/development/comecando-a-falar-de-ruby</link>
		<comments>http://pothix.com/blog/development/comecando-a-falar-de-ruby#comments</comments>
		<pubDate>Mon, 13 Apr 2009 07:08:34 +0000</pubDate>
		<dc:creator>PotHix</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://pothix.com/blog/?p=316</guid>
		<description><![CDATA[Æ!! Se você já conhece Ruby, ignore esse post! A idéia do post é mostrar um pouco da linauagem Ruby para pessoas que não conhecem nada sobre ela. Eu, claro, acho muito bizarro interessante que muita gente por aí ainda não conhece Ruby, mesmo com a grande popularização do Rails, e eu chego a ouvir [...]]]></description>
			<content:encoded><![CDATA[<p>Æ!!</p>

<p>Se você já conhece Ruby, ignore esse post! A idéia do post é mostrar um pouco da linauagem Ruby para pessoas que não conhecem nada sobre ela.</p>

<p>Eu, claro, acho muito <span style="text-decoration: line-through;">bizarro</span> interessante que muita gente por aí ainda não conhece Ruby, mesmo com a grande popularização do Rails, e eu chego a ouvir coisas assim:</p>

<blockquote>&#8220;Não é você que programa naquela linguagem esquisita?&#8221;</blockquote>

<p>Cheguei a ouvir do meu &#8220;professor de algoritmo&#8221; ( perdeu meu respeito ):</p>

<blockquote>&#8220;Gostei desse algoritmo que você fez nessa linguagem esquisita aqui&#8221;</blockquote>

<p>Há muitas pessoas que já ouviram falar em algo relacionado a Ruby apenas quando leram alguma coisa na Info falando de RubyOnRails. Portanto, resolvi escrever alguns posts sobre a linguagem para passar para esse pessoal que ainda não conhece nada. Pretendo que esse seja o post introdutório de vários capítulos passando por partes interessantes da linguagem. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<h2>Então&#8230;Vamos falar de Ruby! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </h2>

<p>Ruby é uma linguagem interpretada, criada pelo japonês <a href="http://www.rubyist.net/%7Ematz/">Yukihiro “matz” Matsumoto</a> e liberada publicamente em 1995. Desde lá o Ruby vem aparecendo bastante no mundo de tecnologia, sendo que a partir de 2006 teve um grande boom de comentários, ainda mais com o maior aparecimento do <a title="RubyOnRails" href="http://rubyonrails.org/">Rails</a>.</p>

<p>Uma coisa que me irrita bastante é as pessoas associarem diretamente Ruby com Rails, portanto preciso deixar isso claro&#8230;<span style="color: #ff0000;"><span style="text-decoration: underline;"><strong>Rails não é Ruby!</strong></span></span>
Rails é um framework para desenvolvimento web que <strong>utiliza</strong> a linguagem Ruby para o tal.  O Ruby tem bem mais coisas legais do que só o Rails. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

<p>Como o Ruby é uma linguagem interpretada, podemos facilmente fazer um Hello World em Ruby:</p>


<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">'Hello World'</span></pre></div></div>


<p>Isso aí! Apenas uma linha! Uma linguagem totalmente orientada a objeto e você não precisa necessáriamente criar uma classe, um método ( public static void main&#8230; ) e escrever mil comandos Hierarquicamente para escrever algo! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

<p>O interessante do Ruby é que tudo é um objeto, ou seja, se você escreve o numero 10 ele já é um objeto, tendo seus próprios métodos, como por exemplo:</p>


<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#006666;">10</span>.<span style="color:#9900CC;">times</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">'Vou estudar Ruby'</span> <span style="color:#006600; font-weight:bold;">&#125;</span></pre></div></div>


<p>No caso acima usamos um dos métodos do 10 ( que é da  Classe Fixnum ) que é o método times, que faz um loop 10 ( ou qualquer outro numero Fixnum que estivesse aqui ) vezes fazendo o que está dentro do bloco, no caso, imprimir &#8220;vou estudar Ruby&#8221;. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p>No Ruby você consegue modificar métodos em tempo de execução! Uma classe que não possuía nenhum método pode possuir 10 em tempo de execução bastando que seu código os inclua lá, e isso é uma coisa muito legal!</p>

<p>A sintaxe da linguagem foi feita para ser simples, você tem vários métodos facilitadores, inclusive com uso de &#8220;?&#8221; ( interrogação ) para alguns métodos, como por exemplo para descobrir se a variável está não retorna nada:</p>


<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">variavel.<span style="color:#0000FF; font-weight:bold;">nil</span>?</pre></div></div>


<p>Aqui temos uma pergunta explícita, que você olhando isso intuitivamente lhe vem duas respostas: Sim ou não ( nem me venha com talvez <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  ),o que mostra que você olha um código Ruby e facilmente distingue muita coisa.</p>

<p>E tem bem mais <a title="Sobre o Ruby" href="http://www.ruby-lang.org/pt/sobre-o-ruby/">coisas</a> <a title="Artigo sobre Ruby na Wikipedia" href="http://pt.wikipedia.org/wiki/Ruby_(linguagem_de_programa%C3%A7%C3%A3o)">interessantes</a>!</p>

<h2>Tá&#8230;E por que diabos eu deveria usar Ruby</h2>

<p>Aí que está! É aí que entram as coisas legais, como:</p>

<h4>Rails</h4>

<p style="padding-left: 30px;">Agora sim você pode usar esse cara aí em cima para desenvolver aplicações bem legais usando todas as facilidades que o Ruby pode te oferecer</p>

<h4>Shoes</h4>

<p style="padding-left: 30px;">Uma biblioteca bem interessante para desenvolvimento desktop multiplataforma, onde você consegue fazer muita coisa legal.</p>

<h4>JRuby</h4>

<p style="padding-left: 30px;">Olha que legal, se você gosta bastante do Java, você pode rodar programas Ruby em cima da maquina virtual Java, o que é bem legal, até por que, a velocidade do JRuby, já passou a do MRI ( Matz Ruby Interpreter, ou a versão core oficial do Ruby, feita pelo Matz ).</p>

<p style="padding-left: 30px;">Inclusive você pode importar várias bibliotecas do Java e tudo mais. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

<h4>Iron Ruby</h4>

<p style="padding-left: 30px;">Você usa a plataforma .NET da Microsoft? Então procure por esse cara! Eu não tenho muito a comentar por que não uso .NET.</p>

<p>É claro que não existem só esses aí em cima, apenas estou citando algumas coisas legais, mas se você procura por desenvolvimento web você pode escolher <a title="Sinatra" href="http://www.sinatrarb.com/">Sinatra</a>, <a title="Merb Official Home Page" href="http://merbivore.com/">Merb</a> ( ainda não se fundiu com o Rails, mas isso vai acontecer na versão 3 do Rails ), ou outros.</p>

<p>E se você apenas pensa em desenvolver para Desktop, alem do Shoes, você pode escolher, o <a title="RubyGTK" href="http://www.rubyist.net/~slagell/gtk/">RubyGTK</a>, o <a title="MacRuby" href="http://www.macruby.org/">MacRuby</a> ( para usuários MAC ) ou até o <a title="FXRuby Official Page" href="http://www.fxruby.org/">FXRuby</a>!</p>

<p>Se você não é programador, e trabalha com administração de sistemas, por que não utilizar Ruby para automatizar as tarefas? É fácil, tem manutenção simples, vem padrão em várias distribuições Linux&#8230;Não tem desculpa! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>

<p>Meu foco nesse post não é abordar a fundo nenhuma das ferramentas que eu citei acima, e sim apenas dar um overview de tudo que você pode fazer usando essa linguagem.</p>

<h2>Puxa, gostei! Como usar?</h2>

<p>Moleza! Está no Linux né?  Se estiver usando Ubuntu só dê os comandos mágicos:</p>


<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">sudo apt<span style="color:#006600; font-weight:bold;">-</span>get install ruby irb rdoc</pre></div></div>


<p>Não está no Linux? Humm&#8230;No Windows é fácil tambem, baixe o executável e instale. Não tive muito contato com um mac ainda para instalar coisas e tudo mais, mas me parece fácil.</p>

<p>Basta clicar <a title="Ruby download" href="http://www.ruby-lang.org/pt/downloads/">aqui</a> e pegar os arquivos necessários para a instalação! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<h2>Vixe&#8230;Instalei, e agora?</h2>

<p>Agora é hora de brincar um pouco com a linguagem para saber como ela funciona! Eu recomendo você a entrar no <a title="Interactive Ruby Shell at Wikipedia" href="http://en.wikipedia.org/wiki/Interactive_Ruby_Shell">IRB</a> ( <strong>I</strong>nteractive <strong>R</strong>u<strong>b</strong>y Shell ) e começar a brincar!</p>

<p>Para acessar o irb é aquela moleza de sempre, apenas entre no terminal e chame por irb ( acho que funciona assim no Windows tambem )! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<p>Lá você pode tentar executar uns códigos, inclusive os poucos exemplos que eu postei aqui, é muito legal para você conhecer a linguagem, descobrir uns métodos e tudo mais.</p>

<h2>Já estou no IRB, mas eu não sei fazer nada&#8230;</h2>

<p>Bem, agora é partir para as cabeças! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<ol>
    <li>Eu recomendo você a começar lendo o <a title="Tutorial de Ruby do TaQ" href="http://eustaquiorangel.com/downloads/tutorialruby.pdf">tutorial de Ruby do TaQ</a> que é um material bem legal para começar.</li>
    <li>Se seu ingles é bom ( não precisa ser fluente, mas você precisa saber ler e enteder ) eu aconselho firmemente você a participar de algum curso Core do <a title="Rubylearning.org" href="http://rubylearning.org/class/">Rubylearning.org</a>, e lá você vai aprender bastante coisa, alem de se divertir bastante.</li>
    <li>Leia alguns dos livros gratuitos que estão disponíveis na web gratuitamente e  em português! Eu recomendo o <a title="Aprenda a programar traduzido pela comunidade" href="http://aprendaaprogramar.rubyonrails.pro.br/">Aprenda a Programar</a> e o <a title="O (comovente) guia de Ruby do Why traduzido pela comunidade" href="http://why.nomedojogo.com/">(comovente) guia de Ruby do Why</a>. ( obrigado pela dica <a title="Blog do Abraão" href="http://blog.abrcoelho.net/">Abraão</a> )</li>
    <li>Participe de Grupos de usuários para aumentar seus conhecimentos e conhecer pessoas que tambem estão interessadas na linguagem e sempre estudando! Se você está em São Paulo eu recomento fortemente você a participar do <a title="Grupo de usuários Ruby de São Paulo" href="http://guru-sp.org">GURU-SP</a>! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
    <li>Fique de olho aqui no blog que eu pretendo começar a postar umas coisas básicas, mas não espere somente por mim e já inicie seus estudos! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ol>

<p>Bem, com isso você já tem uma pequena base do que é o Ruby ( e sabe que o Rails é apenas um framework feito em Ruby ) e já pode começar a se divertir com ele! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<p>Há braços</p>
]]></content:encoded>
			<wfw:commentRss>http://pothix.com/blog/development/comecando-a-falar-de-ruby/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Rails X Django</title>
		<link>http://pothix.com/blog/development/rails-x-django</link>
		<comments>http://pothix.com/blog/development/rails-x-django#comments</comments>
		<pubDate>Wed, 08 Apr 2009 07:03:14 +0000</pubDate>
		<dc:creator>PotHix</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://pothix.com/blog/?p=352</guid>
		<description><![CDATA[Æ!! Como todos sabem eu sou do mundo Ruby/Rails ( Não sou xiita mas é o que mais gosto ) e de vez em quando começo a brincar com coisas diferentes para poder formar a minha própria opinião sobre o assunto. No mes de fevereiro me surgiu um projeto bem interessante para trabalhar, pessoas legais, [...]]]></description>
			<content:encoded><![CDATA[<p>Æ!!</p>

<p>Como todos sabem eu sou do mundo Ruby/Rails ( Não sou xiita mas é o que mais gosto ) e de vez em quando começo a brincar com coisas diferentes para poder formar a minha própria opinião sobre o assunto.
No mes de fevereiro me surgiu<a title="Projeto de fevereiro" href="http://pothix.com/blog/development/projeto-de-fevereiro"> um projeto bem interessante para trabalhar</a>, pessoas legais, oportunidade legal, bem interessante! O projeto seria feito em Python/Django, e achei bem interessante a idéia de poder comparar várias coisas do Rails com o Django.</p>

<p>Bem&#8230;Vamos as minhas comparações:</p>

<p><strong>Pontos fortes</strong></p>

<ul>
    <li>Como primeiro argumento, e incontestável para mim, tenho que dizer  que o admin do Django é muito legal! Você consegue fazer coisas bonitinhas e funcionais com uma facilidade espantosa! Sei que no Rails podemos fazer um scaffold ( ou até usar o ActiveScaffold, mas não é tão bom ) e criar facilmente um CRUD para mexer nos dados, mas isso não é um admin pronto, é apenas uma forma fácil de se manipular os dados. Penso eu que com o Rails seja mais facil de se criar um admin personalizado, com Design próprio, mas gostei  bastante da solução a curto prazo do Django.</li>
</ul>

<ul>
    <li>Achei bem interessante como podemos fazer a divisão de trabalhos com o nosso HTML(er) / JavaScript(er), por que o Django dá pouquíssima liberdade para o template com relação a código, ou seja, você define na sua view as query&#8217;s que vão ser mandadas para o template e no template ele vai usar apenas o que você pode mandar, e não vai poder consultar ou fazer maiores alterações no conteúdo, portanto, quem deve cuidar de como o conteúdo vai chegar ao template são os programadores que vão enviar os dados para quem vai fazer a integração com o layout.</li>
</ul>

<p><strong>Pontos fracos</strong></p>

<ul>
    <li> Não encontrei uma padronização / centralização para os plugins do Django&#8230;Você encontra vários modos de instalação para determinados plugins, alguns vem com setup.py, outros falam para você jogar na pasta do Python. Não tem algo centralizado como as gems do Rails ou os próprios plugins para jogar na pasta vendor/plugins, ou usar um script/plugin install &#8230;</li>
</ul>

<ul>
    <li> Não cria uma estrutura de pastas, deixando que você faça o que bem entender com a estrutura, ao invés de usar uma convenção sobre configuração.</li>
    <li>Talvez seja a inexperiencia, mas eu não achei legal o que tivemos que fazer com o settings, pois cada um precisava colocar uma configuração diferente de diretórios de imagens, ou algumas configurações referentes aos plugins ( filebrowser no caso ), portanto cada um tinha que ter um settings.py diferente, informando o settings.py quando vamos executar alguma coisa.</li>
</ul>

<ul>
    <li>Não me acostumei muito bem com o esquema de indentação do Python&#8230;Não que seja ruim, mas como estavamos trabalhando em sistemas operacionais diferentes de vez em quando aparecia um indentation error por causa de conversões de tabs em espaços e tal.  Sei que esse argumento vai ser facilmente contestado com um: &#8220;É só configurar o seu editor de texto&#8221; ou &#8220;usa um editor de texto multiplataforma&#8221;, mas mesmo assim&#8230;A idéia da indentação é legal, mas ainda me atrapalha um pouco.</li>
</ul>

<p>Bem, é isso! Essas foram as minhas primeiras impressões do Django, como disse, não tinha experiência com o framework e muitas coisas poderiam ser evitadas mais facilmente, ou feitas de um modo bem melhor.</p>

<p>Continuo gostando bastante do Rails, mas achei muito legal várias idéias do Django, e acho que tem aplicações legais dependendo do projeto que você for usar. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

<p>Há braços</p>
]]></content:encoded>
			<wfw:commentRss>http://pothix.com/blog/development/rails-x-django/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Colocando sua aplicação Rails na Dreamhost</title>
		<link>http://pothix.com/blog/development/colocando-sua-aplicacao-rails-na-dreamhost</link>
		<comments>http://pothix.com/blog/development/colocando-sua-aplicacao-rails-na-dreamhost#comments</comments>
		<pubDate>Wed, 25 Mar 2009 04:59:49 +0000</pubDate>
		<dc:creator>PotHix</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Deploy]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://pothix.com/blog/?p=357</guid>
		<description><![CDATA[Æ!! Estou fazendo um pequeno site em Rails e como tinha que mostrar o andamento para um colega, aproveitei para testar como seria o Deploy desse projeto na DreamHost ( mesmo sabendo que o provedor final não será lá ), e achei  muito fácil de se fazer, portanto resolvi escrever um pouco sobre o processo. [...]]]></description>
			<content:encoded><![CDATA[<p>Æ!!</p>

<p>Estou fazendo um pequeno site em Rails e como tinha que mostrar o andamento para um colega, aproveitei para testar como seria o Deploy desse projeto na DreamHost ( mesmo sabendo que o provedor final não será lá ), e achei  muito fácil de se fazer, portanto resolvi escrever um pouco sobre o processo. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<p>Primeiramente, você precisa ter acesso SSH na sua conta. Se você ainda não tiver esse acesso apenas faça o seguinte procedimento:</p>

<ul>
    <li>Acesse o menu <strong>Users &gt; Manage Users</strong></li>
    <li>Clique em <strong>Edit</strong> no user que você vai usar para o acesso SSH</li>
    <li>Marque a opção <strong>Shell account &#8211; allows SFTP/FTP plus ssh access.</strong></li>
</ul>

<p>A partir daí você pode acessar por SSH assim como acessava por FTP, com esse usuário e senha. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p>Agora que temos acesso SSH a conta, vamos colocar nossa aplicação lá! Se ela estiver no GitHub você pode fazer um clone da sua aplicação facilmente:</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">git</span><span style="color: #000000; font-weight: bold;">@</span>github.com:usuario<span style="color: #000000; font-weight: bold;">/</span>projeto-qualquer.git</pre></div></div>


<p>Se não estiver no GitHub você pode fazer um pacote tar.gz e enviar facilmente por scp:</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">tar</span> cvf app.tar.gz aplicacao-quaquer<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">scp</span> usuario<span style="color: #000000; font-weight: bold;">@</span>xxx.xxx.xxx.xxx:<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>da<span style="color: #000000; font-weight: bold;">/</span>applicacao app.tar.gz</pre></div></div>


<p>*Sendo que o xxx é o endereço IP ou Nome da sua maquina na Dreamhost</p>

<p>Com nossa aplicaçào lá, vamos criar o nosso domínio ou sub-domínio no <a title="Painel de controle da Dreamhost" href="https://panel.dreamhost.com/">painel de controle da DreamHost</a> , pelo menu <strong>domains &gt; manage domains </strong>Geralmente seu domínio demora um pouco para começar a funcionar, mas você não precisa esperar que ele esteja totalmente funcional para que você continue o processo <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

<p>O que você precisa fazer é?</p>

<ul>
    <li> Ativar o <strong>Ruby on Rails Passenger (mod_rails)</strong></li>
    <li>Apontar o <strong>Specify your web directory</strong> para o diretório public da sua aplicação</li>
</ul>

<p>Agora que temos o nosso domínio criado e validando ( lembre-se que não é instantâneo ), podemos configurar o nosso banco de dados!</p>

<p>Acesse o <a title="Manage Mysql" href="https://panel.dreamhost.com/index.cgi?tree=goodies.mysql&amp;">Manage Mysql</a> pelo menu <strong>Goodies &gt; Manage Mysql</strong> e preencha o formulário que está logo abaixo dos bancos de dados já existente ( se houver ) para criar um novo banco.</p>

<p>Com o novo banco de dados criado, vamos adaptar nossa aplicação para usá-lo! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

<p>Vá no arquivo <strong>config/database.yml</strong> e altere as informações da seção <em>production</em> para o que foi configurado no painel..</p>

<p>Agora com tudo configurado, vamos rodas as nossas migrations para as configurações de produção:</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">RAILS_ENV</span>=production rake db:migrate</pre></div></div>


<p>Com isso você já terá seu projeto funcionando assim que o domínio se propagar!</p>

<p>Foi bem mais simples do que eu pensava, como eu deixei o repositório com Git lá, basta eu fazer as alterações localmente e dar um push que já terei minha aplicação alterada lá! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p>É isso aí, espero que seja útil para vocês.</p>

<p>Há braços</p>
]]></content:encoded>
			<wfw:commentRss>http://pothix.com/blog/development/colocando-sua-aplicacao-rails-na-dreamhost/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby e Rails no mundo real</title>
		<link>http://pothix.com/blog/events/ruby-e-rails-no-mundo-real</link>
		<comments>http://pothix.com/blog/events/ruby-e-rails-no-mundo-real#comments</comments>
		<pubDate>Fri, 06 Feb 2009 16:52:59 +0000</pubDate>
		<dc:creator>PotHix</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://pothix.com/blog/?p=286</guid>
		<description><![CDATA[Æ!! Pessoal, hoje o meu post é para comentar sobre o evento do Guru-sp ( Grupo de usuário Ruby de São Paulo ), cujo fui um dos fundadores e participo até hoje ( quem vê pensa que faz bastante tempo&#8230;Apenas uns 4 meses haha ). O evento já tem site oficial e está com as [...]]]></description>
			<content:encoded><![CDATA[<p>Æ!!</p>

<p><img class="alignleft size-full wp-image-287" title="logo_guru" src="http://pothix.com/blog/wp-content/uploads/2009/02/logo_guru.jpg" alt="logo_guru" width="140" height="136" /></p>

<p>Pessoal, hoje o meu post é para comentar sobre o evento do <a title="Site do Guru-sp" href="http://www.guru-sp.org/">Guru-sp</a> ( Grupo de usuário Ruby de São Paulo ), cujo fui um dos fundadores e participo até hoje ( quem vê pensa que faz bastante tempo&#8230;Apenas uns 4 meses haha ).</p>

<p>O evento já tem <a title="Site oficial do &quot;Ruby e Rails no mundo Real&quot;" href="http://www.temporealeventos.com.br/?area=130">site oficial</a> e está com as inscrições abertas!</p>

<p>Pelo que estamos fazendo o evento tende a ser grande, com auditório para cerca de 200 pessoas, com direito a crachá, apostila, Coffee break e etc.</p>

<p>Vou passar mais informações sobre o evento:</p>

<p><strong>Data:</strong> 04/04/2008 ( Sábado )
<strong>Horário:</strong> das 09h às 18h
<strong>Local: </strong><a title="Link para o local" href="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;q=R.+Teixeira+da+Silva,+647+-+Vila+Mariana,+S%C3%A3o+Paulo+-+SP,+04002-033,+Brazil&amp;sll=-23.59426,-46.689743&amp;sspn=0.008003,0.019312&amp;g=R.+Funchal+411,+Itaim+Bibi,+S%C3%A3o+Paulo,+04551-060&amp;ie=UTF8&amp;cd=1&amp;geocode=FUdNmP4dyC44_Q&amp;split=0&amp;ll=-23.57211,-46.647284&amp;spn=0.008005,0.019312&amp;z=16">Century Flat Paulista</a></p>

<p><a title="FIAP no Google Maps" href="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=FIAP&amp;sll=-23.582985,-46.626931&amp;sspn=0.00646,0.009656&amp;ie=UTF8&amp;ll=-23.582641,-46.626931&amp;spn=0.00646,0.009656&amp;t=h&amp;z=17&amp;msa=0&amp;msid=116743851364371835617.00043e68b4fd59ee698d5"></a></p>

<p>Palestras / palestrantes que você verá por lá:</p>

<ul>
    <li>Carlos Brando</li>
</ul>

<blockquote>Vai falar sobre testes, que é algo muito importante em projetos! Carlos é o criador da gem <a title="Remarkable" href="http://wiki.github.com/carlosbrando/remarkable">Remarkable</a> para integração de Shoulda e RSpec.</blockquote>

<ul>
    <li>Vinicius Baggio</li>
</ul>

<blockquote>Vai falar do seu projeto de Instant Messenger em Rails, e como foi a criação do mesmo, que parece ser bem interessante!</blockquote>

<ul>
    <li>Hugo Borges ( agaelebe )</li>
</ul>

<blockquote>Vai apresentar uma palestra sobre Ruby, Rails e empreendedorismo</blockquote>

<ul>
    <li>Marcelo Castellani</li>
</ul>

<blockquote>Vai palestrar sobre Ruby Desktop, falando sobre Shoes, FXRuby e outros</blockquote>

<ul>
    <li>Rodrigo Franco ( Caffo )</li>
</ul>

<blockquote>Vai falar sobre Outsourcing, e como é o trabalho para empresas do exterior.</blockquote>

<ul>
    <li>Maurício Leal</li>
</ul>

<blockquote>Fará uma apresentação sobre escalabilidade utilizando GlassFish com Rails</blockquote>

<ul>
    <li>Fabio Kung</li>
</ul>

<blockquote>Vai falar sobre análise de código com ParseTree</blockquote>

<ul>
    <li>Willian Molinari ( PotHix )</li>
</ul>

<blockquote>Sim&#8230;Esse rapaz é nada mais nada menos que&#8230;.<strong>EU!</strong> <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> 
Pretendo falar um pouco sobre o Rubylearning, qual é a vantagem de estudar junto a uma comunidade, comentar sobre as particularidades do curso core do Rubylearning, comentar sobre os novos cursos que estão aparecendo por lá, tirar algumas dúvidas do pessoal que ainda não conhece.</blockquote>

<p>Espero ver o pessoal por lá prestigiando o evento. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

<p>Qualquer dúvida pode postar nos comentários, e vou atualizando o post com as novidades do evento.</p>

<p>Há braços</p>

<p><strong>Update 13/02: Alterado o local do evento! ; )</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://pothix.com/blog/events/ruby-e-rails-no-mundo-real/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Rails Summit Latin Amerira ( Day 2 )</title>
		<link>http://pothix.com/blog/events/rails-summit-latin-amerira-day-2</link>
		<comments>http://pothix.com/blog/events/rails-summit-latin-amerira-day-2#comments</comments>
		<pubDate>Wed, 22 Oct 2008 14:16:44 +0000</pubDate>
		<dc:creator>PotHix</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://pothix.com/blog/?p=50</guid>
		<description><![CDATA[Æ!! Para quem não viu o meu post sobre o primeiro dia da Rails Summit, veja aqui! E agora vamos ao segundo post sobre a Rails Summit! Começamos o segundo dia de Rails Summit as 8:00 Logo no começo do dia tivemos alguns probleminhas técnicos com energia elétrica que logo foi contornado com um gerador [...]]]></description>
			<content:encoded><![CDATA[<p>Æ!!</p>

<p>Para quem não viu o meu post sobre o primeiro dia da Rails Summit, veja <a href="http://pothix.com/blog/rails/rails-summit-latin-america">aqui</a>! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> 
E agora vamos ao segundo post sobre a Rails Summit! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p>Começamos o segundo dia de Rails Summit as 8:00
Logo no começo do dia tivemos alguns probleminhas técnicos com energia elétrica que logo foi contornado com um gerador ( esse evento escala! ).
Tivemos a abertura do dia com o <a href="http://akitaonrails.com">Fabio akita</a> comentando sobre as palestras e dando recados gerais.</p>

<p>A primeira palestra foi dos caras da <a href="http://phusion.nl">Phusion</a>, <strong>Hong Li Lai</strong> e <strong>Ninh Bui</strong>, que deram uma palestra muito engraçada e explicativa sobre o <a href="http://www.modrails.com/">Phusion Passenger</a>.
Eles usaram animações, brincadeiras com a foto do Fabio Akita o que deixou a palestra muito divertida de ser acompanhada.
Eles comentaram sobre como é programar em Rails com várias brincadeiras com outras linguagens ( cofPHPcof ), comentaram sobre escalabilidade e outras coisas bem interessantes.
Tudo isso fora o <a href="http://picasaweb.google.com/Willian.molinari/RailsSummit#5259262232498871314">Ninh Bui vestido de Darth Vader</a>. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<p>Após isso tivemos a palestra por vídeo conferência do <a href="http://blog.headius.com/">Charles Nutter</a> e do <a href="http://www.bloglines.com/blog/ThomasEEnebo">Thomas Enebo</a> sobre Jruby.
Infelizmente tivemos alguns problemas técnicos de conexão o que deixou o nosso audio com um pouco de lag, e cortava um pouco a voz dependendo do momento, e isso fez com que minha atenção se dispersasse a todo momento, portanto não tenho muitos comentários para fazer sobre essa palestra. Mas foi bem interessante, com direito a um pequeno joguinho com OpenGl rodando.</p>

<p>A partir daqui começa o momento test no Rails Summit, pois a grande maioria das palestras são sobre tests, o que não é nada mal! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p>Primeiro temos a palestra do <a href="http://blog.jayfields.com/">Jay Fields</a> sobre tests e selenium, onde ele fala bastante sobre a importancia dos tests para se proteger de antigos bugs que podem voltar ou novos bugs que podem aparecer quando se implementam novas features.
Ele comenta um pouco sobre selenium e outras coisas&#8230;Eu recomendo o post do <a href="http://mergulhao.info/2008/10/16/rails-summit-dia-16-jay-fields">Sylvestre Mergulhão</a> sobre essa palestra.</p>

<p>Agora temos duas palestras consecutivas do <a href="http://blog.davidchelimsky.net/">David Chelimsky</a> ( mantenedor do Rspec ) no auditório principal enquanto na outra sala temos <a href="http://blogblogs.com.br">Manuel Lemos</a> e <a href="http://www.improveit.com.br/empresa/vinicius">Vinucius Teles</a> palestrando sobre &#8220;Os desafios de criar um caso de sucesso no Brasil&#8221; e &#8220;Empreendedorismo com RubyOnRails&#8221; respectivamente.
Tinha que escolher novamente e preferi escolher as palestrar sobre testes e assisti as 2 do Chelimsky</p>

<p>O Chelimsky tem uma namorada brasileira, portanto ele consegue falar um pouco de português, mas ele decidiu dar a palestra em inglês por não ter fluência.
Na primeira palestra tivemos o conceito de <a href="http://en.wikipedia.org/wiki/Behavior_driven_development">BDD</a>, onde você escreve primeiramente os seus testes e eles vão &#8220;te lembrando&#8221; como continuar escrevendo o seu código. Os exemplos dados pelo Chelimsky foram bem didáticos e interessantes. Vimos User Stories, e uns exemplos na pratica utilizando Rspec.
Foi passado um &#8220;conceito&#8221; de como fazer testes: Escrever um teste que falha, fazer o teste passar, refatorar o código procurando pelos famosos &#8220;Maus cheiros&#8221;.
Já na segunda palestra ele extendeu a primeira e agora começou a falar mais sobre o <a href="http://blog.davidchelimsky.net/2008/9/22/cucumber">cucumber</a>, que parece muito interessante para usar!</p>

<p>Para mudar um pouco eu resolvi ir numa palestra sobre testes ( hehe ) dessa vez foi a palestra do <a href="www.dtsato.com/">Danilo Sato</a> sobre &#8220;testes automatizados &#8211; <a href="http://en.wikipedia.org/wiki/Test-driven_development">TDD</a>&#8220;, onde ele mostrou algumas ferramentas e deu algumas dicas sobre como ele começou com testes, sobre dificuldades, vantagens de testar, alguns problemas que você pode se deparar e possíveis soluções para os mesmos, comentou sobre os &#8220;maus cheiros&#8221; dos testes, fez algumas recomendações bibliográficas interessante alem de comentar tambem sobre <a href="http://en.wikipedia.org/wiki/Mock_Object">MOCK</a> e <a href="http://synthesis.rubyforge.org/">Synthesis</a> tambem.</p>

<p>Agora tivemos a palestra do<a href="http://rubyforge.org/projects/rubyinstaller/"> Luis Lavena que é o criador do One-click-installer para windows</a>, que veio falar sobre produtividade trabalhando em rails com windows e outras questões tendo o windows como base.
Enquanto isso tínhamos uma palestra sobre Jruby com o <a href="http://fabiokung.com/">Fabio Kung</a> na outra sala.
Nesse momento eu decidi não participar de nenhuma das duas e fiquei conversando com os Railers que estavam reunidos lá fora prontos para gravar um vídeo-cast que no fim das contas após mais de 30 minutos de &#8220;gravação&#8221; descobrimos que não estava gravando, portanto a única parte do vídeo que temos é a apresentação da galera. ¬¬
Mesmo com esse pequeno problema com a não gravação do vídeo, foi muito interessante interagir com os Railers e conhecer pessoalmente toda essa galera que eu só conhecia por nickname ou e-mail.</p>

<p>Tivemos agora uma propaganda da <a href="http://br.sun.com/">Sun</a> ( que é um dos patrocinadores do evento ) sobre Open Souce comentando sobre a plataforma <a href="http://java.com">Java</a>, <a href="http://opensolaris.org/os/">Open Solaris</a> e outras questões ligadas a Open Souce, que não deixou de ser interessante! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p>Chegamos ao momento da ultima palestra do evento, dada pelo <a href="http://obiefernandez.com/">Obie Fernandez</a> ( que lembra bastante o <a href="http://www.tattletart.com/wp-content/2008/06/jack-black1.jpg">Jack Black</a> nas fotos), que foi <strong>muito interessante</strong> !!</p>

<p>O Obie comentou sobre a <a href="http://www.hashrocket.com/">HashRocket</a> e seus meios de trabalho. Explicou os métodos de desenvolvimento ágil que eles utilizam, como funcionam os seus meios de negócio, seus meios de contratação e suas diversões!</p>

<p>Achei muito interessante o meio que ele diz usar para contratar, que é chamar a pessoa para trabalhar na empresa por uma semana e assim descobrir se ela é boa mesmo para trabalhar lá ou não. Achei muito interessante e gostaria que coisas desse tipo tambem funcionasse aqui no Brasil, mas infelizmente as coisas são bem diferentes por aqui, tanto por questões contratuais como por outras questões tambem.</p>

<p>Outra coisa que ele comentou que eu achei muito interessante foi o enfoque em <strong>se divertir</strong> apesar de estar no trabalho, estamos fazendo o que gostamos e temos que ter bons momentos! Achei legal as fotos das festas com todo mundo pulando na piscina e tal, acho que isso que realmente faz uma equipe motivada!</p>

<p>Realmente o Obie fechou com chave de ouro o Rails Summit 2008! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p><strong>Considerações final da Rails Summit:
</strong>O evento terminou rendendo um <a href="http://github.com/railssummit/morena_opensource/tree/master">projeto no GitHub</a> que já tem várias contribuições! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> <strong>
</strong></p>

<p>Espero que seja o primeiro de muitos e que eu possa estar presente em todos os subsequentes!
Meus parabens ao <a href="http://akitaonrails.com">Fabio akita</a> que foi o organizador principal do evento e correu bastante para que tudo isso se tornasse realidade! E parabens a <a href="http://www.locaweb.com.br">Locaweb</a> por contribuir para esse projeto!</p>

<p>E meu post fica por aqui! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

<p>Há braços</p>
]]></content:encoded>
			<wfw:commentRss>http://pothix.com/blog/events/rails-summit-latin-amerira-day-2/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

