<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Blogosfera | RubyOnBr</title>
    <link>http://forum.rubyonbr.org/blogosfera</link>
    <copyright>Respectivo aos autores dos feeds e distribuidores</copyright>
    <generator>http://rubyonbr.org</generator>
    <language>pt-br</language>
    <ttl>60</ttl>
    <item>
      <title>Links for 2010-03-09 [del.icio.us]</title>
      <description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://rors.org/2009/12/20/10-rails-console-tricks"&gt;10 Rails console tricks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <pubDate>Wed, 10 Mar 2010 05:00:00 -0300</pubDate>
      <author>Leonardo Faria</author>
      <link>http://feedproxy.google.com/~r/leonardofaria/~3/6DDp3x_wjBc/leonardofaria</link>
    </item>
    <item>
      <title>[Off-Topic] Penn &amp;amp;amp; Teller e Larry Flynt, sobre Liberdade</title>
      <description>&lt;p&gt;Estava assistindo o canal FX ontem e por acaso esbarrei numa reprise do excelente show &lt;a href="http://www.sho.com/site/ptbs/home.do"&gt;Penn &amp;amp; Teller, Bullshit!&lt;/a&gt;. Eles s&#227;o m&#225;gicos famosos que se apresentam em Las Vegas, j&#225; apareceram em diversos programas de TV e tem se pr&#243;prio programa, o Bullshit!, que discute pol&#237;tica, disputa o status quo, quebra fal&#225;cias e folclores populares. Nesse epis&#243;dio eles terminaram com um truque de m&#225;gica, queimando a bandeira americana e falando sobre Liberdade de Express&#227;o. Assistam este trecho antes de continuar:&lt;/p&gt;
&lt;p style="text-align: center"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/B1GLtG0abHY&amp;hl=en_US&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/B1GLtG0abHY&amp;hl=en_US&amp;fs=1" type="application/x-shockwave-flash" width="425" height="344" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;p&gt;N&#227;o &#233; novidade que eu sou um &lt;a href="http://www.akitaonrails.com/2009/09/09/off-topic-direitos-do-homem"&gt;grande f&#227;&lt;/a&gt; dos Pais Fundadores da Am&#233;rica. Eu n&#227;o sou particularmente de discutir sobre pol&#237;tica, mas a filosofia me interessa. Nesse show, Penn queima a bandeira americana. N&#227;o sei se voc&#234;s sabem, mas esse ato que costuma ser executado em protestos p&#250;blicos, em in&#250;meros pa&#237;ses, &#233; &lt;a href="http://en.wikipedia.org/wiki/Flag_desecration"&gt;considerado um crime&lt;/a&gt;. Mas n&#227;o nos Estados Unidos. Por causa da &lt;a href="http://en.wikipedia.org/wiki/First_Amendment_to_the_United_States_Constitution"&gt;Primeira Emenda&lt;/a&gt;, que garante a Liberdade de Express&#227;o, &#233; inconstitucional ao governo censurar esse ato por ser considerado uma Express&#227;o simb&#243;lica.&lt;/p&gt;
&lt;p&gt;Ao final do truque, para quem n&#227;o sabe, ele cita a segunda estrofe do Hino Americano, o &lt;a href="http://en.wikipedia.org/wiki/The_Star-Spangled_Banner"&gt;Star-Spangled Banner&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;On the shore, dimly seen through the mists of the deep,&lt;br /&gt;
	Where the foe&amp;#8217;s haughty host in dread silence reposes,&lt;br /&gt;
	What is that which the breeze, o&amp;#8217;er the towering steep,&lt;br /&gt;
	As it fitfully blows, half conceals, half discloses?&lt;br /&gt;
	Now it catches the gleam of the morning&amp;#8217;s first beam,&lt;br /&gt;
	In full glory reflected now shines in the stream:&lt;br /&gt;
	&amp;#8216;Tis the star-spangled banner! Oh long may it wave&lt;br /&gt;
	O&amp;#8217;er the land of the free and the home of the brave.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Na costa, vista com dificuldade pelas n&#233;voas do oceano profundo,&lt;br /&gt;
	Onde as orgulhosas hostes do inimigo em sil&#234;ncio temoroso repousam,&lt;br /&gt;
	O que &#233; que a brisa, sobre o alt&#237;ssimo precip&#237;cio,&lt;br /&gt;
	Enquanto sopra irregularmente, ora esconde, ora exp&#245;e?&lt;br /&gt;
	Eis que ela reflete o brilho do primeiro raio de luz da manh&#227;,&lt;br /&gt;
	Em toda a sua gl&#243;ria refletida brilha sobre o rio:&lt;br /&gt;
	&#201; a bandeira estrelada! &#211;, que por muito tempo ela tremule&lt;br /&gt;
	Sobre a terra dos livres e o lar dos valentes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A id&#233;ia &#233; que a Liberdade de Express&#227;o, a livre circula&#231;&#227;o de id&#233;ias, &#233; muito mais importante do que a pr&#243;pria Bandeira que a simboliza, incluindo suas institui&#231;&#245;es. Esse valor &#233; muito forte e extremamente importante para a funda&#231;&#227;o de uma grande sociedade.&lt;/p&gt;
&lt;p&gt;Pensando sobre isso, me lembrei de outro caso famoso a esse respeito, O &lt;a href="http://en.wikipedia.org/wiki/Hustler_Magazine_v._Falwell"&gt;Hustler contra Jerry Falwell&lt;/a&gt;. Falwell &#233; um desses l&#237;deres religiosos famosos na TV. Hustler &#233; uma das maiores revistas pornogr&#225;ficas dos &lt;span class="caps"&gt;EUA&lt;/span&gt;. O ponto de disc&#243;rdia foi uma s&#225;tira de um an&#250;ncio da Campari, publicada na Hustler, onde ela mostra uma entrevista sat&#237;rica de Falwell falando sobre incesto com sua m&#227;e, regado &#224; Campari.&lt;/p&gt;
&lt;p&gt;Falwell processou a Hustler. No final, o caso foi at&#233; a Suprema Corte e a decis&#227;o foi un&#226;nime 8 a 0:&lt;/p&gt;
&lt;blockquote&gt;&amp;#8220;No cora&#231;&#227;o da Primeira Emenda est&#225; o reconhecimento da import&#226;ncia fundamental do livre fluxo de id&#233;ias e opini&#245;es em assuntos de interesse e preocupa&#231;&#227;o p&#250;blica. A liberdade de dizer o que se pensa n&#227;o &#233; apenas um aspecto da liberdade individual &amp;#8211; e portanto um bem em si mesmo &amp;#8211; mas tamb&#233;m &#233; essencial para a busca comum pela verdade e da vitalidade da sociedade como um todo. Portanto n&#243;s temos estado particularmente vigilantes para garantir que a express&#227;o individual de id&#233;ias permane&#231;am livres de san&#231;&#245;es impostas pelo governo.&amp;#8221;&lt;/blockquote&gt;
&lt;p&gt;Se voc&#234; ainda n&#227;o assistiu, recomendo o filme &lt;a href="http://en.wikipedia.org/wiki/The_People_vs._Larry_Flynt"&gt;The People vs Larry Flynt&lt;/a&gt; que mostra esse epis&#243;dio. Veja a argumenta&#231;&#227;o do caso no v&#237;deo abaixo:&lt;/p&gt;
&lt;p style="text-align: center"&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/hYCpIVq2ZyA&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/hYCpIVq2ZyA&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;Para que uma sociedade flores&#231;a e se sustente, ela precisa de funda&#231;&#245;es s&#243;lidas. Por isso mesmo sou um grande f&#227; dos Pais Fundadores, que nos anos 1700 tiveram a vis&#227;o de escrever pe&#231;as-mestre como a &lt;a href="http://en.wikipedia.org/wiki/United_States_Declaration_of_Independence"&gt;Declara&#231;&#227;o de Independ&#234;ncia&lt;/a&gt; e a &lt;a href="http://en.wikipedia.org/wiki/United_States_Bill_of_Rights"&gt;Declara&#231;&#227;o de Direitos dos Cidad&#227;os&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;No caso, todo esse pensamento para mim se mistura com o pensamento de &lt;a href="http://en.wikipedia.org/wiki/Organizations"&gt;Organiza&#231;&#245;es&lt;/a&gt;, no sentido amplo da palavra, e Empresas, no sentido mais restrito. Em uma escala miniaturizada, uma empresa &#233; uma comunidade, com sua pr&#243;pria cultura, regras, leis e governos. E nesse sentido me espanta como a funda&#231;&#227;o ideol&#243;gica dessas comunidades ainda &#233; muito primitiva. A maioria ainda se assemelha a &lt;a href="http://en.wikipedia.org/wiki/Totalitarianism"&gt;Governos Totalit&#225;rios&lt;/a&gt;, segundo a defini&#231;&#227;o:&lt;/p&gt;
&lt;blockquote&gt;Totalitarismo &#233; um sistema pol&#237;tico onde o estado, normalmente sob o controle de uma &#250;nica organiza&#231;&#227;o pol&#237;tica, fac&#231;&#227;o ou classe, n&#227;o reconhece limites &#224; sua autoridade e se esfor&#231;a para regular cada aspecto da vida p&#250;blica e privada onde quiser. Totalitarismo &#233; geralmente caracterizado pela coincid&#234;ncia do autoritarismo (onde cidad&#227;os ordin&#225;rios n&#227;o tem parte significativa nas tomadas de decis&#227;o do estado) e ideologia (um esquema perverso de valores promulgados por meios de institui&#231;&#245;es para dirigir a maioria dos aspectos da vida p&#250;blica e privada).&lt;br /&gt;
	&lt;br /&gt;
