<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Herostratus' legacy</title>
	<atom:link href="http://blogs.igalia.com/vjaquez/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.igalia.com/vjaquez</link>
	<description>words from a lazy coder</description>
	<lastBuildDate>Tue, 09 Mar 2010 19:40:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Jhbuild beneath OpenEmbedded</title>
		<link>http://blogs.igalia.com/vjaquez/2010/03/09/jhbuild-beneath-openembedded/</link>
		<comments>http://blogs.igalia.com/vjaquez/2010/03/09/jhbuild-beneath-openembedded/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 18:07:22 +0000</pubDate>
		<dc:creator>vjaquez</dc:creator>
				<category><![CDATA[Planet Igalia]]></category>
		<category><![CDATA[gstreamer]]></category>
		<category><![CDATA[jhbuild]]></category>
		<category><![CDATA[marmita]]></category>
		<category><![CDATA[openembedded]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/vjaquez/2010/03/09/jhbuild-beneath-openembedded/</guid>
		<description><![CDATA[Since a while I&#8217;ve been working on a OpenEmbedded overlay called marmita. But this post is not about it. Where I want to aim now is about a nice trick: how to use Jhbuild using an OpenEmbedded setup.
First of all, install jhbuild. And, of course, install Marmita.
In Marmita, just as in Poky, in order to [...]]]></description>
			<content:encoded><![CDATA[<p>Since a while I&#8217;ve been working on a OpenEmbedded overlay called <a href="http://gitorious.org/vjaquez-beagleboard/marmita">marmita</a>. But this post is not about it. Where I want to aim now is about a nice trick: how to use Jhbuild using an OpenEmbedded setup.</p>
<p>First of all, <a href="http://live.gnome.org/Jhbuild">install jhbuild</a>. And, of course, <a href="http://gitorious.org/vjaquez-beagleboard/marmita/blobs/master/README">install Marmita</a>.</p>
<p>In Marmita, just as in Poky, in order to get into the OE environment, the user source the script <a href="http://gitorious.org/vjaquez-beagleboard/marmita/blobs/master/marmita-init-build-env">marmita-init-build-env</a>.</p>
<p>Then, I setup another script, which is though to be the rcfile of a new bash session: <a href="http://gitorious.org/vjaquez-beagleboard/marmita/blobs/master/scripts/marmita-simple-cross-compiling-env">marmita-simple-cross-compiling-env</a>.</p>
<p>So, at this moment we have set all those environment variables needed to run a jhbuild session. There is also an alias for the jhbuild build, which specifies the jhbuildrc file, crafted for a cross-compiled environment: <a>marmita.jhbuildrc</a>.</p>
<p>For the moment I&#8217;ve only built GStreamer. And as a matter of fact, in the process, I came up with a <a>simple patch for gst-plugins-bad</a>.</p>
<p>By the way, the destination directory is in the /opt directory, under the stage directory; so, if you want to play with the generated output in a device, just copy that directory tree into the device&#8217;s file system.</p>
<p>Yes, I cannot say that I achieved a full integration between jhbuild and OE, but what I can state is that cooperation is quite possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/vjaquez/2010/03/09/jhbuild-beneath-openembedded/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>apache configuration for video tag in firefox</title>
		<link>http://blogs.igalia.com/vjaquez/2010/03/09/apache-configuration-for-video-tag-in-firefox/</link>
		<comments>http://blogs.igalia.com/vjaquez/2010/03/09/apache-configuration-for-video-tag-in-firefox/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 10:13:44 +0000</pubDate>
		<dc:creator>vjaquez</dc:creator>
				<category><![CDATA[Planet Igalia]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/vjaquez/2010/03/09/apache-configuration-for-video-tag-in-firefox/</guid>
		<description><![CDATA[In contrast with Epiphany-WebKit, Firefox seems to be quite picky at rendering videos through the HTML5 tag &#60;video&#62;: it demands the correct HTTP headers.
It doesn&#8217;t assume anything. If the stream doesn&#8217;t have the correct headers,  Firefox just will put a black box in you face without any further explanation.
In order to overcome this issue, [...]]]></description>
			<content:encoded><![CDATA[<p>In contrast with Epiphany-WebKit, Firefox seems to be quite picky at rendering videos through the HTML5 tag &lt;video&gt;: it demands the correct HTTP headers.</p>
<p>It doesn&#8217;t assume anything. If the stream doesn&#8217;t have the correct headers,  Firefox just will put a black box in you face without any further explanation.</p>
<p>In order to overcome this issue, struggling a little with the sparse information available through the Internet, I came with this .htaccess file:</p>
<blockquote>
<pre>AddType video/ogg          .ogv
Header set Access-Control-Allow-Origin "*"
Header unset Etag
FileETag None
</pre>
</blockquote>
<p>First of all, my Apache server doesn&#8217;t recognize the video/ogg mime type.</p>
<p>Second, the header MUST NOT include the ETag key.</p>
<p>And finally, there&#8217;s new header, which isn&#8217;t fully implemented by the all browsers, but it will be, and will mess up all our pages with embedded videos, is the cross domain accessibility.</p>
<p>More information:</p>
<p><a href="http://diveintohtml5.org/video.html">http://diveintohtml5.org/video.html</a><br />
<a href="http://www.bluishcoder.co.nz/2008/11/video-audio-and-cross-domain-usage.html"> http://www.bluishcoder.co.nz/2008/11/video-audio-and-cross-domain-usage.html</a><br />
<a href="http://en.flossmanuals.net/TheoraCookbook/MyHosting"> http://en.flossmanuals.net/TheoraCookbook/MyHosting</a><br />
<a href="http://www.askapache.com/htaccess/apache-speed-etags.html"> http://www.askapache.com/htaccess/apache-speed-etags.html</a><br />
<a href="http://httpd.apache.org/docs/2.0/mod/mod_headers.html"> http://httpd.apache.org/docs/2.0/mod/mod_headers.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/vjaquez/2010/03/09/apache-configuration-for-video-tag-in-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grilo meets Vala</title>
		<link>http://blogs.igalia.com/vjaquez/2010/02/13/grilo-meets-vala/</link>
		<comments>http://blogs.igalia.com/vjaquez/2010/02/13/grilo-meets-vala/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 21:19:03 +0000</pubDate>
		<dc:creator>vjaquez</dc:creator>
				<category><![CDATA[Planet Igalia]]></category>
		<category><![CDATA[grilo]]></category>
		<category><![CDATA[gstreamer]]></category>
		<category><![CDATA[vala]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/vjaquez/2010/02/13/grilo-meets-vala/</guid>
		<description><![CDATA[Last week, after the internal presentation of Grilo, I got pretty excited about the project: basically, using Grilo I could make epris consume feeds from Jamendo.
I started to generate the bindings for Vala. I never thought it could be that hard: the heavy use of atypical callbacks in Grilo made me find a bug in [...]]]></description>
			<content:encoded><![CDATA[<p>Last week, after the internal presentation of <a href="http://gitorious.org/grilo">Grilo</a>, I got pretty excited about the project: basically, using Grilo I could make <a href="http://code.google.com/p/epris/">epris</a> consume feeds from <a href="http://www.jamendo.com">Jamendo</a>.</p>
<p>I started to generate the bindings for <a href="http://live.gnome.org/Vala/">Vala</a>. I never thought it could be that hard: the heavy use of atypical callbacks in Grilo made me find a <a href="https://bugzilla.gnome.org/show_bug.cgi?id=609591">bug in the code writer of Vala</a>. And eventually I came with <a href="http://git.gnome.org/browse/vala/commit/?id=e8338e02d8c2366cd2b71aff8bae0daec92af0e9">a small patch</a>, which I&#8217;d just pushed.</p>
<p>Those problems brought into the discussion to use <a href="http://library.gnome.org/devel/gio/stable/GAsyncResult.html">GAsyncResult</a> within Grilo instead of the custom callbacks mechanism. We&#8217;ll see where we can go.</p>
<p>Finally I got my <a href="http://gitorious.org/grilo/grilo/blobs/master/tools/vala/grilo-test.vala">small test snippet</a>. Cute, isn&#8217;t it?</p>
<p>Today also pushed another patches I&#8217;d in my Vala queue. The interesting part is, after talking with <a href="http://zee-nix.blogspot.com/">Zeeshan</a>, I understood that the gstreamer vapi must be generated with the latest release of GStreamer. Something logical but I never stopped to think about it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/vjaquez/2010/02/13/grilo-meets-vala/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Slides of my talk at FOSDEM 2010</title>
		<link>http://blogs.igalia.com/vjaquez/2010/02/09/slides-of-my-talk-at-fosdem-2010/</link>
		<comments>http://blogs.igalia.com/vjaquez/2010/02/09/slides-of-my-talk-at-fosdem-2010/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 20:00:18 +0000</pubDate>
		<dc:creator>vjaquez</dc:creator>
				<category><![CDATA[Planet Igalia]]></category>
		<category><![CDATA[Planet Maemo]]></category>
		<category><![CDATA[fosdem]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/vjaquez/2010/02/09/slides-of-my-talk-at-fosdem-2010/</guid>
		<description><![CDATA[I still don&#8217;t know how to submit my slides into the FOSDEM website, so I&#8217;m linking them here by now:

]]></description>
			<content:encoded><![CDATA[<p>I still don&#8217;t know how to submit my slides into the <a href="http://fosdem.org/2010/">FOSDEM website</a>, so I&#8217;m linking them here by now:</p>
<p><a href="http://people.igalia.com/vjaquez/talks/bridgedriver-omap3-fosdem-2010.pdf"><img class="aligncenter size-medium wp-image-132" title="fosdem2010" src="http://blogs.igalia.com/vjaquez/wp-content/uploads/2010/02/fosdem2010-300x225.png" alt="DSPBridge on OMAP3 - fosdem 2010" width="300" height="225" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/vjaquez/2010/02/09/slides-of-my-talk-at-fosdem-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>gstjpegparser</title>
		<link>http://blogs.igalia.com/vjaquez/2010/01/29/gstjpegparser/</link>
		<comments>http://blogs.igalia.com/vjaquez/2010/01/29/gstjpegparser/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 10:37:13 +0000</pubDate>
		<dc:creator>vjaquez</dc:creator>
				<category><![CDATA[Planet Igalia]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[gstreamer]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/vjaquez/2010/01/29/gstjpegparser/</guid>
		<description><![CDATA[Back in August 2009 I was chatting with my old peers in Mexico, and they told me that they needed a JPEG parser element in GStreamer for their DSP accelerated JPEG decoder. So, I went to bugzilla and found a bug report about the issue and a proposed patch. But the published patch still missed [...]]]></description>
			<content:encoded><![CDATA[<p>Back in August 2009 I was chatting with my old peers in Mexico, and they told me that they needed a JPEG parser element in GStreamer for their DSP accelerated JPEG decoder. So, I went to bugzilla and found a <a href="https://bugzilla.gnome.org/show_bug.cgi?id=583098">bug report about the issue and a proposed patch</a>. But the published patch still missed some features so I took it and worked on it.</p>
<p>After attaching my first try, Arnout, the first author of the patch, came with some comments to improve the element. Several weeks after I retook the element and almost rewrote it again. So I was waiting for the OK from a GStreamer developer.</p>
<p>Finally, this week, Stefan review it and pushed it. Sadly for me, I didn&#8217;t notice, when I rebased my local commits, squashing my change set into one single commit, that this commit had as author Arnout, not me <img src='http://blogs.igalia.com/vjaquez/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Now <a href="http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=bb5331e2729913aec8ea0f60101049d5b7e590b0">the commit is under the Arnout&#8217;s credit</a>.</p>
<p>Yeah, sometimes I&#8217;m so absentminded.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/vjaquez/2010/01/29/gstjpegparser/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ping DSP task node</title>
		<link>http://blogs.igalia.com/vjaquez/2010/01/24/ping-dsp-task-node/</link>
		<comments>http://blogs.igalia.com/vjaquez/2010/01/24/ping-dsp-task-node/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 16:36:35 +0000</pubDate>
		<dc:creator>vjaquez</dc:creator>
				<category><![CDATA[Planet Igalia]]></category>
		<category><![CDATA[Planet Maemo]]></category>
		<category><![CDATA[dps]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/vjaquez/2010/01/24/ping-dsp-task-node/</guid>
		<description><![CDATA[DSP task nodes, under the TI Omap3 domain, are a separate execution threads running on the DSP that implement control or signal processing algorithms.
I&#8217;ve just pushed a rewrite for the ping dsp task node to my dsp-samples repository. It works with the dsp-ping program included in dps-tools.
An interesting thing is that it&#8217;s nearly 5 times [...]]]></description>
			<content:encoded><![CDATA[<p><em>DSP task nodes</em>, under the TI Omap3 domain, are a separate execution threads running on the DSP that implement control or signal processing algorithms.</p>
<p>I&#8217;ve just pushed a rewrite for the ping dsp task node to my <a href="http://gitorious.org/vjaquez-beagleboard/dsp-samples">dsp-samples repository</a>. It works with the dsp-ping program included in <a href="http://maemo.gitorious.org/maemo-multimedia/dsp-tools">dps-tools.</a></p>
<p>An interesting thing is that it&#8217;s nearly 5 times smaller than the dll provided by TI:</p>
<pre>-rw-r--r--    1 1001     1001         3920 Jan 19 15:01 pingdyn_3430.dll64P
-rw-r--r--    1 root     root        19816 Jan 19 14:44 pingdyn_3430.dll64P.bak
</pre>
<p>And <a href="http://blogs.igalia.com/vjaquez/wp-content/uploads/2010/01/going-to.png"><img class="size-full wp-image-125 alignnone" title="going-to" src="http://blogs.igalia.com/vjaquez/wp-content/uploads/2010/01/going-to.png" alt="I'm going to FOSDEM 2010" width="150" height="89" /></a> too!</p>
<p>And maybe I&#8217;ll talk about this in the embedded devroom&#8230; maybe&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/vjaquez/2010/01/24/ping-dsp-task-node/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Minimal CD Ripper</title>
		<link>http://blogs.igalia.com/vjaquez/2010/01/14/minimal-cd-ripper/</link>
		<comments>http://blogs.igalia.com/vjaquez/2010/01/14/minimal-cd-ripper/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 12:35:25 +0000</pubDate>
		<dc:creator>vjaquez</dc:creator>
				<category><![CDATA[Planet Igalia]]></category>
		<category><![CDATA[gstreamer]]></category>
		<category><![CDATA[vala]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/vjaquez/2010/01/14/minimal-cd-ripper/</guid>
		<description><![CDATA[Back in London I bought a couple CDs. Obviously I don&#8217;t use CD players anymore, I mostly stream all the music I hear (jamendo, spotify, last.fm). Though, if I want to hear music using my n900 without any network connection, I ought drop in there the music files. So, the solution is rip out the [...]]]></description>
			<content:encoded><![CDATA[<p>Back in London I bought a couple CDs. Obviously I don&#8217;t use CD players anymore, I mostly stream all the music I hear (<a href="http://www.jamendo.com">jamendo</a>, spotify, last.fm). Though, if I want to hear music using my n900 without any network connection, I ought drop in there the music files. So, the solution is rip out the music from the CDs,<br />
encode them et voilà.</p>
<p>The obvious solution to rip music is <a href="http://live.gnome.org/SoundJuicer">SoundJuicer</a>, and I started to compile it within my jhbuild environment, but I found a huge list of dependencies which I didn&#8217;t want to install, such as brasero. As everybody knows the next logical think then is &#8220;let&#8217;s code a simple cd ripper&#8221;.</p>
<p>Vala was my choosen language (and don&#8217;t ask why). What I wanted was have metadata in the files (life without metadata is not feasible anymore), also I want to encode the files in AAC/MPEG4, and finally I didn&#8217;t want any user interaction: just run the program and have my directory with my music.</p>
<p>The first problem I found was that Vala hasn&#8217;t bindings for <a href="http://musicbrainz.org/doc/libmusicbrainz">libmusizbrainz</a>, so I started to cook one for libmusicbranz v2.x, which I found terrible bad to port to Vala and also it is already deprecated. Then I cooked another for libmusicbrainz3.</p>
<p>After that, I also found that <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html">GstTagSetter</a> wasn&#8217;t bind to Vala either, so I made the <a href="https://bugzilla.gnome.org/show_bug.cgi?id=606826">patches for it</a> and <a href="https://bugzilla.gnome.org/show_bug.cgi?id=606827">another</a> for the GstIterator.</p>
<p>Solved all those issues, finally I came with my mcdripper!</p>
<p><a href="http://gitorious.org/vjaquez-misc/mcdripper">http://gitorious.org/vjaquez-misc/mcdripper</a></p>
<p>Ah, by the way, it uses async methods, so you&#8217;ll need a recent Vala (I use the git&#8217;s version).</p>
<p>And finally I&#8217;ve been ripping my new CDs and storing the files in my N900.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/vjaquez/2010/01/14/minimal-cd-ripper/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Moving out apt metadata</title>
		<link>http://blogs.igalia.com/vjaquez/2010/01/12/moving-out-apt-metadata/</link>
		<comments>http://blogs.igalia.com/vjaquez/2010/01/12/moving-out-apt-metadata/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 10:19:46 +0000</pubDate>
		<dc:creator>vjaquez</dc:creator>
				<category><![CDATA[Planet Igalia]]></category>
		<category><![CDATA[Planet Maemo]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[ham]]></category>
		<category><![CDATA[maemo]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/vjaquez/2010/01/12/moving-out-apt-metadata/</guid>
		<description><![CDATA[As some of you may know, in the N900, the root file system is stored in a OneNAND chip with 256M of space. Meanwhile /home and /home/user/MyDocs are in a eMMC in two different partitions: ~2GB (ext2) for /home and ~29GB (vfat) for /home/user/MyDocs.
The OneNAND is faster than the eMMC, and it&#8217;s intended to host [...]]]></description>
			<content:encoded><![CDATA[<p>As some of you may know, in the N900, the root file system is stored in a OneNAND chip with 256M of space. Meanwhile <tt>/home</tt> and <tt>/home/user/MyDocs</tt> are in a eMMC in two different partitions: ~2GB (ext2) for <tt>/home</tt> and ~29GB (vfat) for <tt>/home/user/MyDocs</tt>.</p>
<p>The OneNAND is faster than the eMMC, and it&#8217;s intended to host only the Maemo main system, moving out the third party applications to the eMMC. Though, this new layout has brought new limitations, the more visible one is the<tt> /opt</tt> problem [<a href="http://wiki.maemo.org/Opt_Problem">2</a>].</p>
<p>One of the debates about what left and what not in the OneNAND is the apt&#8217;s database and metadata. Moving out the apt&#8217;s database out from the OneNAND to the eMMC, in my personal opinion, is very risky: It will slow down the database processing (which is already slow given the size of the Fremantle repositories), and if the eMMC gets corrupted, the base system wouldn&#8217;t be upgreadable either, because apt couldn&#8217;t read its database. And that&#8217;s why I&#8217;m against the proposal.</p>
<p>Nevertheless I&#8217;m aware that the apt&#8217;s metadata and database could be huge, consuming much of the precious OpenNAND storing space. Just to mention it,  I&#8217;ve found myself, in my development cycles, moving out those files.</p>
<p>That&#8217;s why I cooked this script: <a href="http://people.igalia.com/vjaquez/n900/move-apt-dirs.sh">move-apt-dirs.sh</a></p>
<p>WARNING: this script is <strong>not</strong> official. You&#8217;re at your own if you run it: no promises, no guaranties.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/vjaquez/2010/01/12/moving-out-apt-metadata/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>shinning new HAM</title>
		<link>http://blogs.igalia.com/vjaquez/2009/12/14/shinning-new-ham/</link>
		<comments>http://blogs.igalia.com/vjaquez/2009/12/14/shinning-new-ham/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 11:07:32 +0000</pubDate>
		<dc:creator>vjaquez</dc:creator>
				<category><![CDATA[Planet Igalia]]></category>
		<category><![CDATA[Planet Maemo]]></category>
		<category><![CDATA[ham]]></category>
		<category><![CDATA[maemo]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/vjaquez/2009/12/14/shining-new-ham/</guid>
		<description><![CDATA[A new version HAM will hit the streets soon, and we, the HAM team, are very proud of all the effort done.
There have been 178 commits since the first public release in the HAM repository, all of them affording user experience and trying to cover several corner cases on the SSU realm, specially dealing with [...]]]></description>
			<content:encoded><![CDATA[<p>A new version HAM will hit the streets soon, and we, the HAM team, are very proud of all the effort done.</p>
<p>There have been 178 commits since the first public release in the HAM repository, all of them affording user experience and trying to cover several corner cases on the SSU realm, specially dealing with reduced disk space in the OneNAND.</p>
<div id="attachment_104" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-104 " title="Screenshot-20091214-120423" src="http://blogs.igalia.com/vjaquez/wp-content/uploads/2009/12/Screenshot-20091214-120423-300x180.png" alt="New section view in HAM" width="300" height="180" /><p class="wp-caption-text">New section view in HAM</p></div>
<p>There are several new features and some eye candy:</p>
<ol>
<li>The section view has been improved greatly GtkIconView instead of the old buttons grid.</li>
<li>Several user interaction (work flows and dialogs appearance) optimizations.</li>
<li>Keep the cursor position in the package lists among operations.</li>
<li>Add live search support, dropping the old search dialog.</li>
<li>Avoid the update icon blink when the screen is blank, saving power</li>
<li><tt>maemo-confirm-text</tt> can show the package name who launched it.</li>
<li>Minor fixes in logic strings and text display.</li>
<li>Speed up the HAM launching loading the back-end using a lazy strategy.</li>
<li>Speed up the package list processing in the back-end, so the package list are shown more quickly in the UI.</li>
</ol>
<p>For the packagers there are also some bits:</p>
<ol>
<li>Adapt the .install files in order to interact with the packaged catalogs.</li>
<li>Initial support for OVI store packages.</li>
<li>Add a dbus function to search packages so other applications can interact with HAM.</li>
</ol>
<p>And for the SSU, specially handling the reduced space disk in the root file system:</p>
<ol>
<li>Use always the eMMC for downloaded packages, avoiding the rootfs even as fallback.</li>
<li>Stop as much process as possible when going into the SSU (stop prestarted apps, camera-ui, browser, rtcom-messaging-ui, alarmd, etc.) in order to reduce the double mappings of large files.</li>
<li>Go into rescue mode if the SSU fails and change its looks to a less scary one.</li>
<li>Sync the disk before fetching it status, moving the operation to the back-end.</li>
<li>Because the documentation use a lot of disk space, we hack a way to get rid of it during the SSU.</li>
<li>Use the higher disk compression during the SSU</li>
</ol>
<p>Special thanks to Lokesh, David Kedves, Mario, Marius, Gabriel,  and all whom patient had helped us to make HAM a better piece of software to Fremantle users.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/vjaquez/2009/12/14/shinning-new-ham/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Embedded Linux Conference Europe 2009</title>
		<link>http://blogs.igalia.com/vjaquez/2009/10/17/embedded-linux-conference-europe-2009/</link>
		<comments>http://blogs.igalia.com/vjaquez/2009/10/17/embedded-linux-conference-europe-2009/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 05:13:26 +0000</pubDate>
		<dc:creator>vjaquez</dc:creator>
				<category><![CDATA[Planet Igalia]]></category>
		<category><![CDATA[elc-e]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/vjaquez/?p=89</guid>
		<description><![CDATA[A couple days ago Juanjo asked me if I wanted to attend the Embedded Linux Conference at Grenoble, France, sponsored by the CE Linux forum and I usually don&#8217;t say &#8220;no&#8221; to travel. So one day after I unpacked from Barcelona, I packed again.
One of the bad sides of living in A Coruña is the [...]]]></description>
			<content:encoded><![CDATA[<p>A couple days ago Juanjo asked me if I wanted to attend the <a href="http://www.embeddedlinuxconference.com/elc_europe09/index.html">Embedded Linux Conference</a> at Grenoble, France, sponsored by the <a>CE Linux forum</a> and I usually don&#8217;t say &#8220;no&#8221; to travel. So one day after I unpacked from Barcelona, I packed again.</p>
<p>One of the bad sides of living in A Coruña is the fly connections needed to go to anywhere. This time it was A Coruña &#8211; Madrid &#8211; Lyon (St Exupéry Airport) &#8211; Grenoble. Even though I found entertained and challenging all these heterogeneous connections.</p>
<p>In the registration area surprisingly I came across with Rob Taylor and Mark Doffman, from <a href="http://www.codethink.co.uk">Codethink</a>. Later on I saw also <a href="http://blogs.gnome.org/bolsh/">David Neary</a> and <a href="http://blogs.gnome.org/uraeus/">Christian Schaller</a> around.</p>
<p>The opening key talk was in charge of <a href="http://www.jonmasters.org/">Jon Masters</a>, and was about &#8220;Porting Linux&#8221; to other hardware platforms, where he just highlight some hints and landmarks in the porting process, such as run the vendor tests in the board, port the u-boot, read the hardware erratas (which are more insightful than the rest of the documentation); read the linux kernel mailing lists; use the <a href="http://linuxplumbersconf.org/ocw/proposals/47">flattened device tree</a> to specify the device&#8217;s addresses (there&#8217;s no BIOS neither ACPI in embedded system); gave some recommendations using cscope; and finally insisted in not to take the x86 architecture implementation as references, because is too dirty, he rather recommended use the score arch (&#8220;x86 wouldn&#8217;t be designed today&#8221;). At the end he strongly advised about reading the <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=Documentation/development-process">development-process</a> under the kernel documentation.</p>
<p>The next talk I attended was &#8220;Use of the Fast IRQ (FIQ) in ARM-Linux&#8221; by <a href="http://ar.linux.it/">Allesandro Rubini</a>. The FIQ is an interrupt request with a higher priority and can be handled while another IRQ. Allesandro use them as near-real-time signal processing under a non-real-time linux kernel. In this talk he showed his <a href="http://cvs.gnudd.com/sw/fiq-engine.html"></a> project, which hasn&#8217;t been accepted in mainstream, because is too task specific.</p>
<p>Then I stayed in the talk &#8220;Constrained Power Management&#8221; by Patrick Bellasi where he described multiple-policy power management optimization. Patrick distinguish two PM policies: device specific and system-wide. So he propose a coordinator entity among the local policies, and this coordinator uses some kind of linear programming optimization. Cool research stuff.</p>
<p>My objective for the conference was twofold: to learn about embedded linux distributions build systems, and to come aware of the community opinions about Android. So I&#8217;d the intention to attend the Matt Porter&#8217;s talk, nevertheless Masters recommended the PTXdist one, and I bought it: failed! The Porter&#8217;s talk won the &#8220;best talk&#8221; conference&#8217;s award.</p>
<p><a href="http://www.ptxdist.org/software/ptxdist/index_en.html">PTXdist</a> is just another embeddable-linux-distribution builder, based on Kconfig to &#8220;cook&#8221; your distro and in makefiles (<a href="http://www.lnx-bbc.com/garticle.html">GAR</a> style) to build the packages and express their dependencies. An interesting feature is the ltmain.sh fixup to avoid path hard-coding in libraries lookups.</p>
<p>Afterward I assisted to Nina Wilner&#8217;s talk about &#8220;Porting Android to Power Architecture&#8221;. She&#8217;s technology chief at IBM for the revamped <a href="http://www.power.org">PowerPC</a> platform. Sadly she just make advertising for <a href="http://www.mentor.com/">Mentor Graphics</a>, the guys who employ Matt Porter and actually done the PowerPC port of Linux to Android. A couple interesting insights is that even though Google insist that Android is multi-platform it&#8217;s full of ARMisms, and porting its <a href="http://files.getdropbox.com/u/88269/bionic.txt">Bionic C Library</a> to other architectures painfully. Nevertheless she stated that Android could make, in the embedded stage, what Linux made for Unix in the servers: do all over again and do it right.</p>
<p>Then I backed to the hardcore topics with &#8220;Analyzing Kernel Function Execution with ftrace&#8221; by <a href="http://elinux.org/User:Tim_Bird">Tom Bird</a>. He&#8217;s also one the organizers of the conference. <a href="http://people.redhat.com/srostedt/ftrace-tutorial.odp ">ftrace</a> is the first generic tracing system to get mainlined. In this talk Tom explained his adventures to measure the duration of each kernel&#8217;s function at boot. With ftrace you can execute logging functions at every filtered function call. Meanwhile the community is expecting the port of <a href="http://en.wikipedia.org/wiki/DTrace">dtrace</a> to Linux.</p>
<p>In the afternoon <a href="http://marcin.juszkiewicz.com.pl/">Marcin Juszkiewicz</a> talked about &#8220;Hacking with OpenEmbedded&#8221;. It was about different use cases for OpenEmbedded beside the embedded distro building.</p>
<p>Finally, the BoFs of the conference. I stayed at first in the <a href="http://buildroot.uclibc.org/">Buildroot</a>, another<br />
embedded-distro-building which is too similar to PTXdist. At the middle of it I ran away to the Android BoF which I catch at the conclusions. Again, Android doesn&#8217;t bring nothing new, nothing breakthrough, but a lot of questions and doubts, as its ties with Google, its GPL licensing avoidance efforts, and so on.</p>
<p>And the Small Business BoF, organized by <a href="http://opdenacker.org/">Michael Opdenacker</a>, the owner of the company <a href="http://free-electrons.com/">Free Electrons</a>. Most of the companies there were quite small, several just one-person companies. The hottest topics there were about the lawyers need, the time tracking and billing, the hiring process and local vs abroad clients.</p>
<p>At the night we&#8217;d the social event: a cocktail buffet at Restaurant du Téléphérique, with a great <a href="http://www.routard.com/photos/alpes/1519-grenoble_depuis_la_bastille.htm">panoramic view of the city</a>.</p>
<p>At the next and last day, the opening keynote was in charge of Philippe Gerum: &#8220;State of real-time Linux: Don&#8217;t stop until history follows&#8221;. I arrive late to the talk but as far as I understood, he talked about the advances in the Linux kernel in the Real Time arena. He put special attention to the project <a href="http://www.xenomai.org/index.php/Main_Page">Xenomai</a>, which bring hard real-time support in the GNU/Linux user-space.</p>
<p>I flipped a coin and decided to go to &#8220;The LLVM MIPS and ARM backends&#8221; but I was gladly surprised with the talks swapping to &#8220;<a href="http://coccinelle.lip6.fr/">Coccinelle</a>: A program matching and transformation tool&#8221; by <a href="http://www.diku.dk/hjemmesider/ansatte/npalix/">Nicolas Palix</a>. I came aware of the powerful concept of <a href="http://coccinelle.lip6.fr/sp.html">semantic patch</a>. The principal use case for it, is to detect the collateral effects of an API breakage, also to fix common programming mistakes. It has been used in the kernel finding tons of potential unseen bugs. Neat!</p>
<p>After a short coffee break I ran into the &#8220;Survey of Linux measurement and diagnostics tools&#8221; by Frank Rowand. He shown a quick survey of several software tools for performance measurement such as <a href="http://www.selenic.com/smem/">smem</a> (quite interesting); <a href="http://oprofile.sourceforge.net">oprofile</a> (quote: &#8220;sampling tools are not that good&#8221; also is turning obsolete); <a href="http://sourceware.org/systemtap/">systemtap</a> (measure the processor use in a non-intrusive way); time (the old &amp; honest); perf (here Frank talked about the interesting problem of <a href="http://en.wikipedia.org/wiki/CPU_cache#Cache_misses">cache misses</a>); <a href="http://www.bootchart.org/">bootchart</a>; the <a href="http://www.celinuxforum.org/CelfPubWiki/KernelFunctionTrace">kernel function trace</a>; the <a href="http://ltt.polymtl.ca/">LLTng</a>, <a href="http://blog.fenrus.org/?p=5">Timechart</a>, an finally the famous ftrace.</p>
<p>Meanwhile the lunch time was getting arranged, a showcase took place in a room, where a couple projects were shown. The most impressive IMHO was the Nsec Linux system boot by Montavista. There was also Codethink with a all-microbloggers-on-one application; an LZO compression algorithm for the kernel; a demo of Android in PowerPC, etc.</p>
<p>In the second part of the second day, Gilad Ben-Yossef, from <a href="http://codefidence.com/">Codefidence</a>, talked about &#8220;The good, the bad and ugly: on threads, processes and co-processes&#8221;, where he probed that in the Linux realm, threads and processes have no performance differences. In theory the big difference between a process and a thread is that the first owns a memory space and the second share it, so the <a href="http://en.wikipedia.org/wiki/Context_switch">context switching</a> among process should be more expensive that in threads. So he decided to do some measurements with a modified version of <a href="http://www.bitmover.com/lmbench/lat_ctx.8.html">lat_ctx</a>, and surprise! no appreciable differences were shown. Thus, his conclusion, is that the reason why people prefer use threads instead of process is because the API. The mental model offered by the threads is more appeal to the common programmer than the process model, so Gilad decided to create a wrapper library to implement process API in terms of the threads API called <a href="http://github.com/gby/coproc">coproc</a>.</p>
<p>&#8220;A computer is a state machine. Threads are for people who can&#8217;t program state machines&#8221; &#8212; Alan Cox</p>
<p>The last talk I assisted was &#8220;Technical features and components of open source build systems&#8221; by Alex de Vries from Wind River Systems. It tried to bring a survey of all the requirements of a &#8220;perfect&#8221; embedded-distro-builder and then a pseudo BoF was raised with the question why we don&#8217;t have already one? There are tons of these system on the wild, but every has a very specific and reduced set of features. There was no conclusions but at least the seed was planted.</p>
<p>Finally, the closing keynote was carried on by Tom Bird and Klaas van Gend, in a mixed talk about the purpose of the CE Linux forums its goals and achievements with a contest of <a href="http://tbe.sourceforge.net/">the butterfly effect</a>. It was fun.</p>
<p>The conference closed with a round of drinks. I got a nice Chinese beer.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/vjaquez/2009/10/17/embedded-linux-conference-europe-2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
