<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.7.6(BH)" -->
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>Planet Maemo: category &quot;feed:e2f616f44353fa778c29de8367984985&quot;</title>
        <description>Blog entries from Maemo community</description>
        <link>http://maemo.org/news/planet-maemo/</link>
        <lastBuildDate>Sun, 24 May 2026 11:16:38 +0000</lastBuildDate>
        <generator>FeedCreator 1.7.6(BH)</generator>
        <language>en</language>
        <managingEditor>planet@maemo.org</managingEditor>
        <item>
            <title>YouCompleteMe: semantic auto-completion and JumpToDefinition for VIM on webkitgtk+</title>
            <link>http://labs.danilocesar.com/blog/2013/09/11/youcompleteme-semantic-auto-completion-and-jumptodefinition-for-vim-on-webkitgtk/</link>
            <description><![CDATA[
<h2>Prelude</h2>
<p><em>Jump to the next session if you don&#8217;t want to read lullabies</em></p>
<p>There was a time when I was a Qt application developer working with vim. It worked pretty well until I started to work with large applications such as Meego Application Framework.<br />
Hundreds of thousands of files, classes, I couldn&#8217;t memorize everything. Then I discovered QtCreator with VI-mode.</p>
<p>I&#8217;d never really liked big/heavy IDEs but QtCreator wasn&#8217;t that heavy, it had a decent vi-mode and I was able to use the cool things such as auto-completion and jump-to-definition.</p>
<p>Three years later here I&#8217;m working with raw VIM again, on top of webkitgtk+ so QtCreator is not an option anymore. What to do?</p>
<p>You can tell me about ctags and cscope&#8230; Sorry, ctags and cscope sux for c++ code, really! I tried hard, I wrote scripts to parse the GNUMakefile.list.am and use only the important files but it wasn&#8217;t enough. Ctags can&#8217;t really deal with classes, doesn&#8217;t know much about scopes and VIM auto-completion wasn&#8217;t semantic. How to solve that problem all-in-once?</p>
<h2>YouCompleteMe</h2>
<p><img alt="YouCompleteMe GIF" src="https://a248.e.akamai.net/camo.github.com/1f3f922431d5363224b20e99467ff28b04e810e2/687474703a2f2f692e696d6775722e636f6d2f304f50346f6f642e676966" /></p>
<h3>Description</h3>
<p>From the original <a href="https://github.com/Valloric/YouCompleteMe" target="_blank">website</a>: <em><strong>&#8220;YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for Vim.&#8221;</strong></em></p>
<h3>Installation</h3>
<p>The installation procedures are quite simple and well defined on <a href="https://github.com/Valloric/YouCompleteMe#readme" target="_blank">https://github.com/Valloric/YouCompleteMe#readme</a><br />
Basically, you need to use Vundle (why are you not using it yet?!) and drop the YCM files in the right place. The installer will do the rest.</p>
<h3>vimrc and vundle</h3>
<p>if YouCompleteMe is your first Vundle plugin, your .vimrc file should start like this:</p>
<p><pre><code>
set nocompatible&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot; be iMproved
filetype off&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot; required!

set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

Bundle &#039;gmarik/vundle&#039;
Bundle &#039;Valloric/YouCompleteMe&#039;</code></pre></p>
<p>Remember to use those lines at the beginning of the file, other rules should appear after that.</p>
<h3>How it works</h3>
<p>Basically YouCompleteMe uses a .ycm_extra_conf.py, which is a python script that helps YouCompleteMe plugin to find the compiling flags. Those flags are required so clang can interpret <strong>#includes</strong> and <strong>#defines </strong>from other files. It might be required a .ycm_extra_conf.py for each project you work on (Although it would be awesome to have a generic Makefile parser).</p>
<p>For webkitGtk, you can drop <a href="http://danilocesar.com/others/gtk.ycm_extra_conf.py">this file</a> into the root folder and you&#8217;re done. Or you can help me to add traction to Ycm and push <a href="https://bugs.webkit.org/show_bug.cgi?id=119618">this patch</a> upstream.</p>
<h3> Tips&#038;Tricks </h3>
<p>Add this to your .vimrc<br />
<pre><code>
nnoremap &lt;leader&gt;y :YcmForceCompileAndDiagnostics&lt;cr&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
nnoremap &lt;leader&gt;pg :YcmCompleter GoToDefinitionElseDeclaration&lt;CR&gt;
nnoremap &lt;leader&gt;pd :YcmCompleter GoToDefinition&lt;CR&gt;
nnoremap &lt;leader&gt;pc :YcmCompleter GoToDeclaration&lt;CR&gt;
</code></pre></p>
<p>If you&#8217;re used to the webkit codebase you know how painful it is when you touch one file, wait two minutes to build and find out that you forgot a semicolon.<br />
You can type \y to check if the file is compilable (clang will actually compile the file for you) and give you warnings/errors for that specific file.<br />
\pc and \pd are also usefull for jump to definition/declaration.</p>
<p>So, if you&#8217;re working on WebkitGtk now (or any other project that might benefit from YouCompleteMe), give it a try!</p>
<span class="net_nemein_favourites">1 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=1e31b314d558e481b3111e3af0219f36fe3f97af97a&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/1e31b314d558e481b3111e3af0219f36fe3f97af97a/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-favorite.png" style="border: none;" alt="Add to favourites" title="Add to favourites" /></a>0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=1e31b314d558e481b3111e3af0219f36fe3f97af97a&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/1e31b314d558e481b3111e3af0219f36fe3f97af97a/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-buried.png" style="border: none;" alt="Bury" title="Bury" /></a></span>]]></description>
            <author>Danilo Cesar Lemes de Paula &lt;danilo.eu@gmail.com&gt;</author>
            <category>feed:e2f616f44353fa778c29de8367984985</category>
            <pubDate>Wed, 11 Sep 2013 20:27:25 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-1e31b314d558e481b3111e3af0219f36fe3f97af97a</guid>
        </item>
        <item>
            <title>Prague, Telepathy and HTML5 IM Client</title>
            <link>http://labs.danilocesar.com/blog/2011/11/03/prague-telepathy-and-html-5-im-client/</link>
            <description><![CDATA[
<p>Hey guys!</p>
<p>Last week I&#8217;ve attended to GStreamerConf and LinuxConf conferences in Prague, and Siraj and I had the honor of having our current project for Collabora exposed on Collabora&#8217;s booth. It shared space with two others amazing <a href="http://www.collabora.co.uk">Collabora</a>&#8216;s demos:</p>
<ol>
<li><a href="http://media-explorer.org/">Media Explorer</a> running a Telepathy plug-in, which adds IM and Audio/Video capabilities to the system.</li>
<li><a href="http://mbatle.wordpress.com/2011/11/02/illusions-in-the-web-a-real-time-video-editor-built-in-html5/">HTML 5 client of a video editor</a>, using GStreamer Editing Services on top of GtkWebkit.</li>
</ol>
<h3>A little bit about Telepathy Webkit Client</h3>
<p>During the last few weeks I&#8217;ve been working on a Telepathy client, a very special one, written almost only with HTML 5 and Javascript, on top of GTK WebKit and <a href="http://live.gnome.org/Seed">Seed</a>.<br />
The goal of this project was writing a Telepathy based IM client, to run on top of WebKit, and it should be able do make and receive audio and video calls.</p>
<h3>GObject introspection magic</h3>
<p>The first question to be answered was &#8220;How access the Telepathy methods from Javascript?&#8221;</p>
<p>And the answer was: GIR and <a href="http://live.gnome.org/Seed">Seed</a>.</p>
<p>As all Gnome developers know, GObject introspection (GIR) allows us to access a GObject written in C  from a scriptable language, such as Javascript. So that&#8217;s part of the answer.</p>
<p>And Seed binds those introspected objects on WebKit JavascriptCore, which is pretty much what we wanted to do.</p>
<h3>Following a few screen-shots</h3>
<h4>Contact List</h4>
<p>Our first goal was to show the Telepathy&#8217;s roaster list on a HTML5 window. For the widgets, we choose to use <a href="http://joapp.com">joApp</a>, which is a quite nice and stable UI library for HTML 5 applications.</p>
<p><a href="http://labs.danilocesar.com/blog/wp-content/uploads/2011/11/tp1.png"><img class="alignnone size-medium wp-image-139" title="Telepathy contact list" src="http://labs.danilocesar.com/blog/wp-content/uploads/2011/11/tp1-208x300.png" alt="" width="208" height="300" srcset="http://labs.danilocesar.com/blog/wp-content/uploads/2011/11/tp1-208x300.png 208w, http://labs.danilocesar.com/blog/wp-content/uploads/2011/11/tp1.png 486w" sizes="(max-width: 208px) 100vw, 208px" /></a></p>
<p>&nbsp;</p>
<h4>Chat Window</h4>
<p><a href="http://labs.danilocesar.com/blog/wp-content/uploads/2011/11/tp2.png"><img class="alignnone size-medium wp-image-138" title="Telepathy chat window" src="http://labs.danilocesar.com/blog/wp-content/uploads/2011/11/tp2-227x300.png" alt="Telepathy chat window" width="227" height="300" srcset="http://labs.danilocesar.com/blog/wp-content/uploads/2011/11/tp2-227x300.png 227w, http://labs.danilocesar.com/blog/wp-content/uploads/2011/11/tp2.png 484w" sizes="(max-width: 227px) 100vw, 227px" /></a><br />
<em>What&#8217;s a IM client without a Chat window, right?!</em></p>
<p>The &#8220;tpwebkit&#8221; application with an opened text channel between two users.</p>
<h4>Receiving a call</h4>
<p><a href="http://labs.danilocesar.com/blog/wp-content/uploads/2011/11/tp3.png"><img class="alignnone size-medium wp-image-137" title="Receiving a call" src="http://labs.danilocesar.com/blog/wp-content/uploads/2011/11/tp3-240x300.png" alt="" width="240" height="300" srcset="http://labs.danilocesar.com/blog/wp-content/uploads/2011/11/tp3-240x300.png 240w, http://labs.danilocesar.com/blog/wp-content/uploads/2011/11/tp3.png 480w" sizes="(max-width: 240px) 100vw, 240px" /></a></p>
<p>Telepathy WebKit application acting as a Telepathy approver for audio and video calls</p>
<p><a href="http://labs.danilocesar.com/blog/wp-content/uploads/2011/11/tp4.png"><img class="alignnone size-medium wp-image-136" title="That's me, from the point of view of a camera on another computer" src="http://labs.danilocesar.com/blog/wp-content/uploads/2011/11/tp4-263x300.png" alt="" width="263" height="300" srcset="http://labs.danilocesar.com/blog/wp-content/uploads/2011/11/tp4-263x300.png 263w, http://labs.danilocesar.com/blog/wp-content/uploads/2011/11/tp4.png 497w" sizes="(max-width: 263px) 100vw, 263px" /></a></p>
<p>That&#8217;s me, from the point of view of my test machine&#8230;</p>
<h3>The real thing running</h3>
<p>If you want to see the real thing running, you can watch this video showing the application during the early development state.</p>
<p><object style="height: 390px; width: 640px"><param name="movie" value="http://www.youtube.com/v/vplj4o9wAzc?version=3&#038;feature=player_detailpage"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><embed src="http://www.youtube.com/v/vplj4o9wAzc?version=3&#038;feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"></object></p>
<h3>Conclusions and future work</h3>
<p>As we can see from now, Telepathy is ready to be use on native and HTML applications.<br />
I really would like to see the current implementation integrated with the bleeding edge RTC API, which some guys are pushing to WebKit. That would be something really awesome.</p>
<p>If you want to try it, you can get the <a href="http://cgit.collabora.com/git/tpwebkit.git/">code here</a> and play with it. You&#8217;re also going to need a few special changes on Seed package. Check the linuxconf branch <a href="https://gitorious.org/~siraj/seed/sirajs-seed/commits/linuxconf">here</a>.<br />
Or, if you use Ubuntu, you can add <a href="https://launchpad.net/~zdra/+archive/prague-demo">Xavier&#8217;s PPA</a> and install the tpwebkit package.</p>
<span class="net_nemein_favourites">6 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=77037b06064311e18b461776c3e32db12db1&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/77037b06064311e18b461776c3e32db12db1/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-favorite.png" style="border: none;" alt="Add to favourites" title="Add to favourites" /></a>0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=77037b06064311e18b461776c3e32db12db1&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/77037b06064311e18b461776c3e32db12db1/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-buried.png" style="border: none;" alt="Bury" title="Bury" /></a></span>]]></description>
            <author>Danilo Cesar Lemes de Paula &lt;danilo.eu@gmail.com&gt;</author>
            <category>feed:e2f616f44353fa778c29de8367984985</category>
            <pubDate>Thu, 03 Nov 2011 12:37:40 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-77037b06064311e18b461776c3e32db12db1</guid>
        </item>
        <item>
            <title>Beat Maker – call for testers</title>
            <link>http://labs.danilocesar.com/blog/2011/01/18/beat-maker-call-for-testers/</link>
            <description><![CDATA[
<p><a href="http://labs.danilocesar.com/blog/wp-content/uploads/2011/01/splash.jpg"><img class="alignnone size-medium wp-image-124" title="beat maker" src="http://labs.danilocesar.com/blog/wp-content/uploads/2011/01/splash-300x180.jpg" alt="" width="300" height="180" srcset="http://labs.danilocesar.com/blog/wp-content/uploads/2011/01/splash-300x180.jpg 300w, http://labs.danilocesar.com/blog/wp-content/uploads/2011/01/splash.jpg 800w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Hello all!</p>
<p>I promised this new release for the end of the last year, but I delayed it a bit due some changes in my professional and personal life.</p>
<p>Anyway, basically this release is about bug fixing and performance improvement. It&#8217;s using less power now, and playing faster.</p>
<p>If you want to try this version, you can get the package <a href="http://labs.danilocesar.com/qt/maemo/beat-maker_0.1-1_armel.deb">here</a>.</p>
<p>And bugs reports are always welcome, and needed ;)</p>
<p><em>ps.: I&#8217;m still trying to upload it to OVI, lets see&#8230;</em></p>
<span class="net_nemein_favourites">13 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=67c480f222ac11e0a1d1252590db89c489c4&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/67c480f222ac11e0a1d1252590db89c489c4/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-favorite.png" style="border: none;" alt="Add to favourites" title="Add to favourites" /></a>0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=67c480f222ac11e0a1d1252590db89c489c4&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/67c480f222ac11e0a1d1252590db89c489c4/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-buried.png" style="border: none;" alt="Bury" title="Bury" /></a></span>]]></description>
            <author>Danilo Cesar Lemes de Paula &lt;danilo.eu@gmail.com&gt;</author>
            <category>feed:e2f616f44353fa778c29de8367984985</category>
            <pubDate>Tue, 18 Jan 2011 02:00:40 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-67c480f222ac11e0a1d1252590db89c489c4</guid>
        </item>
        <item>
            <title>Beat Maker: The drum loop maker written with Qt</title>
            <link>http://labs.danilocesar.com/blog/2010/10/14/beat-maker-a-drum-loop-application-written-with-qt/</link>
            <description><![CDATA[
<p><a href="http://www.youtube.com/watch?v=Ke0zBk73_Zc"><img title="BeatMaker" src="http://labs.danilocesar.com/blog/wp-content/uploads/2010/10/bm.png" width="400" height="213" /></a></p>
<p><strong>Beat Maker</strong> is my &#8220;pet project&#8221; with Allyson Soares at INdT.</p>
<p>It is, basically, a drum loop emulator to be used by musicians during practicing sessions.</p>
<p>You just need to select the samples, define a BPM value and listen to the rhythm ;)</p>
<p>If you can&#8217;t wait for the official release at Ovi Store, you can try the <a href="http://labs.danilocesar.com/qt/maemo/beat-maker_0.1-1_armel.deb">beta version</a> for n900 devices.</p>
<p>Remember: it&#8217;s a <strong>beta</strong> version of an open source software. The code can be found linked to my <a href="http://gitorious.org/beat-maker">gitorious</a> account.</p>
<p><strong>The technical point of view:</strong></p>
<p>I&#8217;m a little bit disappointed with phonon. After a <a href="http://lists-archives.org/kde-devel/24844-multiple-sounds-with-phonon.html">long discussion</a> I&#8217;ve realized that phonon could not be used on Beat Maker.</p>
<p>At this time I&#8217;m using an approach suggested by <a href="http://atdrez.wordpress.com/">Adriano Rezende</a>: play the sound using pulseaudio&#8217;s API. I know, it&#8217;s not portable. But hey, my target is N900 devices and it worked pretty well at the time.<br />
However, it doesn&#8217;t scale. So, now, I&#8217;m working on a kind of &#8220;in-app-mixer&#8221;, which should solve this problem.</p>
<p>There is another problem, related to QTimer. Qt can&#8217;t guarantee the timing between the beats using QTimer events. Especially when you generate mouse events.  Anyway, the mixer controller loop should solve this as well.</p>
<p>Big thanks to Adriano for the tips, and Allyson who made the excellent UI design.</p>
<p>I hope you enjoy it.<br />
Suggestions are welcome =)</p>
<p>ps.: youtube video bellow<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="390" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/Ke0zBk73_Zc&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="390" src="http://www.youtube.com/v/Ke0zBk73_Zc&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<span class="net_nemein_favourites">14 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=bd935a90d7ec11df897fdddc6058cc8fcc8f&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/bd935a90d7ec11df897fdddc6058cc8fcc8f/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-favorite.png" style="border: none;" alt="Add to favourites" title="Add to favourites" /></a>0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=bd935a90d7ec11df897fdddc6058cc8fcc8f&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/bd935a90d7ec11df897fdddc6058cc8fcc8f/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-buried.png" style="border: none;" alt="Bury" title="Bury" /></a></span>]]></description>
            <author>Danilo Cesar Lemes de Paula &lt;danilo.eu@gmail.com&gt;</author>
            <category>feed:e2f616f44353fa778c29de8367984985</category>
            <pubDate>Thu, 14 Oct 2010 23:37:11 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-bd935a90d7ec11df897fdddc6058cc8fcc8f</guid>
        </item>
        <item>
            <title>Symbian, 2D games and Qt Optimization Flags</title>
            <link>http://labs.danilocesar.com/blog/2010/09/19/symbian-2d-games-and-qt-optimization-flags/</link>
            <description><![CDATA[
<p>After two and a half years building rich UIs on top of QGraphicsView and trying every kind of exotic flags or approaches to get better performance results on symbian, I&#8217;ve decided to publish some of them which can be useful to game programmers.</p>
<p>With a little help of <a href="http://www.ademar.org">Ademar</a>, we&#8217;ve selected a good use case: a bouncing game.</p>
<h2>The game</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>This game is simple: there are some balls running on the screen, and if you press one of them it will explode, and if a red ball touches a exploded ball, it will explode too. However the game logic is not important here.  Lets list some of the characteristics of this game from a developer&#8217;s point of view:</p>
<ul>
<li>Static background.</li>
<li>Balls can be implemented as GraphicsItems.</li>
<li>Red balls are always moving.</li>
<li>Non-exploded ball doesn&#8217;t collide.</li>
<li>List of elements can grow fast.</li>
<li>The items are scattered on the screen</li>
</ul>
</div>
<div style="display: block; clear: both;"><span style="color: #ff6600;"><strong><em>The comments bellow are only valid for the characteristics of a game defined above.</em></strong></span></div>
<h2>The flags</h2>
<p>The flags I want to comment on this post are:</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>The results</h2>
<p>* Those tests were performed on a Nokia 5800, type RM-356, with V51.0.006 firmware and Qt 4.6.3.<br />
** The Y axis is measuring FPS: the higher, the better.</p>
<h3>10 elements on the screen</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" srcset="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/bsp-noindex-all.png 721w, http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/bsp-noindex-all-300x155.png 300w" sizes="(max-width: 721px) 100vw, 721px" /></a></p>
<p>First of all, I&#8217;ve tried the four ViewportUpdate methods, with 10 items on the screen, and the MinimalViewportUpdate and the SmartViewportUpdate gave me the highest FPS( 34 and 33.5) . Qt documentation shows  <a href="http://doc.trolltech.com/4.6/qgraphicsscene.html#ItemIndexMethod-enum">NoIndex</a> as the best option for dynamic scenes&#8230; well, the difference is small for few items, but it&#8217;s true =)</p>
<p>So, for the other tests, lets use the NoIndex flag.</p>
<h4>What about optimization 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" srcset="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/opt-1.png 575w, http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/opt-1-300x197.png 300w" sizes="(max-width: 575px) 100vw, 575px" /></a></p>
<p>I took two results from the latest test (SmartViewportUpdate and BoundingRectViewportUpdate) and ran it again with two optimizationFlags: <a href="http://doc.trolltech.com/4.6/qgraphicsview.html#OptimizationFlag-enum">QGraphicsView::DontSavePainterState</a> and <a href="QGraphicsView::DontAdjustForAntialiasing">QGraphicsView::DontAdjustForAntialiasing</a>. So, optimizations flags brings us a little bit of improvement when we can control precisely how the items will be drawn.</p>
<h3>20 elements</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" srcset="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/opt-20.png 728w, http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/opt-20-300x154.png 300w" sizes="(max-width: 728px) 100vw, 728px" /></a></p>
<h3>30 elements</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" srcset="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/opt-30.png 723w, http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/opt-30-300x156.png 300w" sizes="(max-width: 723px) 100vw, 723px" /></a></p>
<h3>40 elements</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" srcset="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/opt-40.png 723w, http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/opt-40-300x153.png 300w" sizes="(max-width: 723px) 100vw, 723px" /></a></p>
<h2>Lessons Learned</h2>
<p>It&#8217;s important to select the correct ViewportUpdate method for your kind of scene. It can make the difference.</p>
<p>If there is a lot of dynamic elements, and if they are scattered throughout the scene, it&#8217;s cheaper to paint the whole screen (or, at least, the bounding rect) instead of trying to determinate the affected area.</p>
<p>To be honest I was expecting a better result from FullViewportUpdate, but I believe it would be better than BoundingRect if we use non-static background.</p>
<h2>What if?</h2>
<p>What if I use only one graphicsItem to paint all the balls? What if a ball was not an item but an object with a render method?</p>
<p>I got a little bit surprised, it wasn&#8217;t the result I was expecting &#8211; it&#8217;s worst. It only gets to be better when I put more than 60 items on the screen.</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" srcset="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/hack.png 521w, http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/hack-300x218.png 300w" sizes="(max-width: 521px) 100vw, 521px" /></a></p>
<h2>Will I throw the code in the garbage can?</h2>
<p>No! As the result of the tests and with a creative help of <a href="http://www.naraosga.com">Nara</a> &#8211; INdT designer &#8211; I&#8217;m releasing a playable alpha version of this game, called by Chubba-Lubba.  It&#8217;s not finished, since it&#8217;s still missing the icon, sounds and scores features, but it&#8217;s testable =)</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" srcset="http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/chubbalubba-168x300.png 168w, http://labs.danilocesar.com/blog/wp-content/uploads/2010/09/chubbalubba.png 360w" sizes="(max-width: 168px) 100vw, 168px" /></a></p>
<p><a href="http://labs.danilocesar.com/qt/symbian/chubbyluba.sis">Symbian package here!</a></p>
<span class="net_nemein_favourites">13 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=d5b78af8c43511dfba3633067396bed8bed8&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/d5b78af8c43511dfba3633067396bed8bed8/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-favorite.png" style="border: none;" alt="Add to favourites" title="Add to favourites" /></a>0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=d5b78af8c43511dfba3633067396bed8bed8&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/d5b78af8c43511dfba3633067396bed8bed8/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-buried.png" style="border: none;" alt="Bury" title="Bury" /></a></span>]]></description>
            <author>Danilo Cesar Lemes de Paula &lt;danilo.eu@gmail.com&gt;</author>
            <category>feed:e2f616f44353fa778c29de8367984985</category>
            <pubDate>Sun, 19 Sep 2010 20:58:15 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-d5b78af8c43511dfba3633067396bed8bed8</guid>
        </item>
        <item>
            <title>Symbian development using Linux on real life…</title>
            <link>http://labs.danilocesar.com/blog/2010/05/05/symbian-development-using-linux-on-real-life/</link>
            <description><![CDATA[
<p>I believe most companies that develop Symbian products uses windows, and only windows, on their development process. Well&#8230; We don&#8217;t =)</p>
<p>When we started to develop symbian applications at <a href="http://www.indt.org.br/">INdT</a> we, as open source developers, decided to find a way to keep using linux as our development environment.<br />
On the beginning we didn’t have yet <a href="http://labs.trolltech.com/blogs/2010/04/21/symbian-development-using-linux/" target="_blank">an official way to compile our applications on linux</a>, so we used (and still use)<a href="http://lizardo.wordpress.com/2010/02/18/installing-qt-for-symbian-sdk-4-6-2-on-linux/" target="_blank"> Lizardo&#8217;s patchs</a> that enables gnupoc to compile Qt-symbian applications on Linux.</p>
<h3>First tip:</h3>
<p>Personally I think finding errors on gnupoc output is an exhaustive job. So, the first tip for those who&#8217;re using Lizardo&#8217;s approach is to use a small piece of code in your <strong>.bashrc</strong></p>
<p><pre>function makes60
{
&nbsp;&nbsp;make debug-gcce 2&amp;gt;&amp;amp;1 | while read line
&nbsp;&nbsp;do
&nbsp;&nbsp;&nbsp;&nbsp;echo -e $(echo $line |
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sed &#039;s@\\@\\\\@g&#039; |
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sed &quot;s/.*error.*/\\\e[0;31m(&amp;amp;)\\\e[0;31m/I&quot; |
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sed &quot;s/warning/\\\E[33m(&amp;amp;)\\\E[0;37m/gI&quot; |
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sed &quot;s/No such file/\\\E[33m(&amp;amp;)\\\E[0;37m/gI&quot;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)
&nbsp;&nbsp;tput sgr0;
done;
}
</pre></p>
<p><em>By calling <strong>makes60</strong>, every error/warning message will be highlighted in read/yellow.</em><br />
It&#8217;s a simple tweak, but it is very useful.</p>
<p>So, we can compile our application, easily read the compiler messages&#8230; Now what?</p>
<h3>Analyzing the process:</h3>
<p>Let me list our development phases:</p>
<ul>
<li> <span style="color: #339966;">Coding: OK </span>with vim</li>
<li> <span style="color: #339966;">Compiling: OK</span> with gcce and some tweaks</li>
<li> <span style="color: #c1c100;">Debugging:</span> (As we work almost only with default Qt API, we build for linux first and debug there). So, it&#8217;s almost OK.</li>
<li> <span style="color: #339966;">Packaging .sis</span>: OK with make sis</li>
<li> <span style="color: #ff0000;">Send to device, install and test</span>: It&#8217;s a slow process yet.</li>
</ul>
<p>Testing on the device is a very difficult/slow task on linux. We don&#8217;t have a debugger.  We don&#8217;t even have any output message (Ok, we have: with <a href="http://developer.symbian.org/wiki/index.php/Platform_Opening/Did_You_Know%3F/P.I.P.S.#The_stdio_Subsystem_.28libc.29" target="_blank">stdioserver</a> writing on an txt file. Too hard!).</p>
<p>How does it works for Windows developers? <a href="http://www.forum.nokia.com/Tools_Docs_and_Code/Tools/IDEs/Carbide.c++/" target="_blank">Carbide++</a> and TRK!</p>
<p>Of course we don&#8217;t want to install Carbide++ on linux. So, can we use TRK with linux? Yes, we can! First of all you need to get the TRK application in <a href="http://www.forum.nokia.com/Tools_Docs_and_Code/Tools/IDEs/Carbide.c++/" target="_blank">Carbide++</a> package or in newly released <a href="http://conversations.nokia.com/2010/04/27/nokia-rolls-out-qt-sdk-for-unified-mobile-developer-experience/" target="_blank">Nokia SDK</a>.</p>
<h3>Installing TRK:</h3>
<ol>
<li>Send and execute TRK.sis on the device.</li>
<li>Open TRK application / Options / Settings,  and select <strong>Connection = USB </strong>instead of bluetooth.</li>
<li>Go to TRK mainscreen / Options / Connect.</li>
</ol>
<p>If your USB cable is plugged you will receive a &#8220;<strong>Status: Connected</strong>&#8221; message on your phone.</p>
<p>Now you need to create a serial connection between the device and your linux machine. If you&#8217;re using a 2.6.33 kernel you don&#8217;t need to do that. Otherwise you need to create it manually.</p>
<p>Before you do that you need some information about the device. It can be retrieved with:</p>
<p><pre>[danilo@docbrown ~]$ lsusb  | grep Nokia
Bus 001 Device 011: ID &lt;strong&gt;0421:0154&lt;/strong&gt; Nokia Mobile Phones</pre></p>
<p>So, <strong>my</strong> vendor ID is <strong>0421</strong>, and my product ID is <strong>0154</strong>.  <span style="color: #ff0000;">Remember to use your own numbers</span> =)<br />
And then you can load the usbserial mobule with the command:</p>
<p><pre>sudo modprobe usbserial vendor=0x0&lt;strong&gt;421&lt;/strong&gt; product=0x&lt;strong&gt;0154&lt;/strong&gt;</pre></p>
<p>If everything went OK you should see a message like this:<br />
<pre>[danilo@docbrown ~]$ dmesg | grep ttyUSB
[34063.949446] usb 1-4.3.1.4: generic converter now attached to ttyUSB0</pre><br />
Your serial port was created on /dev/ttyYSB0.</p>
<p>Ok, perfect! But how to communicate with TRK?</p>
<p>Trolls are working on that, but for now we&#8217;re using the <a href="http://qt.gitorious.org/qt/qt/trees/4.7/tools/runonphone">runonphone</a> tool. It&#8217;s the same tool used by QtCreator on Windows and you can get it by cloning <a href="http://qt.gitorious.org/qt" target="_blank">Qt Repository</a> and compiling the /tools/runonphone folder.</p>
<h3>On device testing</h3>
<p>After compiled, runonphone can be used by passing the serial port, the sis package and the executable file to it.<br />
<em>runonphone -p /dev/ttyUSB0 -s test_package.sis test_package.exe</em></p>
<p>As you probably noticed all your qWarning() messages are being redirected to runonphone output. Which is very nice!</p>
<p><strong>On device debugging</strong></p>
<p>We don&#8217;t have an interative gdb tool as we have on windows, but Qt guys are close and I&#8217;m sure we will have good news in a few days.</p>
<h3>Concluding</h3>
<p>I&#8217;m sure that Symbian development on Linux is near, and it will be massively adopted when those tools became part of QtCreator for linux. For those who can&#8217;t wait, or think that VIM is the best IDE ever, I hope those tips can help you. =)</p>
<p>And for those who&#8217;re working with Qt for symbian, remember to join the <strong>#qt-symbian</strong> on <strong>Freenode</strong>.</p>
<span class="net_nemein_favourites">10 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=4386cba4584b11dfbec7f13dbd5cebbeebbe&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/4386cba4584b11dfbec7f13dbd5cebbeebbe/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-favorite.png" style="border: none;" alt="Add to favourites" title="Add to favourites" /></a>0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=4386cba4584b11dfbec7f13dbd5cebbeebbe&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/4386cba4584b11dfbec7f13dbd5cebbeebbe/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-buried.png" style="border: none;" alt="Bury" title="Bury" /></a></span>]]></description>
            <author>Danilo Cesar Lemes de Paula &lt;danilo.eu@gmail.com&gt;</author>
            <category>feed:e2f616f44353fa778c29de8367984985</category>
            <pubDate>Wed, 05 May 2010 13:30:13 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-4386cba4584b11dfbec7f13dbd5cebbeebbe</guid>
        </item>
        <item>
            <title>Excelent News; Bossa Conference, Kde 4.2 and Debian Lenny!</title>
            <link>http://labs.danilocesar.com/blog/2009/02/05/excelent-news-bossa-conference-kde-42-and-debian-lenny/</link>
            <description><![CDATA[
<p>I&#8217;m quite excited about the news of the last few days.</p>
<p>First: KDE 4.2 was released. I&#8217;m using as my &#8220;oficial desktop manager&#8221; at work and I&#8217;m pretty happy about it.</p>
<p>Second: Debian Lenny might be released this month.  I&#8217;m using it too, and I know the result will be very good!</p>
<p>Third: BossaConference <a href="http://www.bossaconference.indt.org/programme" target="_blank">agenda</a> is ready. Think about great minds talking about OpenSource, Maemo, etc, in a paradisaical beach. I had the opportunity to join Bossa &#8217;07, and it was great! <a href="http://www.bossaconference.indt.org/registration" target="_blank">We can&#8217;t miss this one</a>! See you there! =)</p>
<p><a href="http://www.bossaconference.indt.org/" target="_blank"><img class="alignnone size-full wp-image-19" title="openbossa" src="http://labs.danilocesar.com/blog/wp-content/uploads/2009/02/openbossa.png" alt="openbossa" width="400" height="89" srcset="http://labs.danilocesar.com/blog/wp-content/uploads/2009/02/openbossa.png 400w, http://labs.danilocesar.com/blog/wp-content/uploads/2009/02/openbossa-300x66.png 300w" sizes="(max-width: 400px) 100vw, 400px" /></a></p>
<span class="net_nemein_favourites">5 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=a7f3a376f38b11ddaad6d552b68747dc47dc&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/a7f3a376f38b11ddaad6d552b68747dc47dc/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-favorite.png" style="border: none;" alt="Add to favourites" title="Add to favourites" /></a>0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=a7f3a376f38b11ddaad6d552b68747dc47dc&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/a7f3a376f38b11ddaad6d552b68747dc47dc/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-buried.png" style="border: none;" alt="Bury" title="Bury" /></a></span>]]></description>
            <author>Danilo Cesar Lemes de Paula &lt;danilo.eu@gmail.com&gt;</author>
            <category>feed:e2f616f44353fa778c29de8367984985</category>
            <pubDate>Thu, 05 Feb 2009 13:35:42 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-a7f3a376f38b11ddaad6d552b68747dc47dc</guid>
        </item>
        <item>
            <title>SU-W8 accents on N800.</title>
            <link>http://labs.danilocesar.com/blog/2008/06/30/su-w8-accents-on-n800/</link>
            <description><![CDATA[
<p>I was wondering why my SU-8W BT keyboard <a href="http://zyakannazio.eti.br/fudeblog/2007/04/29/sem-acento/" target="_blank">doesn&#8217;t work well with pt_BR layout</a>. So, yesterday, I decided to investigate this.</p>
<p>When I was trying to pairing my keyboard, I could see that Su-8W is a pre-configurated keyboard, and with a little of patience, I dicovered the file who manages this: <code>/usr/share/X11/xkb/symbols/nokia_vndr/su-8w.</code></p>
<p>With 5 minutes by reading this file you can be familiarized with file syntax. And, with 10 minutes, you can note that <strong>THERE IS NOT A LAYOUT DEFINITION FOR PORTUGUESE/SPANISH</strong>. So, now I know why the Portuguese layout doesn&#8217;t work =).</p>
<p>But, Ok. Lets try to fix it.</p>
<p>If I select portuguese layout, and there is no portuguese layout, I assume that it&#8217;ll use <strong>us-intl</strong>, right? But, in the begining of the intl definition exists a anoying comment: &#8220;I can&#8217;t belive! It&#8217;s not intl&#8221;. Hummm&#8230;</p>
<p>Lets ignore this, and go on&#8230; What do I need? Dead_keys in <code>`,~,&quot;,&#039;,^</code>, and ç when I press &#8220;ALTgr + c&#8221;.</p>
<p>I&#8217;ll not explain all the changes I did (it&#8217;s not too much, just 4 boring lines), is easier to download and replace the old file by <a href="http://labs.danilocesar.com/maemo/keyboard/su-8w" target="_blank">this one</a>, or see the diff. <strong>[ADVISE: DO NOT FORGET TO BACKUP THE OLD FILE]</strong></p>
<p><strong></strong> <a href="http://labs.danilocesar.com/blog/wp-content/uploads/2008/06/dsc01622.jpg"><img class="alignnone size-medium wp-image-17" title="SU-8W Working" src="http://labs.danilocesar.com/blog/wp-content/uploads/2008/06/dsc01622-300x225.jpg" alt="Su-8W Working" width="300" height="225" /></a></p>
<p>And Voilà, Accents and Cedilla working like a charm.</p>
<p>The right workaround for it is create a valid portuguese layout, but just for testing proposes you can alter the intl layout.</p>
<p>Ok, that is it,</p>
<p>Cheers!</p>
<span class="net_nemein_favourites">3 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=76c32750466511ddb4c4119c463b1aee1aee&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/76c32750466511ddb4c4119c463b1aee1aee/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-favorite.png" style="border: none;" alt="Add to favourites" title="Add to favourites" /></a>0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=76c32750466511ddb4c4119c463b1aee1aee&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/76c32750466511ddb4c4119c463b1aee1aee/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-buried.png" style="border: none;" alt="Bury" title="Bury" /></a></span>]]></description>
            <author>Danilo Cesar Lemes de Paula &lt;danilo.eu@gmail.com&gt;</author>
            <category>feed:e2f616f44353fa778c29de8367984985</category>
            <pubDate>Mon, 30 Jun 2008 05:10:39 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-76c32750466511ddb4c4119c463b1aee1aee</guid>
        </item>
        <item>
            <title>Pychord2 beta Released!!</title>
            <link>http://labs.danilocesar.com/blog/2008/04/07/pychord2-beta-released/</link>
            <description><![CDATA[
<p>Someone told me some years ago:</p>
<blockquote><p><strong>You cannot just put a son in the world. You need to take care of it, to suport it, and help it to grow.</strong></p></blockquote>
<p>So, because of this, I&#8217;m releasing a new N8X0 version of <a href="https://garage.maemo.org/projects/pychord/" target="_blank"><em><strong>Pychord</strong></em>.</a></p>
<p>As you know, Pychord is an application to help musicians with song chords. It can be summarized as a <a href="http://en.wikipedia.org/wiki/Songbook" target="_blank">Song Book</a>, but it&#8217;s not only a song book. Think about having all your musics in a small device with a good screen. Think about fast searches by lyrics. Think on changing music tones on demand! It&#8217;s <em><strong>Pychord</strong></em>!</p>
<p>So, if you want to test it, get the install <a href="http://labs.danilocesar.com/maemo/pychord/pychord_maemo_2.0.5_beta.deb" target="_blank">file</a> <a href="http://http//labs.danilocesar.com/maemo/pychord/">here</a>.</p>
<h2>Pychord HowTo</h2>
<h3>1 &#8211; Pychord file format</h3>
<p>First, you need to know the format pychord accepts. It uses a <strong><span style="color: #000000;">chr</span></strong> file format. Bellow you can see a simple example of a valid chr file.</p>
<p><pre><code>
name:Backet Case
artist:Green Day
D#5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A#5
Do you have the time
C5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; G5
To listen to me whine
G#5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;D#5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A#5
About nothing and everything all at once
D#5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A#5
I am one of those
C5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;G5
Melodramatic fools
G#5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;D#5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A#5
Neurotic to the bone no doubt about it</code></pre></p>
<p>So, we have two headers:</p>
<ol>
<li>name: Name of the music</li>
<li>artist: Name of the artist</li>
</ol>
<p>And below we have the chords in pure text. It&#8217;s very simple.</p>
<h3>2 &#8211; Installation</h3>
<p>Take the latest deb file <a href="http://labs.danilocesar.com/maemo/pychord/" target="_blank">here</a> and install it on your device. After that, go to your &#8220;Extra Menu&#8221; and open Pychord.</p>
<p>In the pychord first screen we have some informations like:<br />
<a href="http://labs.danilocesar.com/blog/wp-content/uploads/2008/04/picture-1.png"><img class="alignnone size-medium wp-image-10" title="Pychord2 first screen" src="http://labs.danilocesar.com/blog/wp-content/uploads/2008/04/picture-1-300x116.png" alt="This the pychord2 first screen" width="300" height="116" srcset="http://labs.danilocesar.com/blog/wp-content/uploads/2008/04/picture-1-300x116.png 300w, http://labs.danilocesar.com/blog/wp-content/uploads/2008/04/picture-1.png 783w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<ol>
<li> Text you want to search in the database</li>
<li>Search context. You can search music by &#8220;Music Name&#8221;, &#8220;Artist&#8221; or &#8220;Word&#8221; (Lyric part)</li>
<li>Search button</li>
<li>Close window button</li>
<li>Information window</li>
<li>Playlist window</li>
</ol>
<h3>3 &#8211; Start and update</h3>
<p>First of all, you need to create your database file. When you have new lyrics, or in the first time that you execute pychord, you have to execute pychord&#8217;s update procedures. To do that, just click on Information Window[item 5 for the list above]. There&#8217;ll be a window like this:</p>
<p><a href="http://labs.danilocesar.com/blog/wp-content/uploads/2008/04/picture-2.png"><img class="aligncenter size-medium wp-image-11" title="pychord-screenshot2" src="http://labs.danilocesar.com/blog/wp-content/uploads/2008/04/picture-2-300x177.png" alt="" width="300" height="177" srcset="http://labs.danilocesar.com/blog/wp-content/uploads/2008/04/picture-2-300x177.png 300w, http://labs.danilocesar.com/blog/wp-content/uploads/2008/04/picture-2.png 775w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<ol>
<li>Where pychord will install their database files (Internal Memory, external memory card, Internal memory card)</li>
<li>Where pychord will look for chr files on updates (Internal Memory, external memory card, Internal memory card)</li>
<li>Show Advanced Options</li>
<li>Save settings</li>
<li>Update database</li>
</ol>
<p>Just explaining: [1] and [2] are combo boxes with a few options (I&#8217;ve tried to keep it as simple as possible). If you want to set a specific local, click on advanced options. ComboBox[1,2] will be replaced by input boxes. And there you can type full paths.</p>
<p>When you are done configuring Pychord, just press Save.</p>
<p>Suppose that your chr files are in your external MMC. On &#8220;<strong>Song Directory</strong>&#8221; select  &#8220;<strong>Pychord/    (External Memory Card)</strong>&#8220;. Then, click on Save, and click on Update.</p>
<p>Probably this operation will take 1 or 2 minutes. Pychord will search by every chr file in &#8220;<strong>Song Directory</strong>&#8221; and put this songs in its database.</p>
<p><span style="color: #ff0000;"><em><strong>Your files needs to be encoded in UTF-8!!! This very is important!!! Remember: UTF-8!!!</strong></em></span></p>
<h3>4 &#8211; Using Pychord as an advanced SongBook</h3>
<p>One major advantage of using Pychord instead of using conventional songbooks is: Faster searches!</p>
<p>Go to pychord main screen and type anything about the song that you are looking for. Now, select the field to be used. It can be the name of the artist ( <strong>Artist</strong> ), part of the lyric ( <strong>Word</strong> ) or part of the music&#8217;s name ( <strong>Music</strong> ). Now, click on <strong>Search</strong> button.</p>
<p>In the next screen you will see a list of results. If the result list does not fit in the screen size, it can be scrolled down so that more results can be seen. To scroll the screen just press anywhere on the result list, and scroll. If you want to do a click, just click the screen without moving.</p>
<h4>4.1 &#8211; When viewing a song</h4>
<p>After choosing your song, it will be displayed in a screen like this:</p>
<p><a href="http://labs.danilocesar.com/blog/wp-content/uploads/2008/04/picture-3.png"><img class="alignnone size-medium wp-image-12" title="Pychord Screenshot 3" src="http://labs.danilocesar.com/blog/wp-content/uploads/2008/04/picture-3-300x179.png" alt="" width="300" height="179" srcset="http://labs.danilocesar.com/blog/wp-content/uploads/2008/04/picture-3-300x179.png 300w, http://labs.danilocesar.com/blog/wp-content/uploads/2008/04/picture-3.png 792w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<ol>
<li>Song (scrollable list)</li>
<li>Options window</li>
<li>Scroll speed down</li>
<li>Scroll stop</li>
<li>Scroll speed up</li>
</ol>
<p>4,5,6 are scroll control buttons. Keep the button 5 pressed and see the song [1] scrolling. To reduce the scrolling speed, press button 3, and to stop it press buton 4.</p>
<p>To change song&#8217;s font size, press hardware keys <strong>ZoomIn/ZoomOut</strong>.</p>
<p>Pressing Button-2, a new screen will be displayed.</p>
<p><a href="http://labs.danilocesar.com/blog/wp-content/uploads/2008/04/picture-4.png"><img class="alignnone size-medium wp-image-13" title="Pychord-information-window" src="http://labs.danilocesar.com/blog/wp-content/uploads/2008/04/picture-4-300x148.png" alt="" width="300" height="148" srcset="http://labs.danilocesar.com/blog/wp-content/uploads/2008/04/picture-4-300x148.png 300w, http://labs.danilocesar.com/blog/wp-content/uploads/2008/04/picture-4.png 628w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Inside this window, we have tree buttons:</p>
<ol>
<li><strong><em>T+</em>: </strong>increase the music tone</li>
<li><strong><em>T-</em></strong>: decrease music tone</li>
<li><strong><em>Add to playlist: </em></strong>adds (or remove from) the music to playlist =)</li>
</ol>
<h3>5 &#8211; Using Playlist</h3>
<p>On pychord main screen, click the Playlist button <img class="alignnone size-full wp-image-14" title="Pychord playlist button" src="http://labs.danilocesar.com/blog/wp-content/uploads/2008/04/playlist.png" alt="" width="22" height="22" /> and a new window will be shown. In that window you will find all the songs you have added to your playlist.</p>
<p>To remove a song from your playlist, open this song, and click on information button <img class="alignnone size-medium wp-image-15" title="Pychord i button" src="http://labs.danilocesar.com/blog/wp-content/uploads/2008/04/i.png" alt="" width="24" height="24" /> and after that, click on &#8220;<strong>Remove from playlist</strong>&#8221;</p>
<p>You can clear your Playlist by clicking in &#8220;<strong>Clear Playlist</strong>&#8221; on your Playlist screen.</p>
<h3>6 &#8211; Final comments</h3>
<p>I&#8217;m working on an heuristic to recognize whether a line is lyrics or chords. It&#8217;s far away from being perfect, but I&#8217;m working on it!</p>
<p>Pychord is not working with OpenSong format yet because it&#8217;s not so easy to create the xml file.  I thought of an easy way to put songs into pychord, and <em><strong>chr file</strong></em> was the easiest format I found. But I want to support opensong, and it will happen soon.</p>
<p>This is a beta version, the main features are working, but you can find some bugs!</p>
<p>PLEASE: <strong>WE NEED YOUR HELP</strong>! How?</p>
<ol>
<li><a href="https://garage.maemo.org/tracker/?atid=1342&amp;group_id=346&amp;func=browse">Tell me your ideas</a></li>
<li>Send me suggestions and critics</li>
<li><a href="https://garage.maemo.org/tracker/?atid=1339&amp;group_id=346&amp;func=browse">Report bugs</a></li>
</ol>
<p>So, I&#8217;m finishing this post. You are invited to test pychord. I&#8217;m waiting your comments.</p>
<p>[ ]&#8217;s</p>
<p><em>Thanks to <a href="http://www.gustavoboiko.org" target="_blank">Gustavo Boiko</a>, who helped me with this text.</em></p>
<span class="net_nemein_favourites">4 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=8522a39204d011dd877a33171b79d668d668&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/8522a39204d011dd877a33171b79d668d668/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-favorite.png" style="border: none;" alt="Add to favourites" title="Add to favourites" /></a>0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=8522a39204d011dd877a33171b79d668d668&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/8522a39204d011dd877a33171b79d668d668/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-buried.png" style="border: none;" alt="Bury" title="Bury" /></a></span>]]></description>
            <author>Danilo Cesar Lemes de Paula &lt;danilo.eu@gmail.com&gt;</author>
            <category>feed:e2f616f44353fa778c29de8367984985</category>
            <pubDate>Mon, 07 Apr 2008 17:19:20 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-8522a39204d011dd877a33171b79d668d668</guid>
        </item>
        <item>
            <title>Will GoogleMaps make me lost in Sorocaba? No, maemo-mapper’ll help me!</title>
            <link>http://labs.danilocesar.com/blog/2008/01/19/will-googlemaps-make-me-lost-in-sorocaba-no-maemo-mapperll-help-me/</link>
            <description><![CDATA[
<p>In last two weeks I was testing  a GPS device that I bought to use with maemo-mapper  on my inter-states trips.</p>
<p>Here in my city (<a href="http://curitiba.pr.gov.br/">Curitiba</a> &#8211; Paraná &#8211; Brazil), <a href="http://garage.maemo.org/projects/maemo-mapper">maemo-mapper</a> works very well&#8230;. <a href="http://br.geocities.com/unosite/novomille.htm" target="_blank">My car</a> is always in the route ( a green line in maemo-mapper ), I know perfectly where streets are, and I know exactly where take the exits on the highways.  But Curitiba is a big and important city, <a href="http://www.danilocesar.com/blog/2008/01/11/notas-de-um-viajante/">so I decided to test</a> it in <a href="http://www.londrina.pr.gov.br/" target="_blank">Londrina &#8211; PR</a>.</p>
<p>Londrina is a little country tow here in Paraná,  but probably is the second more important city in my state. Anyway, how I was <strike>saying</strike>  writing before, GoogleMaps is so faw away to be precise in Londrina. Take a look in the photo below:</p>
<p><a href="http://labs.danilocesar.com/blog/wp-content/uploads/2008/01/google-maps_error.png" title="GoogleStreetMaps error"><img src="http://labs.danilocesar.com/blog/wp-content/uploads/2008/01/google-maps_error.png" alt="GoogleStreetMaps error" /></a></p>
<p><em>The red line is what my car was doing and the green line is what GoogleStreetMaps was telling me to do.</em></p>
<p><em>Now I know; it&#8217;s not a Google&#8217;s problem, but it&#8217;s a <a href="http://maplink.uol.com.br/" target="_blank">MapLink</a> problem. Maplink is the company who provides street-maps to google in Brazil.</em></p>
<p>Anyway, on this situation, I can&#8217;t trust in maemo advises anymore. Google&#8217;s way points doesn&#8217;t work anymore. So I decide to fix this problem writing a &#8220;mapper-calibration&#8221; feature inside maemo-mapper. And its ready now.</p>
<p>Go to &#8220;<strong>Menu/Maps/Map Calibrate</strong>&#8220;. After that, just click in a point that you think you really are.</p>
<blockquote><p>I sugest you to stop your car in some corner, find this corner in mapper, and click on it. It&#8217;ll be more precise.</p></blockquote>
<p>And the result will be something like that:</p>
<p><img src="http://labs.danilocesar.com/blog/wp-content/uploads/2008/01/google-maps_no_error.png" alt="GoogleStreetMaps fixed by maemo mapper" /></p>
<p><em>Há! Much better now!</em></p>
<p>I don&#8217;t know if this problem happens in another countries too, but if you think that this feature is interesting to you, you can download the <a href="http://labs.danilocesar.com/maemo/mapper/maemo-mapper2.3_adding_map_calibration.patch" target="_blank">patch here</a>, or get the <a href="http://labs.danilocesar.com/maemo/mapper/maemo-mapper2.3_with_calibration.deb">compiled package</a>. (2008-version only, sorry folks)</p>
<p><em>Just remember to disable this feature when you don&#8217;t need it. =)</em></p>
<p>So, on the next weekend I&#8217;ll be in Sorocaba testing this feature. Then I&#8217;ll describe if this is useful.</p>
<p>So, nice weekend for everyone!</p>
<p>Bye!</p>
<p><strong>[update: 19/01/2008] </strong>BTW, I was forgotting. Maemo-Mapper is very well developed. They have a nice (and interesting) unit-system, so its very easy to transform pixels into latitude/longitude and vice versa. <strong>Congratulations Maemo-Mapper&#8217;s Team!</strong></p>
<span class="net_nemein_favourites">6 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=3ab1764ec6e611dc995859b79485dd74dd74&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/3ab1764ec6e611dc995859b79485dd74dd74/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-favorite.png" style="border: none;" alt="Add to favourites" title="Add to favourites" /></a>0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=3ab1764ec6e611dc995859b79485dd74dd74&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/3ab1764ec6e611dc995859b79485dd74dd74/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-buried.png" style="border: none;" alt="Bury" title="Bury" /></a></span>]]></description>
            <author>Danilo Cesar Lemes de Paula &lt;danilo.eu@gmail.com&gt;</author>
            <category>feed:e2f616f44353fa778c29de8367984985</category>
            <pubDate>Sat, 19 Jan 2008 22:36:56 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-3ab1764ec6e611dc995859b79485dd74dd74</guid>
        </item>
        <item>
            <title>Pychord 0.4 Release</title>
            <link>http://labs.danilocesar.com/blog/2007/10/09/pychord-04-release/</link>
            <description><![CDATA[
<p>Hi All&#8230;</p>
<p>I&#8217;m not having much time to work on my personal projects ( pychord by example ) cause I&#8217;m having a lot of tasks to do ( and to learn ) on my <a href="http://www.inf.ufpr.br" target="_blank">college</a> and on my <a href="http://mandriva.com.br" target="_blank">new job</a>.</p>
<p>But I&#8217;m here to talk about <a href="https://garage.maemo.org/projects/pychord/">pychord,</a> so let me do it! =)</p>
<p><a href="http://www.sense-datum.org/tim/">Tim</a> <a href="http://www.sense-datum.org/tim/archive/2007/09/17/PyChord/2" target="_blank">wrote</a> <a href="https://garage.maemo.org/tracker/?atid=1342&amp;group_id=346&amp;func=browse">a lot of good suggestions</a> on <a href="http://garage.maemo.org">garage&#8217;s</a> foruns. So, I&#8217;m working on their ideas now. I need to say &#8220;thanks&#8221; to Tim cause he gave me a lot of good suggestions to make pychord better. Thank you Tim!</p>
<p>On this last weekend I worked in &#8220;Zoom IN/OUT &#8221; feature and change the font of the chord&#8217;s screen. I think that pychord is a little better now.</p>
<p>You can get it <a href="http://labs.danilocesar.com/maemo/bora/pychord_maemo_0.4.deb">here,</a> or do a &#8220;upgrade&#8221; on your device.</p>
<p>That is all!</p>
<p>Have a nice week!</p>
<span class="net_nemein_favourites">1 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=d300a558766b11dcb080bddf58b86b126b12&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/d300a558766b11dcb080bddf58b86b126b12/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-favorite.png" style="border: none;" alt="Add to favourites" title="Add to favourites" /></a>0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=d300a558766b11dcb080bddf58b86b126b12&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/d300a558766b11dcb080bddf58b86b126b12/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-buried.png" style="border: none;" alt="Bury" title="Bury" /></a></span>]]></description>
            <author>Danilo Cesar Lemes de Paula &lt;danilo.eu@gmail.com&gt;</author>
            <category>feed:e2f616f44353fa778c29de8367984985</category>
            <pubDate>Tue, 09 Oct 2007 13:20:06 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-d300a558766b11dcb080bddf58b86b126b12</guid>
        </item>
        <item>
            <title>PyChord for Maemo: Get your .install here!</title>
            <link>http://labs.danilocesar.com/blog/2007/09/16/pychord-for-maemo-get-your-install-here/</link>
            <description><![CDATA[
<p>Finally, <a href="https://garage.maemo.org/projects/pychord/" target="_blank">Pychord</a> is almost ready!</p>
<p>All features (about 1.0 version) are working. Now I need to work in two different lines.</p>
<ul>
<li><a href="https://garage.maemo.org/pm/?group_id=346" target="_blank">Source Code improvement</a> [1]</li>
<li>Bug Fixes[2]</li>
</ul>
<p><strong>[1] </strong>I didn&#8217;t have enough knowledge about <a href="http://www.pygame.org" target="_blank">pygame</a> when I started this project. So I need to change some parts of the code to fix wrong decisions that I made before.<br />
<strong>[2] </strong> If you are using this application, please, give me a <a href="https://garage.maemo.org/tracker/?group_id=346">feedback</a> and I will try to make it better!</p>
<p>Then I will start to develop the 1.1 version ( with some features that I promised before ).</p>
<p>In this version, I created a configuration file (/home/user/.pychord.conf), and this file has to have two simple lines:<br />
<code><br />
db=/home/user/.pychord.db<br />
datadir=/home/user/pychord/data<br />
</code><br />
Where:<br />
&#8220;<strong>db</strong>&#8221; is your DataBase file, with all your chords. Its a sqlite&#8217;s file.<br />
&#8220;<strong>datadir</strong>&#8221; is the folder where pychord will get the chords to put into database file on update process.</p>
<p>You can edit these options by clicking on &#8220;i&#8221; symbol in PyChord&#8217;s first screen. You can also choose by what type of update you want: Full-update or Incremental Update. In Full-update you will lose all your database data. In incremental update pychord will get all files of your datadir and put into database.</p>
<p>All files in your datadir folder have to have the &#8220;.chr&#8221; extension, and have to be like this example:<br />
<code><br />
Name: Music Name<br />
Artist: Music Artist Name<br />
D#       E      F<br />
Your chords<br />
D #      E      F<br />
Your chords<br />
D       E#      F<br />
Your chords<br />
</code><br />
<em>(Two first lines are used like headers, describing the Name of the music and the name of the Artist. Followed by the chords)</em></p>
<p>Ok, its too easy right?!</p>
<p>So, you have to have  a directory (datadir) and put all your files there. Default folder is <code>/home/user/pychord/data.</code> Don&#8217;t forget to update your database when you start to use this application.</p>
<p>So, Ok! Now you can download .install <a href="http://labs.danilocesar.com/maemo/pychord.install" target="_blank">here</a>!</p>
<p>If you have problems to install this application, try again by searching for it on <code>ApplicationManager-&gt;Browse Installable Applications-&gt;others-&gt;pychord</code></p>
<p>If you have any problems after that (or suggestions), please, <a href="https://garage.maemo.org/tracker/?group_id=346">let me know</a>!</p>
<p>[]&#8216;s</p>
<span class="net_nemein_favourites">2 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=49d27a2864a411dcbed2371edfab3ddf3ddf&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/49d27a2864a411dcbed2371edfab3ddf3ddf/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-favorite.png" style="border: none;" alt="Add to favourites" title="Add to favourites" /></a>0 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=49d27a2864a411dcbed2371edfab3ddf3ddf&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/49d27a2864a411dcbed2371edfab3ddf3ddf/" class="net_nemein_favourites_create"><img src="http://static.maemo.org:81/net.nemein.favourites/not-buried.png" style="border: none;" alt="Bury" title="Bury" /></a></span>]]></description>
            <author>Danilo Cesar Lemes de Paula &lt;danilo.eu@gmail.com&gt;</author>
            <category>feed:e2f616f44353fa778c29de8367984985</category>
            <pubDate>Sun, 16 Sep 2007 16:17:18 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-49d27a2864a411dcbed2371edfab3ddf3ddf</guid>
        </item>
    </channel>
</rss>