Regimes ou Movimentos Totalit&#225;rios se mant&#233;m no poder pol&#237;tico por meio de uma ideologia oficial e propaganda disseminada por m&#237;dia controlada pelo estado, um &#250;nico partido que controla o estado, cultos de personalidade, controle sobre a economia, regula&#231;&#227;o e restri&#231;&#245;es de discuss&#245;es livres e cr&#237;ticas, o uso de vigil&#226;ncia em massa e uso de terrorismo do estado.&lt;/blockquote&gt;
&lt;p&gt;Soa familar? Garanto que voc&#234; consegue descrever muitas empresas com a defini&#231;&#227;o acima. Voc&#234; tem direito &#224; &amp;#8220;liberdade de express&#227;o&amp;#8221;? Ou algumas opini&#245;es s&#227;o pass&#237;veis de puni&#231;&#227;o, especialmente se forem semelhantes ao caso Falwell?&lt;/p&gt;
&lt;p&gt;Na minha opini&#227;o, um documento de Miss&#227;o e Valores de uma empresa, para n&#227;o ser totalmente imprest&#225;vel, deveria ser semelhante ao &lt;em&gt;Bill of Rights&lt;/em&gt; e come&#231;ar pelo menos com a mesma coisa que a Primeira Emenda.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5ZagP3Zc4GmfdbUwwsS1E6_6AlM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5ZagP3Zc4GmfdbUwwsS1E6_6AlM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5ZagP3Zc4GmfdbUwwsS1E6_6AlM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5ZagP3Zc4GmfdbUwwsS1E6_6AlM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AkitaOnRails?a=f7IflI7L6nU:yZA9kYUKDCQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AkitaOnRails?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AkitaOnRails?a=f7IflI7L6nU:yZA9kYUKDCQ:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AkitaOnRails?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AkitaOnRails?a=f7IflI7L6nU:yZA9kYUKDCQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AkitaOnRails?i=f7IflI7L6nU:yZA9kYUKDCQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AkitaOnRails?a=f7IflI7L6nU:yZA9kYUKDCQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AkitaOnRails?i=f7IflI7L6nU:yZA9kYUKDCQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AkitaOnRails?a=f7IflI7L6nU:yZA9kYUKDCQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AkitaOnRails?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AkitaOnRails/~4/f7IflI7L6nU" height="1" width="1"/&gt;</description>
      <pubDate>Sun, 07 Mar 2010 23:21:20 -0300</pubDate>
      <author>F&#225;bio Akita</author>
      <link>http://feedproxy.google.com/~r/AkitaOnRails/~3/f7IflI7L6nU/off-topic-penn-and-teller-e-larry-flynt-sobre-liberdade</link>
    </item>
    <item>
      <title>Como estimar prazos precisos e imprecisos</title>
      <description>&lt;div id="attachment_3216" class="wp-caption aligncenter" style="width: 510px"&gt;&lt;a href="http://www.nomedojogo.com/wp-content/uploads/2010/03/3540926707_1dcf688e02.jpg"&gt;&lt;img class="size-full wp-image-3216" title="3540926707_1dcf688e02" src="http://www.nomedojogo.com/wp-content/uploads/2010/03/3540926707_1dcf688e02.jpg" alt="" width="500" height="375" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text"&gt;Ilustra&#231;&#227;o de hartboy&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Definir quanto tempo ser&#225; necess&#225;rio para finalizar uma tarefa ou o desenvolvimento de um software n&#227;o &#233; (ou pelo menos n&#227;o deveria ser) algo trivial. Estimar prazos faz parte do nosso dia-a-dia como programadores.&lt;/p&gt;
&lt;p&gt;O que muita gente n&#227;o se d&#225; conta &#233; que a precis&#227;o com que um programador prev&#234; a entrega de tarefas e projetos &#233; um poderoso indicador do qu&#227;o bom ele &#233;.&lt;/p&gt;
&lt;p&gt;Para informar de forma precisa o tempo necess&#225;rio para a realiza&#231;&#227;o de algo em desenvolvimento de software &#233; necess&#225;rio que o programador possua uma certa experi&#234;ncia no assunto, tenha um bom dom&#237;nio do neg&#243;cio, seja r&#225;pido e produtivo.&lt;/p&gt;
&lt;p&gt;Embora muitos de n&#243;s n&#227;o apreciem essa dif&#237;cil tarefa, estimar prazos &#233; parte do nosso trabalho. Fazer isso bem pode ser a diferen&#231;a entre um programador profissional e um amador.&lt;/p&gt;
&lt;p&gt;Em um dia normal, estamos estimando prazos o tempo todo. Ao colocar a comida no micro-ondas voc&#234; deve informar quantos minutos ser&#227;o necess&#225;rios para esquenta-la. Se voc&#234; tem um hor&#225;rio fixo para acordar, deve analisar quantas horas de sono ser&#227;o suficientes e ent&#227;o decidir quando deve ir para a cama.&lt;/p&gt;
&lt;p&gt;O segredo n&#227;o est&#225; no tempo, mas em qu&#227;o precisa deve ser a sua estimativa. Se seu chefe pergunta que horas voc&#234; entregar&#225; o relat&#243;rio amanh&#227;, ele quer ter uma ideia se ser&#225; antes ou depois do almo&#231;o. Se ele lhe pergunta quanto tempo ser&#225; necess&#225;rio para resolver um bug critico e colocar o sistema de volta em produ&#231;&#227;o ele precisa de uma precis&#227;o maior.&lt;/p&gt;
&lt;p&gt;A escala de tempo &#233; muito importante ao se estimar prazos. Por exemplo, voc&#234; pode dizer &amp;#8220;O projeto ser&#225; entregue em 25 dias&amp;#8221; ou pode dizer &amp;#8220;O projeto ser&#225; entregue em cerca de 5 semanas&amp;#8221;. Embora ambas as frases indiquem o mesmo tempo, o efeito sob cada uma delas pode ser diferente. Ao dar a primeira resposta, seu cliente provavelmente anotar&#225; na agenda dele o dia exato em que voc&#234; entregar&#225; o projeto. Por outro lado, a segunda resposta far&#225; com que ele lhe procure a qualquer momento daqui a 4 ou 6 semanas.&lt;/p&gt;
&lt;p&gt;O livro &lt;a href="http://www.pragprog.com/the-pragmatic-programmer"&gt;The Pragmatic Programmer&lt;/a&gt; d&#225; uma importante dica que nos ajuda a escolher a escala de tempo apropriada ao estimar prazos. Veja a tabela:&lt;/p&gt;
&lt;p&gt;1-15 dias    -&amp;gt; dias&lt;br /&gt;
3-8 semanas  -&amp;gt; semanas&lt;br /&gt;
8-30 semanas -&amp;gt; meses&lt;br /&gt;
30   semanas -&amp;gt; pense bem antes de dar uma estimativa&lt;/p&gt;
&lt;p&gt;Qual a vantagem disso? O fato &#233; que quanto maior o tempo, mais dif&#237;cil &#233; a previs&#227;o, exigindo que voc&#234; seja cada vez mais impreciso. Por exemplo, se sua estimativa &#233; que ser&#227;o necess&#225;rios 125 dias para terminar um trabalho, &#233; muito mais seguro dizer que precisar&#225; de &amp;#8220;cerca de 6 meses&amp;#8221; para finaliza-lo.&lt;/p&gt;
&lt;p&gt;Todas as estimativas que fazemos s&#227;o baseadas em nossas experi&#234;ncias passadas. Mas, o que fazer quando &#233; necess&#225;rio estimar algo que voc&#234; nunca fez ou que n&#227;o conhece? A resposta &#233; simples: &amp;#8220;n&#227;o estime&amp;#8221;. &#201; melhor pedir para que algu&#233;m que j&#225; tenha feito algo semelhante lhe d&#234; uma ideia do tempo necess&#225;rio.&lt;/p&gt;
&lt;p&gt;Al&#233;m de considerar o grau de precis&#227;o, tamb&#233;m &#233; importante entender qual &#233; o problema antes de come&#231;ar a chutar um tempo. Quase sempre nossas estimativas dependem de outros fatores para darem certo: &amp;#8220;Supondo que n&#227;o haja tr&#226;nsito d&#225; para chegar a&#237; em 20 minutos&amp;#8221;.&lt;/p&gt;
&lt;p&gt;Se poss&#237;vel &#233; muito &#250;til testar alguns aspectos do projeto antes de dizer quanto tempo ser&#225; necess&#225;rio para cumpri-lo. Se o sistema precisa ser carregado dentro do Facebook, seria muito bom poder gastar um tempo criando alguma coisa bem simples para esta plataforma afim de analisar o grau de complexidade, isto sem d&#250;vida aumentar&#225; a precis&#227;o da estimativa.&lt;/p&gt;
&lt;p&gt;&#201; muito importante levar em considera&#231;&#227;o que a equipe, sua produtividade e o ambiente afetam diretamente sua estimativa.&lt;/p&gt;
&lt;p&gt;Analisando todos estes fatores, a conclus&#227;o &#233; que h&#225; apenas uma &#250;nica resposta correta a se dar quando lhe &#233; pedido para estimar um prazo: &amp;#8220;Me d&#234; algum tempo para pensar&amp;#8221;. Voc&#234; sempre ter&#225; resultados melhores se retardar a resposta e pensar um pouco mais.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/NomeDoJogo/~4/gRt1U1bLnkE" height="1" width="1"/&gt;</description>
      <pubDate>Thu, 04 Mar 2010 15:47:59 -0300</pubDate>
      <author>Carlos Brando</author>
      <link>http://feedproxy.google.com/~r/NomeDoJogo/~3/gRt1U1bLnkE/</link>
    </item>
    <item>
      <title>Ganhador da promo&#231;&#227;o</title>
      <description>&lt;p&gt;Ontem fiz o sorteio da promo&#231;&#227;o da bolsa para o curso de Rails. Veja o v&#237;deo do sorteio e quem foi o premiado.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://blog.areacriacoes.com.br/assets/2010/3/2/twicket.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Ontem fiz o sorteio da promo&#231;&#227;o da bolsa para o curso de Rails. Para a realiza&#231;&#227;o do sorteio foi utilizado o &lt;a href="http://twicket.heroku.com/"&gt;Twicket&lt;/a&gt;, veja abaixo o v&#237;deo com o resultado:&lt;/p&gt;


