<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>PotHix » Tech</title>
	
	<link>http://pothix.com/blog</link>
	<description>class Blog &lt; 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>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/PotHixTech" /><feedburner:info uri="pothixtech" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Meu ambiente de desenvolvimento</title>
		<link>http://feedproxy.google.com/~r/PotHixTech/~3/7vYrjR8KDvQ/meu-ambiente-de-desenvolvimento</link>
		<comments>http://pothix.com/blog/development/meu-ambiente-de-desenvolvimento#comments</comments>
		<pubDate>Wed, 29 Dec 2010 15:03:49 +0000</pubDate>
		<dc:creator>PotHix</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Environment]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://pothix.com/blog/?p=1082</guid>
		<description><![CDATA[Æ!! Fui convidado pelo @jtadeulopes e pelo @qmx para participar do meme sobre ambientes de desenvolvimento, então estou fazendo esse post para falar um pouco mais sobre o meu. Sistema Operacional Já usei Windows um bom tempo atrás, e agora tenho um pós-conceito para usar (preconceito é só quando vc não conhece), não vejo nenhuma [...]]]></description>
			<content:encoded><![CDATA[<p>Æ!!</p>

<p>Fui convidado pelo <a href="http://twitter.com/#!/jtadeulopes">@jtadeulopes</a> e pelo <a href="http://twitter.com/#!/qmx">@qmx</a> para participar do meme sobre ambientes de desenvolvimento, então estou fazendo esse post para falar um pouco mais sobre o meu.</p>

<h4>Sistema Operacional</h4>

<p>Já usei Windows um bom tempo atrás, e agora tenho um pós-conceito para usar (preconceito é só quando vc não conhece), não vejo nenhuma vantagem para utilizar ele e acho que não vale o preço (tenho um Vista e um Win7 originais que ganhei na compra do notebook e na CampusParty e nem uso).</p>

<p>Já usei Slackware (e ainda tenho ele instalado no meu notebook para brincar de vez em quando) e atualmente estou utilizando só o Ubuntu, que me fornece um ótimo ambiente para desenvolvimento. Acho muito fácil instalar coisas novas para dev com o Ubuntu, e tudo se encaixa muito bem com esse SO.</p>

<h4>Controles de Versão</h4>

<p>Já utilizei um pouco de SVN, Mercurial e Bazaar, mas não o suficiente para falar bem ou mal de qualquer um deles, por que quando eu utilizei eles supriram a minha necessidade tão bem quanto o Git.
Atualmente utilizo muito o Git, que eu acho fantástico, e a cada hora que vou utilizando eu descubro coisas novas que me surpreeendem.
Não utilizo nada gráfico para o Git, apenas linha de comando, afinal, do que mais eu preciso!? <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<h4>Linguagens de Programação</h4>

<p>Gosto de brincar com várias linguagens e sempre estou mexendo um pouco com Python e Javascript. Já faz um tempo que eu não brinco com C++, mas é outra linguagem que eu gosto bastante também.</p>

<p>Algum tempo atrás brinquei um pouco com desenvolvimento de aplicações para Android e para isso tive que brincar um pouco com Java também <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .
Mas como todos sabem, a linguagem de programação que eu mais uso atualmente é Ruby, que uso no trabalho e para alguns projetinhos pessoais.</p>

<h4>Editor de texto / IDE</h4>

<p>Eu uso o único editor de texto que uma pessoa em plena sanidade poderia usar, ou seja, o VIM! heheheh <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<p>Saindo da trollagem e voltando as vantagens, eu gosto do Vim por que ele é um editor rápido, customizável, e me faz pensar a todo momento. Para mim é estar resolvendo puzzles a cada minuto, acho divertido ficar pensando em como eu poderia estar editando aquele texto de uma forma mais divertida, e consequentemente, quanto mais eu aprendo a editar textos de uma maneira melhor mais rápido eu vou ficando para editá-los.</p>

<p>Claro que não é viável utilizar o Vim para tudo (apesar de eu estar escrevendo esse post por ele&#8230;heheh), e para algumas coisas é mais viável utilizar uma IDE. Para desenvolvimento de apps para o Android por exemplo, é muito mais fácil desenvolver utilizando o Eclipse que já tem plugin que ajuda em algumas tarefas, e é Java&#8230;Não preciso dizer mais nada.</p>

<h4>Musica</h4>

<p>Sempre estou com meu player aberto ouvindo musica, e sempre estou ouvindo coisas diferentes, começo com um random na minha lib inteira e escolho uma banda nesse meio para ouvir.
Eu tenho uma playlist das musicas que eu mais curto para ouvir nos dias que não estou afim de ficar ouvindo coisas aleatórias.
Já testei diversos players no Linux (banshee, amarok e etc), e atualmente estou utilizando o Rhythmbox, que reconhece meu Ipod e posso ouvir sempre a mesma lib em casa e no trabalho.</p>

<p>Se quiser saber as musicas que eu ouço veja <a href="http://last.fm/user/pothix">meu last.fm</a>.</p>

<h4>IMs</h4>

<p>Geralmente fico logado em mais de 6 contas de IM (2 Gtalks pessoais, 1 Jabber da empresa, 2 contas de IRC, 1 conta de Skype e ainda tem o softphone).
Parece ser meio bizarro ficar logado em tudo isso todo o tempo, mas eu só consigo essa proeza por que as pessoas que eu tenho nos IMs são inteligentes o suficiente para olhar o meu status e não em encher quando não devem, caso não eu não possa falar apenas aviso e pronto.
Em casos que preciso de bastante concentração eu fecho quase todos, deixando apenas uma conta que tem só algumas pessoas adicionadas <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p>Só para constar, se você usa MSN isso não funciona, por que se a pessoa usa MSN ela já não tem nenhuma noção.</p>

<h4>Terminal</h4>

<p>Aqui é onde eu passo 90% do meu tempo de trabalho, utilizando linha de comando, Vim (não uso interface gráfica para ele também&#8230;Não faz sentido para mim), Git e scripts em geral.
Atualmente eu uso o gnome-terminal do Ubuntu, que não deixa a desejar. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<h4>Organização</h4>

<p>Eu sou meio bizarro quanto a organização, e no meu ambiente tudo tem que ficar em seu devido lugar, assim, cada atalho de teclado me leva onde eu sei que as coisas estão.
No trabalho tenho 2 monitores e 4 areas de trabalho, sendo que fica organizado assim:</p>

<ol>
<li>Um browser em cada monitor 

<ul>
<li>Firefox com Vimperator na esquerda com 3 abas com páginas que eu uso no sistema que eu trabalho atualmente</li>
<li>Chrome no monitor da esquerda com 2 e-mails, todoist e pivotal tracker</li>
</ul></li>
<li>Todos os IMs e um terminal</li>
<li>Dois terminais, um em cada monitor com projetos auxiliares</li>
<li>Dois terminais, os dois abertos com o projeto que estou trabalhando

<ul>
<li>No terminal da direita deixo uma aba com Rails server, uma com Rails console e uma para o Vim</li>
<li>No terminal da esquerda rodo testes e outras coisas</li>
</ul></li>
</ol>

<p>Tem várias outras coisas que uso (como o Notecase para tomar notas por exemplo) mas acho que isso ae já é uma visão geral <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<p>Agora eu passo a bola para o <a href="http://twitter.com/#!/dlibanori">@dlibanori</a>, <a href="http://twitter.com/#!/crocidb">@crocidb</a> e <a href="http://twitter.com/#!/bbcoimbra">@sceadugenga</a></p>
<img src="http://feeds.feedburner.com/~r/PotHixTech/~4/7vYrjR8KDvQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pothix.com/blog/development/meu-ambiente-de-desenvolvimento/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://pothix.com/blog/development/meu-ambiente-de-desenvolvimento</feedburner:origLink></item>
		<item>
		<title>Semana de eventos (#rubyconfbr, #adl e #gddbr)</title>
		<link>http://feedproxy.google.com/~r/PotHixTech/~3/RsyaY4xjwSs/semana-de-eventos-rubyconfbr-adl-e-gddbr</link>
		<comments>http://pothix.com/blog/events/semana-de-eventos-rubyconfbr-adl-e-gddbr#comments</comments>
		<pubDate>Sun, 31 Oct 2010 17:07:46 +0000</pubDate>
		<dc:creator>PotHix</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://pothix.com/blog/?p=1035</guid>
		<description><![CDATA[Æ!! Na semana passada (semana do dia 24 ao dia 30 de outubro) foi uma semana de grandes eventos, que eu tive o prazer de participar de todos! Rubyconf Brasil A Rubyconf Brasil é o Antigo Rails Summit Latin America, que acontecia no centro de convenções do Anhembi, e agora mudou sua localização para o [...]]]></description>
			<content:encoded><![CDATA[<p>Æ!!</p>

<p>Na semana passada (semana do dia 24 ao dia 30 de outubro) foi uma semana de grandes eventos, que eu tive o prazer de participar de todos! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<h4>Rubyconf Brasil</h4>

<p>A <a href="www.rubyconf.com.br">Rubyconf Brasil</a> é o Antigo Rails Summit Latin America, que acontecia no centro de convenções do Anhembi, e agora mudou sua localização para o centro de convenções Frei Caneca, para diminuir os custos e prover um local mais acessível para os participantes (próximo ao metrô e a avenida paulista).</p>

<p>O evento foi muito bom, contando com mais de 20 palestras com um número bem equilibrado de palestrantes nacionais e internacionais, que ministraram muitas palestras com ótimo conteúdo técnico.
Infelizmente o evento teve problemas com WIFI, e os participantes mal conseguiram acessar a internet utilizando a infra do evento.</p>

<p>Algumas palestras:</p>

<ul>
<li>A palestra do <strong>Jim Weiric</strong> sobre SOLID Ruby foi fantástica! Além dele ser um ótimo orador, muito divertido, mostrou conceitos bem interessante e algumas comparações com outras linguagens. Uma das melhores palestras do evento.</li>
<li>O <a href="http://github.com/tenderlove">tenderlove</a> mandou muito bem na sua palestra sobre Fibers e ruby 1.9. Além das corriqueiras brincadeiras com fotos sobre a suposta criação da palestra, ele mostrou um conteúdo muito interessante, com muitos exemplos préviamente contruídos para demonstrar o conceito de Fibers. Uma palestra densa mas muito boa! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>O <a href="http://github.com/josevalim">José Valim</a> palestrou sobre Rails 3 e mostrou algumas das novas funcionalidades e também o que estar por vir, e como sempre deixou a dica para a galera contribuir, &#8220;as próximas features depende de vocês&#8221; <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>O <a href="http://github.com/wycats">Yehuda Katz</a> fez uma palestra bem interessante sobre como melhorar a performance da sua aplicação movendo muito de sua lógica para o cliente, e apresentou um projeto que ele está trabalhando atualmente. Gostei do conceito, mesmo pensando que não é um conceito para aplicar para qualquer aplicação web, mas para um aplicação com muitos acessos faz muitos sentido e o modelo parece bom. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>O pessoal da Caelum <a href="http://github.com/andersonleite">Anderson Leite</a> e <a href="http://github.com/guilhermesilveira">Guilherme Silveira</a> apresentaram sobre como utilizar uma Ruby funcionalmente, e a palestra foi muito boa, apesar de ser bem densa e os dois falarem rápido</li>
</ul>

<p>Tiveram outras ótimas palestras, sobre encoding do Ruby (que é bizarro assim como qualquer outra implementação de encoding), integração de redes sociais, redis e resque e etc. Não vou falar de todas aqui para o post não ficar muito grande, mas aconselho a ficar de olho nas notícias pois a <a href="www.locaweb.com.br">Locaweb</a> filmou o evento e provavelmente vão liberar os vídeos das palestras, e quando isso acontecer, aconselho você a assistir! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p>E é claro que nesse evento também teve um espaço para a desconferência, onde apareceram algumas outras apresentações legais (cômicas ou não), sobre assuntos derivados, como: node.js, deploy continuo, programando algo parecido com Ruby para Java, e etc! Foi bem divertido também!</p>

<p>Além de tudo isso ainda temos que contar o networking com a galera que foi fantástico, rever velhos amigos que quase nunca vemos (a galera da <a href="http://www.fande.com.br">Fande</a> e do Ikwa (<a href="http://twitter.com/mateuslinhares">@mateuslinhares</a>, <a href="http://twitter.com/danielaltman">@danielaltman</a>, <a href="http://twitter.com/jorge_silveira">@jorge_silveira</a>, <a href="http://twitter.com/willian">@willian</a>, <a href="http://twitter.com/_bojak">@_bojak</a>, <a href="http://twitter.com/rafaeltimbo">@rafaeltimbo</a> e <a href="http://twitter.com/vitormateus">@vitormateus</a>) por exemplo), reencontrar o pessoal do <a href="http://www.guru-sp.org">Guru-SP</a> que apesar de encontrar sempre é legal reunir toda a galera e foi mais um encontro <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , e ainda tem mais um monte de gente que encontrei por lá, e isso fora as pessoas que conheci! Enfim&#8230;Networking #FTW! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>

<p><a href="http://picasaweb.google.com/Willian.molinari/20101026Rubyconf?feat=directlink">Minhas fotos do evento</a></p>

<h4>Android Dev Lab</h4>

<p>Eu sinceramente esperava que o Google fosse dar um Nexus One para a galera assim como eles fizeram na OSCon lá fora, mas obviamente me enganei <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> .
No fim das contas o evento foi razoável, apesar dos problemas com WIFI (que já é corriqueiro&#8230;), foi interessante para conhecer um pouco do SDK, principalmente para quem não ia no Google Developers Day no dia seguinte (o que não foi o meu caso), e para ganhar uma camiseta bonitinha do Android <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>

<p>Resumo: Foi legal mas eu esperava mais.</p>

<p><a href="http://picasaweb.google.com/Willian.molinari/20101028AndroidDevLab?feat=directlink">Minhas fotos do evento</a></p>

<h4>Google Developers Day</h4>

<p>Para compensar o Android Dev Lab o GDD foi um evento fantástico! Muito mais gente (como era de se esperar) poucos lugares nas palestras principais, mas um ótimo conteúdo de palestras (se você souber escolher bem <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ).</p>

<p>Algumas palestras:</p>

<ul>
<li>Para mim foi quase um Tim Bray Developers Day, por que eu assisti 3 palestras do Tim Bray, todas sobre Android, direta ou indiretamente. Gostei de todas, o Tim falou muito bem sobre os temas que escolheu. Deu uma boa visão sobre design de aplicações, sobre o Android em si (algumas coisas eu já tinha visto no dia anterior&#8230;), e mostrou por que eles seguem algumas filosofias.</li>
<li>Uma frase que ele falou que eu ia mencionar no twitter na hora mas não ia caber, e resolvi deixar para (trollar aqui n)o post:</li>
<li>&#8220;O Android Market não precisa de moderação por que sabemos que as pessoas são inteligentes e caso uma aplicação não seja boa ou pareça maliciosa, eles simplesmente não instalam e não usam&#8221;</li>
<li>A palestra sobre Desenvolvimento de extensões para o Chrome foi bem legal e mostrou como é simples desenvolver uma extensão e como ele consegue acesso fácil ao chrome apenas utilizando Javascript. E o mais engraçado é que o desenvolvedor do Chromed Bird fez uma pequena apresentação mostrando a extensão dele e ele tinha uma direct message com um link para um twit meu. Vai saber <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </li>
<li>Achei que a palestra sobre HTML5 seria a mesmice de sempre, mas aprendi muita coisa interessante com ela! Não sabia que agora existem buscas no estilo jQuery nativamente no Javascript. Algo como .search(&#8216;#id&#8217;) (não é esse método, mas existe), fora as dicas que ele deu e os exemplos que ele mostrou que valeram a pena. Vou procurar a apresentação dele na internet depois para dar uma olhada novamente, e se eu encontrar atualizo o post.</li>
</ul>

<p>Novamente, teve outras palestras legais, mas essas são as que eu lembro, e aproveitei! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p>Nesse evento também encontrei velhos amigos como o <a href="http://twitter.com/dalembertian">Rubens Altimari</a> da <a href="http://www.whitehat.com.br">Whitehat</a> empresa que eu já tive o prazer de trabalhar, e meu amigo <a href="http://www.twitter.com/brunoassis">Bruno Assis</a> que sempre marcamos de conversar e nunca nos encontramos <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> .</p>

<p><a href="http://picasaweb.google.com/Willian.molinari/20101029GoogleDevelopersDay2010?feat=directlink">Minhas fotos do evento</a></p>

<h4>Resumo</h4>

<p>Foi uma semana <strong>Muito</strong> cansativa, fazia tempo que eu não ficava tão cansado assim. Entre um evento e outro teve as minhas seções de fisioterapia (para curar umas dores nas costas devido a uma queda), e também trabalhei bastante para compensar os eventos (e o mais legal é que foi uma parte divertida do trabalho para fazer!).</p>

<p>No fim das contas, tudo isso valeu muito a pena, aprendi bastante, conheci pessoas, revi outras pessoas, consegui manter o fluxo do meu trabalho, e descansei no final da semana! Portanto&#8230; Vitória! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<p>Há braços</p>
<img src="http://feeds.feedburner.com/~r/PotHixTech/~4/RsyaY4xjwSs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pothix.com/blog/events/semana-de-eventos-rubyconfbr-adl-e-gddbr/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pothix.com/blog/events/semana-de-eventos-rubyconfbr-adl-e-gddbr</feedburner:origLink></item>
		<item>
		<title>Conto da migração para Rails 3</title>
		<link>http://feedproxy.google.com/~r/PotHixTech/~3/BzSiROVKwxk/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>
<img src="http://feeds.feedburner.com/~r/PotHixTech/~4/BzSiROVKwxk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pothix.com/blog/development/conto-da-migracao-para-rails-3/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://pothix.com/blog/development/conto-da-migracao-para-rails-3</feedburner:origLink></item>
		<item>
		<title>Motorola Milestone e Android</title>
		<link>http://feedproxy.google.com/~r/PotHixTech/~3/7HOyMKjVBhg/motorola-milestone-e-android</link>
		<comments>http://pothix.com/blog/android/motorola-milestone-e-android#comments</comments>
		<pubDate>Wed, 08 Sep 2010 19:15:31 +0000</pubDate>
		<dc:creator>PotHix</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://pothix.com/blog/?p=1014</guid>
		<description><![CDATA[Æ!! Muita gente tem me perguntado sobre o meu Android atual, um motorola Milestone, e resolvi postar algumas informações e opiniões sobre o aparelho e sobre o Android em si. Primeiramente, gostaria de dizer que o Android é um sistema muito bom, e estou bastante satisfeito com as features, apps, SDK e etc. Milestone É [...]]]></description>
			<content:encoded><![CDATA[<p>Æ!!</p>

<p>Muita gente tem me perguntado sobre o meu Android atual, um motorola Milestone, e resolvi postar algumas informações e opiniões sobre o aparelho e sobre o Android em si.</p>

<p>Primeiramente, gostaria de dizer que o Android é um sistema muito bom, e estou bastante satisfeito com as features, apps, SDK e etc.</p>

<h4>Milestone</h4>

<p>É um aparelho bem legal e na minha opinião é o Android mais &#8220;custo X benefício&#8221; do Brasil. Tem um hardware bom o bastante (processador 600 Mhz e 256 de RAM), que já dá para rodar alguns joguinhos legais e deixar o telefone com uma boa usabilidade.
Uma coisa que me agrada muito no telefone é o teclado qwerty físico, por que eu sempre estou conversando com alguém no Gtalk ou escrevendo algumas outras coisas, e eu tenho certeza que iria passar muita raiva com o teclado virtual (apesar de estar gostando do teclado virtual do Milestone quando está no modo horizontal).</p>

<p>A comparação do Milestone com o Nexus One dá uma grande diferença de performance, sendo que o Nexus vence por uma boa diferença (tem processador de 1Gb e memória de 512), mas como eu já disse antes, o Milestone é um ótimo custo X benefício para quem nunca teve um Android e quer uma linha &#8220;poderosa&#8221; <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<h4>Android</h4>

<p>O Milestone em particular vem com o Android 2.1, e a Motorola promete o Froyo (Android 2.2) para o primeiro trimestre de 2011.
Uma pequena lista de vantagens legais do Android:</p>

<ul>
<li>Download de aplicações legais facilmente pelo Android Market</li>
<li>Muitas aplicações de qualidade no Android Market com Rating e comentários dos próprios usuários</li>
<li>Api de desenvolvimento bem legal e multiplataforma</li>
<li>Integração fantástica com os serviços do Google, até comecei a usar alguns que eu não usava só por que é <em>MUITO</em> bom.</li>
<li>Multitasking de verdadinha</li>
<li>Sua liberdade continua intacta</li>
</ul>

<h4>Problemas</h4>

<p>Tenho visto pouquíssimos problemas no Milestone. O unico que eu vi até hoje foi um reboot do celular enquanto eu estava jogando, mas acho que eu exagerei um pouco no multitasking (para quem não sabe o Android tem um multitasking real, portanto, você precisa fechar algumas apps de vez em quando, por que elas ficam rodando em background)</p>

<h4>Considerações</h4>

<p>Eu recomendo muito comprar um Android, e o que eu recomendo atualmente no Brasil é o Milestone, por que você consegue sentir um gostinho do que o Android pode fazer sem gastar tanto assim.</p>

<p>Para quem tem ou está pensando em ter um Android, pode aproveitar para dar uma lida na <a href="https://docs.google.com/document/pub?id=1ZtMGH-HZvNTjprVPpAcxhKr19FJ6ReFaJ_YFmtt0Z_4">lista de aplicações legais</a> que eu estou mantendo com uns amigos.</p>

<p>E Aguardem mais posts meus sobre Android <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

<p>Há braços</p>
<img src="http://feeds.feedburner.com/~r/PotHixTech/~4/7HOyMKjVBhg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pothix.com/blog/android/motorola-milestone-e-android/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://pothix.com/blog/android/motorola-milestone-e-android</feedburner:origLink></item>
		<item>
		<title>Linux, Vim, Screen e Pair programming!</title>
		<link>http://feedproxy.google.com/~r/PotHixTech/~3/qvs9DBWMsZ8/linux-vim-screen-e-pair-programming</link>
		<comments>http://pothix.com/blog/development/linux-vim-screen-e-pair-programming#comments</comments>
		<pubDate>Mon, 29 Mar 2010 02:57:45 +0000</pubDate>
		<dc:creator>PotHix</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://pothix.com/blog/?p=933</guid>
		<description><![CDATA[Æ!! Aqui estou eu mais uma vez para falar mais uma das maluquices que eu fiz um bom tempo atrás mas não tive tempo de postar. Primeiramente eu vou falar o que muita gente já falou muito bem, que é sobre screen e pair programming. Mas vou dizer como funcionou para mim. Alguns posts que [...]]]></description>
			<content:encoded><![CDATA[<p>Æ!!</p>

<p>Aqui estou eu mais uma vez para falar mais uma das maluquices que eu fiz um bom tempo atrás mas não tive tempo de postar.</p>

<p>Primeiramente eu vou falar o que muita gente já falou muito bem, que é sobre screen e pair programming. Mas vou dizer como funcionou para mim.
Alguns posts que eu li antes e depois de começar a brincar com screen e pair programming, e que eu gostei:</p>

<ul>
<li><a href="http://www.caikesouza.com/blog/2009/05/remote-pair-programming-with-screen/">Post do Caike sobre Pair programming remoto usando screen</a></li>
<li><a href="http://qmx.me/pair%20programming">Post do Qmx sobre pair programming usando screen</a></li>
</ul>

<p>Primeiramente vamos começar com umas dicas do post do caike:</p>

<p>Para mim foi necessário alterar as permissões do Screen:</p>

<pre><code>sudo chmod +s /usr/bin/screen
sudo chmod 775 /var/run/screen
</code></pre>

<p>Agora é só seguir a velha receita dos dois posts:</p>

<p>Primeiro usuário:</p>

<ul>
<li>O primeiro usuário acessa o computador host via ssh</li>
<li>executa o comando <strong>screen -S nomedoscreen</strong></li>
</ul>

<p>Segundo usuário:</p>

<ul>
<li>Acessa o servidor com o mesmo nome de usuário/senha do primeiro</li>
<li>executa screen -x</li>
</ul>

<p>Pronto! As duas pessoas estão compartilhando a mesma tela agora e podem usar o Vim para programar (claro, qual outro editor seria, não!?).</p>

<p>Nunca consegui utilizar o screen multiusuário (como mencionado no post do caike) mas isso não é um grande problema. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<h4>Como eu usei</h4>

<p>Primeiramente fiz um pair programming normal com o <a href="http://twitter.com/mateuslinhares">@mateuslinhares</a>, onde nós dois ficavamos no mesmo screen conversando (estavamos há menos de 2 metros de distância), e cada um com seu teclado, podendo intervir a qualquer momento.
Isso foi legal por que não precisávamos ficar dividindo espaço de um mesmo monitor ou de um mesmo teclado, e ainda driblava outros problemas que tínhamos na época.</p>

<h4>Uma nova idéia</h4>

<p>Na época desse pair programming estavamos com uma task grande e trabalhosa, mas podia ser feita individualmente, e provavelmente seria mais produtiva do que em pair programming, mas tinha uma particularidade muito interessante. Cada um de nós conhecia melhor uma parte do sistema, portanto, se mantivessemos contato contínuo isso ia acelerar o trabalho, pois precisávamos alterar/retirar algumas coisas que podiam ou não ser importantes para o sistema como um todo.
Levando tudo isso em conta me surgiu uma idéia:</p>

<blockquote>
  <p>Por que não fazer tudo com um &#8220;semi pair programming&#8221;, onde cada um trabalhava no seu computador mas visualizando a tela do outro em um split.</p>
</blockquote>

<p>Tanto eu como o @mateuslinhares estamos acostumados a separar o nosso vim em vários splits verticais e horizontais, ou seja, um split vertical do screen não seria o problema.</p>

<h4>O que fizemos</h4>

<p>Decidimos então seguir o seguinte script:</p>

<p>Setup das duas maquinas:</p>

<ul>
<li>Vim</li>
<li>Screen</li>
<li>Um usuário em comum</li>
</ul>

<p>PotHix:</p>

<ul>
<li>com o usuário compartilhado</li>
<li>executa um <strong>screen -S pothix</strong> na sua maquina</li>
<li>Abre um novo split no screen com o comando <strong>ctrl+a s</strong></li>
<li>Nesse novo split acessa a maquina do Mateus e executa <strong>screen -x</strong> para acessar o screen que o @mateuslinhares criou na maquina dele</li>
<li>Volta para o split anterior e trabalha normalmente</li>
</ul>

<p>@mateuslinhares</p>

<ul>
<li>com o usuário compartilhado</li>
<li>executa um <strong>screen -S mateuslinhares</strong> na sua maquina</li>
<li>Abre um novo split no screen com o comando <strong>ctrl+a s</strong></li>
<li>Nesse novo split acessa a maquina do Mateus e executa <strong>screen -x</strong> para acessar o screen que o PotHix criou na maquina dele</li>
<li>Volta para o split anterior e trabalha normalmente</li>
</ul>

<p>Seguindo esse script teremos os 2 utilizando um screen com um split, sendo que um split é para seu trabalho local e no outro você pode acompanhar e dar pitacos no trabalho do seu comparsa! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<h4>Benefícios</h4>

<p>No caso dessa nossa task isso resolveu muito o nosso problema, por que conseguimos trabalhar em locais distintos mas sempre em constante comunicação, o que sempre trazia alguns comentários como:</p>

<p>PotHix: Ow&#8230;Não tira isso aí não por que vai quebrar tal parada.</p>

<p>ou então:</p>

<p>Mateuslinhares: Cara&#8230;Olha isso aqui no screen, dá para fazer na sua parte tambem.</p>

<h4>Conclusão</h4>

<p>Para mim foi muito bom e recomendo a todos para tentarem algo do tipo quando tiverem chance (a não ser que você use Textmate&#8230;nesse caso&#8230;boa sorte! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> )!
A unica coisa que eu recomendo é utilizar 2 monitores, assim você pode deixar a tela do seu comparsa no outro monitor (divida os monitores verticalmente) e trabalhar com vários splits no seu monitor. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> 
É totalmente possível trabalhar com 1 monitor apenas (foi assim que trabalhamos) mas você obviamente perde um pouco de espaço <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

<p>Espero que essas informações sejam úteis para mais alguem.</p>

<p>Qualquer dúvida ou sugestão deixe nos comentários. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p>Há braços</p>
<img src="http://feeds.feedburner.com/~r/PotHixTech/~4/qvs9DBWMsZ8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pothix.com/blog/development/linux-vim-screen-e-pair-programming/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://pothix.com/blog/development/linux-vim-screen-e-pair-programming</feedburner:origLink></item>
		<item>
		<title>Yahoo Open Hack 2010</title>
		<link>http://feedproxy.google.com/~r/PotHixTech/~3/pK3E_uAZETc/yahoo-open-hack-2010</link>
		<comments>http://pothix.com/blog/events/yahoo-open-hack-2010#comments</comments>
		<pubDate>Mon, 29 Mar 2010 02:37:20 +0000</pubDate>
		<dc:creator>PotHix</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://pothix.com/blog/?p=930</guid>
		<description><![CDATA[Æ!! E ae galera esperta! Para quem ainda não soube, no final de semana passado rolou o Yahoo Open Hack Day 2010! O intuito do evento é juntar uma grande quantidade de Hackers para criar serviços úteis utilizando informações públicas e de preferência utilizar as API&#8217;s do Yahoo (havia premios para alguns hacks com elas). [...]]]></description>
			<content:encoded><![CDATA[<p>Æ!!</p>

<p>E ae galera esperta!</p>

<p>Para quem ainda não soube, no final de semana passado rolou o Yahoo Open Hack Day 2010! O intuito do evento é juntar uma grande quantidade de Hackers para criar serviços úteis utilizando informações públicas e de preferência utilizar as API&#8217;s do Yahoo (havia premios para alguns hacks com elas).</p>

<p>Uma das coisas legais do evento é que nada é proibido com relação aos Hacks, ou seja, você pode fazer um Hack com as ferramentas do Google (não vai concorrer aos premios, mas poderá apresentar lá e tudo mais), todas as linguagens de programação estão permitidas, não somente hacks web eram permitidos, o que deixou a criatividade ir longe. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>

<h4>Equipe e idéia</h4>

<p>Participei do evento juntamente com uma equipe que formamos no <a href="www.ikwa.com.br">Ikwa</a>, e chamamos a equipe de SleepyProgrammers.</p>

<p>Nossa idéia era fazer um site para marcar rolês fotográficos, e utilizaríamos para isso as API&#8217;s do Flickr, Meme, Weather e Maps.</p>

<p>Ao chegar no evento e ver a palestra sobre YQL nós já percebemos que não seria necessário aprender a usar essas várias API&#8217;s e apenas precisávamos aprender a usar o YQL e saber quais informações poderíamos retornar de qual serviço. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<h4>Metodologia e projeto</h4>

<p><a href="http://pothix.com/blog/wp-content/uploads/2010/03/4465519702_ba64cce5a7.jpg"><img src="http://pothix.com/blog/wp-content/uploads/2010/03/4465519702_ba64cce5a7.jpg" alt="" title="4465519702_ba64cce5a7" width="500" height="333" class="aligncenter size-full wp-image-942" /></a></p>

<p>Como já estamos acostumados a utilizar Scrum no <a href="www.ikwa.com.br">Ikwa</a> nós resolvemos fazer o mesmo para o nosso projetinho. Começamos com uma planning meeting logo na primeira hora para poder dar uma estimada no que pretendíamos fazer, e logo depois dividir as tarefas entre os membros da equipe.
Mais ou menos de 2 em 2 horas (ou um pouco mais) fazíamos umas stand-up meetings para manter todos atualizados. A noite percebemos que isso não estava sendo muito necessário por que estávamos em constante comunicação, mas mesmo assim resolvemos seguir o costume, afinal demorava apenas uns 4 minutos. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p>O projeto seguia bem, com layout legal e algumas buscas supostamente funcionando até mais ou menos as 9 da noite.</p>

<h4>Os problemas</h4>

<ul>
<li>Já percebemos que a nossa busca não estava retornando exatamente o que gostaríamos de receber, mas deixamos para dar uma refinada nisso no final do tempo, para não ficar muito tempo presos nisso.</li>
<li>Tivemos um programador a menos (<a href="http://twitter.com/_bojak">@_bojak</a>) que infelizmente estava usando Windows (acreditem se quiser) por que o netbook que ele comprou (exatamente para evitar ter que usar windows no notebook velho que ele tinha) não chegou a tempo do evento. Muitas das coisas que são simples de se instalar/fazer em um &#8220;Unix like&#8221; são uma grande dor de cabeça para se fazer no Windows, portanto o @_bojak teve tantos problemas que chegou uma hora que desistiu de colocar a mão em código.</li>
<li>Algum descuidado da equipe criou a pasta &#8220;Views&#8221; no famigerado Textmate (escrevi uma gracinha aqui e apaguei para não gerar flame de textmate), e assim bugou a aplicação na minha maquina Linux, e me deixou um tempinho procurando qual era o problema. #fail</li>
<li>O Heroku não colaborou para funcionar utilizando o bundler, e depois de muito tempo tentando nós abandonamos o bundler e utilizamos oldstyle mesmo.</li>
<li>O nosso outro programador (<a href="http://twitter.com/jorge_silveira">@jorge_silveira</a>) saiu (já tinha avisado que sairia) dizendo que voltaria e simplesmente deixou a equipe na mão (tem seus argumentos, mas essa é minha opinião&#8230;)</li>
</ul>

<h4>O fail do projeto</h4>

<p>Depois desse monte de problemas eu já estava desmotivado com o projeto e comecei a ficar com bastante sono, portanto tirei umas 3 horas para dormir (fora o tempo que dormi na mesa), enquanto só o <a href="http://twitter.com/_bojak">@_bojak</a> ficou trabalhando motivadão (usando o computador do <a href="http://twitter.com/rafaeltimbo">@rafaeltimbo</a> que tambem estava dormindo <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ).</p>

<p>Logo pela manhã sabendo que um programador tinha arregado (<a href="http://twitter.com/jorge_silveira">@jorge_silveira</a>), um estava impossibilitado de trabalhar com seu próprio computador (<a href="http://twitter.com/_bojak">@_bojak</a>) e nossa busca não estava retornando coisas legais para continuar, nós decidimos que esse projeto ficaria para depois do Open Hack Day.</p>

<p>No fim das contas fizemos uma retrospectiva bem legal, onde vimos grande parte dos problemas que tivemos e boa parte das soluções tambem, foi bem legal! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<h4>O evento</h4>

<p>Ok, nosso projeto não vingou mesmo, mas o evento valeu muito para mim! Aprendi coisas novas, revi amigos, conheci pessoas novas, conheci as API&#8217;s do Yahoo, comi e bebi de graça, descobri que não devo acreditar nas palavras de alguns, descobri que algumas pessoas com certeza estarão na minha equipe novamente se quiserem&#8230;. E mais várias outras coisas!</p>

<p>No fim das contas eu tenho uma coisa para recomendar para quem não foi&#8230; Quando tiver o próximo, não perca a oportunidade! O evento vale muito a pena! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p>Para quem quiser ver as fotos que eu tirei no evento pode dar uma olhada no meu <a href="http://picasaweb.google.com/Willian.molinari/Openhack?feat=directlink">album do Picasa</a>.</p>

<p>Há braços</p>
<img src="http://feeds.feedburner.com/~r/PotHixTech/~4/pK3E_uAZETc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pothix.com/blog/events/yahoo-open-hack-2010/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://pothix.com/blog/events/yahoo-open-hack-2010</feedburner:origLink></item>
		<item>
		<title>Palestra sobre Vim</title>
		<link>http://feedproxy.google.com/~r/PotHixTech/~3/winjTYHgVPc/palestra-sobre-vim</link>
		<comments>http://pothix.com/blog/presentation/palestra-sobre-vim#comments</comments>
		<pubDate>Mon, 29 Mar 2010 02:07:04 +0000</pubDate>
		<dc:creator>PotHix</dc:creator>
				<category><![CDATA[Presentation]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://pothix.com/blog/?p=924</guid>
		<description><![CDATA[Æ!! E ae pessoal, Esse vai ser um post curto, apenas para deixar registrado algumas informações sobre a palestra de Vim que teve no sétimo encontro do Guru-sp (sim, eu fui o palestrante ). Primeiramente, já começo com uma desculpa, por que já faz mais de 2 semanas que palestrei e só agora estou fazendo [...]]]></description>
			<content:encoded><![CDATA[<p>Æ!!</p>

<p>E ae pessoal,</p>

<p>Esse vai ser um post curto, apenas para deixar registrado algumas informações sobre a palestra de Vim que teve no sétimo encontro do Guru-sp (sim, eu fui o palestrante <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ).</p>

<p>Primeiramente, já começo com uma desculpa, por que já faz mais de 2 semanas que palestrei e só agora estou fazendo esse post. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>

<p>Foi bem legal palestrar para uma galera que já conhecia ao menos um pouco do editor. Quando eu estava planejando o que eu ia falar eu fiquei com uma grande dúvida de qual seria a minha linha de apresentação, por que eu não sabia quantos já conheciam o editor, portanto eu poderia chegar falando de coisas avançadas e ninguem entenderia nada, ou pelo contrário, se muitos conhecessem e eu chegasse falando de coisas básicas demais a palestra seria um saco.
A minha solução para isso foi preparar os slides de uma forma que eu conseguisse falar mais ou menos de determinados assuntos baseado no conhecimento do pessoal. Os slides que saíram foram esses:</p>

<div id="__ss_3581559" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;">Vim</strong><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=vim-100328211223-phpapp02&amp;stripped_title=vim-3581559" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=vim-100328211223-phpapp02&amp;stripped_title=vim-3581559" allowscriptaccess="always" allowfullscreen="true"></embed></object>
</div>

<p>Quando perguntei para o pessoal quem já utilizava, quem nunca abriu (ou não conseguiu sair&#8230;heheh) e que usa como editor principal, eu descobri que estava equilibrado. Portanto segui uma linha mais comum.</p>

<p>Tive a sorte do <a href="http://www.agaelebe.com.br">agaelebe</a> gravar (valeu Hugo!), e portanto temos o vídeo tambem:</p>

<p><embed src="http://blip.tv/play/hOdBgsKoZgI" type="application/x-shockwave-flash" width="480" height="390" wmode="transparent" allowscriptaccess="always" allowfullscreen="true" ></embed></p>

<p>Qualquer dúvida, comentário ou sugestão é só postar aqui! <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p>Há braços</p>
<img src="http://feeds.feedburner.com/~r/PotHixTech/~4/winjTYHgVPc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pothix.com/blog/presentation/palestra-sobre-vim/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://pothix.com/blog/presentation/palestra-sobre-vim</feedburner:origLink></item>
		<item>
		<title>[BookReview] A cabeça de Steve Jobs</title>
		<link>http://feedproxy.google.com/~r/PotHixTech/~3/RxiEMpza1FU/bookreview-a-cabeca-de-steve-jobs</link>
		<comments>http://pothix.com/blog/books/bookreview-a-cabeca-de-steve-jobs#comments</comments>
		<pubDate>Tue, 05 Jan 2010 02:08:40 +0000</pubDate>
		<dc:creator>PotHix</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Entrepreneurship]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://pothix.com/blog/?p=890</guid>
		<description><![CDATA[Æ!! Aqui estou eu novamente para falar de um livro que eu li nas férias! Dessa vez vou comentar sobre: &#8220;A cabeça de Steve Jobs&#8221; Sobre o livro O livro é bem interessante e conta como Steve Jobs fez para ter o sucesso que tem atualmente, contando não somente os acertos, mas também os erros [...]]]></description>
			<content:encoded><![CDATA[<p>Æ!!</p>

<p>Aqui estou eu novamente para falar de um livro que eu li nas férias! Dessa vez vou comentar sobre: <strong>&#8220;A cabeça de Steve Jobs&#8221;</strong></p>

<h4>Sobre o livro</h4>

<p>O livro é bem interessante e conta como Steve Jobs fez para ter o sucesso que tem atualmente, contando não somente os acertos, mas também os erros de Steve com o mercado, o que faz com que você caia na real que ele (assim como você) é apenas uma pessoa comum e que as vezes suas decisões fantásticas levavam a uma má situação.</p>

<h4>Steve Jobs</h4>

<p>Como todos que me conhecem sabem, eu estou longe de ser um Apple fan, mas mesmo assim tive vontade de ler esse livro para ver se realmente Steve Jobs é tudo o que dizem.</p>

<p>A experiência do livro mostra um Steve bem rude com seus funcionários, mas que fazia as coisas andarem corretamente dentro da empresa. Pelo visto ele tinha as boas partes de vários lados, pois ele tinha aquela grande vontade de mudar o mundo e além disso era teimoso e estava disposto a apostar pesado em seus produtos independentemente do quanto ele ia ter que arriscar para isso.</p>

<p>Achei muito interessante o modo como ele revolucionou a Apple focando em poucos produtos, mas produtos de qualidades dos quais eles dominavam por completo.
Outra coisa que eu achei legal da personalidade dele é o perfeccionismo, o que ajuda a criar ótimos produtos, coisas que foram pensadas minunciosamente para estar da melhor forma possível, e isso não está presente em todos os lugares, atualmente o que vemos pelo mercado são vários produtos que foram pensados para funcionarem bem, e não para atenderem todas as necessidades ou durarem muito.</p>

<p>Elitismo! Isso é uma coisa que eu acho bem importante por sinal, Steve sempre estava buscando pelos melhores, pessoas que ele sabia que fariam o que seria de melhor para o que ele estava desenvolvendo, e não se importava com a quantidade de dinheiro que precisaria para ter essa pessoa (ou até mesmo esse objeto, ele também fazia isso com locais e objetos, sempre o melhor!) em seus projetos.</p>

<h4>Prós do livro</h4>

<p>Achei bem legal as fontes de todas as frases que estão no livro, o que comprova cada uma das entrevistas que o autor fez com as pessoas que estavam próximas de Steve Jobs nesse meio tempo.</p>

<p>Falar sobre o sucesso de Steve Jobs em suas duas outras empresas (Pixar e NeXT) e o quanto elas influenciaram na vida da própria Apple.</p>

<h4>Contras do livro</h4>

<p>Você fica totalmente perdido no tempo quando está lendo. O livro não foca em uma ordem cronológica, portanto hora você está vendo uma citação de 1997 e logo depois uma de 2002, e no próximo capítulo uma de 2000.</p>

<h4>Conclusão</h4>

<p>Se você gosta de criar coisas, ou pensa em abrir uma empresa, leia esse livro e entenda uma forma muito interessante de ver como fazer produtos, erguer uma empresa ou conquistar pessoas.
Esse livro com certeza já mudou um pouco a minha forma de pensar. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

<p>Há braços</p>
<img src="http://feeds.feedburner.com/~r/PotHixTech/~4/RxiEMpza1FU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pothix.com/blog/books/bookreview-a-cabeca-de-steve-jobs/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://pothix.com/blog/books/bookreview-a-cabeca-de-steve-jobs</feedburner:origLink></item>
		<item>
		<title>Crontab dentro da sua aplicação rails com whenever</title>
		<link>http://feedproxy.google.com/~r/PotHixTech/~3/ljGNPZ09AGM/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>
<img src="http://feeds.feedburner.com/~r/PotHixTech/~4/ljGNPZ09AGM" height="1" width="1"/>]]></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>
		<feedburner:origLink>http://pothix.com/blog/development/crontab-dentro-da-sua-aplicacao-rails-com-whenever</feedburner:origLink></item>
		<item>
		<title>Serviços legais de dezembro</title>
		<link>http://feedproxy.google.com/~r/PotHixTech/~3/bRBCvLeHHls/servicos-legais-de-dezembro</link>
		<comments>http://pothix.com/blog/coolservices/servicos-legais-de-dezembro#comments</comments>
		<pubDate>Wed, 02 Dec 2009 11:58:49 +0000</pubDate>
		<dc:creator>PotHix</dc:creator>
				<category><![CDATA[Cool Services]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://pothix.com/blog/?p=834</guid>
		<description><![CDATA[Æ!! E ae galera! Infelizmente não consegui postar sobre os serviços legais do mes de novembro por que eu estava cheio de coisas para fazer ( devido as provas de fim de ano, e meu curso é anual ), portanto não consegui agregar nada para novembro, e muito menos tempo para postar. Mas agora estou [...]]]></description>
			<content:encoded><![CDATA[<p>Æ!!</p>

<p>E ae galera!</p>

<p>Infelizmente não consegui postar sobre os serviços legais do mes de novembro por que eu estava cheio de coisas para fazer ( devido as provas de fim de ano, e meu curso é anual ), portanto não consegui agregar nada para novembro, e muito menos tempo para postar.</p>

<p>Mas agora estou eu aqui denovo para postar sobre o que eu achei de legal na internet nesse meio tempo! E lá vamos nós:</p>

<h4>Mocking Bird &#8211; Wireframes on the fly</h4>

<p>O <a title="Mocking Bird" href="http://gomockingbird.com/">Mocking Bird</a> é um site onde você pode montar wireframes para layouts de sites facilmente, como se você estivesse fazendo um desenho mas com elementos pré-determinados.</p>

<p>Achei o serviço muito interessante, principalmente para mim que não manjo nada de fazer design, portanto eu posso dar uma olhada no que eu quero fazer usando os elementos pré determinados do Mocking Bird e quem sabe fazer um layout razoável para implementar, apenas revendo as cores com quem manja de verdade. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<h4>Collecta</h4>

<p>O que eu achei interessante do <a title="Collecta" href="http://www.collecta.com">Collecta</a> é a quantidade de coisas diferentes que ele traz na busca, desde twitter até Github, e isso sem contar que é tudo em tempo real, e você pode ver realmente o que está acontecendo referente a um determinado assunto.</p>

<p>O serviço parece ser interessante para cobrir eventos, por que da para ter uma visão geral do que está acontecendo em vários lugares ao mesmo tempo, ver fotos que postaram, comentários no twitter, vídeos no youtube e etc.</p>

<h4>Buzz Volume</h4>

<p>O <a title="Buzz Volume" href="http://buzzvolume.com/">Buzz Volume</a> foi criado por dois colegas meus ( o <a title="Dirceu Pauka" href="http://twitter.com/dirs">@dirs</a> e o <a title="Mauricio" href="http://twitter.com/mauricio">@mauricio</a> ), e eu achei a idéia bem interessante!
O que o site faz é agregar links que estão sendo bem falados no twitter, assim mantendo o usuário por dentro do que está sendo mais comentado, ou seja, um bom agregador de coisas famosas. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> 
Espero que nesse serviço coloquem uma feature de excluir asssuntos <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>

<p>Bem, é isso! Esse post foi simples mas eu compri os serviços legais desse mes. <img src='http://pothix.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

<p>Até mes que vem.
Há braços</p>
<img src="http://feeds.feedburner.com/~r/PotHixTech/~4/bRBCvLeHHls" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pothix.com/blog/coolservices/servicos-legais-de-dezembro/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pothix.com/blog/coolservices/servicos-legais-de-dezembro</feedburner:origLink></item>
	</channel>
</rss>

