<?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; Linux</title>
	<atom:link href="http://www.danilocesar.com/blog/tag/linux/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>QtMobility Project, ou desenvolvendo para Symbian no Linux</title>
		<link>http://www.danilocesar.com/blog/2010/02/25/qtmobility-project-ou-desenvolvendo-para-symbian-no-linux/</link>
		<comments>http://www.danilocesar.com/blog/2010/02/25/qtmobility-project-ou-desenvolvendo-para-symbian-no-linux/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 19:27:10 +0000</pubDate>
		<dc:creator>Danilo Cesar</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Maemo]]></category>
		<category><![CDATA[Mandriva]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[QT]]></category>
		<category><![CDATA[SL]]></category>
		<category><![CDATA[S60]]></category>
		<category><![CDATA[Symbian]]></category>

		<guid isPermaLink="false">http://www.danilocesar.com/blog/?p=206</guid>
		<description><![CDATA[Como nem só de Maemo Meego vive o homem, então é hora de iniciar projetos com Symbian. O fato de sermos usuários Linux não nos afasta mais deste objetivo. O colega Lizardo, não muito feliz com a dependência do Janelas, adaptou com sucesso o famigerado GNUPOC para funcionar com o Qt 4.6.X, dando-nos assim um [...]]]></description>
			<content:encoded><![CDATA[<p>Como nem só de <del datetime="2010-02-25T18:15:55+00:00">Maemo</del> Meego vive o homem, então é hora de iniciar projetos com Symbian.</p>
<p>O fato de sermos usuários Linux não nos afasta mais deste objetivo. O colega <a href="http://lizardo.wordpress.com">Lizardo</a>, não muito feliz com a dependência do Janelas, <a href="http://lizardo.wordpress.com/2010/02/18/installing-qt-for-symbian-sdk-4-6-2-on-linux/">adaptou com sucesso</a> o famigerado <a href="http://www.martin.st/symbian/">GNUPOC</a> para funcionar com o Qt 4.6.X, dando-nos assim um ambiente <del datetime="2010-02-25T18:15:55+00:00">agradável</del> de desenvolvimento Qt/Symbian no Linux.</p>
<p>Graças a ele temos qmake, QGraphicsView e QCoisas funcionando da mesma forma como funcionavam no desktop.</p>
<p><strong>E as APIs específicas como GPS, sensores e rede?</strong></p>
<p>A idéia do Qt everywhere inclui abstrair a API não tão bonita do symbian e maemo (e outros) para uma única API Qt.</p>
<p>Seguindo este princípio lançaram, dia 15/02, um pacote beta do <a href="http://qt.nokia.com/developer/new-qt-apis">Qt-Mobility Project</a>, com classes Qt para sensores, GPS, contatos e etc.</p>
<p>A instalação é simples mas, para <a href="http://lizardo.wordpress.com/2010/02/18/installing-qt-for-symbian-sdk-4-6-2-on-linux/">quem seguiu os passos do Lizardo</a>, basta utilizar este <a href="http://labs.danilocesar.com/files/qt-mobility-install.sh">script</a> e passar o diretório onde o download do <a href="http://get.qt.nokia.com/qt/solutions/qt-mobility-symbian-1.0.0-beta1.zip">pacote</a> foi feito:</p>
<p><code>qt-mobility-install.sh &lt;directory&gt; </code></p>
<p><strong>*Observação</strong>: Não esqueça de setar as variáveis de ambiente $EPOCROOT e $PATH, de forma que o qmake utilizado seja o da instalação para S60</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilocesar.com/blog/2010/02/25/qtmobility-project-ou-desenvolvendo-para-symbian-no-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RSS client and RSS DataProvider via QtDBus</title>
		<link>http://www.danilocesar.com/blog/2009/03/26/rss-client-and-rss-dataprovider-via-qtdbus/</link>
		<comments>http://www.danilocesar.com/blog/2009/03/26/rss-client-and-rss-dataprovider-via-qtdbus/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 22:04:37 +0000</pubDate>
		<dc:creator>Danilo Cesar</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Maemo]]></category>
		<category><![CDATA[Mandriva]]></category>
		<category><![CDATA[QT]]></category>
		<category><![CDATA[SL]]></category>
		<category><![CDATA[Ubuntu-Br]]></category>
		<category><![CDATA[DBus]]></category>

		<guid isPermaLink="false">http://www.danilocesar.com/blog/?p=176</guid>
		<description><![CDATA[Estou estudando DBus há alguns dias, e percebi que existem poucos exemplos do módulo QtDBus. Sendo assim, resolvi publicar um código de um pequeno protótipo que fiz. Neste meu estudo produzi uma espécie de Data Provider, que é um serviço que fica rodando sobre o DBus e é responsável por receber atualizações de rss de [...]]]></description>
			<content:encoded><![CDATA[<p>Estou estudando <a href="http://dbus.freedesktop.org">DBus</a> há alguns dias, e percebi que existem poucos exemplos do módulo <a href="http://doc.trolltech.com/4.5/qtdbus.html">QtDBus</a>. Sendo assim, resolvi publicar um código de um pequeno protótipo que fiz.</p>
<p>Neste meu estudo produzi uma espécie de <em>Data Provider</em>, que é um serviço que fica rodando sobre o DBus e é responsável por receber atualizações de rss de um determinado <a href="http://danilocesar.com">blog</a>. Os clientes não acessam diretamente o rss mas sim este <em>provider,</em> via canal DBus, e são notificados quando ocorre alguma atualização.</p>
<p><img class="alignnone size-full wp-image-177" title="dbus-example" src="http://www.danilocesar.com/blog/wp-content/uploads/2009/03/dbus-example.png" alt="dbus-example" width="401" height="342" /></p>
<p>O conceito é simples, o código também. Não estou usando nada como QDBusAdaptors ou classes afins. Na verdade, o exemplo é válido pela <em>didática</em> pois exemplifica uma forma de enviar objetos &#8220;estranhos&#8221; via DBus.</p>
<p>O código pode ser obtido com:<br />
<code>git clone http://labs.danilocesar.com/git/qdbus-test.git</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilocesar.com/blog/2009/03/26/rss-client-and-rss-dataprovider-via-qtdbus/feed/</wfw:commentRss>
		<slash:comments>1</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>Konsole resize fix</title>
		<link>http://www.danilocesar.com/blog/2008/10/25/konsole-resize-fix/</link>
		<comments>http://www.danilocesar.com/blog/2008/10/25/konsole-resize-fix/#comments</comments>
		<pubDate>Sat, 25 Oct 2008 16:34:21 +0000</pubDate>
		<dc:creator>Danilo Cesar</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mandriva]]></category>
		<category><![CDATA[QT]]></category>
		<category><![CDATA[Quick Tip]]></category>
		<category><![CDATA[KDE4]]></category>

		<guid isPermaLink="false">http://www.danilocesar.com/blog/?p=157</guid>
		<description><![CDATA[Quem usa placa nvidia e KDE4 deve estar tendo problemas para redimencionar a janela do konsole. Navegando pelo techbase encontrei uma solução: nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1 Fica aí a dica! []&#8216;s]]></description>
			<content:encoded><![CDATA[<p>Quem usa placa nvidia e KDE4 deve estar tendo problemas para redimencionar a janela do konsole.</p>
<p>Navegando pelo <a href="http://techbase.kde.org" target="_blank">techbase</a> encontrei uma <a href="http://techbase.kde.org/User:Lemma/KDE4-NVIDIA" target="_blank">solução</a>:</p>
<p><code>nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1</code></p>
<p>Fica aí a dica!</p>
<p>[]&#8216;s</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilocesar.com/blog/2008/10/25/konsole-resize-fix/feed/</wfw:commentRss>
		<slash:comments>2</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>Vou-me embora para Pasárgada</title>
		<link>http://www.danilocesar.com/blog/2008/07/11/vou-me-embora-para-pasargada/</link>
		<comments>http://www.danilocesar.com/blog/2008/07/11/vou-me-embora-para-pasargada/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 17:11:03 +0000</pubDate>
		<dc:creator>Danilo Cesar</dc:creator>
				<category><![CDATA[/dev/null]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Maemo]]></category>
		<category><![CDATA[Mandriva]]></category>
		<category><![CDATA[PyS60]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[QT]]></category>
		<category><![CDATA[SL]]></category>
		<category><![CDATA[Ubuntu-Br]]></category>
		<category><![CDATA[UFPR]]></category>
		<category><![CDATA[viagens]]></category>
		<category><![CDATA[Nokia]]></category>
		<category><![CDATA[recife]]></category>
		<category><![CDATA[trabalho]]></category>

		<guid isPermaLink="false">http://www.danilocesar.com/blog/?p=144</guid>
		<description><![CDATA[Vou-me embora para Pasárgada Lá sou amigo do Reis Novidades: 1 &#8211; Estou formado em Ciência da Computação pela UFPR. 2 &#8211; Estou deixando Curitiba. Após 22 anos na saudosa Curitiba estou deixando-a, e indo para Recife-PE. Só tenho o que agradecer a esta magnífica cidade, à minha família que fica por aqui, e aos [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Vou-me embora para Pasárgada<br />
Lá sou amigo do <em>Reis</em></p></blockquote>
<p>Novidades:</p>
<p>1 &#8211; Estou formado em <a href="http://pt.wikipedia.org/wiki/Ci%C3%AAncia_da_computa%C3%A7%C3%A3o" target="_blank">Ciência da Computação</a> pela <a href="http://inf.ufpr.br">UFPR</a>.</p>
<p>2 &#8211; Estou deixando <a href="http://pt.wikipedia.org/wiki/Curitiba">Curitiba</a>. Após 22 anos na saudosa Curitiba estou deixando-a, e indo para <a href="http://pt.wikipedia.org/wiki/Recife" target="_blank">Recife-PE</a>.</p>
<p style="text-align: left;">Só tenho o que agradecer a esta magnífica cidade, à minha família que fica por aqui, e aos meus <a href="http://tiagosh.wordpress.com/" target="_blank">colegas</a> <a href="http://blog.cpu.eti.br/">da</a> <a href="http://blog.skyegg.org/" target="_blank">Mandriva</a>, <a href="http://www.gustavoboiko.org/blog/" target="_blank">com</a> <a href="http://felipearruda.com/" target="_blank">os</a> <a href="http://warever.info/sr/blog/">quais</a> <a href="http://www.kdedevelopers.org/blog/74" target="_blank">pude</a> <a href="http://helllabs.org/blog/">aprender</a> <a href="http://caio.ueberalles.net/log/">bastante</a>.</p>
<p>E esperar que este novo <a href="http://www.indt.org.br/" target="_blank">desafio</a> seja tão bom e gratificante quanto <a href="http://wiki.mandriva.com/en/Home" target="_blank">o antigo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilocesar.com/blog/2008/07/11/vou-me-embora-para-pasargada/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>SU-8W com acentos no N800</title>
		<link>http://www.danilocesar.com/blog/2008/06/30/su-8w-com-acentos-no-n800/</link>
		<comments>http://www.danilocesar.com/blog/2008/06/30/su-8w-com-acentos-no-n800/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 22:10:56 +0000</pubDate>
		<dc:creator>Danilo Cesar</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Maemo]]></category>
		<category><![CDATA[Mandriva]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Quick Tip]]></category>
		<category><![CDATA[SL]]></category>
		<category><![CDATA[Ubuntu-Br]]></category>
		<category><![CDATA[N800]]></category>
		<category><![CDATA[su 8w]]></category>

		<guid isPermaLink="false">http://www.danilocesar.com/blog/?p=143</guid>
		<description><![CDATA[Estive me perguntando porque os acentos não funcionam corretamente no SU 8W com o N800. Decidi investigar. Quando eu estava tentando sincronizar o teclado com o N800 pude perceber que o SU 8W é um teclado pré-configurado, e com um pouco de paciência encontrei o arquivo de configuração do mesmo: /usr/share/X11/xkb/symbols/nokia_vndr/su-8w Após 5 minutos estudando [...]]]></description>
			<content:encoded><![CDATA[<p>Estive me perguntando <a href="http://zyakannazio.eti.br/fudeblog/2007/04/29/sem-acento/" target="_blank">porque os acentos não funcionam corretamente no SU 8W</a> com o N800. Decidi investigar.</p>
<p>Quando eu estava tentando sincronizar o teclado com o N800 pude perceber que o SU 8W é um teclado pré-configurado, e com um pouco de paciência encontrei o arquivo de configuração do mesmo: <code>/usr/share/X11/xkb/symbols/nokia_vndr/su-8w</code></p>
<p>Após 5 minutos estudando a sintaxe, em 10 minutos é possível perceber que falta alguma coisa: <strong>Não há, pelo menos, as configurações para português, espanhol e italiano</strong>. Agora eu entendo porque a configuração de layout português não funciona.</p>
<p>Já que não existe uma configuração para o idioma definido, utiliza-se o us_intl, certo? Mas a primeira linha da definição do us-intl tem um comentário preocupante: <strong>&#8220;I can’t belive! It’s not intl&#8221;</strong>. Parece que a tafera não será assim tão simples.</p>
<p>Para propósito de teste, não criei um novo mapa de teclado para pt_BR e sim editei o us_intl. O resultado ficou aceitável, e finalmente é possível ter um teclado funcional em português. O resultado você pode entrar <a href="http://labs.danilocesar.com/maemo/keyboard/su-8w">aqui</a>.<strong>(Não esqueça de fazer backup antes de sobrescrever)</strong></p>
<p>Nos próximos dias ponho aqui a solução definitiva.</p>
<p>Resltado final:<br />
<img src="http://labs.danilocesar.com/blog/wp-content/uploads/2008/06/dsc01622-300x225.jpg" alt="SU 8W funcionando com acentos" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilocesar.com/blog/2008/06/30/su-8w-com-acentos-no-n800/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Hello world para Native-Symbian</title>
		<link>http://www.danilocesar.com/blog/2008/05/06/hello-world-para-native-symbian/</link>
		<comments>http://www.danilocesar.com/blog/2008/05/06/hello-world-para-native-symbian/#comments</comments>
		<pubDate>Wed, 07 May 2008 01:00:03 +0000</pubDate>
		<dc:creator>Danilo Cesar</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PyS60]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Quick Tip]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[Ubuntu-Br]]></category>
		<category><![CDATA[viagens]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://www.danilocesar.com/blog/?p=132</guid>
		<description><![CDATA[Certa vez eu quis explicar a um amigo porque escrever código em python para celular era mais legal que escrever código em C (native-symbian e não OpenC). Acho que hoje talvez eu consiga. Segue os exemplos: Python print "Hello World" C++-Epoc // Hello World in C++, Epoc style (for Symbian OS) #include < eikapp.h > [...]]]></description>
			<content:encoded><![CDATA[<p>Certa vez eu quis explicar a um amigo porque escrever código em <a href="http://sourceforge.net/projects/pys60" target="_blank">python</a> para celular era mais legal que escrever código em C (<a href="http://forum.nokia.com/main/resources/technologies/symbian/index.html" target="_blank">native-symbian</a> e não <a href="http://www.forum.nokia.com/main/resources/technologies/open_c/index.html" target="_blank">OpenC</a>). Acho que hoje talvez eu consiga.</p>
<p>Segue os exemplos:</p>
<h3>Python</h3>
<p><code>print "Hello World" </code></p>
<h3>C++-Epoc</h3>
<p><code><br />
// Hello World in C++, Epoc style (for Symbian OS)<br />
#include < eikapp.h ><br />
#include < eikdoc.h ><br />
#include < eikappui.h ></p>
<p>class CHelloWorldAppUi;<br />
class CEikApplication;<br />
class CHelloWorldAppView;</p>
<p>class CHelloWorldApplication : public CEikApplication<br />
    {<br />
        public:<br />
            TUid AppDllUid() const;<br />
        protected:<br />
            CApaDocument* CreateDocumentL();<br />
    };</p>
<p>class CHelloWorldDocument : public CEikDocument<br />
    {<br />
        public:<br />
            static CHelloWorldDocument* NewL(CEikApplication&#038; aApp);<br />
            static CHelloWorldDocument* NewLC(CEikApplication&#038; aApp);<br />
            ~CHelloWorldDocument(){};<br />
        public:<br />
            CEikAppUi* CreateAppUiL();<br />
        private:<br />
            void ConstructL() {};<br />
            CHelloWorldDocument(CEikApplication&#038; aApp){};<br />
    };</p>
<p>class CHelloWorldAppUi : public CEikAppUi<br />
    {<br />
        public:<br />
                void ConstructL();<br />
                CHelloWorldAppUi(){};<br />
                ~CHelloWorldAppUi(){};<br />
    };</p>
<p>static const TUid KUidHelloWorldApp = {0x10005B91};</p>
<p>GLDEF_C TInt E32Dll(TDllReason )<br />
    {<br />
    return KErrNone;<br />
    }</p>
<p>EXPORT_C CApaApplication* NewApplication()<br />
    {<br />
    return (new CHelloWorldApplication);<br />
    }</p>
<p>CApaDocument* CHelloWorldApplication::CreateDocumentL()<br />
    {<br />
    CApaDocument* document = CHelloWorldDocument::NewL(*this);<br />
    return document;<br />
    }</p>
<p>TUid CHelloWorldApplication::AppDllUid() const<br />
    {<br />
    return KUidHelloWorldApp;<br />
    }</p>
<p>CHelloWorldDocument* CHelloWorldDocument::NewL(CEikApplication&#038; aApp)<br />
    {<br />
    CHelloWorldDocument* self = NewLC(aApp);<br />
    CleanupStack::Pop(self);<br />
    return self;<br />
    }</p>
<p>CHelloWorldDocument* CHelloWorldDocument::NewLC(CEikApplication&#038; aApp)<br />
    {<br />
    CHelloWorldDocument* self = new (ELeave) CHelloWorldDocument(aApp);<br />
    CleanupStack::PushL(self);<br />
    self->ConstructL();<br />
    return self;<br />
    }</p>
<p>CEikAppUi* CHelloWorldDocument::CreateAppUiL()<br />
    {<br />
    CEikAppUi* appUi = new (ELeave) CHelloWorldAppUi;<br />
    return appUi;<br />
    }</p>
<p>void CHelloWorldAppUi::ConstructL()<br />
    {<br />
    BaseConstructL();</p>
<p>    _LIT(message,"Hello!");<br />
    CAknInformationNote* informationNote = new (ELeave) CAknInformationNote;<br />
    informationNote->ExecuteLD(message);<br />
    }<br />
</code></p>
<p><em>fonte: <a href="href="http://www.roesler-ac.de/wolfram/hello.htm">http://www.roesler-ac.de/wolfram/hello.htm</a> </em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilocesar.com/blog/2008/05/06/hello-world-para-native-symbian/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>É uma cilada Bino!</title>
		<link>http://www.danilocesar.com/blog/2008/05/06/e-uma-cilada-bino/</link>
		<comments>http://www.danilocesar.com/blog/2008/05/06/e-uma-cilada-bino/#comments</comments>
		<pubDate>Wed, 07 May 2008 00:39:29 +0000</pubDate>
		<dc:creator>Danilo Cesar</dc:creator>
				<category><![CDATA[/dev/null]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mandriva]]></category>
		<category><![CDATA[SL]]></category>
		<category><![CDATA[Ubuntu-Br]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[FUD]]></category>
		<category><![CDATA[mistakes]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.danilocesar.com/blog/?p=131</guid>
		<description><![CDATA[http://www.informationweek.com/news/software/linux/showArticle.jhtml?articleID=207&#8230; Acho que vale a pena ler os comentários antes de ler o texto: Yes, the fact that the writer thinks that MEPIS is based on Mandriva shows how little knowledge he has, and how poorly researched his paper is..]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.informationweek.com/news/software/linux/showArticle.jhtml?articleID=207200145&amp;pgno=1&amp;queryText=&amp;isPrev=" target="_self">http://www.informationweek.com/news/software/linux/showArticle.jhtml?articleID=207&#8230;</a></p>
<p>Acho que vale a pena ler os comentários antes de ler o texto:</p>
<blockquote><p><em><span>Yes, the fact that the writer thinks that MEPIS is based on Mandriva shows how little knowledge he has, and how poorly researched his paper is.. </span></em></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.danilocesar.com/blog/2008/05/06/e-uma-cilada-bino/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Bug closed&#8230;</title>
		<link>http://www.danilocesar.com/blog/2008/04/17/bug-closed/</link>
		<comments>http://www.danilocesar.com/blog/2008/04/17/bug-closed/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 14:54:09 +0000</pubDate>
		<dc:creator>Danilo Cesar</dc:creator>
				<category><![CDATA[/dev/null]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.danilocesar.com/blog/?p=128</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-129" title="Maldade hein!?" src="http://www.danilocesar.com/blog/wp-content/uploads/2008/04/picture-4.png" alt="" width="492" height="440" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilocesar.com/blog/2008/04/17/bug-closed/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Dá um real ae, dá um real ae!</title>
		<link>http://www.danilocesar.com/blog/2008/04/14/da-um-real-ae-da-um-real-ae/</link>
		<comments>http://www.danilocesar.com/blog/2008/04/14/da-um-real-ae-da-um-real-ae/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 13:46:02 +0000</pubDate>
		<dc:creator>Danilo Cesar</dc:creator>
				<category><![CDATA[/dev/null]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mandriva]]></category>
		<category><![CDATA[Quick Tip]]></category>
		<category><![CDATA[SL]]></category>
		<category><![CDATA[besteirol]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[Mercado Livre]]></category>
		<category><![CDATA[QT]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://www.danilocesar.com/blog/?p=126</guid>
		<description><![CDATA[O que não se faz por uns trocados?]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-124" style="border: 1px solid black;" title="Dá um real ae!" src="http://www.danilocesar.com/blog/wp-content/uploads/2008/04/picture-3.png" alt="" width="294" height="152" /></p>
<p>O que não se faz por uns trocados?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilocesar.com/blog/2008/04/14/da-um-real-ae-da-um-real-ae/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pychord 2 saindo do forno</title>
		<link>http://www.danilocesar.com/blog/2008/03/30/pychord-2-saindo-do-forno/</link>
		<comments>http://www.danilocesar.com/blog/2008/03/30/pychord-2-saindo-do-forno/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 00:29:03 +0000</pubDate>
		<dc:creator>Danilo Cesar</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Maemo]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[SL]]></category>
		<category><![CDATA[acordes]]></category>
		<category><![CDATA[cifra]]></category>
		<category><![CDATA[música]]></category>
		<category><![CDATA[N800]]></category>
		<category><![CDATA[pychord]]></category>

		<guid isPermaLink="false">http://www.danilocesar.com/blog/2008/03/30/pychord-2-saindo-do-forno/</guid>
		<description><![CDATA[Certa vez um colega de trabalho de uma das empresas por onde passei comentou: &#8220;Não basta colocar um filho no mundo, é preciso alimenta-lo, educa-lo e fazer o possível para vê-lo crescido!&#8221; Pois bem, depois de certo tempo resolvi voltar a mexer no abandonado código do pychord e adicionar algumas funcionalidades que eu precisava. Após [...]]]></description>
			<content:encoded><![CDATA[<p>Certa vez um colega de trabalho de uma das empresas por onde passei comentou:</p>
<blockquote><p><strong>&#8220;Não basta colocar um filho no mundo, é preciso alimenta-lo, educa-lo e fazer o possível para vê-lo crescido!&#8221;</strong></p></blockquote>
<p>Pois bem, depois de certo tempo resolvi voltar a mexer no <a href="https://garage.maemo.org/svn/pychord/trunk">abandonado código</a> do <a href="https://garage.maemo.org/projects/pychord/">pychord</a> e adicionar algumas funcionalidades que eu precisava.</p>
<p>Após duas tentativas frustradas (0.4.5 e 0.5) percebi que era necessário re-escrever a biblioteca gráfica. Assim foi feito. Adicionei o conceito de <a href="http://en.wikipedia.org/wiki/Window_%28computing%29">janela</a>, conteiner de <a href="http://en.wikipedia.org/wiki/GUI_widget"><em>widgets</em>,</a> melhorei a herança entre classes, etc.  A interface não mudou muita coisa, <a href="http://www.pygame.org">pygame</a> é meio chato para isso.</p>
<p>Ainda estou usando o padrão <strong>.chr </strong>criado para a <a href="http://labs.danilocesar.com/blog/2007/09/16/pychord-for-maemo-get-your-install-here/">primeira versão</a>, mas pretendo adicionar o formato <a href="http://en.wikipedia.org/wiki/XML">XML</a> <a href="http://www.opensong.org">opensong</a> em breve.</p>
<p>A parte legal, e a novidade mais visível, é que criei uma heurística para decidir quais linhas são acordes e quais não são. Esta heurística pretendo ir melhorando a medida que for encontrando casos em que ela não funcione.</p>
<p>Para resumir: ao nível de usuário, as modificações foram:</p>
<ol>
<li>Heurística para reconhecer/diferenciar acordes de letra de músicas</li>
<li>Mudança de tom</li>
<li>Listas clicáveis e móveis</li>
<li>Suporte ao Maemo OS2008</li>
<li>Controle da luminosidade durante a apesentação das cifras ( o display não apaga durante a mostragem mais )</li>
</ol>
<h4>A parte nerd</h4>
<p>A idéia era que o código da interface pudesse ser reutilizada em outros projetos, logo trabalhei para ter uma GUI mais conscistente do que a anterior. Utilizando melhor o conceito de herança foi possível simplificar a utilização da lib, deixando as coisas com menos cara de gambiarra.</p>
<p>Através do conceito de <em>slots</em> ficou bem simples implementar mais de uma <em>action </em>para um mesmo evento.</p>
<h4>Screenshots</h4>
<p><img src="http://www.danilocesar.com/blog/wp-content/uploads/2008/03/picture-1.png" alt="Pychord-screenshot" height="271" width="466" /></p>
<p>Tela de busca, não mudou muito de como era anteriormente.</p>
<p><img src="http://www.danilocesar.com/blog/wp-content/uploads/2008/03/picture-2.png" alt="Pychord-screenshot2" height="275" width="465" /></p>
<p>Visualização da cifra</p>
<p><img src="http://www.danilocesar.com/blog/wp-content/uploads/2008/03/picture-3.png" alt="Pychord-Screenshot3" height="277" width="464" /></p>
<p>Mudaça de tom.</p>
<p>Como sempre, o arquivo de instalação pode ser pego <a href="/home/daniloeu/labs.danilocesar.com/maemo/pychord">aqui</a>. Ainda não criei um repositório pois o aplicativo está em fase de testes. Mas pretendo fazer isto em breve.</p>
<p><em><strong>[UPDATE 03/03/2008] </strong></em>Por problemas de codificação dentro do módulo sqlite3, os textos devem estar em formato UTF-8&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danilocesar.com/blog/2008/03/30/pychord-2-saindo-do-forno/feed/</wfw:commentRss>
		<slash:comments>0</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>
	</channel>
</rss>