&amp;amp;lt;object height="378" width="504"&gt;&amp;amp;lt;param /&gt;&amp;amp;lt;param /&gt;&amp;amp;lt;param /&gt;&amp;amp;lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=9855322&amp;amp;amp;amp;server=vimeo.com&amp;amp;amp;amp;show_title=1&amp;amp;amp;amp;show_byline=1&amp;amp;amp;amp;show_portrait=1&amp;amp;amp;amp;color=8a7ebb&amp;amp;amp;amp;fullscreen=1" height="378" width="504"&gt;&amp;amp;lt;/embed&gt;&amp;amp;lt;/object&gt;

	&lt;p&gt;O vencedor foi o Rosano Cangussu com o tweet: &lt;a href="http://twitter.com/rosanocangussu/status/9729880959"&gt;http://bit.ly/dDePXO&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;A aplica&#231;&#227;o usada para o sorteio foi um pequeno projeto realizado em algumas horas utilizando o &lt;a href="http://www.sinatrarb.com/"&gt;Sinatra&lt;/a&gt;. A app faz a comunica&#231;&#227;o com o Twitter e retorna o ganhador atrav&#233;s dos tweets &#250;nicos do usu&#225;rio com a hashtag escolhida.&lt;/p&gt;


	&lt;p&gt;Quem quiser conhecer a aplica&#231;&#227;o o link &#233;: &lt;a href="http://twicket.heroku.com/"&gt;http://twicket.heroku.com/&lt;/a&gt;&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=q9_CwKfoN6A:dfH8KzGrKzY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=q9_CwKfoN6A:dfH8KzGrKzY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=q9_CwKfoN6A:dfH8KzGrKzY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=q9_CwKfoN6A:dfH8KzGrKzY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=q9_CwKfoN6A:dfH8KzGrKzY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=q9_CwKfoN6A:dfH8KzGrKzY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=q9_CwKfoN6A:dfH8KzGrKzY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=q9_CwKfoN6A:dfH8KzGrKzY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
      <pubDate>Tue, 02 Mar 2010 14:51:00 -0000</pubDate>
      <author>Daniel Lopes</author>
      <link>http://feedproxy.google.com/~r/AreaCriaes-WebEDesign-Home/~3/q9_CwKfoN6A/ganhador-da-promo-o</link>
    </item>
    <item>
      <title>Limpando meu Ambiente de Desenvolvimento - Parte 2 - Homebrew</title>
      <description>&lt;p&gt;Recentemente &lt;a href="http://www.akitaonrails.com/2010/01/01/limpando-meu-ambiente-de-desenvolvimento"&gt;escrevi um artigo&lt;/a&gt; sobre como arrumei meu ambiente Ruby usando &lt;span class="caps"&gt;RVM&lt;/span&gt;. Desta vez quero falar sobre outros aplicativos open source como mysql, postgresql e mais.&lt;/p&gt;
