<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Lucas Catón</title>
	<atom:link href="http://blog.lucascaton.com.br/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.lucascaton.com.br</link>
	<description>Ruby, Rails, Linux, Mac OSX, iOS and Objective C</description>
	<lastBuildDate>Sun, 20 May 2012 17:31:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>My dotfiles</title>
		<link>http://blog.lucascaton.com.br/?p=1266</link>
		<comments>http://blog.lucascaton.com.br/?p=1266#comments</comments>
		<pubDate>Mon, 30 Apr 2012 01:11:02 +0000</pubDate>
		<dc:creator>Catón</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[dotfiles]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.lucascaton.com.br/?p=1266</guid>
		<description><![CDATA[Finally I created a repository with my dotfiles. Dotfiles are configurations files, usually with their names beginning with a dot (hidden files) and located in your home directory (~/). The repository is: https://github.com/lucascaton/dotfiles Check the instructions in the link above, &#8230; <a href="http://blog.lucascaton.com.br/?p=1266">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Finally I created a repository with my dotfiles.</p>
<p>Dotfiles are configurations files, usually with their names beginning with a dot (hidden files) and located in your home directory (~/).</p>
<p>The repository is: <a href="https://github.com/lucascaton/dotfiles" target="_blank"><strong>https://github.com/lucascaton/dotfiles</strong></a></p>
<p>Check the instructions in the link above, in order to get the dotfiles.</p>
<p>The dotfiles are focused on the Ruby language, but there&#8217;s also Git and PostgreSQL configuration files. I&#8217;ve included files as .bash_profile, .gitconfig, .irbrc (using <a href="http://pry.github.com/" target="_blank">pry</a>), .pryrc, .psqlrc and .rvmrc. There is also a list of ruby gems (file &#8220;default.gems&#8221;).</p>
<p>My <strong>vimfiles</strong> can be found at: <a href="https://github.com/lucascaton/vimfiles" target="_blank">https://github.com/lucascaton/vimfiles</a></p>
<p>I have tested it only in OSX 10.7, but it should work in any *nix without problems.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucascaton.com.br/?feed=rss2&#038;p=1266</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Regex to match Youtube URLs (using Ruby)</title>
		<link>http://blog.lucascaton.com.br/?p=1256</link>
		<comments>http://blog.lucascaton.com.br/?p=1256#comments</comments>
		<pubDate>Tue, 10 Apr 2012 14:19:34 +0000</pubDate>
		<dc:creator>Catón</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[regexp]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://blog.lucascaton.com.br/?p=1256</guid>
		<description><![CDATA[I created a regular expression in order to match Youtube URLs. Currently, the most common URLs from Youtube are http://youtube.com and http://youtu.be: This regex will match: http://youtube.com/watch?v=1234567890 https://youtube.com/watch?v=1234567890 http://www.youtube.com/watch?v=1234567890 https://www.youtube.com/watch?v=1234567890 http://youtu.be/1234567890 https://youtu.be/1234567890 http://www.youtu.be/1234567890 https://www.youtu.be/1234567890 http://www.youtube.com/watch?v=1234567890&#038;feature=context&#038;context=G2de15aaFAAAAAAAAAAA www.youtube.com/watch?v=1234567890 youtube.com/watch?v=1234567890 youtu.be/1234567890 And won&#8217;t &#8230; <a href="http://blog.lucascaton.com.br/?p=1256">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I created a regular expression in order to match Youtube URLs.</p>
<p>Currently, the most common URLs from Youtube are <strong>http://youtube.com</strong> and <strong>http://youtu.be</strong>:</p>
<pre class="brush: ruby; title: ; notranslate">/(?:https?:\/\/)?(?:www\.)?youtu(?:\.be|be\.com)\/(?:watch\?v=)?(\w{10,})/</pre>
<p>This regex will match:</p>
<ul>
<li>http://youtube.com/watch?v=1234567890</li>
<li>https://youtube.com/watch?v=1234567890</li>
<li>http://www.youtube.com/watch?v=1234567890</li>
<li>https://www.youtube.com/watch?v=1234567890</li>
<li>http://youtu.be/1234567890</li>
<li>https://youtu.be/1234567890</li>
<li>http://www.youtu.be/1234567890</li>
<li>https://www.youtu.be/1234567890</li>
<li>http://www.youtube.com/watch?v=1234567890&#038;feature=context&#038;context=G2de15aaFAAAAAAAAAAA</li>
<li>www.youtube.com/watch?v=1234567890</li>
<li>youtube.com/watch?v=1234567890</li>
<li>youtu.be/1234567890</li>
</ul>
<p>And won&#8217;t match:</p>
<ul>
<li>youtube.com</li>
<li>youtube.com/</li>
<li>youtube.com/watch</li>
<li>youtube.com/watch/</li>
<li>youtu.be</li>
<li>youtu.be/</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucascaton.com.br/?feed=rss2&#038;p=1256</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Novos desafios</title>
		<link>http://blog.lucascaton.com.br/?p=1232</link>
		<comments>http://blog.lucascaton.com.br/?p=1232#comments</comments>
		<pubDate>Mon, 05 Mar 2012 14:06:49 +0000</pubDate>
		<dc:creator>Catón</dc:creator>
				<category><![CDATA[Portuguese]]></category>
		<category><![CDATA[carreira]]></category>

		<guid isPermaLink="false">http://blog.lucascaton.com.br/?p=1232</guid>
		<description><![CDATA[Próximo de completar um ano que me mudei pra São Paulo, recebi um convite que acabou mudando as coisas mais uma vez. Passei quase um ano trabalhando na Bio Ritmo, onde tive uma experiência única de trabalhar com toda a &#8230; <a href="http://blog.lucascaton.com.br/?p=1232">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Próximo de completar um ano que me mudei pra São Paulo, recebi um convite que acabou mudando as coisas mais uma vez. Passei quase um ano trabalhando na Bio Ritmo, onde tive uma experiência única de trabalhar com toda a equipe de tecnologia, onde fiz grandes amigos e onde aprendi muito.</p>
<p>Há mais ou menos um mês atrás, recebi um convite para trabalhar em um tipo de empresa que até então eu não havia trabalhado: uma empresa de consultoria. Foi um convite que acompanhou uma decisão bastante difícil. Mas eu acreditava que era hora de mudar algumas coisas. E foi assim que eu comecei a trabalhar na <a href="http://codeminer42.com/" title="Codeminer42" target="_blank">Codeminer42</a>.</p>
<p>Hoje completo uma semana lá. E acredito ter tomado a decisão correta. Os desafios são grandes, os projetos são bacanas, o ambiente é descontraído e a equipe é muito boa e unida. Uma ótima forma de você aprender bastante é trabalhando com pessoas melhores que você e lá estou tendo esta oportunidade.</p>
<p>Uma coisa interessante é que em uma consultoria você trabalha em vários projetos (não necessariamente em paralelo) e isso permite que você use diferentes ferramentas e aprenda qual a melhor para cada tipo de problema (<em>&#8220;there is no silver bullet&#8221;</em>). Ou ainda, testar diferentes ferramentas para uma mesma solução.</p>
<p>Um obrigado especial ao Rinaldi Fonseca (<a href="https://twitter.com/rinaldifonseca" target="_blank">@rinaldifonseca</a>), responsável por eu estar trabalhando com esse ótimo time.</p>
<p><strong>Hora de seguir em frente nessa nova empreitada!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucascaton.com.br/?feed=rss2&#038;p=1232</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Como aprendi a fazer Dojo com o pessoal da Lambda3</title>
		<link>http://blog.lucascaton.com.br/?p=1202</link>
		<comments>http://blog.lucascaton.com.br/?p=1202#comments</comments>
		<pubDate>Wed, 15 Feb 2012 21:22:56 +0000</pubDate>
		<dc:creator>Catón</dc:creator>
				<category><![CDATA[Portuguese]]></category>
		<category><![CDATA[dojo]]></category>

		<guid isPermaLink="false">http://blog.lucascaton.com.br/?p=1202</guid>
		<description><![CDATA[Tive o prazer de participar em janeiro de um Coding-Dojo com o pessoal da empresa Lambda3, organizada pelo grande Rafael Rosa Fu! Embora exista mais de uma forma de fazer, acho que o jeito que fizemos funcionou muito bem. Vou &#8230; <a href="http://blog.lucascaton.com.br/?p=1202">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Tive o prazer de participar em janeiro de um Coding-Dojo com o pessoal da empresa <a href="http://www.lambda3.com.br/" target="_blank"><strong>Lambda3</strong></a>, organizada pelo grande <a href="https://twitter.com/#!/rafaelrosafu" target="_blank"><strong>Rafael Rosa Fu</strong></a>!</p>
<p>Embora exista mais de uma forma de fazer, acho que o jeito que fizemos funcionou muito bem. Vou explicar como fizemos:</p>
<h1>Seleção de problemas</h1>
<p>O organizador seleciona 3~5 problemas de alguma lista de problemas de programação (como o <a href="http://www.rubyquiz.com/" target="_blank"><strong>Ruby Quiz</strong></a>, por exemplo). Quando começar o Dojo, ele apresenta um resumo dos problemas e faz uma votação para escolher um problema.</p>
<h1>Foco!</h1>
<p>Apenas um computador é necessário, isso ajuda a manter todos focados no problema. A pessoa mais próxima do computador começa sendo o &#8220;piloto&#8221;, escrevendo o código inicial. A pessoa à esquerda do &#8220;piloto&#8221; será o &#8220;co-piloto&#8221; e sua função é ajudar o &#8220;piloto&#8221;.</p>
<h1>Troca de posições</h1>
<p>A cada 7 minutos (ou algum outro tempo pré-determinado que for adequado), todos trocam de lugar: a pessoa à esquerda do &#8220;co-piloto&#8221; se torna o novo &#8220;co-piloto&#8221;, o &#8220;co-piloto&#8221; agora começa a &#8220;pilotar&#8221; (programar) e o atual &#8220;piloto&#8221; entra no final da fila. Isso se repete até o final do Dojo.</p>
<h1>TDD / BDD</h1>
<p>Todo o desenvolvimento é orientado à testes, avançando através de baby steps. Quando testes estiverem falhando (&#8220;fase vermelha&#8221;), ninguém pode comentar nem sugerir nada, exceto o &#8220;co-piloto&#8221;. Obviamente, quando os testes estiverem passando (&#8220;fase verde&#8221;) todos podem comentar e sugerir implementações e refatorações.</p>
<h1>Retrospectiva</h1>
<p>No final, é interessante fazer uma retrospectiva, onde todos os desenvolvedores escrevem em post-its verdes coisas boas que aconteceram durante o Dojo e coisas ruins em post-its vermelhos.</p>
<p>O organizador recolhe os post-its e os cola num quadro, separado por tipo/cor. Depois de ler em voz alta todos os post-its, é interessante reservar uma área &#8220;Discussões&#8221; no quadro, para anotar discussões que ocorrerem durante e no final do Dojo.</p>
<p>Isso tudo é importante para não repetir os erros do Dojo atual num próximo Dojo e deixar claro o que foi acertado.</p>
<h1>Referências</h1>
<p>Segue um link dos slides do Serge Rehen sobre Coding-Dojo: <a href="http://www.slideshare.net/serge_rehem/coding-dojo-em-5-minutos" target="_blank">http://www.slideshare.net/serge_rehem/coding-dojo-em-5-minutos</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucascaton.com.br/?feed=rss2&#038;p=1202</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Minha palestra sobre Ruby on Rails no &#8220;Café com Java&#8221;</title>
		<link>http://blog.lucascaton.com.br/?p=1169</link>
		<comments>http://blog.lucascaton.com.br/?p=1169#comments</comments>
		<pubDate>Mon, 13 Feb 2012 00:01:13 +0000</pubDate>
		<dc:creator>Catón</dc:creator>
				<category><![CDATA[Portuguese]]></category>
		<category><![CDATA[apresentações]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.lucascaton.com.br/?p=1169</guid>
		<description><![CDATA[Ontem aconteceu mais um encontro do evento &#8220;Café com Java&#8221;, na Caelum, organizado pelo Eduardo Bregaida. Eu palestrei sobre Ruby on Rails, com um ligeiro foco para o pessoal do Java. Um obrigado especial à minha namorada Aline Nepomuceno, por &#8230; <a href="http://blog.lucascaton.com.br/?p=1169">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2012/02/rails.001.png" alt="" title="rails.001" width="1024" height="768" class="aligncenter size-full wp-image-1182" /></p>
<p>Ontem aconteceu mais um encontro do evento &#8220;Café com Java&#8221;, na <a href="http://www.caelum.com.br/" target="_blank">Caelum</a>, organizado pelo <a href="https://twitter.com/bregaida" target="_blank">Eduardo Bregaida</a>. Eu palestrei sobre Ruby on Rails, com um ligeiro foco para o pessoal do Java.</p>
<p>Um obrigado especial à minha namorada <a href="https://twitter.com/#!/lynnenepomuceno" target="_blank">Aline Nepomuceno</a>, por filmar minha apresentação! :-)</p>
<p>Seguem os slides e o vídeo da palestra:</p>
<p><center>
<div style="width:425px;" id="__ss_11530804"><object id="__sse11530804" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=rails-120211182852-phpapp01&#038;stripped_title=rails-11530804&#038;userName=lucascaton" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent"/><embed name="__sse11530804" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=rails-120211182852-phpapp01&#038;stripped_title=rails-11530804&#038;userName=lucascaton" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="425" height="355"></embed></object><em>(Se não conseguir ver os slides, <a href="http://www.slideshare.net/lucascaton/rails-11530804" target="_blank">clique aqui</a>)</em></div>
<p></center></p>
<p><center>
<div><iframe src="http://blip.tv/play/AYLrrGYC.html?p=1" width="550" height="339" frameborder="0" allowfullscreen></iframe><embed type="application/x-shockwave-flash" src="http://a.blip.tv/api.swf#AYLrrGYC" style="display:none"></embed></div>
<p><em>(Se não conseguir ver o vídeo, <a href="http://blip.tv/lucascaton/minha-palestra-sobre-ruby-on-rails-no-caf%C3%A9-com-java-5953026" target="_blank">clique aqui</a>)</em><br />
</center></p>
<p>E algumas fotos:</p>
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2012/02/img1.png" alt="" title="img1" width="1149" height="614" class="aligncenter size-full wp-image-1183" /></p>
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2012/02/img2.png" alt="" title="img2" width="1140" height="714" class="aligncenter size-full wp-image-1184" /></p>
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2012/02/6859865873_e6d67f33ca_b.jpg" alt="" title="6859865873_e6d67f33ca_b" width="1024" height="768" class="aligncenter size-full wp-image-1185" /></p>
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2012/02/6859857577_c93affc816_b.jpg" alt="" title="6859857577_c93affc816_b" width="1024" height="768" class="aligncenter size-full wp-image-1186" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucascaton.com.br/?feed=rss2&#038;p=1169</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vou palestrar no &#8220;Café com Java&#8221; amanhã</title>
		<link>http://blog.lucascaton.com.br/?p=1155</link>
		<comments>http://blog.lucascaton.com.br/?p=1155#comments</comments>
		<pubDate>Fri, 10 Feb 2012 15:35:02 +0000</pubDate>
		<dc:creator>Catón</dc:creator>
				<category><![CDATA[Portuguese]]></category>
		<category><![CDATA[apresentações]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://blog.lucascaton.com.br/?p=1155</guid>
		<description><![CDATA[Sim amigos, vou palestrar no Café com Java, mas não, não abandonei o Ruby on Rails. Na verdade a palestra será sobre Rails mesmo! Segue o link da divulgação do Evento: http://www.guj.com.br/java/264718-cafe-com-java Para participar, você precisa se inscrever aqui. Obrigado &#8230; <a href="http://blog.lucascaton.com.br/?p=1155">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Sim amigos, vou palestrar no <strong>Café com Java</strong>, mas não, não abandonei o Ruby on Rails. Na verdade a palestra será sobre Rails mesmo!</p>
<p>Segue o link da divulgação do Evento:<br />
<a href="http://www.guj.com.br/java/264718-cafe-com-java" target="_blank"><strong>http://www.guj.com.br/java/264718-cafe-com-java</strong></a></p>
<p>Para participar, você precisa se inscrever <a href="http://www.caelum.com.br/evento/cafecomjava/" target="_blank">aqui</a>.</p>
<p>Obrigado ao <a href="http://twitter.com/bregaida" target="_blank">Eduardo Bregaida</a> pelo convite para palestrar.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucascaton.com.br/?feed=rss2&#038;p=1155</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O 1º encontro oficial do [self SP]; foi um sucesso!</title>
		<link>http://blog.lucascaton.com.br/?p=1134</link>
		<comments>http://blog.lucascaton.com.br/?p=1134#comments</comments>
		<pubDate>Wed, 25 Jan 2012 19:03:34 +0000</pubDate>
		<dc:creator>Catón</dc:creator>
				<category><![CDATA[Portuguese]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[[self SP];]]></category>

		<guid isPermaLink="false">http://blog.lucascaton.com.br/?p=1134</guid>
		<description><![CDATA[Depois de quatro meses de vida, conseguimos realizar o primeiro encontro oficial do [self SP];, graças ao @fer_bass (que organizou quase tudo), à PoisonLabs (que patrocinou o CoffeBreak), à Caelum (que liberou o auditório para o evento) e ao Hugo &#8230; <a href="http://blog.lucascaton.com.br/?p=1134">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.lucascaton.com.br/?p=910" target="_blank">Depois de quatro meses de vida</a>, conseguimos realizar o <a href="http://blog.selfsp.org/?p=31" target="_blank">primeiro encontro oficial do [self SP];</a>, graças ao <a href="http://twitter.com/fer_bass" target="_blank">@fer_bass</a> (que organizou quase tudo), à <a href="http://poisonlabs.com/" target="_blank">PoisonLabs</a> (que patrocinou o CoffeBreak), à <a href="http://www.caelum.com.br/" target="_blank">Caelum</a> (que liberou o auditório para o evento) e ao <a href="http://www.agaelebe.com.br/" target="_blank">Hugo Borges</a> (que gravou o evento todo).</p>
<p>Obrigado a todos os palestrantes e aos participantes, foi realmente muito bacana!</p>
<p>Seguem algumas fotos (e os títulos das palestras):</p>
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2012/01/IMG_1324.jpg" alt="" title="IMG_1324" width="1800" height="1350" class="aligncenter size-full wp-image-1140" /></p>
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2012/01/IMG_1325.jpg" alt="" title="IMG_1325" width="1800" height="1350" class="aligncenter size-full wp-image-1141" /></p>
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2012/01/IMG_1329.jpg" alt="" title="IMG_1329" width="1800" height="1350" class="aligncenter size-full wp-image-1142" /><br />
&#8220;OpenGL com GLKit&#8221; (xissburg)</p>
<hr />
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2012/01/IMG_1331.jpg" alt="" title="IMG_1331" width="1800" height="1350" class="aligncenter size-full wp-image-1143" /><br />
&#8220;CoreGraphics Performance&#8221; (Glenn Marcus)</p>
<hr />
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2012/01/IMG_1333.jpg" alt="" title="IMG_1333" width="1800" height="1350" class="aligncenter size-full wp-image-1144" /><br />
&#8220;Conhecendo e entendo o ARC&#8221; (Ferbass)</p>
<hr />
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2012/01/IMG_1335.jpg" alt="" title="IMG_1335" width="1800" height="1350" class="aligncenter size-full wp-image-1145" /><br />
&#8220;Testes automatizados para sua aplicação iOS&#8221; (Ricardo Valeriano)</p>
<hr />
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2012/01/IMG_1341.jpg" alt="" title="IMG_1341" width="1800" height="1350" class="aligncenter size-full wp-image-1146" /><br />
&#8220;Funcionalidades dinamicas do Objective-C&#8221; (Diego Chohfi)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucascaton.com.br/?feed=rss2&#038;p=1134</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Como acelerar a exibição das suas rotas no Rails</title>
		<link>http://blog.lucascaton.com.br/?p=1126</link>
		<comments>http://blog.lucascaton.com.br/?p=1126#comments</comments>
		<pubDate>Mon, 02 Jan 2012 14:28:48 +0000</pubDate>
		<dc:creator>Catón</dc:creator>
				<category><![CDATA[Portuguese]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[routes]]></category>

		<guid isPermaLink="false">http://blog.lucascaton.com.br/?p=1126</guid>
		<description><![CDATA[Procurando uma forma de acelerar a saída do comando &#8220;rake routes&#8221;, encontrei uma gem interessante: https://github.com/bcaccinolo/routes. Ela cria um cache da saída do comando e renova o conteúdo automaticamente quando você atualiza o arquivo config/routes.rb. Não é necessário incluir a &#8230; <a href="http://blog.lucascaton.com.br/?p=1126">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Procurando uma forma de acelerar a saída do comando <strong>&#8220;rake routes&#8221;</strong>, encontrei uma gem interessante: <a href="https://github.com/bcaccinolo/routes" target="_blank">https://github.com/bcaccinolo/routes</a>.</p>
<p>Ela cria um cache da saída do comando e renova o conteúdo automaticamente quando você atualiza o arquivo <strong>config/routes.rb</strong>.</p>
<p>Não é necessário incluir a gem no <strong>Gemfile</strong> do projeto, basta incluir o diretório oculto <strong>/.routes</strong> no <strong>.gitignore</strong>. Para instalar, rode: <strong>gem install routes</strong>. Depois, entre no projeto e rode: <strong>routes</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucascaton.com.br/?feed=rss2&#038;p=1126</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>4 coisas simples que a Apple poderia implementar no iOS</title>
		<link>http://blog.lucascaton.com.br/?p=1112</link>
		<comments>http://blog.lucascaton.com.br/?p=1112#comments</comments>
		<pubDate>Mon, 26 Dec 2011 13:24:48 +0000</pubDate>
		<dc:creator>Catón</dc:creator>
				<category><![CDATA[Portuguese]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[iOS]]></category>

		<guid isPermaLink="false">http://blog.lucascaton.com.br/?p=1112</guid>
		<description><![CDATA[Permitir mais de uma assinatura para e-mails (atualmente só é possível criar uma única assinatura); Tranferência de fotos e vídeos via bluetooth (qualquer celular ridículo faz isso); Permitir a inclusão de imagens ou vídeos dentro da app Mail (atualmente você &#8230; <a href="http://blog.lucascaton.com.br/?p=1112">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<ol>
<li>Permitir mais de uma <strong>assinatura</strong> para e-mails (atualmente só é possível criar uma única assinatura);</li>
<li>Tranferência de fotos e vídeos via <strong>bluetooth</strong> (qualquer celular ridículo faz isso);</li>
<li>Permitir a inclusão de imagens ou vídeos dentro da app <strong>Mail</strong> (atualmente você precisa abrir a foto ou vídeo e selecionar a opção que manda por e-mail);</li>
<li>Acessar de forma mais prática algumas <strong>configurações</strong>, como por exemplo ativar / desativar o 3G.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucascaton.com.br/?feed=rss2&#038;p=1112</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como gerar diagramas de projetos Rails</title>
		<link>http://blog.lucascaton.com.br/?p=1101</link>
		<comments>http://blog.lucascaton.com.br/?p=1101#comments</comments>
		<pubDate>Thu, 22 Dec 2011 19:48:40 +0000</pubDate>
		<dc:creator>Catón</dc:creator>
				<category><![CDATA[Portuguese]]></category>
		<category><![CDATA[diagramas]]></category>
		<category><![CDATA[gems]]></category>
		<category><![CDATA[graphs]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://blog.lucascaton.com.br/?p=1101</guid>
		<description><![CDATA[A dica é velha, mas ainda é muito útil! Pra gerar diagramas (de models, de controllers, etc) de seus projetos Rails, você pode utilizar a gem railroad. Testei com projetos Rails 2.3.x e Rails 3.0.x e funcionou em ambos os &#8230; <a href="http://blog.lucascaton.com.br/?p=1101">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A dica é velha, mas ainda é muito útil!</p>
<p>Pra gerar diagramas (de models, de controllers, etc) de seus projetos Rails, você pode utilizar a gem <strong><a href="http://railroad.rubyforge.org/" target="_blank">railroad</a></strong>. Testei com projetos Rails 2.3.x e Rails 3.0.x e funcionou em ambos os casos.</p>
<h1>Instalação</h1>
<pre class="brush: bash; title: ; notranslate">gem install railroad</pre>
<h1>Criação do diagrama</h1>
<p>Pra gerar uma imagem com o diagrama, entre no diretório do projeto e rode:</p>
<pre class="brush: bash; title: ; notranslate">railroad -M -out models.dot</pre>
<p>Para mais opções, verifique a documentação do projeto: <a href="http://railroad.rubyforge.org/" target="_blank">http://railroad.rubyforge.org/</a></p>
<p>Pra vizualizar arquivos <strong>*.dot</strong>, editá-los ou convertê-los em uma imagem, utlize o software <strong>Graphviz</strong>, o qual possui versões pra Mac OSX, Linux, Windows e até Solaris: <a href="http://www.graphviz.org/" target="_blank">http://www.graphviz.org/</a></p>
<p>Outra opção, é gerar um arquivo <strong>*.svg</strong> diretamente:</p>
<pre class="brush: bash; title: ; notranslate">railroad -M | dot -Tsvg &gt; models.svg</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucascaton.com.br/?feed=rss2&#038;p=1101</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Screencast #1 &#8211; 17 dicas para o Vim</title>
		<link>http://blog.lucascaton.com.br/?p=1081</link>
		<comments>http://blog.lucascaton.com.br/?p=1081#comments</comments>
		<pubDate>Tue, 13 Dec 2011 14:00:00 +0000</pubDate>
		<dc:creator>Catón</dc:creator>
				<category><![CDATA[Portuguese]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[screencasts]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://blog.lucascaton.com.br/?p=1081</guid>
		<description><![CDATA[Finalmente terminei o primeiro screencast do blog. Espero que gostem! :-) Por favor, mandem feedback do que acharam!]]></description>
			<content:encoded><![CDATA[<p>Finalmente terminei o primeiro screencast do blog. Espero que gostem! :-)</p>
<p>Por favor, mandem feedback do que acharam!</p>
<div style="text-align: center;"><iframe width="480" height="360" src="http://www.youtube.com/embed/DyUq81mXCVA?hd=1" frameborder="0" allowfullscreen></iframe></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucascaton.com.br/?feed=rss2&#038;p=1081</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Como ordernar linhas no Vim</title>
		<link>http://blog.lucascaton.com.br/?p=1036</link>
		<comments>http://blog.lucascaton.com.br/?p=1036#comments</comments>
		<pubDate>Sat, 03 Dec 2011 14:51:05 +0000</pubDate>
		<dc:creator>Catón</dc:creator>
				<category><![CDATA[Portuguese]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://blog.lucascaton.com.br/?p=1036</guid>
		<description><![CDATA[Comando sort &#8211; ordenar linhas Algo que todo mundo que usa o editor Vim deve conhecer é o comando: Ele ordena alfabeticamente as linhas de seu texto. Você também pode selecionar algumas linhas e ordernar apenas estas. Para isso, pressione &#8230; <a href="http://blog.lucascaton.com.br/?p=1036">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h1>Comando sort &#8211; ordenar linhas</h1>
<p>Algo que todo mundo que usa o editor Vim deve conhecer é o comando:</p>
<pre class="brush: bash; title: ; notranslate">:sort</pre>
<p>Ele ordena alfabeticamente as linhas de seu texto. Você também pode selecionar algumas linhas e ordernar apenas estas. Para isso, pressione <strong>shift-v</strong> para entrar no modo de seleção por linha, depois rode:</p>
<pre class="brush: bash; title: ; notranslate">:'&lt;,'&gt;sort</pre>
<p><br style="margin-top: 120px;" /></p>
<h1>Comando sort u &#8211; ordenar linhas excluindo as repeditas</h1>
<p>Algo que uso muito também é o parametro <strong>u</strong>, o qual permite ordernar as linhas, mas excluindo as repetidas:</p>
<p>Antes:</p>
<blockquote style="background-color: #EEE; padding: 3px;"><p>Lucas<br />
Lucas<br />
Lucas<br />
Catón<br />
Catón</p></blockquote>
<pre class="brush: bash; title: ; notranslate">:sort u</pre>
<p>Depois:</p>
<blockquote style="background-color: #EEE; padding: 3px;"><p>Catón<br />
Lucas</p></blockquote>
<p><br style="margin-top: 120px;" /></p>
<h1>Comando sort /regex/ &#8211; ordenar linhas utilizando alguma coluna</h1>
<p>E hoje aprendi mais uma coisa realmente interessante ao ordenar um arquivo: como ordernar um texto usando alguma coluna:</p>
<p>Imagine o seguinte texto:</p>
<blockquote style="background-color: #EEE; padding: 3px;"><p>36993  vim   26M<br />
39140 ssh 10M<br />
34551 bash 17M</p></blockquote>
<p><br style="margin-top: 20px;" /></p>
<p>Nosso objetivo é ordenar pela terceira coluna. Para isto, basta rodar o comando <strong>sort</strong> passando uma expressão regular como parâmetro, a qual representa o que será ignorado pelo vim até começar a ordenação, ou seja, a partir da coluna que a expressão regular não &#8220;casar&#8221; mais, ele começará a ordenar. Sendo assim:</p>
<pre class="brush: bash; title: ; notranslate">:sort /.\+\s.\+\s/</pre>
<p>Essa expressão regular casa com [qualquer caracter em qualquer quantidade] + [um espaço] + [qualquer caracter em qualquer quantidade] + [um espaço], conforme representado abaixo:</p>
<blockquote style="background-color: #EEE; padding: 3px;"><p><span style="background-color: #FFC;">36993 vim </span>26M<br />
<span style="background-color: #FFC;">39140 ssh </span>10M<br />
<span style="background-color: #FFC;">34551 bash </span>17M</p></blockquote>
<p><br style="margin-top: 20px;" /></p>
<p>O conteúdo depois disso será a chave para a ordenação.</p>
<p>Resultado:</p>
<blockquote style="background-color: #EEE; padding: 3px;"><p>39140 ssh 10M<br />
34551 bash 17M<br />
36993 vim 26M</p></blockquote>
<p><br style="margin-top: 20px;" /></p>
<p>Se quisessemos ainda ordernar pela segunda coluna:</p>
<pre class="brush: bash; title: ; notranslate">sort /\d\{5\}\s/</pre>
<p>Bom, é isso! Qualquer dúvida, postem nos comentários!<br />
E se quiserem aprender mais sobre expressões regulares, vejam <a href="http://blog.lucascaton.com.br/?p=979" target="_blank">minha apresentação</a> :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucascaton.com.br/?feed=rss2&#038;p=1036</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>O que eu uso pra me organizar</title>
		<link>http://blog.lucascaton.com.br/?p=998</link>
		<comments>http://blog.lucascaton.com.br/?p=998#comments</comments>
		<pubDate>Mon, 14 Nov 2011 13:11:36 +0000</pubDate>
		<dc:creator>Catón</dc:creator>
				<category><![CDATA[Portuguese]]></category>
		<category><![CDATA[ferramentas]]></category>
		<category><![CDATA[organização pessoal]]></category>
		<category><![CDATA[softwares]]></category>

		<guid isPermaLink="false">http://blog.lucascaton.com.br/?p=998</guid>
		<description><![CDATA[Vou listar as ferramentas que uso diariamente pra me organizar e proteger meus dados. Confesso que eu já perdi dados importantes no passado (com quem nunca aconteceu?) e isso acabou me deixando neurótico com backups. Agenda de contatos Pra começar, &#8230; <a href="http://blog.lucascaton.com.br/?p=998">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Vou listar as ferramentas que uso diariamente pra me organizar e proteger meus dados.</p>
<p>Confesso que eu já perdi dados importantes no passado (com quem nunca aconteceu?) e isso acabou me deixando neurótico com <em>backups</em>.</p>
<h1>Agenda de contatos</h1>
<p>Pra começar, como minha agenda de contatos não ficava na nuvem e já perdi ela quando trocava / perdia celular, acabei usando por muito tempo uma agenda de papel. Eu sei, é muito estranho, mas eu me sentia seguro. De um tempo pra cá, a substituí pela <strong>agenda de contatos da Apple</strong> (presente no Mac OSX e no meu iPod Touch), sincronizados pelo iCloud (e backup lá também). Óbvio que armazenar essas informações eletrônicamente é infinitamente mais vantajoso. Guardo fotos dos contatos, vários e-mails, telefones, usuário do twitter, endereço, etc.</p>
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2011/11/contacts.png" alt="" title="contacts" width="782" height="549" class="aligncenter size-full wp-image-1013" /></p>
<h1>Agenda de compromissos</h1>
<p>Assim como minha agenda de contatos, eu também usei por muitos anos uma agenda de papel. Mas finalmente me desapeguei e não comprei uma agenda 2012. Substitui esta por dois softwares, os quais estão me atendendo muito bem:</p>
<p><strong>iCal</strong>: Onde anoto todas os compromissos, os importantes com avisos sonoros e avisos por e-mail, também sincronizados entre o Mac e o iPod Touch via iCloud; e <strong>Wunderlist</strong>: que é um software para listar as coisas que você precisa fazer em determinado dia, no estilo &#8220;TO-DO list&#8221;. Ele possui versão web, versão pra Mac OSX e versão para iOS. Outra coisa que me fez gostar ainda mais é a possibilidade de editar / criar tudo offline no iPod Touch (já que eu não tenho 3G) e sincronizar tudo depois, quando estiver numa rede wi-fi.</p>
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2011/11/ical.png" alt="" title="ical" width="807" height="553" class="aligncenter size-full wp-image-1018" /></p>
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2011/11/wunderlist.png" alt="" title="wunderlist" width="836" height="509" class="aligncenter size-full wp-image-1020" /></p>
<p>Algumas tarefas ainda estão no <strong>Google Calendar</strong> (como aniversários e tarefas recorrentes, ambos com avisos por e-mail). Estou migrando estas aos poucos para o <strong>iCal</strong>.</p>
<h1>Leitor de feeds RSS</h1>
<p>Uso o <strong>Google Reader</strong> desde 2005 e funciona perfeitamente bem, nunca tive nenhum tipo de problema com ele. Atualmente tenho 175 subscriptions e leio aproximadamente 70% dos items de lá (dependendo se o título me interessar ou não). Uso bastante o recurso &#8220;starred&#8221; para selecionar os item que quero ler depois, quando não posso ler no momento. Uso bastante o recurso de envio de post por e-mail, pra comparilhar com quem possa interesar.</p>
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2011/11/greader.png" alt="" title="greader" width="870" height="311" class="aligncenter size-full wp-image-1016" /></p>
<h1>Bookmarks</h1>
<p>Depois de muito tempo usando o <strong>Delicious</strong>, o abandonei e comecei a usar o <strong>Google bookmarks</strong>. Uso uma extension do Google Chrome pra adicionar item lá e uso com frequência pra me lembrar de páginas que já visitei e eram úteis em potencial.</p>
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2011/11/google-bookmarks.png" alt="" title="google bookmarks" width="1016" height="372" class="aligncenter size-full wp-image-1015" /></p>
<h1>Anotações em geral</h1>
<p>Em 90% dos casos, uso o <strong>Evernote</strong>, software para o Mac OSX e iOS. Nos outros 10%, uso papel e caneta apenas, o que às vezes é insubstituível.</p>
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2011/11/evernote.png" alt="" title="evernote" width="954" height="644" class="aligncenter size-full wp-image-1024" /></p>
<h1>Armazenamento de senhas</h1>
<p>Utilizo o <strong>LastPass</strong>, que possui uma extension pra todos os browsers atuais e em geral funciona bem. Uma vez tive um problema com ele, mas o pessoal do LastPass entrou em contato comigo em poucos minutos pra resolver meu problema (e olha que eu uso a versão free!).</p>
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2011/11/lastpass.png" alt="" title="lastpass" width="1034" height="412" class="aligncenter size-full wp-image-1019" /></p>
<h1>Repositório de projetos</h1>
<p>Meus projetos open-source ficam no <strong>Github</strong>, o qual tem ótimos recursos e boa usabilidade. Já meus projetos fechados ficam no <strong>Codebase</strong>, o qual gosto bastante, uma vez que além de servir como repositório git, também consigo gerenciar o projeto de forma integrada, criando tickets, milestones, atribuindo tarefas para usuários, configurando prioridades, etc.</p>
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2011/11/github.png" alt="" title="github" width="1049" height="466" class="aligncenter size-full wp-image-1014" /></p>
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2011/11/codebase.png" alt="" title="codebase" width="940" height="609" class="aligncenter size-full wp-image-1012" /></p>
<h1>Controle de contas ($)</h1>
<p>Até hoje não achei um software que me atendesse 100%, o que me obriga até hoje a usar uma planílha salva no <strong>Google Docs</strong>. Mas isso está para acabar (espero!). Semana passada, iniciei um novo projeto (open-source), chamado <strong>Financial Control</strong> (sou péssimo para nomes). Já está no GitHub: <a href="https://github.com/lucascaton/financial_control" target="_blank">https://github.com/lucascaton/financial_control</a>, mas está apenas 15% pronto. Assim que eu o terminar, publico aqui no blog.</p>
<h1>Redes sociais</h1>
<p>Uso <strong>Facebook</strong>, <strong>Google+</strong> e <strong>Twitter</strong>, mas não me comprometo a ler tudo que aparece por lá. O que mais uso, sem dúvidas, é o Twitter, e como a maior parte das pessoas que eu sigo são programadores, uso com o objetivo de me atualizar, descobrir e compartilhar coisas relacionadas à desenvolvimento de software.</p>
<h1>Lembretes rápidos</h1>
<p>Não tem como fugir. Vez ou outra, mando um e-mail pra mim mesmo com alguma tarefa rápida pra lembrar depois. A propósito, uso o <strong>Gmail</strong> desde 2004 e organizo com os labels e filtros que o serviço oferece, além da Priority Inbox (Caixa de entraga prioritária).</p>
<h1>Backups</h1>
<p>Como eu já falei, sou meio neurótico com backups:</p>
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2011/11/hd.png" alt="" title="hd" width="417" height="381" class="aligncenter size-full wp-image-1017" /></p>
<ul>
<li>Faço um backup dirário de todo conteúdo do meu Mac em um HD externo. Como trabalho com o Mac, levando ele diáriamente para o escritório, fiz seguro deste também!</li>
<li>A cada 6 meses faço um backup das coisas mais importantes em DVDs (uso aproximadamente 6 discos) e pra eu não esquecer, o Google Calendar me manda um e-mail semestral avisando: &#8220;Você precisa fazer um backup semestral em DVDs :-)&#8221;.</li>
<li>Mensalmente, faço backups dos seguintes items:
<ul>
<li>Subscribes do Google Reader</li>
<li>Address Book da Apple (além de já ter um backup no iCloud)</li>
<li>LastPass</li>
<li>iCal (além de também já ter um backup no iCloud)</li>
</ul>
</li>
</ul>
<p>Compartilhem o que vocês usam também!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucascaton.com.br/?feed=rss2&#038;p=998</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Minha apresentação sobre Expressões Regulares</title>
		<link>http://blog.lucascaton.com.br/?p=979</link>
		<comments>http://blog.lucascaton.com.br/?p=979#comments</comments>
		<pubDate>Sun, 13 Nov 2011 01:15:21 +0000</pubDate>
		<dc:creator>Catón</dc:creator>
				<category><![CDATA[Portuguese]]></category>
		<category><![CDATA[apresentações]]></category>
		<category><![CDATA[biolabs]]></category>
		<category><![CDATA[palestras]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[slides]]></category>

		<guid isPermaLink="false">http://blog.lucascaton.com.br/?p=979</guid>
		<description><![CDATA[Aproximadamente 5 meses depois da minha primeira apresentação no Bio Labs, realizei recentemente mais uma apresentação. Esta, sobre Expressões Regulares. Bio Labs são apresentações que fazemos aqui na Bio Ritmo, para os setores de desenvolvimento de software, infraestrutura e suporte, &#8230; <a href="http://blog.lucascaton.com.br/?p=979">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Aproximadamente 5 meses depois da <a href="http://blog.lucascaton.com.br/?p=807" target="_blank">minha primeira apresentação no Bio Labs</a>, realizei recentemente mais uma apresentação. Esta, sobre Expressões Regulares.</p>
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2011/11/post.jpg" alt="" title="post" width="600" height="338" class="aligncenter size-full wp-image-981" /></p>
<p><strong>Bio Labs</strong> são apresentações que fazemos aqui na Bio Ritmo, para os setores de desenvolvimento de software, infraestrutura e suporte, com o objetivo de compartilhar conhecimento entre as equipes.</p>
<p>Nessa apresentação, eu falo sobre Expressões Regulares: por que poucas pessoas usam? É realmente difícil ou isso é um mito? Como ler e escrever expressões regulares? Para que servem os metacaracteres? Onde posso usar? Em que caso pode me ser útil?</p>
<p>Dessa vez foi filmado, embora a qualidade não tenha ficado 100% boa (às vezes a iluminação fica meio ruim).</p>
<p>Segue o vídeo da apresentação e os slides:<br />
<center><br />
  <iframe width="560" height="315" src="http://www.youtube.com/embed/VAaRjIbE09g" frameborder="0" allowfullscreen></iframe></p>
<div style="width:595px" id="__ss_10136334"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/lucascaton/expresses-regulares-bio-labs-5" title="Expressões Regulares (Bio Labs #5)" target="_blank">Expressões Regulares (Bio Labs #5)</a></strong> <object id="__sse10136334" width="595" height="497"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=biolabs5-111112192517-phpapp01&#038;stripped_title=expresses-regulares-bio-labs-5&#038;userName=lucascaton" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse10136334" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=biolabs5-111112192517-phpapp01&#038;stripped_title=expresses-regulares-bio-labs-5&#038;userName=lucascaton" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="595" height="497"></embed></object></div>
<p></center></p>
<p>Me mandem feedback, comentando o que acharam, críticas, sugestões, dúvidas, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucascaton.com.br/?feed=rss2&#038;p=979</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>RubyConfBR 2011</title>
		<link>http://blog.lucascaton.com.br/?p=965</link>
		<comments>http://blog.lucascaton.com.br/?p=965#comments</comments>
		<pubDate>Sun, 06 Nov 2011 21:46:56 +0000</pubDate>
		<dc:creator>Catón</dc:creator>
				<category><![CDATA[Portuguese]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[rubyconf]]></category>
		<category><![CDATA[rubyconfbr]]></category>

		<guid isPermaLink="false">http://blog.lucascaton.com.br/?p=965</guid>
		<description><![CDATA[O evento rolou nos dias 3 e 4 de novembro e foi sensacional. Não sei até quando o site vai ficar disponível, mas o link para ver todos os detalhes do evento é: http://www.rubyconf.com.br/ Além de ótimas palestras (nacionais e &#8230; <a href="http://blog.lucascaton.com.br/?p=965">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>O evento rolou nos dias 3 e 4 de novembro e foi sensacional.</p>
<p><img src="http://blog.lucascaton.com.br/wp-content/uploads/2011/11/Screen-Shot-2011-11-06-at-7.42.14-PM.png" alt="RubyConfBR 2011" class="aligncenter size-full wp-image-970" /></p>
<p>Não sei até quando o site vai ficar disponível, mas o link para ver todos os detalhes do evento é: <a href="http://www.rubyconf.com.br/" title="http://www.rubyconf.com.br/" target="_blank">http://www.rubyconf.com.br/</a></p>
<p>Além de ótimas palestras (nacionais e internacionais), rolou um stand-up com Danilo Gentili e um reencontro muito bacana com vários amigos da comunidade Ruby!</p>
<p>No site <a href="http://www.eventials.com/rubyconfbr/" target="_blank">Eventials</a>, dá pra assistir todas as palestras, caso você tenha perdido alguma.</p>
<p>Mais uma vez parabéns ao <a href="http://akitaonrails.com/" target="_blank">Fábio Akita</a> e um obrigado especial à <a href="http://www.bioritmo.com.br" target="_blank">Bio Ritmo</a> por apoiar os desenvolvedores, não apenas nos liberando nos dois dias do evento como também bancando nossa inscrição :-)</p>
<p>E que venha a RubyConfBR 2012!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucascaton.com.br/?feed=rss2&#038;p=965</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como editar queries SQL com um editor de textos no console do PostgreSQL</title>
		<link>http://blog.lucascaton.com.br/?p=956</link>
		<comments>http://blog.lucascaton.com.br/?p=956#comments</comments>
		<pubDate>Sun, 16 Oct 2011 14:02:36 +0000</pubDate>
		<dc:creator>Catón</dc:creator>
				<category><![CDATA[Portuguese]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://blog.lucascaton.com.br/?p=956</guid>
		<description><![CDATA[Essa dica é pra quem usa PostgreSQL e quer editar suas queries dentro de algum editor de texto (como o Vim) sem sair do console do PostgreSQL. Isso é bastante útil quando você precisa rodar uma query complexa diretamente no &#8230; <a href="http://blog.lucascaton.com.br/?p=956">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Essa dica é pra quem usa PostgreSQL e quer editar suas queries dentro de algum editor de texto (como o Vim) sem sair do console do PostgreSQL. Isso é bastante útil quando você precisa rodar uma query complexa diretamente no console.</p>
<p>Primeiramente, verique qual é o seu editor de textos configurado na variável <strong>EDITOR</strong>:</p>
<pre class="brush: bash; title: ; notranslate">$ echo $EDITOR
vim</pre>
<p>No meu caso, meu editor padrão é o <strong>Vim</strong>.</p>
<p>Se você não tiver nenhum editor configurado, basta rodar (ou incluir isto no seu arquivo <strong>~/bash_profile</strong>:</p>
<pre class="brush: bash; title: ; notranslate">export EDITOR=vim</pre>
<p>Depois, dentro do console do PostgreSQL, basta digitar <strong>\e</strong>:</p>
<pre class="brush: bash; title: ; notranslate">psql (9.0.4)
Type &quot;help&quot; for help.

database_name=# \e</pre>
<p>E o editor será aberto pra você digitar sua query SQL, o que torna mais confortável e organizado se suas queries forem complexas.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucascaton.com.br/?feed=rss2&#038;p=956</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Blog do [self SP];</title>
		<link>http://blog.lucascaton.com.br/?p=945</link>
		<comments>http://blog.lucascaton.com.br/?p=945#comments</comments>
		<pubDate>Mon, 26 Sep 2011 03:32:08 +0000</pubDate>
		<dc:creator>Catón</dc:creator>
				<category><![CDATA[Portuguese]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[[self SP];]]></category>

		<guid isPermaLink="false">http://blog.lucascaton.com.br/?p=945</guid>
		<description><![CDATA[Há alguns dias atrás eu comentei sobre o [self SP];, grupo de usuários Objective C de São Paulo. Criamos um blog, onde eu, o Madson Cardoso (@madsonmac) e o Tales Pinheiros (@talesp) postaremos sobre desenvolvimento para iOS e novidades relacionadas &#8230; <a href="http://blog.lucascaton.com.br/?p=945">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Há alguns dias atrás <a href="http://blog.lucascaton.com.br/?p=910" target="_blank">eu comentei</a> sobre o <a href="http://selfsp.org" target="_blank">[self SP];</a>, grupo de usuários Objective C de São Paulo.</p>
<p>Criamos um blog, onde eu, o Madson Cardoso (<a href="http://twitter.com/madsonmac" target="_blank">@madsonmac</a>) e o Tales Pinheiros (<a href="http://twitter.com/talesp" target="_blank">@talesp</a>) postaremos sobre desenvolvimento para iOS e novidades relacionadas ao grupo.</p>
<p><strong>[[self SP] blog]: <a href="http://blog.selfsp.org/" target="_blank">http://blog.selfsp.org/</a></strong></p>
<p>Queria convidar todo mundo a <strong><a href="http://feeds.feedburner.com/selfsp" target="_blank">assinar o feed RSS</a></strong> e a comentar lá, dar sugestões e fazer críticas!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucascaton.com.br/?feed=rss2&#038;p=945</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>pushd e popd</title>
		<link>http://blog.lucascaton.com.br/?p=931</link>
		<comments>http://blog.lucascaton.com.br/?p=931#comments</comments>
		<pubDate>Mon, 19 Sep 2011 12:21:19 +0000</pubDate>
		<dc:creator>Catón</dc:creator>
				<category><![CDATA[Portuguese]]></category>
		<category><![CDATA[dirs]]></category>
		<category><![CDATA[popd]]></category>
		<category><![CDATA[pushd]]></category>

		<guid isPermaLink="false">http://blog.lucascaton.com.br/?p=931</guid>
		<description><![CDATA[Estava lendo esse post do Rafael Sachetto, quando encontrei duas coisas que não conhecia: pushd e popd. Fui pesquisar o que era e descobri dois substitutos para o comando `cd` (quem diria?!). Ao usar o comando `pushd `, ele vai &#8230; <a href="http://blog.lucascaton.com.br/?p=931">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Estava lendo <a href="http://cokencode.com/configurando-profile-para-rvm">esse post</a> do <a href="http://twitter.com/#!/rafaelsachetto">Rafael Sachetto</a>, quando encontrei duas coisas que não conhecia: <strong>pushd</strong> e <strong>popd</strong>.</p>
<p>Fui pesquisar o que era e descobri dois substitutos para o comando `cd` (quem diria?!).</p>
<p>Ao usar o comando `<strong>pushd <directory></strong>`, ele vai montando uma pilha (aka. estrutura de dados do tipo pilha) com todos os diretórios pelos quais vocês vai &#8220;passando&#8221;. Depois, a medida que você vai digitando o comando `<strong>popd</strong>` ele vai retornando à todos os diretórios, usando essa pilha como guia.</p>
<p>Seria algo como um `<strong>cd -</strong>` (que volta ao diretório anterior), só que sem limites para retorno.</p>
<p>Por exemplo:</p>
<pre class="brush: bash; title: ; notranslate">$ pushd Documents/
~/Documents ~

$ pushd Outros/
~/Documents/Books ~/Documents ~

$ popd
~/Documents ~

$ popd
~
~$</pre>
<p>Se quiser ver todos os diretórios da pilha, use o comando:</p>
<pre class="brush: bash; title: ; notranslate">dirs</pre>
<p>Uma coisa interessante a se fazer para acostumar a usar esses comandos é criar alias do comando `cd` para o `pushd`:</p>
<pre class="brush: bash; title: ; notranslate">alias cd='pushd'
alias cd-='popd'</pre>
<p>Lembrando que se você estiver usando RVM, você precisa fazer <strong><a href="http://cokencode.com/configurando-profile-para-rvm">isto</a></strong> também.</p>
<p>Se quiser mais informações, dê uma olhada nesses dois posts:</p>
<ul>
<li><a href="http://linux.101hacks.com/cd-command/dirs-pushd-popd/">Use dirs, pushd and popd to manipulate directory stack</a></li>
<li><a href="http://www.softpanorama.org/Scripting/Shellorama/pushd_and_popd.shtml">Improving the usefulness of pushd / popd / dirs troika in Unix filesystem navigation</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucascaton.com.br/?feed=rss2&#038;p=931</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Store &#8211; mais uma coisa que a M$ copiou</title>
		<link>http://blog.lucascaton.com.br/?p=916</link>
		<comments>http://blog.lucascaton.com.br/?p=916#comments</comments>
		<pubDate>Wed, 14 Sep 2011 17:07:18 +0000</pubDate>
		<dc:creator>Catón</dc:creator>
				<category><![CDATA[Portuguese]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[windows store]]></category>

		<guid isPermaLink="false">http://blog.lucascaton.com.br/?p=916</guid>
		<description><![CDATA[Depois de ler essa matéria do Meio Bit, fiquei indignado. Além de copiar a Apple (mais uma vez), ainda se diz melhor só porque não irá cobrar comissão nas apps vendidas pela loja. A Apple cobra um valor que julgo &#8230; <a href="http://blog.lucascaton.com.br/?p=916">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Depois de ler <a href="http://meiobit.com/91521/windows-store-microsoft-far-proposta-que-desenvolvedores-no-podero-recusar-build-2011/">essa matéria do Meio Bit</a>, fiquei indignado. Além de copiar a Apple (mais uma vez), ainda se diz melhor só porque não irá cobrar comissão nas apps vendidas pela loja.</p>
<p>A Apple cobra um valor que julgo justo, um valor pelo trabalho que ela faz pensando no desenvolvedor e principalmente no usuário final, tanto para apps para o OSX como pro iOS:</p>
<ul>
<li>Verificação geral do software (se existe memory leaks, se a performance está legal, se o design está adequado, etc.);</li>
<li>Se a app não causa danos à sua máquina ou ao seu dispositivo;</li>
<li>Libera os servidores para você armazenar sua app lá (evitando que você gaste com hosting);</li>
<li>Divulga sua app (evitando que você gaste com publicidade);</li>
<li>Disponibiliza uma interface pra você  gerenciar suas vendas.</li>
</ul>
<p>Além do mais:</p>
<p>Custo do XCode: US$ 0,00. Documentação online (muito boa): US$ 0,00. Screencasts oficiais (muito bons também): US$ 0,00.</p>
<p>Agora&#8230; quanto custa mesmo o Visual Studio? O Windows Server? MSSQL Server?</p>
<p>Então não me venham falar que desenvolver para a Apple é caro. A não ser que você não pague por todas as licenças que a M$ cobra, porque daí a história é outra&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucascaton.com.br/?feed=rss2&#038;p=916</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>[self SP];</title>
		<link>http://blog.lucascaton.com.br/?p=910</link>
		<comments>http://blog.lucascaton.com.br/?p=910#comments</comments>
		<pubDate>Sun, 11 Sep 2011 23:34:22 +0000</pubDate>
		<dc:creator>Catón</dc:creator>
				<category><![CDATA[Portuguese]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Objective C]]></category>
		<category><![CDATA[[self SP];]]></category>

		<guid isPermaLink="false">http://blog.lucascaton.com.br/?p=910</guid>
		<description><![CDATA[Depois de alguns dias conversando com o Ferbass e com o Tales Pinheiro, finalmente tiramos do papel e criamos o [self SP];, um grupo de usuários da linguagem Objective C, tanto para desenvolvimento para a plataforma iOS quanto para a &#8230; <a href="http://blog.lucascaton.com.br/?p=910">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Depois de alguns dias conversando com o <a href="http://ferbass.com">Ferbass</a> e com o <a href="http://twitter.com/talesp">Tales Pinheiro</a>, finalmente tiramos do papel e criamos o <strong><a href="http://selfsp.org/">[self SP];</a></strong>, um grupo de usuários da linguagem Objective C, tanto para desenvolvimento para a plataforma iOS quanto para a plataforma Mac OSX.</p>
<p>O objetivo do grupo é agrupar informações relevantes, facilitar o encontro dos usuários e incentivar discussões (saudáveis) sobre o assunto.</p>
<p><strong><a href="http://selfsp.org/">http://selfsp.org/</a></strong></p>
<p>Participe do grupo e nos ajude a divulgar!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lucascaton.com.br/?feed=rss2&#038;p=910</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

