<?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>protected  * void &#187; Mac</title>
	<atom:link href="http://www.danilocesar.com/blog/category/mac/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.danilocesar.com/blog</link>
	<description>Tecnologia, Linux e Software Livre</description>
	<lastBuildDate>Thu, 30 Sep 2010 16:00:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Symbian, 2D games e Flags de Optimização.</title>
		<link>http://www.danilocesar.com/blog/2010/09/30/symbian-2d-games-e-flags-de-optimizacao-performance/</link>
		<comments>http://www.danilocesar.com/blog/2010/09/30/symbian-2d-games-e-flags-de-optimizacao-performance/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 15:53:34 +0000</pubDate>
		<dc:creator>Danilo Cesar</dc:creator>
				<category><![CDATA[kde]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Maemo]]></category>
		<category><![CDATA[Mandriva]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Portáteis]]></category>
		<category><![CDATA[QT]]></category>
		<category><![CDATA[SL]]></category>
		<category><![CDATA[Nokia]]></category>
		<category><![CDATA[Symbian]]></category>

		<guid isPermaLink="false">http://www.danilocesar.com/blog/?p=224</guid>
		<description><![CDATA[Este artigo é uma tradução rápida do original&#8230; Após dois anos e meio desenvolvendo rich ui&#8217;s usando QGraphicsView e tentando todo tipo de flags exóticas ou abordagens diferentes para conseguir melhores resultados de performance com Symbian, estou publicando aquelas que podem ser úteis para programadores de jogos. Com a ajuda do Ademar escolhemos um bom [...]]]></description>
			<content:encoded><![CDATA[<p><em>Este artigo é uma tradução rápida do <a href="http://labs.danilocesar.com/blog/2010/09/19/symbian-2d-games-and-qt-optimization-flags/">original</a>&#8230;</em><br />
Após dois anos e meio desenvolvendo <em>rich ui&#8217;s</em> usando QGraphicsView e tentando todo tipo de flags exóticas ou abordagens diferentes para conseguir melhores resultados de performance com Symbian, estou publicando aquelas que podem ser úteis para programadores de jogos.</p>
<p>Com a ajuda do <a href="http://www.ademar.org">Ademar</a> escolhemos um bom caso de uso. Um &#8220;bouncing game&#8221;.</p>
<h2>O Jogo</h2>
<p><img class="size-medium wp-image-52 alignleft" style="margin: 2px 20px 2px 2px;" title="ChainReaction" src="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/10_balls-168x300.png" alt="10 balls image of chainreaction game" width="151" height="270" /></p>
<div style="display: block;">
<p>O Jogo é bem simples: Algumas bolinhas correndo pela tela; Se você pressionar alguma delas ela vai explodir. Se uma bolinha explodida tocar em uma bola normal, esta explode também. Mas no fim das contas a lógica do jogo não é muito importante agora, mas sim as características do jogo vistas pela visão de um desenvolvedor. São elas:</p>
<ul>
<li>Background estático.</li>
<li>Bolinhas podem ser implementadas como QGraphicsItem.</li>
<li>Bolinhas vermelhas estão sempre em movimento.</li>
<li>Não acontece colisão entre as bolinhas não explodidas.</li>
<li>A lista de elementos pode crescer.</li>
<li>Os elementos estão espalhados aleatoriamente pela tela.</li>
</ul>
</div>
<div style="display: block; clear: both;"><span style="color: #ff6600;"><strong><em>Os comentários abaixo são válidos para jogos com as características acima. Mudanças nestas características podem influenciar o resultado final.</em></strong></span></div>
<h2>As flags</h2>
<p>As flags que comentarei neste post são:</p>
<ul>
<li><a href="http://doc.trolltech.com/4.6/qgraphicsscene.html#ItemIndexMethod-enum">QGraphicsScene::ItemIndexMethod</a></li>
<li><a href="http://doc.trolltech.com/4.6/qgraphicsview.html#OptimizationFlag-enum">QGraphicsView::OptimizationFlags</a></li>
<li><a href="http://doc.trolltech.com/4.6/qgraphicsview.html#ViewportUpdateMode-enum">QGraphicsView::ViewportUpdateMode</a></li>
</ul>
<h2>Os resultados</h2>
<p>* Os testes foram executados em um Nokia 5800, RM-356 rodando firmware V51.0.006 com Qt 4.6.3.<br />
** O eixo Y dos testes é o FPS. Quanto maior, melhor.</p>
<h3>Testes com 10 elementos</h3>
<p><a href="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/bsp-noindex-all.png"><img class="alignnone size-full wp-image-56" title="bsp-noindex-all" src="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/bsp-noindex-all.png" alt="" width="721" height="374" /></a></p>
<p>Primeiro de tudo, tentei as 4 formas de update da Viewport usando 10 elementos na tela. O MinimalViewportUpdate e o SmartViewportUpdate renderam a maior taxa de FPS (34 e 33.5). A documentação da biblioteca mostra que <a href="http://doc.trolltech.com/4.6/qgraphicsscene.html#ItemIndexMethod-enum">NoIndex</a> é a melhor opção para cenas dinâmicas. Bem, a diferença é bem pequena, mas é verdade.</p>
<p>Neste caso, para os próximos testes, usarei sempre NoIndex.</p>
<h4>E quanto às flags?</h4>
<p><a href="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/opt-1.png"><img class="alignnone size-full wp-image-57" title="opt-1" src="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/opt-1.png" alt="" width="575" height="379" /></a></p>
<p>Dado os melhores resultado dos últimos testes (SmartViewportUpdate and BoundingRectViewportUpdate) foi feito outro teste com as duas flags de optimização <a href="http://doc.trolltech.com/4.6/qgraphicsview.html#OptimizationFlag-enum">QGraphicsView::DontSavePainterState</a> e <a href="QGraphicsView::DontAdjustForAntialiasing">QGraphicsView::DontAdjustForAntialiasing</a>. A conclusão foi que estas flags de optimização rendem uma pequena melhora no desempenho, mas somente se você puder controlar precisamente a maneira como seus elementos são desenhados. Caso contrário você pode enfrentar problemas de renderização.</p>
<h3>20 elementos</h3>
<p><a href="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/opt-20.png"><img class="alignnone size-full wp-image-58" title="opt-20" src="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/opt-20.png" alt="" width="728" height="375" /></a></p>
<h3>30 elementos</h3>
<p><a href="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/opt-30.png"><img class="alignnone size-full wp-image-60" title="opt-30" src="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/opt-30.png" alt="" width="723" height="376" /></a></p>
<h3>40 elementos</h3>
<p><a href="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/opt-40.png"><img class="alignnone size-full wp-image-61" title="opt-40" src="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/opt-40.png" alt="" width="723" height="369" /></a></p>
<h2>Lições aprendidas</h2>
<p>É importante selecionar corretamente a maneira como serão feitos dos updates da Viewport. Isso pode fazer a diferença.</p>
<p>Se existem muitos elementos dinâmicos, e se eles estão espalhados por toda a tela, é mais barato pintar toda a tela (ou pelo menos o bounding rect) do que tentar determinar a área afetada pelo movimento e só pintar estes espaços.</p>
<p>Para ser honesto eu estava esperando um resultado melhor do FullViewportUpdate, mas acredito que obteríamos melhores resultados (do que o BoundingRect) se fosse utilizado um background não estático.</p>
<h2>Mas&#8230; E se..?</h2>
<p>Q:O que aconteceria se fosse utilizado somente um único graphicsItem para pintar todas a bolinhas? O que aconteceria se uma bolinha não fosse um ítem, mas apenas um objeto com um método de renderização?</p>
<p>R: Fiquei um pouco surpreso com o resultado, mas o desempenho do Qt (especialmente os states do QPainter) melhorou muito desde a versão 4.6 e o resultado deste teste obteve resultados piores do que usando vários QGraphicsItems. Esta abordagem obtém melhor rendimento que a abordagem padrão apenas se o número de elementos é maior que 60.</p>
<p><a href="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/hack.png"><img class="alignnone size-full wp-image-62" title="hack" src="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/hack.png" alt="" width="521" height="379" /></a></p>
<h2>Depois de escrever os testes, o que acontece com o código?</h2>
<p>Usando os conhecimentos adquirido pelos testes e com a ajuda de uma das designers do INdT &#8211; <a href="http://www.naraosga.com">Nara</a> &#8211; estou liberando uma versão de um jogo baseado na engine dos testes. Não está totalmente concluído, faltam alguns elementos, mas já está jogável. =)</p>
<p><a href="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/chubbalubba.png"><img class="alignnone size-medium wp-image-69" title="chubbalubba" src="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/chubbalubba-168x300.png" alt="" width="168" height="300" /></a></p>
<p><a href="http://labs.danilocesar.com/qt/symbian/chubbyluba.sis">Symbian package here!</a></p>
<p>Por enquanto segue apenas o demo, e em breve a versão completa na Ovi Store mais perto de você!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilocesar.com/blog/2010/09/30/symbian-2d-games-e-flags-de-optimizacao-performance/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PobreBand drum kit</title>
		<link>http://www.danilocesar.com/blog/2009/03/29/pobreband-drumkit/</link>
		<comments>http://www.danilocesar.com/blog/2009/03/29/pobreband-drumkit/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 03:53:00 +0000</pubDate>
		<dc:creator>Danilo Cesar</dc:creator>
				<category><![CDATA[/dev/null]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Mandriva]]></category>
		<category><![CDATA[Portáteis]]></category>
		<category><![CDATA[Quick Tip]]></category>
		<category><![CDATA[SL]]></category>
		<category><![CDATA[Ubuntu-Br]]></category>
		<category><![CDATA[acordes]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[diversão]]></category>
		<category><![CDATA[embarcados]]></category>
		<category><![CDATA[música]]></category>

		<guid isPermaLink="false">http://www.danilocesar.com/blog/?p=187</guid>
		<description><![CDATA[Quando chegou o RockBand no trabalho criou-se uma necessidade que eu nunca tinha tido: Uma bateria. Óbviamente eu não queria pagar uma grana altíssima numa bateria profissional ou no kit completo do rockband. A Solução? ProbreBand!!! Na verdade é apenas o início da implementação do Ardrumo, que usa um Arduino e alguns piezos para gerar [...]]]></description>
			<content:encoded><![CDATA[<p>Quando chegou o <a href="http://pt.wikipedia.org/wiki/Rock_Band">RockBand</a> no <a href="http://www.openbossa.org">trabalho</a> criou-se uma necessidade que eu nunca tinha tido: Uma bateria.</p>
<p>Óbviamente eu não queria pagar uma grana altíssima numa bateria profissional ou no kit completo do rockband. A Solução? <a href="http://www.youtube.com/watch?v=w2NpSS2BhR0"><strong>ProbreBand</strong></a>!!!</p>
<p>Na verdade é apenas o início da implementação do <a href="http://code.google.com/p/ardrumo/">Ardrumo</a>, que usa um <a href="http://www.arduino.cc">Arduino</a> e alguns piezos para gerar um sinal  que é enviado para o sequenciador MIDI do mac (Futuramente do Linux? talvez&#8230;). Segue abaixo o <a href="http://www.youtube.com/watch?v=w2NpSS2BhR0">vídeo</a>.</p>
<p><object width="425" height="344" data="http://www.youtube.com/v/w2NpSS2BhR0&amp;hl=en&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/w2NpSS2BhR0&amp;hl=en&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6" /><param name="allowfullscreen" value="true" /></object><br />
<em>* Minha irmã sempre disse que eu não tinha ritmo =)</em></p>
<p>Fiquei meio preocupado com o tempo de resposta e sensibilidade. Mas o tempo de resposta é muito bom (no vídeo parece que tá atrasado, mas só parece), e a sensibilidade fica perfeita quando você prende os piezos em alguma superfície.</p>
<p>Enfim, voltar a brincar com embarcados tem sido divertido, ainda mais aprendendo eletrônica. Breve comento sobre outros brinquedos que estou fazendo (com motor de passo, e um servo que está pra chegar).</p>
<p>Agradecimentos a <a href="http://wouwlabs.com/blogs/jeez">Jesus</a> (não <a href="http://pt.wikipedia.org/wiki/Jesus">esse Jesus</a>), que me incentivou a comprar o Arduino, e ao Alex, Thulio, <a href="http://wouwlabs.com/blogs/jeez">Jeez</a> e <a href="http://castelodolord.blogspot.com/">Larry</a> que estão me dando dicas de eletrônica. E claro, ao cara do <a href="http://code.google.com/p/ardrumo/">Ardrumo</a> que me fez economizar uma grana. =)</p>
<p><strong>[update: 29/03/2009]</strong> A idéia é montar uma estrutura maior de borracha para os sensores, e uma estrutura em PVC para a bateria. Se um dia eu conseguir ponho aqui. A idéia é algo parecido com <a href="http://members.cox.net/ampage/img/triggers/03barekit.jpg">isso</a>:</p>
<p><img src="http://members.cox.net/ampage/img/triggers/03barekit.jpg" alt="Bateria Eletronica" width="262" height="193" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilocesar.com/blog/2009/03/29/pobreband-drumkit/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>QT mudando para LGPL</title>
		<link>http://www.danilocesar.com/blog/2009/01/14/qt-mudando-para-lgpl/</link>
		<comments>http://www.danilocesar.com/blog/2009/01/14/qt-mudando-para-lgpl/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 12:28:27 +0000</pubDate>
		<dc:creator>Danilo Cesar</dc:creator>
				<category><![CDATA[/dev/null]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Maemo]]></category>
		<category><![CDATA[Mandriva]]></category>
		<category><![CDATA[Portáteis]]></category>
		<category><![CDATA[PyS60]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[QT]]></category>
		<category><![CDATA[Quick Tip]]></category>
		<category><![CDATA[SL]]></category>
		<category><![CDATA[Ubuntu-Br]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[N800]]></category>
		<category><![CDATA[Nokia]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.danilocesar.com/blog/?p=166</guid>
		<description><![CDATA[Fonte: http://arstechnica.com/news.ars/post/20090114-nokia-qt-lgpl-switch-huge-win-for-cross-platform-development.html Ao menos uma das previsões de 2008 saiu =) [UPDATE 14/01 09:40]]]></description>
			<content:encoded><![CDATA[<p>Fonte: <a href="http://arstechnica.com/news.ars/post/20090114-nokia-qt-lgpl-switch-huge-win-for-cross-platform-development.html" target="_blank">http://arstechnica.com/news.ars/post/20090114-nokia-qt-lgpl-switch-huge-win-for-cross-platform-development.html</a></p>
<p><img class="alignnone size-full wp-image-167" title="Eu já sabia" src="http://www.danilocesar.com/blog/wp-content/uploads/2009/01/eujasabia.jpg" alt="Eu já sabia" width="400" height="300" /></p>
<p>Ao menos <a href="http://www.danilocesar.com/blog/2008/01/28/extra-extra-nokia-adquire-trolltech/">uma das previsões de 2008</a> saiu =)</p>
<p><strong>[UPDATE 14/01 09:40]</strong></p>
<p><object width="480" height="295"><param name="movie" value="http://www.youtube.com/v/IsTIIQocSqs&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/IsTIIQocSqs&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilocesar.com/blog/2009/01/14/qt-mudando-para-lgpl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Histórico de múltiplas instâncias do bash</title>
		<link>http://www.danilocesar.com/blog/2008/08/06/historico-de-multiplas-instancias-do-bash/</link>
		<comments>http://www.danilocesar.com/blog/2008/08/06/historico-de-multiplas-instancias-do-bash/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 23:14:28 +0000</pubDate>
		<dc:creator>Danilo Cesar</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Maemo]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Portáteis]]></category>
		<category><![CDATA[Quick Tip]]></category>
		<category><![CDATA[SL]]></category>
		<category><![CDATA[Ubuntu-Br]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[history]]></category>

		<guid isPermaLink="false">http://www.danilocesar.com/blog/?p=152</guid>
		<description><![CDATA[Isto pode ser útil para quem trabalha com várias janelas de terminal. O comando history do bash (também o CTRL+R) guarda apenas o histórico da última sessão aberta, o que é um problema para quem usa mais de um terminal (eu uso o conjunto Xterm + screen). Para corrigir isto, adicione em seu .bashrc #Firulas [...]]]></description>
			<content:encoded><![CDATA[<p>Isto pode ser útil para quem trabalha com várias janelas de terminal.</p>
<p>O comando <strong><em>history</em></strong> do bash (também o CTRL+R) guarda apenas o histórico da última sessão aberta, o que é um problema para quem usa mais de um terminal (eu uso o conjunto Xterm + screen).</p>
<p>Para corrigir isto, adicione em seu .bashrc</p>
<p><code>#Firulas de historico com o bash<br />
export PROMPT_COMMAND="history -a"<br />
export HISTFILESIZE=2000<br />
shopt -s histappend</code></p>
<p>Trabalhe com quantos terminais quiser, e guarde o histórico de todos!</p>
<p>[<strong>UPDATE 07/08/2008</strong>]: Tinha um erro na última linha. Obrigado <a href="http://www.myspace.com/andrevmatos" target="_blank">André Matos</a> e <a href="http://vivaotux.blogspot.com/">Sérgio Silva</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilocesar.com/blog/2008/08/06/historico-de-multiplas-instancias-do-bash/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>PiTracker &#8211; tracker de imagem em QT4.</title>
		<link>http://www.danilocesar.com/blog/2008/06/18/pitracker-tracker-de-imagem-em-qt4/</link>
		<comments>http://www.danilocesar.com/blog/2008/06/18/pitracker-tracker-de-imagem-em-qt4/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 23:48:34 +0000</pubDate>
		<dc:creator>Danilo Cesar</dc:creator>
				<category><![CDATA[/dev/null]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Mandriva]]></category>
		<category><![CDATA[QT]]></category>
		<category><![CDATA[Quick Tip]]></category>
		<category><![CDATA[SL]]></category>
		<category><![CDATA[UFPR]]></category>
		<category><![CDATA[pi]]></category>
		<category><![CDATA[processamento de imagens]]></category>

		<guid isPermaLink="false">http://www.danilocesar.com/blog/?p=138</guid>
		<description><![CDATA[Seguindo a linha do &#8220;Liberando trabalhos da UFPR&#8220;, estou liberando o código do PiTracker. Projeto da matéria de Processamento de Imagens, o objetivo era fazer um tracker de pessoas em um determinado vídeo. Na especificação havia: O vídeo será uma sequência de imagens PPM nomeada da forma &#60;nome&#62;_&#60;seq&#62;.ppm. Ou seja, se a sequência se chamar [...]]]></description>
			<content:encoded><![CDATA[<p>Seguindo a linha do &#8220;<a href="http://www.danilocesar.com/blog/2008/06/01/liberando-trabalhos-da-ufpr/" target="_blank">Liberando trabalhos da UFPR</a>&#8220;, estou liberando o código do PiTracker.</p>
<p>Projeto da matéria de <a href="http://www.imago.ufpr.br/disciplinas_olga/pi/img_trab1.tgz" target="_blank">Processamento de Imagens</a>, o objetivo era fazer um tracker de pessoas em um determinado vídeo.</p>
<p>Na especificação havia:</p>
<ul>
<li>O vídeo será uma sequência de imagens PPM nomeada da forma &lt;nome&gt;_&lt;seq&gt;.ppm. Ou seja, se a sequência se chamar tracker, o primeiro arquivo será o tracker_00.ppm.</li>
<li>O vídeo será testado em dois casos: No primeiro haverá uma pessoa, no segundo duas.</li>
<li>As pessoas devem ser marcadas com cores diferentes, e a mesma cor para cada uma das pessoas.</li>
<li>Em nenhum momento as pessoas se cruzam.</li>
</ul>
<p>Assim fica fácil! =)</p>
<p>Segue algumas screen shots:</p>
<p><img class="size-medium wp-image-139" title="Tracker-1" src="http://www.danilocesar.com/blog/wp-content/uploads/2008/06/picture-1-300x288.png" alt="" width="300" height="288" /></p>
<p><img class="size-medium wp-image-140" title="Tracker2" src="http://www.danilocesar.com/blog/wp-content/uploads/2008/06/picture-2-300x287.png" alt="Primeira pessoa aparecendo na imagem" width="300" height="287" /></p>
<p><img class="size-medium wp-image-141" title="Tracker-3" src="http://www.danilocesar.com/blog/wp-content/uploads/2008/06/picture-3-300x287.png" alt="Segunda pessoa aparecendo na imagem" width="300" height="287" /></p>
<p><img class="size-medium wp-image-142" title="Tracker-4" src="http://www.danilocesar.com/blog/wp-content/uploads/2008/06/picture-4-300x288.png" alt="Duas pessoas marcadas lado-a-lado" width="300" height="288" /></p>
<p>Como de costume, o código está no SVN em:<br />
<code>
<pre>http://danilocesar.com/svn/pitracker/</pre>
<p></code><br />
E as imagens podem ser encontradas <a href="http://www.imago.ufpr.br/disciplinas_olga/pi/img_trab1.tgz" target="_blank">no site da matéria</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilocesar.com/blog/2008/06/18/pitracker-tracker-de-imagem-em-qt4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Auto-completar no python do Mac OsX</title>
		<link>http://www.danilocesar.com/blog/2008/05/27/auto-completar-no-python-do-mac-osx/</link>
		<comments>http://www.danilocesar.com/blog/2008/05/27/auto-completar-no-python-do-mac-osx/#comments</comments>
		<pubDate>Wed, 28 May 2008 02:56:23 +0000</pubDate>
		<dc:creator>Danilo Cesar</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Quick Tip]]></category>
		<category><![CDATA[SL]]></category>
		<category><![CDATA[Ubuntu-Br]]></category>

		<guid isPermaLink="false">http://www.danilocesar.com/blog/?p=135</guid>
		<description><![CDATA[Certa vez o Ademar comentou que o python tinha auto-completar por padrão. Pessoalmente nunca tinha percebido isto, e conversando com o Ramiro percebi o porquê: Mac OS X e Windows não inicializam os módulos readline e o rlcompleter sozinhos. Procurando um pouco vi que habilitá-los é fácil. Primeiro edite o arquivo ~/.pythonrc #Enable syntax completion [...]]]></description>
			<content:encoded><![CDATA[<p>Certa vez o <a href="http://blog.ademar.org/2008/05/24/adeus-curitiba/">Ademar</a> comentou que o python tinha auto-completar por padrão. Pessoalmente nunca tinha percebido isto, e conversando com o <a href="http://www.ramiroluz.eti.br/">Ramiro</a> percebi o porquê: Mac OS X e Windows não inicializam os módulos <strong>readline</strong> e o <strong>rlcompleter</strong> sozinhos.</p>
<p>Procurando um pouco vi que habilitá-los é fácil.</p>
<p>Primeiro edite o arquivo ~/.pythonrc<br />
<code>
<pre>#Enable syntax completion
try:
    import readline
except ImportError:
    print "Module readline not available."
else:
    import rlcompleter
    readline.parse_and_bind("tab: complete")
</pre>
<p></code></p>
<p>Após isto, em seu ~/.bashrc adicione:<br />
<code><br />
export PYTHONSTARTUP=~/.pythonrc<br />
</code></p>
<p>Agora inicie o python e faça o teste.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilocesar.com/blog/2008/05/27/auto-completar-no-python-do-mac-osx/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Extra, extra&#8230; Nokia adquire TrollTech</title>
		<link>http://www.danilocesar.com/blog/2008/01/28/extra-extra-nokia-adquire-trolltech/</link>
		<comments>http://www.danilocesar.com/blog/2008/01/28/extra-extra-nokia-adquire-trolltech/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 18:20:33 +0000</pubDate>
		<dc:creator>Danilo Cesar</dc:creator>
				<category><![CDATA[/dev/null]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Maemo]]></category>
		<category><![CDATA[Mandriva]]></category>
		<category><![CDATA[Mercado e Ações]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Quick Tip]]></category>
		<category><![CDATA[SL]]></category>
		<category><![CDATA[Ubuntu-Br]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[Nokia]]></category>
		<category><![CDATA[QT]]></category>
		<category><![CDATA[TrollTech]]></category>

		<guid isPermaLink="false">http://www.danilocesar.com/blog/2008/01/28/extra-extra-nokia-adquire-trolltech/</guid>
		<description><![CDATA[A Nokia divulga suas intenções de adquirir a trolltech. Com estas informações tenho duas perguntas: Será a Nokia capaz de manter a qualidade da biblioteca QT? Será que veremos uma licença LGPL para a libQT? Se isto acontecer, será o fim da libGTK?]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://www.nokia.com" target="_blank">Nokia</a> <a href="http://www.nokia.com/A4136001?newsid=1185531">divulga suas intenções</a> de adquirir a <a href="http://trolltech.com/" target="_blank">trolltech</a>.</p>
<p>Com estas informações tenho duas perguntas:</p>
<p>Será a Nokia capaz de manter a qualidade da biblioteca <a href="http://en.wikipedia.org/wiki/Qt_%28toolkit%29" target="_blank">QT</a>?</p>
<p>Será que veremos uma licença <a href="http://pt.wikipedia.org/wiki/LGPL" target="_blank">LGPL</a> para a libQT? Se isto acontecer, será o fim da <a href="http://en.wikipedia.org/wiki/GTK%2B">libGTK</a>?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilocesar.com/blog/2008/01/28/extra-extra-nokia-adquire-trolltech/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Extra proíbe a entrada de MACs em suas lojas?</title>
		<link>http://www.danilocesar.com/blog/2008/01/03/extra-proibe-a-entrada-de-macs-em-suas-lojas/</link>
		<comments>http://www.danilocesar.com/blog/2008/01/03/extra-proibe-a-entrada-de-macs-em-suas-lojas/#comments</comments>
		<pubDate>Thu, 03 Jan 2008 14:50:51 +0000</pubDate>
		<dc:creator>Danilo Cesar</dc:creator>
				<category><![CDATA[/dev/null]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Planeta Mac]]></category>

		<guid isPermaLink="false">http://www.danilocesar.com/blog/2008/01/03/extra-proibe-a-entrada-de-macs-em-suas-lojas/</guid>
		<description><![CDATA[Resolvi seguir a mesma linha do MacMagazine e postar fotos de locais inusitados com adesivos da apple. Mesmo não sendo o real objetivo da loja, o resultado final foi bastante engraçado. Será uma mensagem subliminar? update: A loja fica em Curitiba, na Kennedy]]></description>
			<content:encoded><![CDATA[<p>Resolvi seguir a mesma linha do <a href="http://macmagazine.com.br/blog/" target="_blank">MacMagazine</a> e <a href="http://macmagazine.com.br/blog/2007/12/17/apple-no-topo-da-africa/">postar fotos de locais inusitados com adesivos da apple</a>.</p>
<p>Mesmo não sendo o real objetivo da <a href="http://www.extra.com.br">loja</a>, o resultado final foi bastante engraçado.</p>
<p><a title="Extra proíbe MAC em sua loja de Curitiba" href="http://www.danilocesar.com/blog/wp-content/uploads/2008/01/02012008.jpg"><img title="Extra proíbe MAC em sua loja de Curitiba" src="http://www.danilocesar.com/blog/wp-content/uploads/2008/01/02012008.jpg" alt="Extra proíbe MAC em sua loja de Curitiba" width="463" height="614" align="middle" /></a><br />
<em> Será uma mensagem subliminar?</em></p>
<p><strong>update</strong>: A loja fica em Curitiba, na Kennedy</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilocesar.com/blog/2008/01/03/extra-proibe-a-entrada-de-macs-em-suas-lojas/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