&lt;p&gt;Infelizmente, um dos grandes pontos fracos do Mac &#233; a aus&#234;ncia de uma ferramenta oficial e robusta de gerenciamento de pacotes para software open source, algo como o Yum (Fedora, CentOS) ou Apt (Debian, Ubuntu). No mundo Mac temos duas ferramentas mais conhecidas, o &lt;a href="http://www.finkproject.org/"&gt;Fink&lt;/a&gt; e o &lt;a href="http://www.macports.org/"&gt;Macports&lt;/a&gt;. O Fink &#233; baseado no Apt e pacotes Deb, &#233; o que tem a maior quantidade de pacotes (mais de 10k), mas na minha experi&#234;ncia ele costuma n&#227;o ter pacotes atualizados com muita frequ&#234;ncia. O Macports &#233; meio semi-oficial e &#233; inspirado no Ports do &lt;span class="caps"&gt;BSD&lt;/span&gt;, tem menos pacotes mas os principais parecem mais atualizados.&lt;/p&gt;
&lt;p&gt;O Fink instala seus pacotes normalmente no diret&#243;rio &lt;tt&gt;/sw&lt;/tt&gt; e o Macports no &lt;tt&gt;/opt/local&lt;/tt&gt;. Uma coisa irritante sobre eles &#233; que, como n&#227;o s&#227;o oficiais, eles criam um ambiente completamente separado. E o gerenciamento de depend&#234;ncia deles significa que, por exemplo, se um pacote depende do Python, ele n&#227;o vai usar o Python j&#225; pr&#233;-instalado no sistema, mas vai instalar uma nova vers&#227;o no diret&#243;rio separado. Na maior parte do tempo eles at&#233; funcionam razoavelmente bem, at&#233; que alguma coisa come&#231;a a falhar e a&#237; &#233; um pesadelo. O Macports &#233; o mais chato porque ele compila tudo a partir do c&#243;digo-fonte, incluindo todas as depend&#234;ncias, incluindo recompilar software que j&#225; existe no seu Mac.&lt;/p&gt;
&lt;p&gt;No caso do MacPorts, ele compila tudo a partir do c&#243;digo-fonte, incluindo diversas depend&#234;ncias que voc&#234; j&#225; tem instalado no Mac. Portanto ele gasta muito tempo duplicando as coisas. Softwares como ImageMagick e Git demoram bastante tempo para instalar. Para atualizar pacotes ent&#227;o, sempre &#233; uma caixa de surpresas.&lt;/p&gt;&lt;h2&gt;Homebrew&lt;/h2&gt;
&lt;p&gt;Entra o &lt;a href="http://github.com/mxcl/homebrew"&gt;Homebrew&lt;/a&gt;, uma nova ferramenta de instala&#231;&#227;o de software open source. N&#227;o &#233; um gerenciador de pacotes, ele basicamente &#233; uma automatiza&#231;&#227;o da boa e velha forma de baixar um tar.gz, rodar &lt;tt&gt;./configure; make; make install&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;Parecido com o Macports, ele tamb&#233;m baixa o c&#243;digo-fonte e compila tudo, por&#233;m ele tenta ser mais esperto. Para come&#231;ar ele n&#227;o tenta re-instalar coisas que seu Mac j&#225; tem, portanto sua ger&#234;ncia de depend&#234;ncias &#233; bem mais simples.&lt;/p&gt;
&lt;p&gt;O arquivo &lt;a href="http://github.com/mxcl/homebrew"&gt;&lt;span class="caps"&gt;README&lt;/span&gt;&lt;/a&gt; do projeto &#233; completo o suficiente para te guiar, mas vou copiar algumas partes importantes. Para instalar &#233; muito simples. Ele prefere que voc&#234; use o pr&#243;prio diret&#243;rio &lt;tt&gt;/use/local&lt;/tt&gt; que &#233; onde um Unix &lt;span class="caps"&gt;POSIX&lt;/span&gt; espera que voc&#234; instale. Uma coisa meio controversa &#233; mudar as permiss&#245;es desse diret&#243;rio para seu usu&#225;rio:&lt;/p&gt;&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"&gt;sudo chown -R `whoami` /usr/local&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;Se voc&#234; j&#225; tinha instalado o MySQL ou outro software manualmente via um instalador, fa&#231;a:&lt;/p&gt;&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"&gt;sudo chown -R mysql:mysql /usr/local/mysql&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;Agora instale o Homebrew assim:&lt;/p&gt;&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"&gt;curl -L http://github.com/mxcl/homebrew/tarball/master | tar xz --strip 1 -C /usr/local&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;Como disse antes, o Homebrew n&#227;o tem &amp;#8220;pacotes&amp;#8221;, ele tem &amp;#8220;Formulas&amp;#8221;, que nada mais s&#227;o do que simples scripts em Ruby dizendo de onde baixar o c&#243;digo fonte, quais op&#231;&#245;es de compila&#231;&#227;o usar e assim por diante.&lt;/p&gt;
&lt;p&gt;Como tudo &#233; compilado, garanta que voc&#234; tem o &lt;a href="http://developer.apple.com/technology/xcode.html"&gt;XCode&lt;/a&gt; instalado.&lt;/p&gt;
&lt;p&gt;Pronto, agora basta instalar os softwares que quer, por exemplo fa&#231;a:&lt;/p&gt;&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;5&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;7&lt;tt&gt;
&lt;/tt&gt;8&lt;tt&gt;
&lt;/tt&gt;9&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;10&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;11&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"&gt;brew install mysql&lt;tt&gt;
&lt;/tt&gt;brew install git&lt;tt&gt;
&lt;/tt&gt;brew install wget&lt;tt&gt;
&lt;/tt&gt;brew install mongodb&lt;tt&gt;
&lt;/tt&gt;brew install httperf&lt;tt&gt;
&lt;/tt&gt;brew install redis&lt;tt&gt;
&lt;/tt&gt;brew install riak&lt;tt&gt;
&lt;/tt&gt;brew install imagemagick&lt;tt&gt;
&lt;/tt&gt;brew install beanstalk&lt;tt&gt;
&lt;/tt&gt;brew install ctags&lt;tt&gt;
&lt;/tt&gt;brew install ghostscript&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;Para saber quais f&#243;rmulas voc&#234; j&#225; instalou na sua m&#225;quina, fa&#231;a:&lt;/p&gt;&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"&gt;brew list&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;Para saber quais f&#243;rmular est&#227;o dispon&#237;veis para instalar, fa&#231;a:&lt;/p&gt;&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"&gt;brew search&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;Uma instala&#231;&#227;o costuma acontecer mais ou menos assim:&lt;/p&gt;&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;5&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;7&lt;tt&gt;
&lt;/tt&gt;8&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"&gt;$ brew install freeimage&lt;tt&gt;
&lt;/tt&gt;==&amp;gt; Downloading http://downloads.sourceforge.net/project/freeimage/Source Distribution/3&lt;tt&gt;
&lt;/tt&gt;######################################################################## 100.0%&lt;tt&gt;
&lt;/tt&gt;==&amp;gt; Patching&lt;tt&gt;
&lt;/tt&gt;patching file Makefile.gnu&lt;tt&gt;
&lt;/tt&gt;==&amp;gt; gnumake -f Makefile.gnu&lt;tt&gt;
&lt;/tt&gt;==&amp;gt; gnumake -f Makefile.gnu install PREFIX=/usr/local/Cellar/freeimage/3130&lt;tt&gt;
&lt;/tt&gt;/usr/local/Cellar/freeimage/3130: 3 files, 8.2M, built in 79 seconds&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;Note o diret&#243;rio &lt;tt&gt;/usr/local/Cellar/freeimage/3130&lt;/tt&gt;. Toda f&#243;rmula vai tentar instalar no diret&#243;rio &lt;tt&gt;/usr/local/Cellar/[seu software]/[versao]&lt;/tt&gt;. Ent&#227;o ele criar&#225; symbolic links em diret&#243;rios como &lt;tt&gt;/usr/bin&lt;/tt&gt;, &lt;tt&gt;/usr/sbin&lt;/tt&gt;, &lt;tt&gt;/usr/lib&lt;/tt&gt; e assim por diante para que tudo funcione. Desta forma &#233; f&#225;cil instalar uma nova vers&#227;o em um novo sub-diret&#243;rio e apenas refazer os symlinks. E isso tamb&#233;m torna f&#225;cil apagar tudo se voc&#234; quiser, basta fazer:&lt;/p&gt;&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"&gt;cd /usr/local&lt;tt&gt;
&lt;/tt&gt;rm -rf Cellar&lt;tt&gt;
&lt;/tt&gt;brew prune&lt;tt&gt;
&lt;/tt&gt;rm -rf Library .git .gitignore bin/brew README.md&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Obs:&lt;/strong&gt; A f&#243;rmula do &lt;tt&gt;Postgresql&lt;/tt&gt; tem alguns bugs ainda n&#227;o resolvidos na vers&#227;o atual. Uma coisa que funcionou para mim foi editar o arquivo &lt;tt&gt;/usr/local/Library/Formulas/postgresql.rb&lt;/tt&gt; e retirar a linha que tem &lt;tt&gt;&amp;#8212;with-python&lt;/tt&gt;, que &#233; o causador dos problemas.&lt;/p&gt;
&lt;h2&gt;Novas F&#243;rmulas&lt;/h2&gt;
&lt;p&gt;Diferente do Fink e Macports, o Homebrew n&#227;o tem mais que algumas d&#250;zias de f&#243;rmulas prontas. Para atualizar as defini&#231;&#245;es de f&#243;rmulas fa&#231;a:&lt;/p&gt;&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"&gt;brew update&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;As f&#243;rmulas costumam ficar em &lt;tt&gt;/usr/local/Library/Formulas&lt;/tt&gt;. Vamos criar uma nova f&#243;rmula para um software que ainda n&#227;o tem uma defini&#231;&#227;o. Normalmente voc&#234; esbarra num post de blog com alguma instru&#231;&#227;o para instalar a partir do c&#243;digo fonte, algo no formato:&lt;/p&gt;&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;5&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"&gt;wget http://.../foo.tar.gz&lt;tt&gt;
&lt;/tt&gt;tar xvfz foo.tar.gz&lt;tt&gt;
&lt;/tt&gt;cd foo&lt;tt&gt;
&lt;/tt&gt;./configure&lt;tt&gt;
&lt;/tt&gt;make&lt;tt&gt;
&lt;/tt&gt;sudo make install&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;O que voc&#234; far&#225; &#233;:&lt;/p&gt;&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"&gt;brew create http://.../foo.tar.gz&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;Ele criar&#225; uma nova f&#243;rmula diretamente em &lt;tt&gt;/usr/local/Library/Formulas&lt;/tt&gt; e vai abrir num editor de textos para voc&#234; continuar a configurar o script. Por exemplo, digamos que queremos uma nova f&#243;rmula para instalar o &lt;a href="http://www.gnu.org/software/libiconv/"&gt;Libiconv&lt;/a&gt;. A primeira coisa que vou fazer &#233; baixar o c&#243;digo fonte e gerar o hash MD5 dele:&lt;/p&gt;&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"&gt;$ curl -O http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz&lt;tt&gt;
&lt;/tt&gt;$ md5 libiconv-1.13.1.tar.gz &lt;tt&gt;
&lt;/tt&gt;MD5 (libiconv-1.13.1.tar.gz) = 7ab33ebd26687c744a37264a330bbe9a&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;Agora, vamos gerar a F&#243;rmula:&lt;/p&gt;&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"&gt;brew create http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;Ele vai gerar algo assim:&lt;/p&gt;&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;5&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;7&lt;tt&gt;
&lt;/tt&gt;8&lt;tt&gt;
&lt;/tt&gt;9&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;10&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;11&lt;tt&gt;
&lt;/tt&gt;12&lt;tt&gt;
&lt;/tt&gt;13&lt;tt&gt;
&lt;/tt&gt;14&lt;tt&gt;
&lt;/tt&gt;15&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"&gt;require &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;formula&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;class&lt;/span&gt; &lt;span class="cl"&gt;Libiconv&lt;/span&gt; &amp;lt;&lt;span class="co"&gt;Formula&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  url &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  homepage &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  md5 &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="c"&gt;# depends_on 'cmake'&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;  &lt;span class="r"&gt;def&lt;/span&gt; &lt;span class="fu"&gt;install&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    system &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;./configure&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;--prefix=&lt;/span&gt;&lt;span class="il"&gt;&lt;span class="idl"&gt;#{&lt;/span&gt;prefix&lt;span class="idl"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;--disable-debug&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;--disable-dependency-tracking&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="c"&gt;#   system &amp;quot;cmake . #{std_cmake_parameters}&amp;quot;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    system &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;make install&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  &lt;span class="r"&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;Agora preenchemos o campo &amp;#8216;homepage&amp;#8217; com a &lt;span class="caps"&gt;URL&lt;/span&gt; do projeto, o campo &amp;#8216;md5&amp;#8217; com o hash que geramos mais acima. Se existir outras f&#243;rmulas de que este software dependa, declaramos usando &lt;tt&gt;depends_on&lt;/tt&gt; e no m&#233;todo &lt;tt&gt;install&lt;/tt&gt; colocamos a rotina de instala&#231;&#227;o. O Homebrew j&#225; me d&#225; algumas vari&#225;veis padr&#227;o como o &lt;tt&gt;prefix&lt;/tt&gt; que j&#225; me d&#225; o local correto de instala&#231;&#227;o. Agora, editamos este arquivo para ficar assim:&lt;/p&gt;&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;5&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;7&lt;tt&gt;
&lt;/tt&gt;8&lt;tt&gt;
&lt;/tt&gt;9&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;10&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;11&lt;tt&gt;
&lt;/tt&gt;12&lt;tt&gt;
&lt;/tt&gt;13&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"&gt;require &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;formula&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;class&lt;/span&gt; &lt;span class="cl"&gt;Libiconv&lt;/span&gt; &amp;lt;&lt;span class="co"&gt;Formula&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  url &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  homepage &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;http://www.gnu.org/software/libiconv/&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  md5 &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;7ab33ebd26687c744a37264a330bbe9a&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;  &lt;span class="r"&gt;def&lt;/span&gt; &lt;span class="fu"&gt;install&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    system &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;./configure&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;--prefix=&lt;/span&gt;&lt;span class="il"&gt;&lt;span class="idl"&gt;#{&lt;/span&gt;prefix&lt;span class="idl"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    system &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;make&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    system &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;make install&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  &lt;span class="r"&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;Pronto, agora voc&#234; por instalar esse pacote normalmente:&lt;/p&gt;&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"&gt;brew install libiconv&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;Mais avan&#231;ado do que isso, &#224;s vezes os softwares n&#227;o foram preparados para instalar no Mac OS X e talvez seja preciso alterar seus arquivos antes de compilar. Para isso &#233; necess&#225;rio criar Patches e aplic&#225;-los. Veja f&#243;rmulas como o &lt;tt&gt;/usr/local/Library/Formulas/xar.rb&lt;/tt&gt; para entender como aplicar patches.&lt;/p&gt;
&lt;p&gt;Leia com aten&#231;&#227;o o arquivo &lt;span class="caps"&gt;README&lt;/span&gt; e tamb&#233;m navegue pelas f&#243;rmulas em &lt;tt&gt;Library/Formulas&lt;/tt&gt; para aprender como gerar suas pr&#243;prias f&#243;rmulas. Fa&#231;a um fork do projeto original no Github e comece a contribuir com novas f&#243;rmulas.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Urn1Y7xhhpXbLuWGP0OtML0Plkw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Urn1Y7xhhpXbLuWGP0OtML0Plkw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Urn1Y7xhhpXbLuWGP0OtML0Plkw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Urn1Y7xhhpXbLuWGP0OtML0Plkw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AkitaOnRails?a=NczUKGlsIJg:SZ0KrqwlmeM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AkitaOnRails?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AkitaOnRails?a=NczUKGlsIJg:SZ0KrqwlmeM:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AkitaOnRails?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AkitaOnRails?a=NczUKGlsIJg:SZ0KrqwlmeM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AkitaOnRails?i=NczUKGlsIJg:SZ0KrqwlmeM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AkitaOnRails?a=NczUKGlsIJg:SZ0KrqwlmeM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AkitaOnRails?i=NczUKGlsIJg:SZ0KrqwlmeM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AkitaOnRails?a=NczUKGlsIJg:SZ0KrqwlmeM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AkitaOnRails?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AkitaOnRails/~4/NczUKGlsIJg" height="1" width="1"/&gt;</description>
      <pubDate>Sun, 28 Feb 2010 05:08:54 -0300</pubDate>
      <author>F&#225;bio Akita</author>
      <link>http://feedproxy.google.com/~r/AkitaOnRails/~3/NczUKGlsIJg/limpando-meu-ambiente-de-desenvolvimento-parte-2-homebrew</link>
    </item>
    <item>
      <title>Sobre o verdadeiro capital</title>
      <description>&lt;p&gt;&#201; engra&#231;ado quando outras empresas nos ligam para saber sobre nossos cursos on-line ou sobre o Treina TOM. Todos acham que estamos em um grande centro, em plena avenida paulista e todos vestidos de ternos e gravatas, o ambiente cinza que muitas empresas que surgiram nos &#250;ltimos 5 anos citam.&lt;/p&gt;
