<?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>Programando na madrugada</title>
	<atom:link href="http://www.luizpicanco.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.luizpicanco.com</link>
	<description>Programação na melhor hora do dia</description>
	<lastBuildDate>Sun, 31 Jul 2011 03:44:51 +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>Script para dar commit/deploy automático no Heroku</title>
		<link>http://www.luizpicanco.com/2011/07/31/script-para-dar-commitdeploy-automatico-no-heroku/</link>
		<comments>http://www.luizpicanco.com/2011/07/31/script-para-dar-commitdeploy-automatico-no-heroku/#comments</comments>
		<pubDate>Sun, 31 Jul 2011 03:44:51 +0000</pubDate>
		<dc:creator>Luiz Picanço</dc:creator>
				<category><![CDATA[Linha de Comando]]></category>
		<category><![CDATA[MAC OSX]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[heroku]]></category>
		<category><![CDATA[heroku commits osx]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.luizpicanco.com/?p=839</guid>
		<description><![CDATA[Para realizar commit e deploy automático no Heroku, utilizo o seguinte script: git add . git commit -m "Automatic Commit" git push heroku master]]></description>
			<content:encoded><![CDATA[<p>Para realizar commit e deploy automático no Heroku, utilizo o seguinte script:<br />
<code><br />
git add .<br />
git commit -m "Automatic Commit"<br />
git push heroku master<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizpicanco.com/2011/07/31/script-para-dar-commitdeploy-automatico-no-heroku/feed/</wfw:commentRss>
		<slash:comments>2194</slash:comments>
		</item>
		<item>
		<title>Recuperando uma partição com problemas no OSX</title>
		<link>http://www.luizpicanco.com/2011/05/27/recuperando-uma-particao-com-problemas-no-osx/</link>
		<comments>http://www.luizpicanco.com/2011/05/27/recuperando-uma-particao-com-problemas-no-osx/#comments</comments>
		<pubDate>Sat, 28 May 2011 00:14:32 +0000</pubDate>
		<dc:creator>Luiz Picanço</dc:creator>
				<category><![CDATA[MAC OSX]]></category>
		<category><![CDATA[osx]]></category>

		<guid isPermaLink="false">http://www.luizpicanco.com/?p=837</guid>
		<description><![CDATA[Ontem, durante uma falha de energia, meu osx não estava conseguindo mais montar a partição de boot. A mensagem que eu estava recebendo era a seguinte: failed to open/create the journal journal is not empty cannot mount root, errno = 19 Após uma série de tentativas frustradas de recuperação, consegui recuperá-la desabilitando o journal. Após [...]]]></description>
			<content:encoded><![CDATA[<p>Ontem, durante uma falha de energia, meu osx não estava conseguindo mais montar a partição de boot. A mensagem que eu estava recebendo era a seguinte:</p>
<p><code>failed to open/create the journal<br />
journal is not empty<br />
cannot mount root, errno = 19</code></p>
<p>Após uma série de tentativas frustradas de recuperação, consegui recuperá-la desabilitando o journal.<br />
Após bootar pelo cd do osx, vá para o terminal e entre com os seguintes comandos:</p>
<p><code>sudo mount_hfs -j device mount_dir<br />
sudo diskutil disableJournal mount_dir<br />
sudo diskutil enableJournal mount_dir</code></p>
<p>No meu caso, o device era disk0s2</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizpicanco.com/2011/05/27/recuperando-uma-particao-com-problemas-no-osx/feed/</wfw:commentRss>
		<slash:comments>2161</slash:comments>
		</item>
		<item>
		<title>Labs Facebook</title>
		<link>http://www.luizpicanco.com/2011/05/12/labs-facebook/</link>
		<comments>http://www.luizpicanco.com/2011/05/12/labs-facebook/#comments</comments>
		<pubDate>Thu, 12 May 2011 03:00:34 +0000</pubDate>
		<dc:creator>Luiz Picanço</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[cutucador]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[recitador]]></category>
		<category><![CDATA[sdk]]></category>

		<guid isPermaLink="false">http://www.luizpicanco.com/?p=834</guid>
		<description><![CDATA[Estou estudando a API do Facebook, que é muito boa por sinal. É possível desenvolver várias aplicações utilizando somente Javascript. Estou aproveitando esse estudo para desenvolver algumas aplicações simples para o Facebook: Recitador – Recite frases de sabedoria para o seus amigos! Cutucador – Cutuque os seus amigos]]></description>
			<content:encoded><![CDATA[<p>Estou estudando a API do Facebook, que é muito boa por sinal. É possível desenvolver várias aplicações utilizando somente Javascript.<br />
Estou aproveitando esse estudo para desenvolver algumas aplicações simples para o Facebook:</p>
<p><a href="http://apps.facebook.com/recitador"> Recitador</a> – Recite frases de sabedoria para o seus amigos!<br />
<a href="http://apps.facebook.com/facebook_poker/"> Cutucador</a> – Cutuque os seus amigos</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizpicanco.com/2011/05/12/labs-facebook/feed/</wfw:commentRss>
		<slash:comments>2648</slash:comments>
		</item>
		<item>
		<title>Levantando um http server simples no OSX, de forma nativa</title>
		<link>http://www.luizpicanco.com/2011/03/10/levantando-um-http-server-simples-no-osx-de-forma-nativa/</link>
		<comments>http://www.luizpicanco.com/2011/03/10/levantando-um-http-server-simples-no-osx-de-forma-nativa/#comments</comments>
		<pubDate>Fri, 11 Mar 2011 02:03:08 +0000</pubDate>
		<dc:creator>Luiz Picanço</dc:creator>
				<category><![CDATA[LifeHack]]></category>
		<category><![CDATA[MAC OSX]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.luizpicanco.com/?p=829</guid>
		<description><![CDATA[Estava precisando levantar um simples servidor http de páginas estáticas no osx. Após uma busca no google, descobri uma forma muito simples de fazer isso, utilizando pyhton, que ja vem embutido no osx. É só executar o seguinte comando do diretório a ser servido: Hadron:HTML lpicanco$ python -m SimpleHTTPServer 8082 Um simples servidor HTTP será [...]]]></description>
			<content:encoded><![CDATA[<p>Estava precisando levantar um simples servidor http de páginas estáticas no osx. Após uma busca no google, descobri uma forma muito simples de fazer isso, utilizando pyhton, que ja vem embutido no osx.</p>
<p>É só executar o seguinte comando do diretório a ser servido:<br />
<code>Hadron:HTML lpicanco$ <strong>python -m SimpleHTTPServer 8082</strong></code></p>
<p>Um simples servidor HTTP será iniciado para o diretório local. <em>8082</em> é o número da porta.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizpicanco.com/2011/03/10/levantando-um-http-server-simples-no-osx-de-forma-nativa/feed/</wfw:commentRss>
		<slash:comments>2947</slash:comments>
		</item>
		<item>
		<title>Usando o iPad ou o iPhone como segundo monitor no mac</title>
		<link>http://www.luizpicanco.com/2011/01/16/usando-o-ipad-ou-iphonecomo-segundo-monitor-no-mac/</link>
		<comments>http://www.luizpicanco.com/2011/01/16/usando-o-ipad-ou-iphonecomo-segundo-monitor-no-mac/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 18:54:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[LifeHack]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.luizpicanco.com/?p=824</guid>
		<description><![CDATA[Com uma tela daquele tamanho, seria desperdício não poder utilizar o iPad, ou até mesmo o iPhone como um segundo ou terceiro monitor, não ? O Air Display da Avatron resolve isso utilizando a rede wi-fi para compartilhar o display do iPad e do iPhone. A experiência é muito boa, tirando um pouco a lentidão [...]]]></description>
			<content:encoded><![CDATA[<p>Com uma tela daquele tamanho, seria desperdício não poder utilizar o iPad, ou até mesmo o iPhone como um segundo ou terceiro monitor, não ?</p>
<p style="text-align: center;"><img class="aligncenter" title="Air Display" src="http://avatron.com/images/air-display-product-shot.jpg" alt="" width="538" height="253" /></p>
<p>O Air Display da Avatron resolve isso utilizando a rede wi-fi para compartilhar o display do iPad e do iPhone.<br />
A experiência é muito boa, tirando um pouco a lentidão na renderização da tela do iPad, devido a baixa velocidade da rede wifi.</p>
<p>Além de versão para OSX, tem versão também Windows.<br />
<a href="http://avatron.com/apps/air-display">http://avatron.com/apps/air-display</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizpicanco.com/2011/01/16/usando-o-ipad-ou-iphonecomo-segundo-monitor-no-mac/feed/</wfw:commentRss>
		<slash:comments>3400</slash:comments>
		</item>
		<item>
		<title>O Photoshop não abre arquivos do Photoshop ?</title>
		<link>http://www.luizpicanco.com/2011/01/15/o-photoshop-nao-abre-arquivos-do-photoshop/</link>
		<comments>http://www.luizpicanco.com/2011/01/15/o-photoshop-nao-abre-arquivos-do-photoshop/#comments</comments>
		<pubDate>Sat, 15 Jan 2011 03:35:18 +0000</pubDate>
		<dc:creator>Luiz Picanço</dc:creator>
				<category><![CDATA[Humor]]></category>
		<category><![CDATA[fail]]></category>
		<category><![CDATA[photoshop]]></category>

		<guid isPermaLink="false">http://www.luizpicanco.com/?p=735</guid>
		<description><![CDATA[Então tá&#8230;]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.luizpicanco.com/wp-content/uploads/2011/01/fail.tiff"><img src="http://www.luizpicanco.com/wp-content/uploads/2011/01/fail.tiff" alt="" title="Photoshop Fail" class="aligncenter size-full wp-image-736" /></a></p>
<p>Então tá&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizpicanco.com/2011/01/15/o-photoshop-nao-abre-arquivos-do-photoshop/feed/</wfw:commentRss>
		<slash:comments>3230</slash:comments>
		</item>
		<item>
		<title>Talk is cheap. Show me the code!</title>
		<link>http://www.luizpicanco.com/2011/01/05/talk-is-cheap-show-me-the-code-2/</link>
		<comments>http://www.luizpicanco.com/2011/01/05/talk-is-cheap-show-me-the-code-2/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 03:05:43 +0000</pubDate>
		<dc:creator>Luiz Picanço</dc:creator>
				<category><![CDATA[Linguagem]]></category>
		<category><![CDATA[programação]]></category>

		<guid isPermaLink="false">http://www.luizpicanco.com/2011/01/05/task-is-cheap-show-me-the-code/</guid>
		<description><![CDATA[Essa é a camisa!]]></description>
			<content:encoded><![CDATA[<p style="clear: both">Essa é a camisa!<br /><img alt="Task is cheap. Show me the code" src="http://posterous.com/getfile/files.posterous.com/temp-2010-12-11/wbbrcxCzlJtizjgIeciwqkCCxHEHBApsirvFycddjzmwHsuIbJFxAvppAmFI/show-me-the-code-v3.jpg.scaled600.jpg" title="Task is cheap. Show me the code" class="aligncenter" width="556" height="350" /></p>
<p><br class="final-break" style="clear: both" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizpicanco.com/2011/01/05/talk-is-cheap-show-me-the-code-2/feed/</wfw:commentRss>
		<slash:comments>2578</slash:comments>
		</item>
		<item>
		<title>Removendo a acentuação e os caracteres especiais de uma String</title>
		<link>http://www.luizpicanco.com/2010/05/28/removendo-a-acentuacao-e-os-caracteres-especiais-de-uma-string/</link>
		<comments>http://www.luizpicanco.com/2010/05/28/removendo-a-acentuacao-e-os-caracteres-especiais-de-uma-string/#comments</comments>
		<pubDate>Fri, 28 May 2010 13:56:37 +0000</pubDate>
		<dc:creator>Luiz Picanço</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[algoritmo]]></category>

		<guid isPermaLink="false">http://www.luizpicanco.com/?p=212</guid>
		<description><![CDATA[Estava precisando remover a acentuação e os caracteres especiais do nome de um arquivo. Para isso, desenvolvi um extension method para a classe String. Exemplo: String de entrada: Adobe Acrobat &#8211; Pacy-Paraná_05.12_áèïôúã+.pdf String de retorno: AdobeAcrobatPacyParana_05.12_aeioua.pdf Desenvolvi o método utilizando uma HashTable e expressão regular. Caso você tenha alguma sugestão de melhoria, poste aí nos [...]]]></description>
			<content:encoded><![CDATA[<p>Estava precisando remover a acentuação e os caracteres especiais do nome de um arquivo. Para isso, desenvolvi um extension method para a classe String.</p>
<p>Exemplo:<br />
String de entrada:<br />
<strong>Adobe Acrobat &#8211; Pacy-Paraná_05.12_áèïôúã+.pdf</strong></p>
<p>String de retorno:<br />
<strong>AdobeAcrobatPacyParana_05.12_aeioua.pdf</strong></p>
<p>Desenvolvi o método utilizando uma HashTable e expressão regular. Caso você tenha alguma sugestão de melhoria, poste aí nos comentários.</p>
<p>Extension method:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">String</span> RemoveSpecialCharacters<span style="color: #000000;">&#40;</span><span style="color: #0600FF;">this</span> <span style="color: #FF0000;">String</span> self<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
	var normalizedString <span style="color: #008000;">=</span> self<span style="color: #008000;">;</span>
&nbsp;
	<span style="color: #008080; font-style: italic;">// Prepara a tabela de símbolos.</span>
	var symbolTable <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Dictionary<span style="color: #008000;">&lt;</span><span style="color: #FF0000;">char</span>, <span style="color: #FF0000;">char</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span><span style="color: #008000;">&gt;</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
	symbolTable.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">'a'</span>, <span style="color: #008000;">new</span> <span style="color: #FF0000;">char</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> <span style="color: #000000;">&#123;</span><span style="color: #666666;">'à'</span>, <span style="color: #666666;">'á'</span>, <span style="color: #666666;">'ä'</span>, <span style="color: #666666;">'â'</span>, <span style="color: #666666;">'ã'</span><span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
	symbolTable.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">'c'</span>, <span style="color: #008000;">new</span> <span style="color: #FF0000;">char</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> <span style="color: #000000;">&#123;</span> <span style="color: #666666;">'ç'</span> <span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
	symbolTable.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">'e'</span>, <span style="color: #008000;">new</span> <span style="color: #FF0000;">char</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> <span style="color: #000000;">&#123;</span> <span style="color: #666666;">'è'</span>, <span style="color: #666666;">'é'</span>, <span style="color: #666666;">'ë'</span>, <span style="color: #666666;">'ê'</span> <span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
	symbolTable.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">'i'</span>, <span style="color: #008000;">new</span> <span style="color: #FF0000;">char</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> <span style="color: #000000;">&#123;</span> <span style="color: #666666;">'ì'</span>, <span style="color: #666666;">'í'</span>, <span style="color: #666666;">'ï'</span>, <span style="color: #666666;">'î'</span> <span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
	symbolTable.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">'o'</span>, <span style="color: #008000;">new</span> <span style="color: #FF0000;">char</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> <span style="color: #000000;">&#123;</span> <span style="color: #666666;">'ò'</span>, <span style="color: #666666;">'ó'</span>, <span style="color: #666666;">'ö'</span>, <span style="color: #666666;">'ô'</span>, <span style="color: #666666;">'õ'</span> <span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
	symbolTable.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">'u'</span>, <span style="color: #008000;">new</span> <span style="color: #FF0000;">char</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> <span style="color: #000000;">&#123;</span> <span style="color: #666666;">'ù'</span>, <span style="color: #666666;">'ú'</span>, <span style="color: #666666;">'ü'</span>, <span style="color: #666666;">'û'</span> <span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
	<span style="color: #008080; font-style: italic;">// Substitui os símbolos.</span>
	<span style="color: #0600FF;">foreach</span> <span style="color: #000000;">&#40;</span>var key <span style="color: #0600FF;">in</span> symbolTable.<span style="color: #0000FF;">Keys</span><span style="color: #000000;">&#41;</span>
	<span style="color: #000000;">&#123;</span>
		<span style="color: #0600FF;">foreach</span> <span style="color: #000000;">&#40;</span>var symbol <span style="color: #0600FF;">in</span> symbolTable<span style="color: #000000;">&#91;</span>key<span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>
		<span style="color: #000000;">&#123;</span>
			normalizedString <span style="color: #008000;">=</span> normalizedString.<span style="color: #0000FF;">Replace</span><span style="color: #000000;">&#40;</span>symbol, key<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
		<span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span>
&nbsp;
	<span style="color: #008080; font-style: italic;">// Remove os outros caracteres especiais.</span>
	normalizedString <span style="color: #008000;">=</span> Regex.<span style="color: #0000FF;">Replace</span><span style="color: #000000;">&#40;</span>normalizedString, <span style="color: #666666;">&quot;[^0-9a-zA-Z._]+?&quot;</span>, <span style="color: #666666;">&quot;&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
	<span style="color: #0600FF;">return</span> normalizedString<span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.luizpicanco.com/2010/05/28/removendo-a-acentuacao-e-os-caracteres-especiais-de-uma-string/feed/</wfw:commentRss>
		<slash:comments>2087</slash:comments>
		</item>
		<item>
		<title>Criando um relógio analógico com Processing JS</title>
		<link>http://www.luizpicanco.com/2010/05/26/criando-um-relogio-analogico-com-processing-js/</link>
		<comments>http://www.luizpicanco.com/2010/05/26/criando-um-relogio-analogico-com-processing-js/#comments</comments>
		<pubDate>Thu, 27 May 2010 02:24:08 +0000</pubDate>
		<dc:creator>Luiz Picanço</dc:creator>
				<category><![CDATA[Processing]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[processingjs]]></category>

		<guid isPermaLink="false">http://www.luizpicanco.com/?p=210</guid>
		<description><![CDATA[Excelente tutorial do Thej, do blog Thejesh GN, sobre processingjs. Nesse tutorial, ele ensina como criar um relógio analógico usando processing. Getting started with Processingjs by writing Analog clock]]></description>
			<content:encoded><![CDATA[<p>Excelente tutorial do Thej, do blog <a href="http://thejeshgn.com">Thejesh GN</a>, sobre processingjs.</p>
<p>Nesse tutorial, ele ensina como criar um relógio analógico usando processing.</p>
<p><a href="http://thejeshgn.com/2009/10/29/getting-started-with-processingjs-by-writing-analog-clock/">Getting started with Processingjs by writing Analog clock</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizpicanco.com/2010/05/26/criando-um-relogio-analogico-com-processing-js/feed/</wfw:commentRss>
		<slash:comments>3746</slash:comments>
		</item>
		<item>
		<title>Processing Labs: Game Of Life</title>
		<link>http://www.luizpicanco.com/2010/05/25/processing-labs-game-of-life/</link>
		<comments>http://www.luizpicanco.com/2010/05/25/processing-labs-game-of-life/#comments</comments>
		<pubDate>Wed, 26 May 2010 02:37:00 +0000</pubDate>
		<dc:creator>Luiz Picanço</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[game of life]]></category>

		<guid isPermaLink="false">http://www.luizpicanco.com/?p=151</guid>
		<description><![CDATA[Comecei a estudar processing. Processing é uma linguagem de programação para trabalhar com visualização de dados. Processing.js é um porte da linguagem para Javascript. Como primeiro experimento, o famoso Game of Life.]]></description>
			<content:encoded><![CDATA[<p>Comecei a estudar <a href="http://processing.org">processing</a>. Processing é uma linguagem de programação para trabalhar com visualização de dados. <a href="http://processingjs.org">Processing.js</a> é um porte da linguagem para Javascript.</p>
<p>Como primeiro experimento, o famoso <a href="http://en.wikipedia.org/wiki/Conway's_Game_of_Life">Game of Life</a>.</p>
<p><script type="application/processing">
int sx, sy; 
float density = 0.5; 
int[][][] world;
 
void setup() 
{ 
  size(100, 100);
  frameRate(15);
  sx = width;
  sy = height;
  world = new int[sx][sy][2]; 
  stroke(255); 
   
  // Set random cells to 'on' 
  for (int i = 0; i < sx * sy * density; i++) { 
    world[(int)random(sx)][(int)random(sy)][1] = 1; 
  } 
} 
 
void draw() 
{ 
  background(0); 
  
  // Drawing and update cycle 
  for (int x = 0; x < sx; x=x+1) { 
    for (int y = 0; y < sy; y=y+1) { 
      //if (world[x][y][1] == 1) 

      if ((world[x][y][1] == 1) || (world[x][y][1] == 0 && world[x][y][0] == 1)) 
      { 
        world[x][y][0] = 1; 
        point(x, y); 
      } 
      if (world[x][y][1] == -1) 
      { 
        world[x][y][0] = 0; 
      } 
      world[x][y][1] = 0; 
    } 
  } 
  // Birth and death cycle 
  for (int x = 0; x < sx; x=x+1) { 
    for (int y = 0; y < sy; y=y+1) { 
      int count = neighbors(x, y); 
      if (count == 3 && world[x][y][0] == 0) 
      { 
        world[x][y][1] = 1; 
      } 
      if ((count < 2 || count > 3) && world[x][y][0] == 1) 
     { 
        world[x][y][1] = -1; 
      } 
    } 
  } 
} 
 
// Count the number of adjacent cells 'on' 
int neighbors(int x, int y) 
{ 
  return world[(x + 1) % sx][y][0] + 
         world[x][(y + 1) % sy][0] + 
         world[(x + sx - 1) % sx][y][0] + 
         world[x][(y + sy - 1) % sy][0] + 
         world[(x + 1) % sx][(y + 1) % sy][0] + 
         world[(x + sx - 1) % sx][(y + 1) % sy][0] + 
         world[(x + sx - 1) % sx][(y + sy - 1) % sy][0] + 
         world[(x + 1) % sx][(y + sy - 1) % sy][0]; 
}
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizpicanco.com/2010/05/25/processing-labs-game-of-life/feed/</wfw:commentRss>
		<slash:comments>2771</slash:comments>
		</item>
	</channel>
</rss>

