<?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:5a9785f4d688425c0d91de6cffc2e0b2&quot;</title>
        <description>Blog entries from Maemo community</description>
        <link>http://maemo.org/news/planet-maemo/</link>
        <lastBuildDate>Sat, 04 Apr 2026 00:04:44 +0000</lastBuildDate>
        <generator>FeedCreator 1.7.6(BH)</generator>
        <language>en</language>
        <managingEditor>planet@maemo.org</managingEditor>
        <item>
            <title>Demystifying the init system (PID 1)</title>
            <link>https://felipec.wordpress.com/2013/11/04/init/</link>
            <description><![CDATA[
<p>With all the talk about debian choosing a default init system (link, link), I've decided to share with the world a little project I've been working on to help me understand /sbin/init aka. PID 1. In this blog post I will go step by step showing what an init system must do to be functional. &hellip; <a href="https://felipec.wordpress.com/2013/11/04/init/" class="more-link">Continue reading <span class="screen-reader-text">Demystifying the init system (PID&nbsp;1)</span></a></p><span class="net_nemein_favourites">1 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=1e345734b1ed168457311e3943f7594461e66846684&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/1e345734b1ed168457311e3943f7594461e66846684/" 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=1e345734b1ed168457311e3943f7594461e66846684&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/1e345734b1ed168457311e3943f7594461e66846684/" 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>Felipe Contreras &lt;felipe.contreras@gmail.com&gt;</author>
            <category>feed:5a9785f4d688425c0d91de6cffc2e0b2</category>
            <pubDate>Mon, 04 Nov 2013 16:23:30 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-1e345734b1ed168457311e3943f7594461e66846684</guid>
        </item>
        <item>
            <title>gst-av 0.6 released; more reliable</title>
            <link>https://felipec.wordpress.com/2012/02/11/gst-av-0-6-released-more-reliable/</link>
            <description><![CDATA[
<p>gst-av is a GStreamer plug-in to provide support for libav (fork of FFmpeg), it is similar to gst-ffmpeg, but without GStreamer politics, which means all libav plugins are supported, even if there are native GStreamer alternatives; VP8, MP3, Ogg, Vorbis, AAC, etc. This release takes care of a few corner-cases, and has support for more &hellip; <a href="https://felipec.wordpress.com/2012/02/11/gst-av-0-6-released-more-reliable/" class="more-link">Continue reading <span class="screen-reader-text">gst-av 0.6 released; more&nbsp;reliable</span></a></p><span class="net_nemein_favourites">3 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=fd92e6c6544911e1939d8fb62b3f9f299f29&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/fd92e6c6544911e1939d8fb62b3f9f299f29/" 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>1 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=fd92e6c6544911e1939d8fb62b3f9f299f29&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/fd92e6c6544911e1939d8fb62b3f9f299f29/" 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>Felipe Contreras &lt;felipe.contreras@gmail.com&gt;</author>
            <category>feed:5a9785f4d688425c0d91de6cffc2e0b2</category>
            <pubDate>Sat, 11 Feb 2012 00:16:48 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-fd92e6c6544911e1939d8fb62b3f9f299f29</guid>
        </item>
        <item>
            <title>Android vs. Maemo power management: static vs. dynamic</title>
            <link>https://felipec.wordpress.com/2012/01/04/android-vs-maemo-power-managment-static-vs-dynamic/</link>
            <description><![CDATA[
<p>Some of you might have heard about Google's Android team proposal to introduce wakelocks (aka suspend-blockers) to the Linux kernel. While there was a real issue being solved in the kernel side, the benefits on the user-space side were dubious at best, and after a huge discussion, they finally didn't get in. During this discussions &hellip; <a href="https://felipec.wordpress.com/2012/01/04/android-vs-maemo-power-managment-static-vs-dynamic/" class="more-link">Continue reading <span class="screen-reader-text">Android vs. Maemo power management: static vs.&nbsp;dynamic</span></a></p><span class="net_nemein_favourites">3 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=3d6ece623c9511e181ab2b9927dd9bfd9bfd&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/3d6ece623c9511e181ab2b9927dd9bfd9bfd/" 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=3d6ece623c9511e181ab2b9927dd9bfd9bfd&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/3d6ece623c9511e181ab2b9927dd9bfd9bfd/" 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>Felipe Contreras &lt;felipe.contreras@gmail.com&gt;</author>
            <category>feed:5a9785f4d688425c0d91de6cffc2e0b2</category>
            <pubDate>Tue, 03 Jan 2012 23:10:26 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-3d6ece623c9511e181ab2b9927dd9bfd9bfd</guid>
        </item>
        <item>
            <title>A tale of just another Linux kernel bug</title>
            <link>https://felipec.wordpress.com/2011/12/13/a-tale-of-just-another-linux-kernel-bug/</link>
            <description><![CDATA[
<p>As part of a bigger effort to get my Nokia N900 in good shape for development, I decided to track down an issue with the keyboard; I could type 'a', but not 'A' or any special characters, so no 'shift' or 'ctrl' or anything special. Trying to figure out what was going on took me &hellip; <a href="https://felipec.wordpress.com/2011/12/13/a-tale-of-just-another-linux-kernel-bug/" class="more-link">Continue reading <span class="screen-reader-text">A tale of just another Linux kernel&nbsp;bug</span></a></p><span class="net_nemein_favourites">8 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=ab5025f625a811e1b4a27d32ea41d1e2d1e2&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/ab5025f625a811e1b4a27d32ea41d1e2d1e2/" 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=ab5025f625a811e1b4a27d32ea41d1e2d1e2&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/ab5025f625a811e1b4a27d32ea41d1e2d1e2/" 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>Felipe Contreras &lt;felipe.contreras@gmail.com&gt;</author>
            <category>feed:5a9785f4d688425c0d91de6cffc2e0b2</category>
            <pubDate>Tue, 13 Dec 2011 16:00:06 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-ab5025f625a811e1b4a27d32ea41d1e2d1e2</guid>
        </item>
        <item>
            <title>Scrobbler for Maemo, now both on N900, and N9</title>
            <link>https://felipec.wordpress.com/2011/08/18/scrobbler-for-maemo-now-both-on-n900-and-n9/</link>
            <description><![CDATA[
<p>Version 2.0 finally moved to Fremantle stable, so everybody can start using it <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f642.png" alt="<span class="net_nemein_favourites">5 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=ce1b7402c9da11e0ac48831581c5dc23dc23&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/ce1b7402c9da11e0ac48831581c5dc23dc23/" 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=ce1b7402c9da11e0ac48831581c5dc23dc23&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/ce1b7402c9da11e0ac48831581c5dc23dc23/" 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>Felipe Contreras &lt;felipe.contreras@gmail.com&gt;</author>
            <category>feed:5a9785f4d688425c0d91de6cffc2e0b2</category>
            <pubDate>Thu, 18 Aug 2011 20:02:13 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-ce1b7402c9da11e0ac48831581c5dc23dc23</guid>
        </item>
        <item>
            <title>N9 Swipe undocumented feature; activate sane behavior</title>
            <link>https://felipec.wordpress.com/2011/08/14/n9-swipe-undocumented-feature-activate-sane-behavior/</link>
            <description><![CDATA[
<p>Ed Page recently blogged about his idea to improve the Swipe UI. Fortunately for him, a bunch of people and I had the same idea inside Nokia <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f642.png" alt="<span class="net_nemein_favourites">6 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=4bb16abcc66a11e08a7d3988d43d49434943&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/4bb16abcc66a11e08a7d3988d43d49434943/" 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>1 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=4bb16abcc66a11e08a7d3988d43d49434943&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/4bb16abcc66a11e08a7d3988d43d49434943/" 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>Felipe Contreras &lt;felipe.contreras@gmail.com&gt;</author>
            <category>feed:5a9785f4d688425c0d91de6cffc2e0b2</category>
            <pubDate>Sun, 14 Aug 2011 11:30:20 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-4bb16abcc66a11e08a7d3988d43d49434943</guid>
        </item>
        <item>
            <title>My disagreement with Elop on MeeGo</title>
            <link>https://felipec.wordpress.com/2011/06/21/my-disagreement-with-elop-on-meego/</link>
            <description><![CDATA[
<p>Some time ago I received a private email directly from Elop (just me, nobody else in CC, I am not going to go into details as to why), in which he explained that the biggest problem was the small amount of MeeGo devices in the years immediately ahead. This is simply not true. Before explaining &hellip; <a href="https://felipec.wordpress.com/2011/06/21/my-disagreement-with-elop-on-meego/" class="more-link">Continue reading <span class="screen-reader-text">My disagreement with Elop on&nbsp;MeeGo</span></a></p><span class="net_nemein_favourites">33 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=5b5db9729bed11e0a264f750608dcb9acb9a&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/5b5db9729bed11e0a264f750608dcb9acb9a/" 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=5b5db9729bed11e0a264f750608dcb9acb9a&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/5b5db9729bed11e0a264f750608dcb9acb9a/" 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>Felipe Contreras &lt;felipe.contreras@gmail.com&gt;</author>
            <category>feed:5a9785f4d688425c0d91de6cffc2e0b2</category>
            <pubDate>Tue, 21 Jun 2011 09:36:31 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-5b5db9729bed11e0a264f750608dcb9acb9a</guid>
        </item>
        <item>
            <title>gst-av 0.5 released; now with video encoding and decoding support</title>
            <link>https://felipec.wordpress.com/2011/05/19/gst-av-0-5-released-now-with-video-encoding-and-decoding-support/</link>
            <description><![CDATA[
<p>gst-av is a GStreamer plug-in to provide support for libav (formerly FFmpeg), it is similar to gst-ffmpeg, but without GStreamer politics, which means all libav plugins are supported, even if there are native GStreamer alternatives; VP8, MP3, Ogg, Vorbis, AAC, etc. In addition, it is much simpler (2654 vs 16575 LOC), has better performance, and &hellip; <a href="https://felipec.wordpress.com/2011/05/19/gst-av-0-5-released-now-with-video-encoding-and-decoding-support/" class="more-link">Continue reading <span class="screen-reader-text">gst-av 0.5 released; now with video encoding and decoding&nbsp;support</span></a></p><span class="net_nemein_favourites">9 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=258610e6823f11e0a163ed55619164f464f4&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/258610e6823f11e0a163ed55619164f464f4/" 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=258610e6823f11e0a163ed55619164f464f4&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/258610e6823f11e0a163ed55619164f464f4/" 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>Felipe Contreras &lt;felipe.contreras@gmail.com&gt;</author>
            <category>feed:5a9785f4d688425c0d91de6cffc2e0b2</category>
            <pubDate>Thu, 19 May 2011 17:13:55 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-258610e6823f11e0a163ed55619164f464f4</guid>
        </item>
        <item>
            <title>msn-pecan 0.1.2 released; critical bug-fix</title>
            <link>https://felipec.wordpress.com/2011/04/30/msn-pecan-0-1-2-released-critical-bug-fix/</link>
            <description><![CDATA[
<p>Hi, This is an important maintenance release, everybody should update. Apparently Microsoft shut down the Nexus servers that were used for authentication, which meant msn-pecan stopped working completely. Fortunately I found a trick to circumvent the problem without requiring an update the protocol used; use Passport 3.0 authentication. Had I known the fix would have &hellip; <a href="https://felipec.wordpress.com/2011/04/30/msn-pecan-0-1-2-released-critical-bug-fix/" class="more-link">Continue reading <span class="screen-reader-text">msn-pecan 0.1.2 released; critical&nbsp;bug-fix</span></a></p><span class="net_nemein_favourites">3 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=90eeff28736211e0ab9537657fa9601f601f&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/90eeff28736211e0ab9537657fa9601f601f/" 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=90eeff28736211e0ab9537657fa9601f601f&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/90eeff28736211e0ab9537657fa9601f601f/" 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>Felipe Contreras &lt;felipe.contreras@gmail.com&gt;</author>
            <category>feed:5a9785f4d688425c0d91de6cffc2e0b2</category>
            <pubDate>Sat, 30 Apr 2011 19:03:09 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-90eeff28736211e0ab9537657fa9601f601f</guid>
        </item>
        <item>
            <title>Why Linux is the most important software project in history</title>
            <link>https://felipec.wordpress.com/2011/03/06/why-linux-is-the-most-important-software-project-in-history/</link>
            <description><![CDATA[
<p>Here's another post that for some people is obvious, but there are other (e.g. high level managers) that might not necessarily see the importance of Linux, in fact, I have been surprised by many open source developers who don't seem to be familiar with how Linux works (they think it's just something that works?). The &hellip; <a href="https://felipec.wordpress.com/2011/03/06/why-linux-is-the-most-important-software-project-in-history/" class="more-link">Continue reading <span class="screen-reader-text">Why Linux is the most important software project in&nbsp;history</span></a></p><span class="net_nemein_favourites">12 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=3c3a0566483a11e0989d370cc2f64c004c00&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/3c3a0566483a11e0989d370cc2f64c004c00/" 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>1 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=3c3a0566483a11e0989d370cc2f64c004c00&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/3c3a0566483a11e0989d370cc2f64c004c00/" 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>Felipe Contreras &lt;felipe.contreras@gmail.com&gt;</author>
            <category>feed:5a9785f4d688425c0d91de6cffc2e0b2</category>
            <pubDate>Sun, 06 Mar 2011 20:42:40 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-3c3a0566483a11e0989d370cc2f64c004c00</guid>
        </item>
        <item>
            <title>MeeGo scales, because Linux scales</title>
            <link>http://felipec.wordpress.com/2011/02/22/meego-scales-because-linux-scales/</link>
            <description><![CDATA[
<p>To me, and a lot of people, it&#8217;s obvious why MeeGo scales to a wide variety of devices, but apparently that&#8217;s not clear to other people, so I&#8217;ll try to explain why that&#8217;s the case.</p>
<p>First, let&#8217;s divide the operating system:</p>
<ol>
<li>Kernel</li>
<li>Drivers</li>
<li>Adaptation</li>
<li>System Frameworks</li>
<li>Application Framework</li>
<li>Applications</li>
</ol>
<p>&#8220;Linux&#8221; can mean many things, in the case of Android, Linux means mostly the <strong>Kernel</strong> (which is heavily modified), and in some cases the <strong>Drivers</strong> (although sometimes they have to be written from scratch), but all the layers above are specific to Android.</p>
<p>On Maemo, MeeGo, Moblin, and LiMo, &#8220;Linux&#8221; means an upstream <strong>Kernel</strong> (no drastic changes), upstream <strong>Drivers</strong> (which means they can be shared with other upstream players as they are), but also means &#8220;Linux ecosystem&#8221;; D-Bus, X.org, GStreamer, GTK+/Qt/EFL, etc. Which means they take advantage of already existing <strong>System</strong> and <strong>Application Frameworks</strong>. And all they have to do, is build the <strong>Applications</strong>, which is not an easy task, but certainly easier than having to do all the previous ones.</p>
<p>Now, the problem when creating MeeGo, is that for reasons I won&#8217;t (can&#8217;t?) explain here, Maemo and Moblin were forced to switch from GTK+ to Qt. This might have been the right move in the long term, but it means rewriting two very big layers of the operating system, in fact, the two layers that differentiate the various mobile platforms for the most part. And this of course means letting go of a lot of talent that helped build both Maemo and Moblin.</p>
<p>For better or worse, the decision was made, and all we could do is ride along with it. And maturizing MeeGo, essentially means maturizing these two new layers being written not entirely from scratch (as Qt was already there), but pretty much (as you have to add new features to it, and build on top).</p>
<p>Now, did MeeGo fail? Well, I don&#8217;t know when this UI can be considered mature enough, but sooner or later, it will be (I do think it will be soon). The timeframe depends also on your definition of &#8220;mature&#8221;, but regardless of that, it will happen. After that, MeeGo will be ready to ship on all kinds of devices. All the hardware platform vendors have to do, is write the drivers, and the adaptation, and they already do anyway for other sw platforms.</p>
<p>Needless to say, the UI is irrelevant to the hardware platform.</p>
<p>So, here&#8217;s the proof that the lower layers are more than ready:</p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='660' height='402' src='http://www.youtube.com/embed/XJhLah_u_4U?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span>
<p>Just after a few months of announcing MeeGo IVI, these guys were able to write a very impressive application thanks to QML, and ignore the official UI.</p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='660' height='402' src='http://www.youtube.com/embed/S20k1mvL8d0?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span>
<p>The OMAP4 guys went for the full MeeGO UI. No problems.</p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='660' height='402' src='http://www.youtube.com/embed/TkEj6h3pW6Q?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span>
<p>Even though Freescale is probably not that committed to MeeGo, it&#8217;s easier to create demo using it (Qt; Nomovok) rather than other platforms. It&#8217;s even hardware accelerated.</p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='660' height='402' src='http://www.youtube.com/embed/xuNOweDXh3Q?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span>
<p>Renesas also chose the Nomovok demo to show their hardware capabilities.</p>
<p><a href="http://blog.steventroughtonsmith.com/2010/12/meego-11-running-on-htcs-hd2.html">MeeGo 1.1 running on HTC&#8217;s HD2</a></p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='660' height='402' src='http://www.youtube.com/embed/9uCxsqhggho?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span>
<p><strong>One</strong> guy; yes, one guy. Decides to run MeeGo on his HTC, and succeeds. Of course, he uses the work already done by <a href="http://forum.xda-developers.com/showthread.php?t=889433">Ubuntu for HD2</a>, but since MeeGo is close to upstream, the same kernel can be used. Sure, it&#8217;s slow (no hardware acceleration), and there&#8217;s many things missing, but for a short amount of time spent by hobbyists, that&#8217;s pretty great already.</p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='660' height='402' src='http://www.youtube.com/embed/Q0OMdJDjUA4?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span>
<p>This is one is not so impressive, but also shows the work of one guy porting MeeGo to Nexus S</p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='660' height='402' src='http://www.youtube.com/embed/H9_UJbhollc?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span>
<p>And running on Archos 9. Not very impressive UI, but the point is that it runs on this hw.</p>
<h2>Conclusion</h2>
<p>So, as you can see MeeGo is <strong>already</strong> supported in many hardware platforms; not because the relevant companies made a deal with Nokia or Intel; they don&#8217;t have to. The only thing they have to do is support Linux; Linux is what allows them to run MeeGo, and Linux is what allows MeeGo to run on any hardware platform.</p>
<p>This is <strong>impossible</strong> with WP7 for numerous reasons; it&#8217;s closed source, it&#8217;s proprietary, it&#8217;s Microsoft, etc. It&#8217;s not so impossible to do the same with Android, but it&#8217;s more difficult than with MeeGo because they don&#8217;t share anything with a typical linux ecosystem; they are on a far away island on their own.</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipec.wordpress.com/734/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipec.wordpress.com/734/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipec.wordpress.com&#038;blog=62686&#038;post=734&#038;subd=felipec&#038;ref=&#038;feed=1" width="1" height="1" /><span class="net_nemein_favourites">7 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=c5d526be3e7811e0a7b1611d1db762226222&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/c5d526be3e7811e0a7b1611d1db762226222/" 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=c5d526be3e7811e0a7b1611d1db762226222&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/c5d526be3e7811e0a7b1611d1db762226222/" 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>Felipe Contreras &lt;felipe.contreras@gmail.com&gt;</author>
            <category>feed:5a9785f4d688425c0d91de6cffc2e0b2</category>
            <pubDate>Tue, 22 Feb 2011 10:44:45 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-c5d526be3e7811e0a7b1611d1db762226222</guid>
        </item>
        <item>
            <title>Nokia; from a burning platform, to a sinking platform</title>
            <link>http://felipec.wordpress.com/2011/02/17/nokia-from-a-burning-platform-to-a-sinking-platform/</link>
            <description><![CDATA[
<p>I&#8217;ve been thinking a lot about this decision to use WP7 from Nokia, as I&#8217;m sure many people have, but I&#8217;ve wanted to wait for the dust to settle down before blogging, so here&#8217;s what I think; it doesn&#8217;t make any sense from any point of view.</p>
<p>Technically, there is nothing that can compare to the linux kernel, which works on everything; supercomputers, mobile phones, TVs, routers, web servers, desktops, refrigerators, etc. Not only does it work, but it works well, much better than everything else. As an example, the work that has been done to scale linux&#8217;s vfs to many processors (64) does benefit embedded, because some operations are more granular. Or the work on power management lead by embedded helps web servers, where decreasing power consumption is also very much wanted. This creates a environment of synergy never seen before, where even competitors work together. Linux won the kernel race, and its use would only increase; the ones that try to fight against it would only fail miserably.<br />
<span id="more-716"></span></p>
<h2>Sinking</h2>
<p>WP7 is only the last iteration in Microsoft&#8217;s attempts to come up with something that has any market in the mobile arena; all the previous attempts have failed. What makes anyone think that this time it would work? And how many companies have successfully partnered with Microsoft? There&#8217;s no reason to think that WP7 has any future.</p>
<p>If you look at the <a href="http://en.wikipedia.org/wiki/List_of_Windows_Phone_devices">list of mobile phones running WP7</a>, you would see that it&#8217;s very small, and you would also see that there&#8217;s only one hardware platform supported: <a href="http://en.wikipedia.org/wiki/Snapdragon_(System_on_Chip)">Snapdragon</a>. To make WP7 work on a wide variety of platforms, even Intel, on a relatively short amount of time, is simply impossible. It can only be done with linux.</p>
<p>And why would phone manufacturers, such as Samsung, find this platform appealing? Before, it was marginal, and now it&#8217;s hijacked by Nokia with the &#8220;exclusive deal&#8221; with Microsoft. Phone manufacturers should know by now how difficult is to work with Microsoft and its technologies, and how exhausting must be to try to differentiate. As Nokia colleague puts it: &#8220;Where is Nokia&#8217;s brand in &#8216;Windows Phone&#8217;&#8221;.</p>
<p>It&#8217;s a sinking platform, and most likely others would jump away from it soon. But Nokia is now stuck to the death. Thanks to Stephen Elop, there&#8217;s no plan b.</p>
<h2>Balance</h2>
<p>Android is not perfect, manufacturers are finding it increasingly difficult to differentiate, but Google has the last word. Now, Android is the #1 platform, and the market share would surely keep increasing if nothing drastic happens. That&#8217;s not good.</p>
<p>Other phone manufacturers have to look into alternatives to Android, if only to increase competition and thus make Android continually improve itself, and not left unchecked. So what are the options? WP7, MeeGo, or a new platform from scratch.</p>
<p>I already listed some of the disadvantages of WP7, and starting a new platform from scratch never looks too appealing, so, ironically, MeeGo might seem now a viable option. It wasn&#8217;t previously, because the fight for balance was against Nokia, now it&#8217;s against Android.</p>
<p>Intel is going to continue to work on MeeGo, and there&#8217;s already many other companies and people working actively on it; that&#8217;s not changing. Moreover, Nokia will continue working on it, in fact, nothing changes before the first MeeGo product is released. So MeeGo is still pretty much alive.</p>
<h2>What if</h2>
<p>What if other phone manufacturers join MeeGo, and continue without Nokia? What if Nokia&#8217;s first MeeGo product becomes a bomb (as is the plan)? What if WP7 fails?</p>
<p>It&#8217;s hard to guess the future, but I&#8217;ve had good luck in my previous guesses, so here&#8217;s my foretale; Windows Phone 7 is going to be significantly delayed, and then fail, <strong>badly</strong>. But that would be too late for Nokia to do anything else; all the confidence in the company would be lost, from consumers, share holders, developers, parters, etc. Elop would probably blame it on Nokia&#8217;s execution, some managers would get fired, and Microsoft would buy Nokia for cheap.</p>
<p>That&#8217;s a lot of guessing, but what is clear is that linux will dominate the market one way or the other.</p>
<p>Personally I&#8217;m still committed to Nokia&#8217;s first MeeGo product, which I firmly believe is going to be remarkable in many aspects. After that nothing is clear, but unless Elop and the Board of Directors gets fired, I&#8217;d say the future of MeeGo in Nokia is very dim, as well as the future of Nokia itself.</p>
<p><strong>Update</strong>: Motorola is <a href="http://www.informationweek.com/news/mobility/smart_phones/showArticle.jhtml?articleID=229218777&amp;cid=RSSfeed_IWK_All">confirming my thoughts</a> so far; can&#8217;t &#8216;envision&#8217; using WP7, and hopes for more competing platforms.</p>
<p><strong>Update</strong>: Intel is officially <a href="http://timesofindia.indiatimes.com/tech/news/telecom/Meego-Now-Intel-to-dump-Nokia/articleshow/7516479.cms#">looking for phone manufacturers as partners</a>,</p>
<p><strong>Update</strong>: <a href="http://www.informationweek.com/news/development/mobility/showArticle.jhtml?articleID=229400097">Motorola is not satisfied with Google&#8217;s Android</a></p>
<p><strong>Note</strong>: Everything written here is my <strong>personal</strong> opinion and has nothing to do with my employer. Also, I have not used any internal information to form my opinions; everything is available publicly.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipec.wordpress.com/716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipec.wordpress.com/716/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipec.wordpress.com/716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipec.wordpress.com/716/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipec.wordpress.com/716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipec.wordpress.com/716/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipec.wordpress.com/716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipec.wordpress.com/716/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipec.wordpress.com/716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipec.wordpress.com/716/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipec.wordpress.com/716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipec.wordpress.com/716/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipec.wordpress.com/716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipec.wordpress.com/716/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipec.wordpress.com&amp;blog=62686&amp;post=716&amp;subd=felipec&amp;ref=&amp;feed=1" width="1" height="1" /><span class="net_nemein_favourites">11 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=dfec59c03a2511e0b324f3b000623ce83ce8&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/dfec59c03a2511e0b324f3b000623ce83ce8/" 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=dfec59c03a2511e0b324f3b000623ce83ce8&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/dfec59c03a2511e0b324f3b000623ce83ce8/" 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>Felipe Contreras &lt;felipe.contreras@gmail.com&gt;</author>
            <category>feed:5a9785f4d688425c0d91de6cffc2e0b2</category>
            <pubDate>Wed, 16 Feb 2011 22:56:55 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-dfec59c03a2511e0b324f3b000623ce83ce8</guid>
        </item>
        <item>
            <title>Why Maemo Downloads are screwed</title>
            <link>http://felipec.wordpress.com/2010/10/23/why-maemo-downloads-are-screwed/</link>
            <description><![CDATA[
<p>The very most basic way to find good apps is by <b>popularity</b>. Both <a href="http://www.youtube.com/watch?v=NFaW-FckFHg">iPhone</a> and <a href="http://www.youtube.com/watch?v=9664-QThx0c">Android</a> have the option to find the most popular apps, and in fact it&#8217;s the default. This is so brain-dead simple that in the app store review videos they just mention it: you can see popular applications (sure, as you would expect).</p>
<p>Maemo, on the other hand, doesn&#8217;t even have a concept of <b>popularity</b>. This ensures both that users would not be able to find cool apps, and that cool app writers would not be rewarded for their efforts.</p>
<p>This has to change.</p>
<p><span id="more-673"></span></p>
<h2>Evidence</h2>
<p>If you go to the <a href="http://maemo.org/downloads/Maemo5/">Maemo downloads</a> page, you would find a link that says &#8220;<a href="http://maemo.org/downloads/score/Maemo5/25">Popular</a>&#8220;, but when you click it, you go to the &#8220;Hot&#8221; section. Is this really the same?</p>
<p>Well, let&#8217;s compare:</p>
<p><a href="http://maemo.org/downloads/product/Maemo5/telepathy-msn-pecan/">msn-pecan</a><br />
downloads: 200390<br />
download rate: ~700<br />
votes: 29<br />
stars: 4.3<br />
page: <b><a href="http://maemo.org/downloads/score/Maemo5/25/?org_openpsa_qbpager_downloaded_products_page=18">18</a></b></p>
<p><a href="http://maemo.org/downloads/product/Maemo5/rulerjinni/">rulerjinni</a><br />
downloads: 38742<br />
download rate: ~450<br />
votes: 1<br />
stars: 3<br />
page <b><a href="http://maemo.org/downloads/score/Maemo5/25/">1</a></b></p>
<p><a href="http://maemo.org/downloads/product/Maemo5/givemefive/">givemefive</a><br />
downloads: 51025<br />
download rate: ~500<br />
votes: 1<br />
stars: 3<br />
page <b><a href="http://maemo.org/downloads/score/Maemo5/25/">1</a></b></p>
<p>So, no, whatever measure is being used to determine the place in this list, it&#8217;s definitely not popularity. msn-pecan is clearly a more popular project, and it appears on page 18, which is like place <strong>#450</strong>, while both rulerjinni and givemefive share the page of the <strong>#1</strong>.</p>
<p>Could it be hotness? Nah, msn-pecan has a higher download rate, and it actually has comments and votes. So what is this listing is beyond my comprehension but it&#8217;s not useful.</p>
<p>In fact, if you look at the download stats of rulerjinni and givemefive you would see that they are almost identical, which is probably due to the fact that they come from the same author, so perhaps he made releases at the same time, which is the only kind of activity these projects get, and then, they get to the front page, where they get downloaded at the same rate, because they get the same visibility.</p>
<p>Totally unfair.</p>
<h2>Fix</h2>
<p>Three months ago I filed a <a href="https://bugs.maemo.org/show_bug.cgi?id=10959">bug report</a>. The only response is basically saying that popularity is not measured in popularity.</p>
<p>Please, vote on the bug report so that this has a chance of getting fixed.</p>
<p>My guess is that the only way the community is finding good apps is through word-of-mouth, social media, blog posts, etc. Because clearly, there&#8217;s no place to find popular apps.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipec.wordpress.com/673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipec.wordpress.com/673/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipec.wordpress.com/673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipec.wordpress.com/673/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipec.wordpress.com/673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipec.wordpress.com/673/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipec.wordpress.com/673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipec.wordpress.com/673/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipec.wordpress.com/673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipec.wordpress.com/673/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipec.wordpress.com/673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipec.wordpress.com/673/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipec.wordpress.com/673/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipec.wordpress.com/673/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipec.wordpress.com&amp;blog=62686&amp;post=673&amp;subd=felipec&amp;ref=&amp;feed=1" width="1" height="1" /><span class="net_nemein_favourites">8 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=2dc492d0decc11df971c51c94d3a13a113a1&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/2dc492d0decc11df971c51c94d3a13a113a1/" 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>1 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=2dc492d0decc11df971c51c94d3a13a113a1&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/2dc492d0decc11df971c51c94d3a13a113a1/" 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>Felipe Contreras &lt;felipe.contreras@gmail.com&gt;</author>
            <category>feed:5a9785f4d688425c0d91de6cffc2e0b2</category>
            <pubDate>Sat, 23 Oct 2010 17:12:44 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-2dc492d0decc11df971c51c94d3a13a113a1</guid>
        </item>
        <item>
            <title>My ARM development notes</title>
            <link>http://felipec.wordpress.com/2010/10/08/my-arm-development-notes/</link>
            <description><![CDATA[
<p>These are my notes to get useful cross-compilation, even with autotools, and GStreamer stuff.</p>
<h2>toolchain</h2>
<p>The convention is to have &#8216;<em>arm-linux-gcc</em>&#8216; and so on, so that you can compile with &#8216;make CROSS_COMPILE=arm-linux-&#8217;, the kernel and many other projects assume this is the default.</p>
<p>First, you would need &#8216;<em>~/bin</em>&#8216; to be on your path, so make sure you have it on &#8216;<em>~/.bash_profile</em>&#8216; (<code>export PATH="$HOME/bin:$PATH"</code>) or whatever your favorite shell uses.</p>
<p>I use CodeSourcery (GNU/Linux 2009q3), you can fetch it from <a href="http://www.codesourcery.com/sgpp/lite/arm/portal/subscription3057">here</a>.</p>
<p><code>cd ~/bin<br />
toolchain=/opt/arm-2009q3<br />
for x in $toolchain/bin/arm-none-linux-gnueabi-*<br />
do<br />
	ln -s $x arm-linux-${x#$toolchain/bin/arm-none-linux-gnueabi-}<br />
done</code></p>
<h2>QEMU</h2>
<p>This is needed for sb2 in order to kind of emulate an ARM system.</p>
<p><code>git clone git://git.savannah.nongnu.org/qemu.git<br />
cd qemu<br />
git checkout -b stable v0.12.5<br />
./configure --prefix=/opt/qemu --target-list=arm-linux-user<br />
make install</code></p>
<h2>sbox2</h2>
<p>This is needed to avoid most of the pain caused by autotools (thank you GNU&#8230; not!).</p>
<p><code>git clone git://gitorious.org/scratchbox2/scratchbox2.git<br />
cd scratchbox2<br />
git checkout -b stable 2.1<br />
./autogen.sh --prefix=/opt/sb2<br />
make install</code></p>
<p>Add sb2 to the PATH:<br />
<code>export PATH=/opt/sb2/bin:$PATH</code></p>
<h2>sb2 target</h2>
<p>Now it&#8217;s time to configure a target.</p>
<p><code>cd /opt/arm-2009q3/arm-none-linux-gnueabi/libc/<br />
sb2-init -c /opt/qemu/bin/qemu-arm armv7 /opt/arm-2009q3/bin/arm-none-linux-gnueabi-gcc</code></p>
<p>You can check that it works with:<br />
<code>sb2 gcc --version</code></p>
<h1>GStreamer</h1>
<p>We are going to install everything into &#8216;<em>/opt/arm/gst</em>&#8216;, so:</p>
<p><code>export PKG_CONFIG_PATH=/opt/arm/gst/lib/pkgconfig</code></p>
<p>You can skip the steps here and go directly to deployment if you download and extract <a href="http://people.freedesktop.org/~felipec/arm-gst-dev.tar.gz">this tarball</a> on your target.</p>
<h2>zlib</h2>
<p>This is needed by GLib&#8217;s gio (which cannot be configured out).</p>
<p><code>wget -c http://zlib.net/zlib-1.2.5.tar.gz<br />
tar -xf zlib-1.2.5.tar.gz<br />
cd zlib-1.2.5<br />
sb2 ./configure --prefix=/opt/arm/gst<br />
sb2 make install</code></p>
<h2>glib</h2>
<p>GLib has bugs (<a href="https://bugzilla.gnome.org/show_bug.cgi?id=623473">623473</a>, <a href="https://bugzilla.gnome.org/show_bug.cgi?id=630910">630910</a>) detecting zlib (thank you Mattias&#8230; not!). So either apply <a href="http://people.freedesktop.org/~felipec/patches/glib/">my patches</a>, or do the C_INCLUDE_PATH/LDFLAGS hacks below:</p>
<p><code>export C_INCLUDE_PATH='/opt/arm/gst/include' LDFLAGS='-L/opt/arm/gst/lib' </p>
<p>git clone git://git.gnome.org/glib<br />
cd glib<br />
git checkout -b stable 2.24.1<br />
./autogen.sh --noconfigure<br />
sb2 ./configure --prefix=/opt/arm/gst --disable-static --with-html-dir=/tmp/dump<br />
sb2 make install</code></p>
<h2>gstreamer</h2>
<p><code>git clone git://anongit.freedesktop.org/gstreamer/gstreamer<br />
cd gstreamer<br />
git checkout -b stable RELEASE-0.10.29<br />
./autogen.sh --noconfigure<br />
sb2 ./configure --prefix=/opt/arm/gst --disable-nls --disable-static --disable-loadsave --with-html-dir=/tmp/dump<br />
sb2 make install</code></p>
<h2>liboil</h2>
<p>Needed by many GStreamer components.</p>
<p><code>git clone git://anongit.freedesktop.org/liboil<br />
cd liboil<br />
git checkout -b stable liboil-0.3.17<br />
./autogen.sh --noconfigure<br />
sb2 ./configure --prefix=/opt/arm/gst --disable-static --with-html-dir=/tmp/dump<br />
sb2 make install</code></p>
<h2>gst-plugins-base</h2>
<p><code>git clone git://anongit.freedesktop.org/gstreamer/gst-plugins-base<br />
cd gst-plugins-base<br />
git checkout -b stable RELEASE-0.10.29<br />
./autogen.sh --noconfigure<br />
sb2 ./configure --prefix=/opt/arm/gst --disable-nls --disable-static --with-html-dir=/tmp/dump<br />
sb2 make install</code></p>
<h2>gst-plugins-good</h2>
<p><code>git clone git://anongit.freedesktop.org/gstreamer/gst-plugins-good<br />
cd gst-plugins-good<br />
git checkout -b stable RELEASE-0.10.23<br />
./autogen.sh --noconfigure<br />
sb2 ./configure --prefix=/opt/arm/gst --disable-nls --disable-static --with-html-dir=/tmp/dump<br />
sb2 make install</code></p>
<h1>Deployment</h1>
<p>So now we have everything installed in &#8216;<em>/opt/arm/gst</em>&#8216;, but how to run on the target? Just copy the exact same files into the target on the exact same location, and then:</p>
<p><code>export PATH=/opt/arm/gst/bin:$PATH</code></p>
<p>That&#8217;s it, you can run <em>gst-launch</em>, <em>gst-inspect</em>, and so on.</p>
<h1>Development</h1>
<p>Ok, it should be clear how to do development from the previous steps, but in case it wasn&#8217;t clear, here&#8217;s how to:</p>
<h2>gst-dsp</h2>
<p>Each time you want to cross-compile, you need to tell pkg-config where to find the packages:</p>
<p><code>export PKG_CONFIG_PATH=/opt/arm/gst/lib/pkgconfig</code></p>
<p><code>git clone git://github.com/felipec/gst-dsp.git<br />
cd gst-dsp<br />
git checkout -b stable v0.8.0<br />
make</code></p>
<p>Note that gst-dsp doesn&#8217;t use autotools, so sb2 is not needed.</p>
<p>Now, once you have the plugin (libgstdsp.so), copy to &#8216;<em>/opt/arm/gst/lib/gstreamer-0.10</em>&#8216; on the target.</p>
<p>And finally, you can run real gst-launch pipelines:<br />
gst-launch playbin2 uri=file://$PWD/file.avi</p>
<p><strong>Note</strong>: If you are missing some elements, play around with flags (flags=65 for native video-only)</p>
<p>Do some more development, type <code>make</code>, copy, repeat <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Enjoy <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipec.wordpress.com/656/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipec.wordpress.com/656/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipec.wordpress.com/656/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipec.wordpress.com/656/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipec.wordpress.com/656/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipec.wordpress.com/656/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipec.wordpress.com/656/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipec.wordpress.com/656/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipec.wordpress.com/656/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipec.wordpress.com/656/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipec.wordpress.com/656/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipec.wordpress.com/656/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipec.wordpress.com/656/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipec.wordpress.com/656/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipec.wordpress.com&amp;blog=62686&amp;post=656&amp;subd=felipec&amp;ref=&amp;feed=1" width="1" height="1" /><span class="net_nemein_favourites">6 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=1d7afc9cd30b11df99e9b5485fe1fd21fd21&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/1d7afc9cd30b11df99e9b5485fe1fd21fd21/" 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=1d7afc9cd30b11df99e9b5485fe1fd21fd21&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/1d7afc9cd30b11df99e9b5485fe1fd21fd21/" 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>Felipe Contreras &lt;felipe.contreras@gmail.com&gt;</author>
            <category>feed:5a9785f4d688425c0d91de6cffc2e0b2</category>
            <pubDate>Fri, 08 Oct 2010 17:55:44 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-1d7afc9cd30b11df99e9b5485fe1fd21fd21</guid>
        </item>
        <item>
            <title>GStreamer, embedded, and low latency are a bad combination</title>
            <link>http://felipec.wordpress.com/2010/10/07/gstreamer-embedded-and-low-latency-are-a-bad-combination/</link>
            <description><![CDATA[
<p>This has been a known fact inside Nokia (MeeGo) for quite a long time due to various performance issues we&#8217;ve had to workaround, but for some reason it wasn&#8217;t acknowledged as an issue when it was <a href="http://thread.gmane.org/gmane.comp.video.gstreamer.devel/27701">brought up in the mailing list</a>.</p>
<p>So, in order to proof beyond reasonable doubt that there is indeed an issue, I wrote <a href="http://cgit.freedesktop.org/~felipec/futex-test/">this test</a>. It is <strong>very</strong> minimal, there&#8217;s essentially nothing of a typical GStreamer pipeline, just an element and an app that pushes buffers to it, that&#8217;s it. But then, optionally, a queue (typical element in a GStreamer pipeline) is added in the middle, which is a thread-boundary, and then the fun begins:</p>
<p><a href="http://felipec.files.wordpress.com/2010/10/futex-test-x86.png"><img src="http://felipec.files.wordpress.com/2010/10/futex-test-x86.png?w=485&#038;h=479" alt="Graph for x86" title="futex-test-x86" width="485" height="479" class="aligncenter size-full wp-image-648" /></a><br />
<a href="http://felipec.files.wordpress.com/2010/10/futex-test-arm.png"><img src="http://felipec.files.wordpress.com/2010/10/futex-test-arm.png?w=484&#038;h=479" alt="Graph for arm" title="futex-test-arm" width="484" height="479" class="aligncenter size-full wp-image-649" /></a></p>
<p>The buffer size legends corresponds to exponentiation (5 =&gt; 2 ^ 5 = 32), and the CPU time is returned by the system (getrusage) in ms. You can see that in ARM systems not only more CPU time is wasted, but adding a queue makes things worst at a faster rate.</p>
<p>Note that this test is doing <strong>nothing</strong>, just pushing buffers around, all the CPU is wasted doing GStreamer operations. In a real scenario the situation is much worst because there isn&#8217;t only one, but multiple threads, and many elements involved, so this wasted CPU time I measured has to be multiplied many times.</p>
<p>Now, this has been profiled before, and everything points out to pthread_mutex_lock which is only a problem when there&#8217;s contention, which happens more often in GStreamer when buffers are small, then the <a href="http://en.wikipedia.org/wiki/Futex">futex syscall</a> is issued, is very bad in ARM, although it probably depends on which specific system you are using.</p>
<p>Fortunately for me, I don&#8217;t need good latency, so I can just push one second buffers and forget about GStreamer performance issues, if you are experiencing the same, and can afford high latency, just increase the buffer sizes, if not, then you are screwed :p</p>
<p>Hopefully this answers Wim&#8217;s question of what a &#8220;small buffer&#8221; means, how it&#8217;s not good, and when it&#8217;s a problem.</p>
<h2>Update</h2>
<p>Ok, so the discussion about this continued in the mailing list, and it was pointed out that that the scale is logarithmic, so the exponential result was expected. While that is true, the logarithmic scale matches what people experience; how else would you plot the range from 10ms to 1s? Certainly not linearly.</p>
<p>But there&#8217;s a valid point; the results should not be surprising. We can take the logarithmic scale out of the equation by dividing the total CPU time by the number of buffers actually pushed, as Robert Swain did in the comments, that should give a constant number, which is the CPU time it took to do a push. The results indeed converge to a constant number:</p>
<p><code>queue: 0.078, direct: 0.011</code></p>
<p>This means that in a realistic use case of pushing one buffer each 10ms through a queue, the CPU usage on this particular processor (800mhz) is 0.78%.</p>
<p>Also, there&#8217;s this related <a href="https://bugzilla.gnome.org/show_bug.cgi?id=503592">old bug</a> that recently got some attention and a new patch from Wim, so I gave it a try (I had to compile GStreamer myself so the results are not comparable with the previous runs).</p>
<p>Before:<br />
<code>queue: 0.074, direct: 0.011</code></p>
<p>After:<br />
<code>queue: 0.065, direct: 0.007</code></p>
<p>So the improvement for the queue case is around 12%, while the direct case is 31%.</p>
<p>Not bad at all, but the conclusion is still the same. If you use GStreamer, try to avoid as many elements as possible, specially queues, and try to have the biggest buffer size you can afford, which means that having good performance and low latency is tricky.</p>
<h2>Update 2</h2>
<p>Stefan Kost suggested to use &#8216;queue&#8217; instead of &#8216;queue2&#8242;, and I got a pandaboard, so here are the results with OMAP4.</p>
<p>pandaboard (2 core, 1GHz):<br />
<code>queue: 0.017, direct: 0.004</code></p>
<p>N900:<br />
<code>queue: 0.087, direct: 0.021</code></p>
<p>i386 (2 core, 1.83GHz):<br />
<code>queue: 0.0059, direct: 0.0015</code></p>
<p>So, either futex got better on Cortex A9, or OMAP4 is so powerful it can&#8217;t be considered embedded :p</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipec.wordpress.com/646/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipec.wordpress.com/646/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipec.wordpress.com/646/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipec.wordpress.com/646/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipec.wordpress.com/646/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipec.wordpress.com/646/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipec.wordpress.com/646/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipec.wordpress.com/646/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipec.wordpress.com/646/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipec.wordpress.com/646/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipec.wordpress.com/646/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipec.wordpress.com/646/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipec.wordpress.com/646/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipec.wordpress.com/646/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipec.wordpress.com&amp;blog=62686&amp;post=646&amp;subd=felipec&amp;ref=&amp;feed=1" width="1" height="1" /><div class="sharedaddy"></div><span class="net_nemein_favourites">7 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=f6006a0ad1aa11df83896f34fc9baaccaacc&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/f6006a0ad1aa11df83896f34fc9baaccaacc/" 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=f6006a0ad1aa11df83896f34fc9baaccaacc&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/f6006a0ad1aa11df83896f34fc9baaccaacc/" 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>Felipe Contreras &lt;felipe.contreras@gmail.com&gt;</author>
            <category>feed:5a9785f4d688425c0d91de6cffc2e0b2</category>
            <pubDate>Thu, 07 Oct 2010 00:05:14 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-f6006a0ad1aa11df83896f34fc9baaccaacc</guid>
        </item>
        <item>
            <title>gst-av 0.4; better performance for flac, vorbis and mp3 (part 2)</title>
            <link>http://felipec.wordpress.com/2010/10/02/gst-av-0-4-better-performance-for-flac-vorbis-and-mp3-part-2/</link>
            <description><![CDATA[
<p>This is a continuation of my <a href="http://felipec.wordpress.com/2010/09/14/gst-av-0-3-better-performance-for-vorbis-and-mp3/">previous post</a>. Based on the feedback I decided to do two things; investigate the strange FLAC high CPU usage with FFmpeg, and get more accurate measurements.</p>
<h2>GStreamer sucks</h2>
<p>It turns out that GStreamer flac <strong>parser</strong> uses <b>four times</b> more CPU than FFmpeg&#8217;s <strong>decoder</strong>. Thanks to <a href="https://perf.wiki.kernel.org/index.php/Main_Page">perf</a>, I was able to quickly figure out the biggest offenders: GStreamer&#8217;s horrible <a href="http://cgit.freedesktop.org/gstreamer/gstreamer/tree/libs/gst/base/gstbitreader.c#n374">bitstream reader</a> (GST_BIT_READER_READ_BITS) was by far the worst.</p>
<p><code>    53.03%  libgstbase-0.10.so.0.26.0<br />
    24.78%  libavcodec.so.52.72.2<br />
    17.35%  libgstxiph.so<br />
     1.52%  libc-2.12.1.so</code></p>
<p>This is on my laptop just running the parser (filesrc ! flacparse ! fakesink), in total it was taking <strong>2.67s</strong>.</p>
<p>After reading the code and trying different things, I decided to go for something similar to what FFmpeg is doing, and I also borrowed pieces of the architecture-specific optimizations, now it even looks ok:</p>
<p><code>    72.68%  libavcodec.so.52.72.2<br />
    14.20%  libgstxiph.so<br />
     4.00%  libc-2.12.1.so</code></p>
<p>And it takes <strong>0.81s</strong>.</p>
<p>But how much would this affect battery life on the N900?</p>
<h2>Smart battery script</h2>
<p>I tried different ideas, and after refreshing myself on statistics I wrote <a href="http://gist.github.com/607899">this script</a> in Ruby that runs all the tests, gathers the battery capacity in a separate thread, and finally generates a report per test. Much easier than before.</p>
<p>Since I&#8217;m already working on FLAC, I decided to also apply some patches that <a href="http://article.gmane.org/gmane.comp.video.ffmpeg.devel/114215">split the decoder from the parser</a>, and optimizations from Måns Rullgård (good thing I grabbed them because he seems to have <a href="http://article.gmane.org/gmane.comp.video.ffmpeg.devel/118608">left the project</a> and deleted his repos).</p>
<div id="attachment_634" class="wp-caption aligncenter" style="width: 316px"><a href="http://felipec.files.wordpress.com/2010/10/avdec-life.png"><img src="http://felipec.files.wordpress.com/2010/10/avdec-life.png?w=306&#038;h=264" alt="Battery life graph" title="avdec-life" width="306" height="264" class="size-full wp-image-634" /></a><p class="wp-caption-text">Battery life</p></div><br />
<div id="attachment_636" class="wp-caption aligncenter" style="width: 315px"><a href="http://felipec.files.wordpress.com/2010/10/avdec-drain.png"><img src="http://felipec.files.wordpress.com/2010/10/avdec-drain.png?w=305&#038;h=264" alt="Battery drain graph" title="avdec-drain" width="305" height="264" class="size-full wp-image-636" /></a><p class="wp-caption-text">Battery drain</p></div>
<p>So, yeah, much better now <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>But how credible are these results? Well, judge by yourself, listed below are the raw measurements, the samples are the differences in capacity (mAh) measured each 10 minutes, from which the drain and battery life are calculated.</p>
<p><code>== baseline ==<br />
samples: 3, 3, 3, 3, 4, 5<br />
drain: 21.00±1.87mA<br />
life: 65.39±4.77h<br />
== av flac ==<br />
samples: 9, 8, 8, 8, 7, 8, 7<br />
drain: 47.14±1.45mA<br />
life: 28.19±0.87h<br />
== flac ==<br />
samples: 11, 11, 11, 11, 11, 11<br />
drain: 66.00±0.00mA<br />
life: 20.00±0.00h<br />
== av mp3 ==<br />
samples: 11, 11, 11, 11, 11, 10<br />
drain: 65.00±0.91mA<br />
life: 20.33±0.30h<br />
== nokiamp3 ==<br />
samples: 12, 12, 12, 12, 12, 12<br />
drain: 72.00±0.00mA<br />
life: 18.33±0.00h<br />
== av vorbis ==<br />
samples: 10, 11, 11, 10, 11, 11<br />
drain: 64.00±1.15mA<br />
life: 20.67±0.38h<br />
== vorbis ==<br />
samples: 19, 18, 18, 19, 18, 19<br />
drain: 111.00±1.22mA<br />
life: 11.90±0.13h</code></p>
<p>If you are interested in the code: <a href="http://github.com/felipec/gst-av">gst-av</a>, <a href="http://github.com/felipec/gst-maemo-xiph">gst-maemo-xiph</a>. Enjoy <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipec.wordpress.com/630/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipec.wordpress.com/630/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipec.wordpress.com/630/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipec.wordpress.com/630/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipec.wordpress.com/630/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipec.wordpress.com/630/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipec.wordpress.com/630/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipec.wordpress.com/630/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipec.wordpress.com/630/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipec.wordpress.com/630/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipec.wordpress.com/630/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipec.wordpress.com/630/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipec.wordpress.com/630/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipec.wordpress.com/630/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipec.wordpress.com&amp;blog=62686&amp;post=630&amp;subd=felipec&amp;ref=&amp;feed=1" width="1" height="1" /><div class="sharedaddy sd-like-enabled"></div><span class="net_nemein_favourites">8 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=86b9d308ce6611dfb3878b87c22be9b5e9b5&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/86b9d308ce6611dfb3878b87c22be9b5e9b5/" 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=86b9d308ce6611dfb3878b87c22be9b5e9b5&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/86b9d308ce6611dfb3878b87c22be9b5e9b5/" 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>Felipe Contreras &lt;felipe.contreras@gmail.com&gt;</author>
            <category>feed:5a9785f4d688425c0d91de6cffc2e0b2</category>
            <pubDate>Sat, 02 Oct 2010 20:12:37 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-86b9d308ce6611dfb3878b87c22be9b5e9b5</guid>
        </item>
        <item>
            <title>gst-av 0.3; better performance for vorbis and mp3</title>
            <link>http://felipec.wordpress.com/2010/09/14/gst-av-0-3-better-performance-for-vorbis-and-mp3/</link>
            <description><![CDATA[
<p>So, I&#8217;ve been working on <a href="http://github.com/felipec/gst-av">gst-av</a>, a GStreamer plug-in to use FFmpeg codecs (only audio for now), in order to get it in good shape for <a href="http://maemo.org/downloads/product/Maemo5/ogg-support/">ogg support</a>. First, I had to fix oggdemux and flacparse to be compatible with tagreadbin, it seems <a href="http://github.com/felipec/gst-maemo-xiph">I managed to do it</a> (with the help of a patch from Sreerenj Balachandran), so now the custom tracker extractors are not needed any more.</p>
<p>Then, with a bit of work I managed to get not only vorbis, but flac, and mp3 working.</p>
<p>That was good, but was it really worth it? Tuomas Kulve did a <a href="http://tuomas.kulve.fi/blog/2009/11/07/n900-battery-duration-ogg-vs-mp3/">nice comparison</a> of gst-av vs the default vorbisdec, and I wanted to do something similar, however, running a series of tests each taking 20 hours to complete wasn&#8217;t so appealing.</p>
<p>So I asked in #meego and #maemo IRC channels for a simple way to measure battery drain reliably, and automatically. It seems powertop can do that on some platforms, but Maemo&#8217;s powertop is a very different beast. Fortunately, the folks at #maemo seem to have been busy trying to get all possible information from the battery, and they pointed me to a very nice <a href="http://wiki.maemo.org/N900_Software_Power_management#Powerscript">powerscript</a>. However, I got some tips to get even better results (from ShadowJK, DocScrutinizer, and SpeedEvil), and the result is this <a href="http://gist.github.com/578337">maemo-battery script</a> (needs i2c-tools, and root permissions), which essentially prints the current charge of the battery each 10 minutes.</p>
<p>With this I was ready, but just to be clear how to properly measure battery draw; make sure you are in offline mode, plug your headphones (otherwise pulse-audio would run extra algorithms), and immediately blank the screen.</p>
<p>Here are the results (units in hours of battery life):<br />
<a href="http://felipec.files.wordpress.com/2010/09/measure_all.png"><img src="http://felipec.files.wordpress.com/2010/09/measure_all.png?w=305&#038;h=262" alt="" title="current vs gst-av" width="305" height="262" class="aligncenter size-full wp-image-607" /></a></p>
<p>These results show that vorbis with FFmpeg is <strong>massively</strong> better than libvorbis, so my work wasn&#8217;t in vain <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . But it&#8217;s also interesting that FFmpeg&#8217;s mp3 decoder is slightly better than Nokia&#8217;s proprietary one. Also, FFmpeg still needs some work to complete with libflac. My guess is that these decoders can&#8217;t be optimized much further; now the bottlenecks would have to be pulseaudio and gstreamer.</p>
<p>This is the raw data (in mA); I ran my script for one hour for each test, and some I ran multiple times just to verify; the results seem to vary ±1 mA.</p>
<p><code>current -- mp3: 63, vorbis: 110, flac: 62<br />
gst-av -- mp3: 61, vorbis: 62, flac: 69</code></p>
<h2>gst-ffmpeg</h2>
<p>Why not use gst-ffmpeg? You might ask. Initially that&#8217;s what I tried, but it doesn&#8217;t support vorbis, nor flac, which seems to fit GStreamer&#8217;s tradition of getting away from FFmpeg as much as possible. Then when I read the code it was clear to me that it was <strong>overly</strong> complicated; I&#8217;m familiar with FFmpeg&#8217;s API (it&#8217;s unbelievably simple), so I decided to play around, and see if I could get something working; I did, and the result was incredibly simple, and oh so sweet <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  As a comparison, gst-ffmpeg is 16357 lines of code, gst-av is 563 (sure, gst-av does much less; just what is needed). Another reason that goes hand-in-hand with this, is the ability to tweak it; my goal is to get the absolutely best performance, and for that I want to be able to understand what the code is doing. And finally, gst-ffmpeg is using deprecated API.</p>
<p>What about performance?</p>
<p><a href="http://felipec.files.wordpress.com/2010/09/measure_vsffmpeg.png"><img src="http://felipec.files.wordpress.com/2010/09/measure_vsffmpeg.png?w=306&#038;h=262" alt="" title="official vs avdec vs ffdec" width="306" height="262" class="aligncenter size-full wp-image-609" /></a></p>
<p>The difference is not that big: ~1.6h of battery life, but it&#8217;s something.</p>
<p><code>current: 63, gst-av: 61, gst-ffmpeg: 66</code></p>
<h2>What now?</h2>
<p>Now we need to package FFmpeg; probably just include the codecs we need, and then ogg support might include these instead. Any volunteers?</p>
<h2>Update</h2>
<p>It turns out the issue was flacparse which is total crap: it&#8217;s using 4 times more CPU time than FFmpeg&#8217;s decoder just for parsing. After fixing it now it takes only 20%. I&#8217;m trying to get new measurements in a more automated and precise way now. I&#8217;ve pushed the code to my repo already.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipec.wordpress.com/605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipec.wordpress.com/605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipec.wordpress.com/605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipec.wordpress.com/605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipec.wordpress.com/605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipec.wordpress.com/605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipec.wordpress.com/605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipec.wordpress.com/605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipec.wordpress.com/605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipec.wordpress.com/605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipec.wordpress.com/605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipec.wordpress.com/605/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipec.wordpress.com/605/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipec.wordpress.com/605/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipec.wordpress.com&amp;blog=62686&amp;post=605&amp;subd=felipec&amp;ref=&amp;feed=1" width="1" height="1" /><span class="net_nemein_favourites">12 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=9d700754bfa011dfadc49d69a21340db40db&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/9d700754bfa011dfadc49d69a21340db40db/" 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=9d700754bfa011dfadc49d69a21340db40db&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/9d700754bfa011dfadc49d69a21340db40db/" 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>Felipe Contreras &lt;felipe.contreras@gmail.com&gt;</author>
            <category>feed:5a9785f4d688425c0d91de6cffc2e0b2</category>
            <pubDate>Tue, 14 Sep 2010 01:23:45 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-9d700754bfa011dfadc49d69a21340db40db</guid>
        </item>
        <item>
            <title>Scrobbler for Maemo 2.0 released; now with love support</title>
            <link>http://felipec.wordpress.com/2010/07/11/scrobbler-for-maemo-2-0-released-now-with-love-support/</link>
            <description><![CDATA[
<p>It&#8217;s time for the second release of scrobbler for Maemo featuring support to mark tracks as &#8220;loved&#8221;.</p>
<p>There have been many improvements over the 1.0 release:</p>
<ul>
<li>Support to &#8220;love&#8221; tracks</li>
<li>Detect network connectivity</li>
<li>Proxy support</li>
<li>Support for Now-Playing</li>
</ul>
<p><span id="more-564"></span><br />
Also, I had to rename it from maemo-scrobbler to Scrobbler for Maemo due to trademark issues,</p>
<p>Here&#8217;s a screenshot:<br />
<a href="http://felipec.files.wordpress.com/2010/07/shot-scrobbler.png"><img src="http://felipec.files.wordpress.com/2010/07/shot-scrobbler.png?w=630&#038;h=378" alt="screenshot" title="shot-scrobbler" width="630" height="378" class="size-full wp-image-565" /></a></p>
<p>This has been ready for some time, but I haven&#8217;t managed to make the release. All this time I&#8217;ve been testing it, and it works fine <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>It was quite complicated as I needed to write a D-Bus service first, and then write a separate Hildon Desktop widget to put some UI on, not to mention to write a lot of code to authenticate to last.fm web services. But it&#8217;s there now, and it works.</p>
<p>It&#8217;s now pushed to <a href="http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/maemo-scrobbler/2.0-1/">Maemo extras-testing</a>, where you can test and vote up.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipec.wordpress.com/564/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipec.wordpress.com/564/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipec.wordpress.com/564/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipec.wordpress.com/564/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipec.wordpress.com/564/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipec.wordpress.com/564/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipec.wordpress.com/564/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipec.wordpress.com/564/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipec.wordpress.com/564/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipec.wordpress.com/564/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipec.wordpress.com/564/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipec.wordpress.com/564/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipec.wordpress.com/564/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipec.wordpress.com/564/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipec.wordpress.com&amp;blog=62686&amp;post=564&amp;subd=felipec&amp;ref=&amp;feed=1" width="1" height="1" /><span class="net_nemein_favourites">3 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=b62e014e8d3511df85875f67cb2265e365e3&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/b62e014e8d3511df85875f67cb2265e365e3/" 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=b62e014e8d3511df85875f67cb2265e365e3&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/b62e014e8d3511df85875f67cb2265e365e3/" 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>Felipe Contreras &lt;felipe.contreras@gmail.com&gt;</author>
            <category>feed:5a9785f4d688425c0d91de6cffc2e0b2</category>
            <pubDate>Sun, 11 Jul 2010 21:43:01 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-b62e014e8d3511df85875f67cb2265e365e3</guid>
        </item>
        <item>
            <title>Open Source and a new kind of management</title>
            <link>http://felipec.wordpress.com/2010/06/18/open-source-and-a-new-kind-of-management/</link>
            <description><![CDATA[
<p>I&#8217;ve been watching some videos from Dan Pink, an American writer that concentrates on the science of motivation and I think they&#8217;re actually very interesting for most people, but specially reassuring for FOSS people&#8230;</p>
<blockquote><p>If you ask an artist why they became an artist, a lot of them will say: I can&#8217;t do anything else; I have to do this&#8230; It&#8217;s the same thing. &#8212; John Yodsnukis</p></blockquote>
<p>Dan Pink argues that for most of the tasks of the 21st century (which are more right-brain thinking), carrot and sticks (extrinsic motivators) don&#8217;t work, instead, intrinsic motivators should be used.</p>
<p><span id="more-552"></span></p>
<h3>RSA Animate &#8211; Drive: The surprising truth about what motivates us</h3>
<span style="text-align:center; display: block;"><a href="http://felipec.wordpress.com/2010/06/18/open-source-and-a-new-kind-of-management/"><img src="http://img.youtube.com/vi/u6XAPnuFjJc/2.jpg" alt="" /></a></span>
<h3>What Drives Motivation in the Modern Workplace?</h3>
<span style="text-align:center; display: block;"><a href="http://felipec.wordpress.com/2010/06/18/open-source-and-a-new-kind-of-management/"><img src="http://img.youtube.com/vi/OGyhaZnPtC4/2.jpg" alt="" /></a></span>
<p>And now that we are on the subject of creativity in work, Charles Leadbeater makes a very good argument about why radical innovation mostly comes from amateur professionals rather than traditional corporations.</p>
<h3>Charles Leadbeater: The rise of the amateur professional</h3>
<span style="text-align:center; display: block;"><a href="http://felipec.wordpress.com/2010/06/18/open-source-and-a-new-kind-of-management/"><img src="http://img.youtube.com/vi/W7raJeMpyM0/2.jpg" alt="" /></a></span>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipec.wordpress.com/552/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipec.wordpress.com/552/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipec.wordpress.com/552/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipec.wordpress.com/552/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipec.wordpress.com/552/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipec.wordpress.com/552/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipec.wordpress.com/552/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipec.wordpress.com/552/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipec.wordpress.com/552/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipec.wordpress.com/552/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipec.wordpress.com/552/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipec.wordpress.com/552/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipec.wordpress.com/552/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipec.wordpress.com/552/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipec.wordpress.com&amp;blog=62686&amp;post=552&amp;subd=felipec&amp;ref=&amp;feed=1" width="1" height="1" /><span class="net_nemein_favourites">2 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=323dedfe7a7a11df937417375ac880528052&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/323dedfe7a7a11df937417375ac880528052/" 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>2 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=323dedfe7a7a11df937417375ac880528052&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/323dedfe7a7a11df937417375ac880528052/" 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>Felipe Contreras &lt;felipe.contreras@gmail.com&gt;</author>
            <category>feed:5a9785f4d688425c0d91de6cffc2e0b2</category>
            <pubDate>Fri, 18 Jun 2010 01:05:05 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-323dedfe7a7a11df937417375ac880528052</guid>
        </item>
        <item>
            <title>maemo-scrobbler 1.0 released; last.fm+libre.fm multi-scrobbling</title>
            <link>http://felipec.wordpress.com/2010/06/03/maemo-scrobbler-1-0-released-last-fmlibre-fm-multi-scrobbling/</link>
            <description><![CDATA[
<p>I got tired of waiting for my patches to be merged into <a href="https://garage.maemo.org/projects/mafw-lastfm/">mafw-lastfm</a>, so I continued with my project which I decided to name maemo-scrobbler.</p>
<p>maemo-scrobbler is a scrobbler application (last.fm/libre.fm) for the <a href="http://maemo.nokia.com/n900/">Nokia N900</a> that listens for events coming from the official media player app through MAFW.</p>
<p>The inspiration (and some code) comes from mafw-lastfm which does basically the same thing, but lacks some features. However, the code-base of maemo-scrobbler is completely different as I wrote it from scratch. First, I wrote a simple <a href="http://github.com/felipec/libscrobbler">libscrobbler</a> library which uses libsoup and a test application that can be easily run on the desktop. This way I was able to test the main use-case throughly.</p>
<p>Compared to mafw-lastfm, maemo-scrobbler has:</p>
<ol>
<li>
<p><b>Support for multi-scrobbling (both last.fm and libre.fm at the same time)</b></p>
<p>Includes a song queue per service.</p>
</li>
<li>
<p><b>Improved song queue handling</b></p>
<p>Since internally it uses libscrobble (which is independent of MAFW), the important code can be easily tested on desktop sw, and it has been done so… throughly.</p>
<p>It doesn’t matter how flaky your network is, or that the servers are down, the songs will be submitted.</p>
</li>
<li>
<p><b>Permanent storage</b></p>
<p>The song queue is not lost, even on crashes, device reboots, or software updates.</p>
</li>
<li>
<p><b>Video clips are ignored</b></p>
<p>Small feature, but important.</p>
</li>
</ol>
<p>In other words: maemo-scrobbler Just Works™ <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>It&#8217;s now on <a href="http://maemo.org/packages/view/maemo-scrobbler/">extras testing</a>, please give it a try and <a href="http://maemo.org/packages/package_instance/view/fremantle_extras-testing_free_armel/maemo-scrobbler/1.0-7/">vote up</a>.</p>
<p>For more info and the source code, check in <a href="http://wiki.github.com/felipec/maemo-scrobbler/">github</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/felipec.wordpress.com/541/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/felipec.wordpress.com/541/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/felipec.wordpress.com/541/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/felipec.wordpress.com/541/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/felipec.wordpress.com/541/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/felipec.wordpress.com/541/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/felipec.wordpress.com/541/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/felipec.wordpress.com/541/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/felipec.wordpress.com/541/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/felipec.wordpress.com/541/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/felipec.wordpress.com/541/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/felipec.wordpress.com/541/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/felipec.wordpress.com/541/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/felipec.wordpress.com/541/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=felipec.wordpress.com&amp;blog=62686&amp;post=541&amp;subd=felipec&amp;ref=&amp;feed=1" width="1" height="1" /><span class="net_nemein_favourites">4 <a href="http://maemo.org/news/?net_nemein_favourites_execute=fav&net_nemein_favourites_execute_for=11e41b026eb111df8e843f00b77509560956&net_nemein_favourites_url=https://maemo.org/news/favorites//json/fav/midgard_article/11e41b026eb111df8e843f00b77509560956/" 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>1 <a href="http://maemo.org/news/?net_nemein_favourites_execute=bury&net_nemein_favourites_execute_for=11e41b026eb111df8e843f00b77509560956&net_nemein_favourites_url=https://maemo.org/news/favorites//json/bury/midgard_article/11e41b026eb111df8e843f00b77509560956/" 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>Felipe Contreras &lt;felipe.contreras@gmail.com&gt;</author>
            <category>feed:5a9785f4d688425c0d91de6cffc2e0b2</category>
            <pubDate>Thu, 03 Jun 2010 01:12:51 +0000</pubDate>
            <guid>http://maemo.org/midcom-permalink-11e41b026eb111df8e843f00b77509560956</guid>
        </item>
    </channel>
</rss>