&lt;p&gt;Quando falamos que estamos em&lt;a href="http://pt.wikipedia.org/wiki/Sorriso" target="_blank"&gt; Sorriso ao norte de Mato Grosso&lt;/a&gt; para ser exato 420km da capital Cuiab&#225;, todos ficam de queixo ca&#237;do, ningu&#233;m consegue imaginar que em uma cidade com apenas 60 mil habitantes pode ter uma empresa que faz tanto barulho na internet brasileira, respectivamente no mercado de cursos de Ruby on Rails, Adobe Flex e Flash Media ou para ambientes on-line de confer&#234;ncias e treinamentos a dist&#226;ncia atrav&#233;s de &lt;a href="http://www.treinatom.com.br" target="_blank"&gt;nosso produto o Treina TOM&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Apesar do espanto, gostamos muito de ter este feedback t&#227;o espont&#226;neo e direto, pois sabemos que apesar da empresa ter somente uma equipe de 6 pessoas e ficar no interior do estado, estamos fazendo um trabalho interessante e de qualidade para todos os mais de 1.500 alunos de nossos cursos on-line e todos os clientes do Treina TOM.&lt;/p&gt;
&lt;p&gt;Mas esse feedback nunca veio em v&#227;o e merece uma breve hist&#243;ria do que j&#225; passamos e o que procuramos manter por aqui para que tudo ande cada vez melhor. Acredito que j&#225; citei por aqui ou diretamente para muitos de voc&#234;s como nasceu nosso primeiro curso on-line, se n&#227;o, ent&#227;o vai aqui uma breve experi&#234;ncia.&lt;/p&gt;
&lt;p&gt;A e-Genial existe a 5 anos, nasceu a partir de um notebook e uma internet a r&#225;dio, trabalh&#225;vamos com desenvolvimento de aplica&#231;&#245;es web em Jee e afins, passando por Zope, Plone, PHP at&#233; que conhecemos Ruby on Rails 1.6.&lt;/p&gt;
&lt;p&gt;Quando o empreendedorismo est&#225; de alguma forma presente na vida das pessoas, estas pessoas passam a ter um feeling incriv&#233;l para novas oportunidades, e foi isto que aconteceu conosco em um final de tarde em uma leve caminhada nas longas e plainas ruas de &lt;a href="http://pt.wikipedia.org/wiki/Chapad&#227;o_do_sul" target="_blank"&gt;Chapad&#227;o do Sul &amp;#8211; Mato Grosso do Sul&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Como ministrava treinamentos presenciais de Java e tinha que viajar pelo brasil,&#160; vi no Ruby on Rails uma grande oportunidade para entrar de vez no mercado de treinamentos de um modo macro e com o objetivo de atender todo o brasil.&lt;/p&gt;
&lt;p&gt;Nesta &#233;poca ainda o mercado de ensino a dist&#226;ncia no brasil n&#227;o era t&#227;o presente na &#225;rea de tecnologia como &#233; hoje, e os que existiam deixavam os alunos simplesmente &amp;#8220;largados&amp;#8221; por conta pr&#243;pria. Para voc&#234;s terem uma id&#233;ia, ainda hoje temos testemunhos de alunos que desacreditam totalmente nos m&#233;todos de ensino &#224; dist&#226;ncia tradicionais por s&#243; usarem moodle, textos, conte&#250;dos est&#225;ticos e ass&#237;ncronos.&lt;/p&gt;
&lt;p&gt;Em 2007,&#160; ainda quando nossos m&#243;veis da sala e o guarda roupa eram feitos de caixas de papel&#227;o,&#160; nasceu a id&#233;ia de desenvolver um produto pr&#243;prio que pudesse ser usado em nossos cursos a dist&#226;ncia e que viesse a gerar conveni&#234;ncia para n&#243;s e para todos os participantes de nossos futuros cursos on-line.&lt;/p&gt;
&lt;p&gt;Come&#231;amos uma pesquisa por ferramentas que primeiramente tinham que caber em nosso bolso, porque dinheiro s&#243; existia para comer e pagar o aluguel da casa. Nesta &#233;poca conheci Adobe Flex e Flash Media Server, ent&#227;o comecei a gastar 24 horas de cada dia estudando estas tecnologias para criar um ambiente pr&#243;prio para nossos cursos. E foi a&#237; que surgiu o Treina TOM, que j&#225; em sua primeira release no dia 13 de Julho de 2007 entrou em produ&#231;&#227;o com a palestra on-line de &lt;a href="http://www.flickr.com/photos/egenial/803694523/" target="_blank"&gt;JRuby&lt;/a&gt; com o &lt;a href="http://www.akitaonrails.com.br" target="_blank"&gt; F&#225;bio Akita&lt;/a&gt;, algu&#233;m lembra disto?&lt;/p&gt;
&lt;p&gt;Como n&#227;o t&#237;nhamos um servidor dedicado a sala caiu mais de 4 vezes, foi um caos, mas o tempo que ficou no ar foi muito bom pela experi&#234;ncia que aquele ambiente estava criando no mercado de desenvolvimento web brasileiro. Foi simplesmente fant&#225;stico!&lt;/p&gt;
&lt;p&gt;Uma semana depois colocamos no ar mais uma palestra on-line, desta vez foi com o&lt;a href="http://www.improveit.com.br" target="_blank"&gt; Vin&#237;cius Manh&#227;es Teles&lt;/a&gt; com o tema &lt;a href="http://www.flickr.com/photos/egenial/862576498/" target="_blank"&gt;Extreme Programming&lt;/a&gt;. Agora advinhem o que aconteceu com quase 50 pessoas na sala? &#201; isso mesmo, a sala caiu mais de 3x e l&#225; se vai mais um evento e mais uma experi&#234;nia para nosso capital intelectual.&lt;/p&gt;
&lt;p&gt;Mesmo tendo estes problemas come&#231;amos os primeiros cursos on-line de Flex   Ruby on Rails e Ruby on Rails do b&#225;sico ao avan&#231;ado, tudo parecia perfeito, pois estas salas n&#227;o caiam quando o traf&#233;go de conex&#245;es simult&#226;neas eram poucas, estavam firme e forte, at&#233; que&amp;#8230;&#160; A sala come&#231;ou a cair e gerar um problem&#227;o para n&#243;s, ainda mais que entendemos que este problema n&#227;o estava diretamente ligado a&#160; sala do Treina TOM em s&#237;, mas sim ao servidor de FMS da Locaweb que simplesmente derrubava todas as inst&#226;ncias dispon&#237;veis.&lt;/p&gt;
&lt;p&gt;Sem experi&#234;ncias em tomadas de grandes decis&#245;es, com uma perspectiva grande no crescimento dos cursos e com mais turmas agendadas a &#250;nica maneira de resolver este problema era montar um servidor dedicado que custava na &#233;poca R$ 1.200,00 reais mensais, mais&#160; uma licen&#231;a do Flash Media Server&#160; no valor de R$ 18.000,00 reais. Para quem tinha m&#243;veis feitos com caixas de papel&#227;o, tomar uma decis&#227;o destas n&#227;o foi f&#225;cil, mas foi preciso acreditar em nosso feeling para fazer deste segundo passo uma realidade.&lt;/p&gt;
&lt;p&gt;Como a empresa nasceu sem nenhum capital ou apoio de consultores e especialistas em empreendedorismo, muitas coisas interessantes aconteceram durante estes anos. Agora, depois destas experi&#234;ncias gostaria de compartilhar algumas delas com todos voc&#234;s, destacando alguns pontos que tenho orgulho de ter aprendido na escola da vida. Quem sabe alguns destes pontos pode ajudar algum de voc&#234;s a treinar o feeling ou at&#233; mesmo tomar algum tipo de decis&#227;o. Afinal, n&#227;o estamos aqui s&#243; para aprender, estamos aqui tamb&#233;m para compartilhar.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
&lt;strong&gt;A bola da vez&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Aproveito agora que a hist&#243;ria come&#231;a a ficar interessante para continuar a sequ&#234;ncia de posts sobre empreendedorismo que iniciou com o &lt;a href="http://www.vedovelli.com.br/?p=1299" target="_blank"&gt;Vedovelli&lt;/a&gt; e que em seguida&#160; passou a bola para o &lt;a href="http://www.flexdev.com.br/home/ta-na-hora-de-abrir-sua-propria-empresa/" target="_blank"&gt;Ebercom&lt;/a&gt;, e este agora passou a bola para mim compartilhar alguns pontos de nossas experi&#234;ncias. Ent&#227;o vamos l&#225;!&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
&lt;strong&gt;Acredite em seu segundo passo&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;At&#233; ent&#227;o o que t&#237;nhamos era uma for&#231;a de vontade muito grande (E ainda temos) para vencer este novo desafio. Lembro-me como se fosse hoje que passamos uma noite em claro pensando sobre esta decis&#227;o, at&#233; que resolvemos assumir o compromisso e compramos a licen&#231;a do Flash Media Server em 3x e em seguida fechamos um contrato anual com a Locaweb IDC ao qual estamos usando at&#233; hoje.&lt;/p&gt;
&lt;p&gt;Quinze dias depois conseguimos pagar a primeira parcela da licen&#231;a do FMS e com o aumento da matr&#237;culas conseguimos quitar todas as parcelas antes das datas de seus respectivos vencimentos, com isto nossa motiva&#231;&#227;o aumentou e entramos de cabe&#231;a em busca de nossos sonhos e objetivos. Mas isso &#233; um caso a parte, n&#227;o gostaria que voc&#234;s fizessem o mesmo, pois n&#227;o teve um planejamento, o que realmente nos guiou foi mais uma vez o feeling do empreendedorismo e a paix&#227;o de vencer.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
&lt;strong&gt;Treine e procure usar seu feeling com frequ&#234;ncia&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Dado o segundo passo, as coisas come&#231;aram a fluir naturalmente, mesmo sem ter estudado nada sobre empreendedorismo, acreditar em nossos objetivos sempre esteve na posi&#231;&#227;o n&#250;mero um, o que fez agirmos r&#225;pido para n&#227;o deixar a oportunidade bater na porta e passar batido.&lt;/p&gt;
&lt;p&gt;Hoje o ritmo continua o mesmo, cada turma de nossos cursos on-line sempre nos tr&#225;s algo novo para aprender, assim como cada case Treina TOM&#160; soma ao nosso capital intelectual. E como a todo momento temos novas turmas, novas pessoas e novos cases, sempre h&#225; negocia&#231;&#245;es que precisamos tomar algum tipo de decis&#227;o, a&#237; entra o feeling da experi&#234;ncia, pois al&#233;m do feeling que desperta a paix&#227;o pelo seu neg&#243;cio, h&#225; tamb&#233;m o feeling que s&#243; existe depois de um bom tempo de experi&#234;ncias vividas por voc&#234; e seu neg&#243;cio.&lt;/p&gt;
&lt;p&gt;Mas n&#227;o se preocupe, tudo tem seu tempo, se voc&#234; j&#225; deu o segundo passo, o resto &#233; natural, e j&#225; deve entender o que estou querendo dizer aqui. Agora se voc&#234; n&#227;o deu este passo, tome vergonha na cara e comece j&#225;.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
&lt;strong&gt;Sua rede de contatos profissionais devem ser os melhores&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Para manter um neg&#243;cio na web &#233; preciso ser diferente de alguma forma. Um diferencial de nossos cursos e grande destaque s&#227;o realmente nossas parcerias com grandes nomes da comunidade de desenvolvimento web brasileira. Procuramos sempre ter os mais feras por perto mesmo que n&#227;o seja para um contato profissional ou para a realiza&#231;&#227;o de algum servi&#231;o. &lt;/p&gt;
&lt;p&gt;Ter grandes contatos e principalmente amigos, nos ajudou a pensar de forma diferente, grandes profissionais est&#227;o acima da m&#233;dia, e para ter um neg&#243;cio acima da m&#233;dia precisamos de feedbacks de pessoas que ir&#227;o falar a nossa l&#237;ngua. E se estes profissionais usarem e vivenciarem nossos produtos, melhor ainda ser&#225; o feedback e sugest&#245;es.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
&lt;strong&gt;O bra&#231;o direito&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;O Treina TOM foi totalmente desenvolvido por mim inicialmente, a plataforma de cursos a dist&#226;ncia tamb&#233;m, foram noites sem durmir, muitos estudos e muito tempo gasto em prol de nosso objetivo maior que &#233; vencer a todo momento um grande desafio.&lt;/p&gt;
&lt;p&gt;Eu s&#243; pude trabalhar com Flex, FMS, Ruby on Rails e afins gra&#231;as ao meu bra&#231;o direito, a minha esposa Erenice, &#233; ela que comanda toda a administra&#231;&#227;o da empresa, e tem feito isso com tanta excel&#234;ncia que sem ela provalmente a e-Genial nem existisse mais. Eu tenho orgulho de citar isso, existem muitas mulheres que s&#227;o feras em administra&#231;&#227;o, e n&#227;o &#233; atoa que est&#227;o a&#237; tomando os lugares de marmanjos engravatados.&lt;/p&gt;
&lt;p&gt;Ent&#227;o a e-Genial &#233; uma empresa familiar? Se voc&#234;s entenderem desta forma, n&#227;o h&#225; problemas, a e-Genial &#233; sim uma empresa familiar e tenho tamb&#233;m orgulho disto. Primeramente porque n&#227;o d&#225; para ser fera em tudo, imagine ser programador, cuidar de servidores, vender o produto, criar cursos, fazer matr&#237;culas, receber o dinheiro, enviar boleto, responder emails, cuidar do marketing e ainda fazer a comida e passar roupa. Tudo isso feito por uma pessoa s&#243;, voc&#234;. Loucura n&#227;o?&lt;/p&gt;
&lt;p&gt;Ter um bra&#231;o direito vai ajudar a colocar na balan&#231;a muitas quest&#245;es importantes e isso &#233; bom porque tem um efeito positivo, n&#227;o sobrecarrega o trabalho e ajuda a focar em seus objetivos e metas. &lt;/p&gt;
&lt;p&gt;Foi e continua sendo assim comigo at&#233; hoje, e pode ter certeza que funcionar&#225; com com voc&#234;. E sinceramente? N&#227;o tenho visto muitas empresas de sucesso de tecnologias feitas e mantidas por uma pessoa s&#243;. Ent&#227;o acordem e reconhe&#231;am os talentos mais pr&#243;ximos de voc&#234;s, pois estas pessoas v&#227;o ajudar a deslanchar seus objetivos.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
&lt;strong&gt;Quem n&#227;o se comunica, se trumbica!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Quando vimos que n&#227;o dava mais para continuar a empresa somente com duas pessoas, contratamos mais duas pessoas que depois de 4 meses tivemos que dispensar. Passou 1 ano e contratamos mais 2 pessoas, e mais uma vez depois de 4 meses n&#227;o deram certo e tivemos que dispensar.&lt;/p&gt;
&lt;p&gt;O tempo passou e entendemos que n&#227;o &#233; todo mundo que tem facilidade para aprender sozinho, sem voc&#234;&#160; ali do lado, treinando, acompanhando e ajudando as coisas n&#227;o andam! Afinal, o olho do dono engorda o gado, isso foi fato comprovado depois destas experi&#234;ncias.&lt;/p&gt;
&lt;p&gt;Os primeiros colaboradores ficavam por conta pr&#243;pria, estude voc&#234;, encontre as tarefas e desenvolva a solu&#231;&#227;o. Isso n&#227;o funcionou conosco e n&#227;o vai funcionar com voc&#234;. Ent&#227;o fique atento e foque em uma equipe de boa comunica&#231;&#227;o, crie palestras a cada sexta feira onde cada um fala de um assunto de seu interesse pr&#243;prio, fale sobre tecnologia, fale sobre a miss&#227;o da empresa e onde querem chegar, automaticamente voc&#234;s ir&#227;o perceber que as tarefas ir&#227;o andar de forma mais s&#237;ncrona.&lt;/p&gt;
&lt;p&gt;Hoje procuramos acompanhar e estar sempre ao lado de nossos colaboradores preservando pela boa comunica&#231;&#227;o na equipe, levando at&#233; eles informa&#231;&#245;es de outros setores da empresa, metas e objetivos para as pr&#243;ximas semanas, meses e anos.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
&lt;strong&gt;Uma meta, uma motiva&#231;&#227;o&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Tudo o que sobra de cada dia de nossas vidas &#233; a experi&#234;ncia, e experi&#234;ncia gera capital intelectual, e para para fazer uma empresa na web acontecer &#233; preciso ter experi&#234;ncias vindas de metas e motiva&#231;&#245;es.&lt;/p&gt;
&lt;p&gt;N&#227;o sou muito f&#227; de livros motivacionais, mas tenho usado a mais de 5 anos t&#233;cnicas de Programa&#231;&#227;o Neuroling&#252;&#237;stica que aprendi com o livro &lt;a href="http://www.submarino.com.br/produto/1/51391" target="_blank"&gt;Poder Sem Limites de Anthony Robbins&lt;/a&gt;. Aplico alguns exerc&#237;cios antes de durmir, e um deles consiste em visualizar a solu&#231;&#227;o para meus problemas, ou pegar o problema e minimiz&#225;-lo at&#233; ele sumir em minha mente.&lt;/p&gt;
&lt;p&gt;Estas t&#233;cnicas me ajudam a manter o foco e a reduzir o medo na hora de tomar algum tipo de decis&#227;o ou iniciar um novo projeto ou tarefa. Outra t&#233;cnica muito interessante que tem dado sempre certo, &#233; que para uma meta sempre existir&#225; uma recompensa. Pode ser qualquer coisa como, &amp;#8220;ao entregar o produto para o cliente eu vou comprar uma televis&#227;o de 52 polegadas&amp;#8221;, &amp;#8220;ao terminar esta terefa eu vou passear com minha fam&#237;lia&amp;#8221;, &amp;#8220;ao terminar de escrever este post eu vou brincar com minha filhinha&amp;#8221;, &amp;#8220;quando entregar esta milestone vou dar uma volta no shoping e comer uma batata recheada&amp;#8221;, &amp;#8220;ao colocar nosso novo produto no ar, a empresa ir&#225; crescer e mais experi&#234;ncias ser&#227;o geradas&amp;#8221;, &amp;#8220;ao fechar uma turma de 40 alunos do curso de Ruby on Rails do b&#225;sico ao avan&#231;ado, vou guardar o dinheiro no caixa da empresa para investimentos futuros&amp;#8221;.&lt;/p&gt;
&lt;p&gt;N&#227;o sei se isto funcionaria com voc&#234;s, mas tem funcionado perfeitamente comigo, &#233; como se fosse uma troca, pode ser um trabalho grande, mas com uma recompensa pequena, mas ao aplicar as t&#233;cnicas de Programa&#231;&#227;o Neuroling&#252;&#237;stica, estas motiva&#231;&#245;es costumam a ficar bem grande em nossas mentes.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
&lt;strong&gt;O verdadeiro capital&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Eu(Carlos Eduardo) em especial, acredito muito no potencial das pessoas e acho que boa parte dos brasileiros s&#227;o empreendedores at&#233; mesmo sem saber. N&#227;o foi diferente conosco e com voc&#234;s tamb&#233;m n&#227;o poder&#225; ser. Ent&#227;o acreditem e invistam em cada passo de suas id&#233;ias e tomadas de decis&#245;es.&lt;/p&gt;
&lt;p&gt;N&#227;o sabemos se j&#225; somos uma empresa de um, dois ou dez milh&#245;es de reais, o que sabemos &#233; que temos um capital intelectual&#160; de nossas experi&#234;ncias que n&#227;o tem pre&#231;o. E &#233; este o capital que vamos continuar a investir nele e sem cessar. O bem material vem com o tempo, e depende automaticamente das qualidades profissionais, pessoais e bondade de nossos feitos.&lt;/p&gt;
&lt;p&gt;Quando cito bondade, n&#227;o digo em somente ajudar a quem est&#225; iniciando um neg&#243;cio novo na web ou uma ajudar a quem est&#225; come&#231;ando com programa&#231;&#227;o, mas sim fora do mundo virtual, uma ajuda ao mundo real, sua fam&#237;lia, amigos e pessoas especiais que realmente precisam de seu apoio capital e intelectual.&lt;/p&gt;
&lt;p&gt;N&#227;o esque&#231;a que capital intelectual s&#243; &#233; gerado com as experi&#234;ncias geradas pelas suas tomadas de decis&#245;es, sejam elas pequenas ou grandes, sejam atrav&#233;s de suas metadas e motiva&#231;&#245;es.&lt;/p&gt;
&lt;p&gt;Capital intelectual &#233; o valor que voc&#234;s e n&#243;s temos neste instante. Viva, aprenda e compartilhe, n&#227;o espere que tudo vai cair do c&#233;u, lembre-se amanh&#227; a empresa de voc&#234;s poder&#225; ser a bola da vez, e a &#250;nica coisa que ir&#225; acompanhar cada um de voc&#234;s nesta transi&#231;&#227;o &#233; a experi&#234;ncia.&lt;/p&gt;</description>
      <pubDate>Sat, 27 Feb 2010 05:34:43 -0000</pubDate>
      <author>Carlos Eduardo</author>
      <link>http://blog.egenial.com.br/?p=438</link>
    </item>
    <item>
      <title>Ganhe uma bolsa para o curso de Rails</title>
      <description>&lt;p&gt;&lt;img src="http://blog.areacriacoes.com.br/assets/2010/2/26/twitter_promo.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Dia 01/03 come&#231;a mais uma turma do curso de &lt;a href="http://www.egenial.com.br/cursorails"&gt;Ruby on Rails do b&#225;sico ao avan&#231;ado&lt;/a&gt;. As vagas ainda est&#227;o abertas e o curso cobre desde os primeiros passos com Ruby at&#233; a cria&#231;&#227;o de um projeto completo em Rails e como coloc&#225;-lo no ar.&lt;/p&gt;


	&lt;p&gt;Combinando o conforto do estudo a dist&#226;ncia com a plataforma da &lt;a href="http://www.treinatom.com.br/"&gt;eGenial&lt;/a&gt; n&#243;s conseguimos ministrar um curso online ao vivo melhor do que um curso presencial. Pessoas de qualquer regi&#227;o do pa&#237;s podem se inscrever e entrar com p&#233; direito no mundo m&#225;gico do Ruby.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://blog.areacriacoes.com.br/assets/2010/2/26/twitter_promo.png" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;Inscrevendo-se voc&#234; ter&#225; acesso a 300 p&#225;ginas de material exclusivo, lista de discuss&#227;o fechada, c&#243;digo fonte e 22 aulas ao vivo (que tamb&#233;m s&#227;o gravadas para quem n&#227;o esteve presente). Tamb&#233;m teremos uma aula extra cobrindo todas as novidades do Rails 3.0 beta e como se preparar para a migra&#231;&#227;o.&lt;/p&gt;


	&lt;p&gt;Assista a primeira aula gratuitamente para entender como funciona o treinamento: &lt;a href="http://egenial.com.br/arquivos/cursorails/aula1.zip"&gt;&lt;span class="caps"&gt;DOWNLOAD&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;


&lt;hr /&gt;

	&lt;h2&gt;Promo&#231;&#227;o&lt;/h2&gt;


	&lt;p&gt;Para festejar o sucesso que tem sido os treinamentos de Ruby e j&#225; abrir o ano com chave de ouro vamos sortear uma bolsa integral para esta turma.&lt;/p&gt;


	&lt;p&gt;Para participar da promo&#231;&#227;o &#233; bem simples. Basta fazer um tweet com a mensagem abaixo:&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Retweet e aprenda Ruby on Rails em curso virtual ao vivo na @egenial! http://bit.ly/dpl2Gl #promorails&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://twitter.com/home?status=Retweet e aprenda Ruby on Rails em curso virtual ao vivo na @egenial! http://bit.ly/dpl2Gl #promorails"&gt;&lt;img src="http://blog.areacriacoes.com.br/assets/2010/2/26/tweet.jpg" alt="" /&gt;&lt;/a&gt; &lt;a href="http://www.egenial.com.br/cursorails"&gt;&lt;img src="http://blog.areacriacoes.com.br/assets/2010/2/26/visit.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;O ganhador ser&#225; anunciado no meu twitter e aqui no blog na segunda-feira (01/03).&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=ffFrN4XYpQM:y22CCrS6O8k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=ffFrN4XYpQM:y22CCrS6O8k:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=ffFrN4XYpQM:y22CCrS6O8k:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=ffFrN4XYpQM:y22CCrS6O8k:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=ffFrN4XYpQM:y22CCrS6O8k:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=ffFrN4XYpQM:y22CCrS6O8k:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=ffFrN4XYpQM:y22CCrS6O8k:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=ffFrN4XYpQM:y22CCrS6O8k:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
      <pubDate>Fri, 26 Feb 2010 20:56:00 -0000</pubDate>
      <author>Daniel Lopes</author>
      <link>http://feedproxy.google.com/~r/AreaCriaes-WebEDesign-Home/~3/ffFrN4XYpQM/ganhe-uma-bolsa-para-o-curso-de-rails</link>
    </item>
    <item>
      <title>Como deixar suas apps at&#233; 80% mais r&#225;pidas</title>
      <description>&lt;p&gt;No m&#234;s passado eu fiz uma apresenta&#231;&#227;o no nosso grupo local de Ruby, o &lt;a href="http://railsmg.org/"&gt;RailsMG&lt;/a&gt;, falando sobre otimiza&#231;&#227;o de frontend. As dicas da apresenta&#231;&#227;o servem para qualquer linguagem, mas eu mostro como solucionar cada problema usando o Rails.&lt;/p&gt;


	&lt;p&gt;Como tive alguns problemas na grava&#231;&#227;o e para editar o que foi filmado no dia acabou n&#227;o ficando muito legal eu resolvi regrar em formato de screencast. O v&#237;deo tem por volta de 50 minutos e mostra os conceitas da otimiza&#231;&#227;o e como aplicar na pr&#225;tica em um projeto Rails.&lt;/p&gt;
&lt;div class="message warning"&gt;
Quem estiver interessado em entrar no mundo do Rails n&#227;o deixe de participar do curso da eGenial que inicia agora dia 01/03. Para mais detalhes acesse: &lt;a href="http://www.egenial.com.br/cursorails"&gt;http://www.egenial.com.br/cursorails&lt;/a&gt;
&lt;/div&gt;

	&lt;p&gt;No m&#234;s passado eu fiz uma apresenta&#231;&#227;o no nosso grupo local de Ruby, o &lt;a href="http://railsmg.org/"&gt;RailsMG&lt;/a&gt;, falando sobre otimiza&#231;&#227;o de frontend. As dicas da apresenta&#231;&#227;o servem para qualquer linguagem, mas eu mostro como solucionar cada problema usando o Rails.&lt;/p&gt;


	&lt;p&gt;Como tive alguns problemas na grava&#231;&#227;o e para editar o que foi filmado no dia acabou n&#227;o ficando muito legal eu resolvi regrar em formato de screencast. O v&#237;deo tem por volta de 50 minutos e mostra os conceitas da otimiza&#231;&#227;o e como aplicar na pr&#225;tica em um projeto Rails.&lt;/p&gt;


	&lt;p&gt;A apresenta&#231;&#227;o &#233; bem parecida com a que apresentei no &lt;a href="http://railsforkids.com/"&gt;RailsForKids&lt;/a&gt; de 2009 mas com atualiza&#231;&#245;es e novos slides (que voc&#234; pode baixar separadamente &lt;a href="http://www.slideshare.net/danielvlopes/frontend-railsmg"&gt;aqui&lt;/a&gt;).&lt;/p&gt;


	&lt;p&gt;O c&#243;digo fonte dos exemplos est&#225; dispon&#237;vel no meu GitHub em &lt;a href="http://github.com/danielvlopes/optimizing_rails_frontends"&gt;github.com/danielvlopes/optimizing_rails_frontends&lt;/a&gt; e conta com uma vers&#227;o usando o asset_packager e outra usando o jammit.&lt;/p&gt;


&amp;amp;lt;object height="391" width="504"&gt;&amp;amp;lt;param /&gt;&amp;amp;lt;param /&gt;&amp;amp;lt;param /&gt;&amp;amp;lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=9010703&amp;amp;amp;amp;server=vimeo.com&amp;amp;amp;amp;show_title=1&amp;amp;amp;amp;show_byline=1&amp;amp;amp;amp;show_portrait=1&amp;amp;amp;amp;color=8a7ebb&amp;amp;amp;amp;fullscreen=1&amp;amp;amp;amp;group_id=" height="431" width="544"&gt;&amp;amp;lt;/embed&gt;&amp;amp;lt;/object&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=GCYtlNoY3qo:EZibQmaPMH8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=GCYtlNoY3qo:EZibQmaPMH8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=GCYtlNoY3qo:EZibQmaPMH8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=GCYtlNoY3qo:EZibQmaPMH8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?i=GCYtlNoY3qo:EZibQmaPMH8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=GCYtlNoY3qo:EZibQmaPMH8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=GCYtlNoY3qo:EZibQmaPMH8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?a=GCYtlNoY3qo:EZibQmaPMH8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AreaCriaes-WebEDesign-Home?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
      <pubDate>Fri, 26 Feb 2010 02:37:00 -0000</pubDate>
      <author>Daniel Lopes</author>
      <link>http://feedproxy.google.com/~r/AreaCriaes-WebEDesign-Home/~3/GCYtlNoY3qo/como-deixar-suas-apps-at-80-mais-r-pidas</link>
    </item>
    <item>
      <title>Curso de administra&amp;amp;#231;&amp;amp;#227;o Linux e deploy de Apps Rails</title>
      <description>&lt;p&gt;&lt;img class=&amp;quot;float-left&amp;quot; src=http://mergulhao.info//&amp;quot;http://mergulhao.info/assets/2010/2/24/egenial.jpg&amp;quot; alt=&amp;quot;logo e-genial&amp;quot; /&gt;&lt;/p&gt;

&lt;p&gt;Hoje eu e o Carlos Eduardo da &lt;a href=&amp;quot;http://www.egenialsas.com.br/&amp;quot;&gt;e-Genial&lt;/a&gt; fechamos os &#250;ltimos detalhes de um novo curso: &lt;a href=&amp;quot;http://www.egenial.com.br/imersaosysdeploy&amp;quot;&gt;Imers&#227;o Sys Deploy&lt;/a&gt;! Os alunos v&#227;o aprender tudo sobre como configurar adequadamente um VPS para rodar aplica&#231;&#245;es Rails usando Apache com Passenger, Mysql e deploy com Capistrano.&lt;/p&gt;

&lt;p&gt;E de quebra ainda v&#227;o ter cap&#237;tulos espec&#237;ficos para tratar de servi&#231;o smtp com postfix, backup, monitoramento e seguran&#231;a. &#201; um curso completo sobre administra&#231;&#227;o de servidores por um pre&#231;o imperd&#237;vel!&lt;/p&gt;

&lt;p&gt;E ainda tem mais! Cada aluno do curso ter&#225; acesso a um VPS exclusivo onde ele executar&#225; as tarefas junto comigo. As aulas ser&#227;o aos s&#225;bados pela manh&#227; pelo &lt;a href=&amp;quot;http://www.egenialsas.com.br/site/treinatom&amp;quot;&gt;TreinaTom&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Para saber mais detalhes acesse j&#225; o &lt;a href=&amp;quot;http://www.egenial.com.br/imersaosysdeploy&amp;quot;&gt;site do curso&lt;/a&gt; e fa&#231;a a sua &lt;a href=&amp;quot;http://www.egenial.com.br/imersaosysdeploy/matricula&amp;quot;&gt;inscri&#231;&#227;o&lt;/a&gt;, as vagas s&#227;o limitad&#237;ssimas.&lt;/p&gt;</description>
      <pubDate>Wed, 24 Feb 2010 01:34:00 -0000</pubDate>
      <author>Sylvestre Mergulh&#227;o</author>
      <link>http://mergulhao.info/2010/2/24/curso-de-administracao-linux-e-deploy-de-apps-rails</link>
    </item>
    <item>
      <title>Aruba - Como testar suas linhas de comando com Cucumber</title>
      <description>&lt;p&gt;Que tal testar seus scripts &lt;a href="http://www.ruby-lang.org/en/" title="Ruby Programming Language"&gt;ruby&lt;/a&gt; com Cucumber? Agora &#233; poss&#237;vel e da mesma forma que testamos as nossas aplica&#231;&#245;es web. &lt;a href="http://github.com/aslakhellesoy/aruba" title="aslakhellesoy's aruba at master - GitHub"&gt;Aruba&lt;/a&gt;, do mesmo &lt;a href="http://github.com/aslakhellesoy" title="aslakhellesoy's Profile - GitHub"&gt;criador&lt;/a&gt; do &lt;a href="http://cukes.info/" title="Cucumber - Making BDD fun"&gt;Cucumber&lt;/a&gt;, fornece uma ambiente familiar para testes de sa&#237;da, status e comandos do sistema. Abaixo um pequeno exemplo para um teste de status de sa&#237;da:&lt;/p&gt;
&lt;p&gt;Para usar aruba, basta instalar a gem:&lt;/p&gt;
&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td title="click to toggle" class="line_numbers"&gt;&lt;pre&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre&gt;sudo gem install aruba&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;e, em seguida, adicione em seu &lt;pre&gt;env.rb&lt;/pre&gt; ou em qualquer arquivo em &lt;pre&gt;features/support&lt;/pre&gt;&lt;/p&gt;
&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td title="click to toggle" class="line_numbers"&gt;&lt;pre&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre&gt;require &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;aruba&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/osantana?a=kg3-rHK7nW0:wVKxRaE4s24:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/osantana?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/osantana?a=kg3-rHK7nW0:wVKxRaE4s24:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/osantana?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/osantana?a=kg3-rHK7nW0:wVKxRaE4s24:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/osantana?i=kg3-rHK7nW0:wVKxRaE4s24:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/osantana?a=kg3-rHK7nW0:wVKxRaE4s24:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/osantana?i=kg3-rHK7nW0:wVKxRaE4s24:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/osantana?a=kg3-rHK7nW0:wVKxRaE4s24:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/osantana?i=kg3-rHK7nW0:wVKxRaE4s24:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/osantana?a=kg3-rHK7nW0:wVKxRaE4s24:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/osantana?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/osantana/~4/kg3-rHK7nW0" height="1" width="1"/&gt;</description>
      <pubDate>Mon, 22 Feb 2010 12:35:00 -0000</pubDate>
      <author>Oz&#233;ias Sant'ana</author>
      <link>http://feedproxy.google.com/~r/osantana/~3/kg3-rHK7nW0/aruba-como-testar-suas-linhas-de-comando-com-cucumber</link>
    </item>
  </channel>
</rss>
