<?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>simonpena.com</title>
	<atom:link href="http://simonpena.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://simonpena.com/blog</link>
	<description>Una mezcla heterogénea de tecnología y desvaríos</description>
	<lastBuildDate>Fri, 25 Jan 2013 11:01:41 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>A time of changes</title>
		<link>http://simonpena.com/blog/tech/a-time-of-changes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-time-of-changes</link>
		<comments>http://simonpena.com/blog/tech/a-time-of-changes/#comments</comments>
		<pubDate>Fri, 25 Jan 2013 11:00:26 +0000</pubDate>
		<dc:creator>Simón</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Igalia]]></category>
		<category><![CDATA[maemo]]></category>
		<category><![CDATA[meego]]></category>

		<guid isPermaLink="false">http://simonpena.com/blog/?p=1284</guid>
		<description><![CDATA[I left my job at Igalia at the beginning of this month, after a bit more than two years working there. These past two years have been incredible: I was living in Finland for almost the whole 2011, participating in the MeeGo project, and then spent 2012 working from A Coruña's offices, working on WebKit [...]]]></description>
				<content:encoded><![CDATA[<p>I left my job at Igalia at the beginning of this month, after a bit more than two years working there.</p>
<p>These past two years have been incredible: I was living in Finland for almost the whole 2011, participating in the <strong>MeeGo</strong> project, and then spent 2012 working from A Coruña's offices, working on <strong>WebKit</strong> and other technologies. I enjoyed it a lot, got really attached to the people there -- some of them I call friends now --, and grew a lot professionally.</p>
<p>Igalia is organized in a flat structure, where we take more responsibilities than just coding, and where the ultimate step is to become a partner. However, I currently have the feeling that I want to focus more on the technical side of things, to gain more expertise, and that would be too complicated without neglecting these other responsibilities -- the kind of responsibilities that take time and energy. Then, being honest with my colleagues, the responsible thing was leaving.</p>
<p>I have only started looking for new opportunities since I announced my decision, so things are still a bit unclear. We will be quite probably leaving Spain and heading North: we would like to go to The Netherlands, but we don't discard anything in advance.</p>
<p>If your company needs a <strong>Software Engineer</strong>, chances are I could be of help, so take a look at my profile in <a href="http://es.linkedin.com/in/simonpena/en" title="Simon Pena at LinkedIn" target="_blank">LinkedIn</a>, and don't hesitate to ask me for my CV or other details. And, if you're so kind, please pass the word and help me find a new cool place!</p>
]]></content:encoded>
			<wfw:commentRss>http://simonpena.com/blog/tech/a-time-of-changes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On the WebKitGTK+ Hackfest 2012</title>
		<link>http://simonpena.com/blog/tech/on-the-webkitgtk-hackfest-2012/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=on-the-webkitgtk-hackfest-2012</link>
		<comments>http://simonpena.com/blog/tech/on-the-webkitgtk-hackfest-2012/#comments</comments>
		<pubDate>Thu, 13 Dec 2012 15:30:17 +0000</pubDate>
		<dc:creator>Simón</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Igalia]]></category>
		<category><![CDATA[WebKit]]></category>
		<category><![CDATA[WebKitGTK+]]></category>

		<guid isPermaLink="false">http://simonpena.com/blog/?p=1258</guid>
		<description><![CDATA[This week I attended my first WebKitGTK+ hackfest. It was hosted at our Igalia office in A Coruña, so it was the perfect opportunity to join so many good hackers! Claudio wrote a pretty good blog post giving an overview of the hackfest , explaining who was doing what, so I'll just mention that I [...]]]></description>
				<content:encoded><![CDATA[<p>This week I attended my first WebKitGTK+ hackfest. It was hosted at our <a href="http://www.igalia.com/" target="_blank">Igalia</a> office in A Coruña, so it was the perfect opportunity to join <a href="https://live.gnome.org/Hackfests/WebKitGTK2012" target="_blank">so many good hackers</a>!</p>
<p><a href="http://people.gnome.org/~csaavedra/" target="_blank">Claudio</a> wrote a pretty good blog post giving <a href="http://people.gnome.org/~csaavedra/news-2012-12.html#D11" target="_blank">an overview of the hackfest</a> , explaining who was doing what, so I'll just mention that I focused on <a href="https://bugs.webkit.org/show_bug.cgi?id=104484" target="_blank">improving the WebKit2GTK+ port sections documentation</a> (because, you know, we don't want <a href="http://geek-and-poke.com/2010/01/documentation-is-key.html" target="_blank">this</a> to happen). You can see here how scarce it was looking previously:</p>
<div id="attachment_1269" class="wp-caption aligncenter" style="width: 310px"><a href="http://simonpena.com/blog/?attachment_id=1269" rel="attachment wp-att-1269"><img src="http://simonpena.com/blog/wp-content/uploads/2012/12/WebKit2GTK+-doc-before-300x224.png" alt="Original documentation" width="300" height="224" class="size-medium wp-image-1269" /></a><p class="wp-caption-text">Original documentation</p></div>
<p>and how it looks now:</p>
<div id="attachment_1268" class="wp-caption aligncenter" style="width: 310px"><a href="http://simonpena.com/blog/?attachment_id=1268" rel="attachment wp-att-1268"><img src="http://simonpena.com/blog/wp-content/uploads/2012/12/WebKit2GTK+-doc-after-300x224.png" alt="Updated documentation" width="300" height="224" class="size-medium wp-image-1268" /></a><p class="wp-caption-text">Updated documentation</p></div>
<p>That's just the short description, but each of those sections has also an extended description that tries to give an idea of how to use it. Still, if something is not clear enough, just file a bug and we'll try to improve it.</p>
<p>This updated documentation will be available at the <a href="http://webkitgtk.org/reference/webkit2gtk/unstable/index.html">WebKit2GTK+ Reference Manual</a> in the next release, but since it's already upstream, you can build it yourself simply passing the <code>--enable-gtk-doc</code> flag.</p>
<p>I also want to thank the GNOME Foundation and all the sponsors who have made this event possible:</p>
<p><a href="http://www.igalia.com"><img class="screenart" src="https://live.gnome.org/Hackfests/WebKitGTK2012?action=AttachFile&#038;do=get&#038;target=igalia-logo.png" /></a>
<p />
<a href="http://www.collabora.co.uk"><img class="screenart" src="https://live.gnome.org/Hackfests/WebKitGTK2012?action=AttachFile&#038;do=get&#038;target=collabora-logo.png" /></a>
<p />
<a href="http://foundation.gnome.org"><img class="screenart" src="http://blogs.gnome.org/xjuan/files/2012/09/sponsored-by-gnome-foundation.png" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://simonpena.com/blog/tech/on-the-webkitgtk-hackfest-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing the Gallery Tilt Shift plugin for the Nokia N9</title>
		<link>http://simonpena.com/blog/tech/announcing-the-gallery-tilt-shift-plugin-for-the-nokia-n9/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=announcing-the-gallery-tilt-shift-plugin-for-the-nokia-n9</link>
		<comments>http://simonpena.com/blog/tech/announcing-the-gallery-tilt-shift-plugin-for-the-nokia-n9/#comments</comments>
		<pubDate>Fri, 21 Sep 2012 11:19:15 +0000</pubDate>
		<dc:creator>Simón</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[harmattan]]></category>
		<category><![CDATA[Igalia]]></category>
		<category><![CDATA[maemo]]></category>
		<category><![CDATA[meego]]></category>

		<guid isPermaLink="false">http://simonpena.com/blog/?p=1207</guid>
		<description><![CDATA[A couple of weeks ago, we at Igalia got a number of plugins published in the Nokia Store: Enlarge &#38; Shrink, Gallery Tilt Shift plugin, and Facerecognition Reset Plugin. We had them ready for some time already, but still it was very difficult to pass the Nokia Store Quality Assurance: there is a list of [...]]]></description>
				<content:encoded><![CDATA[<p>A couple of weeks ago, we at <a title="Igalia: Open Source Consultancy" href="http://www.igalia.com/" target="_blank">Igalia</a> got a number of plugins published in the Nokia Store: <a title="Enlarge &amp; Shrink plugin" href="http://store.ovi.com/content/302893" target="_blank">Enlarge &amp; Shrink</a>, <a title="Gallery Tilt Shift plugin" href="http://store.ovi.com/content/274188" target="_blank">Gallery Tilt Shift plugin</a>, and <a title="Facerecognition Reset Plugin" href="http://store.ovi.com/content/274192" target="_blank">Facerecognition Reset Plugin</a>. We had them ready for some time already, but still it was very difficult to pass the Nokia Store Quality Assurance: there is a list of valid directories where a Debian package can install its files, and they had missed the ones for Gallery plugins. So, in order to finally get over that problem, my friend and colleague <a title="Andrés Gómez" href="http://blog.andresgomez.org/" target="_blank">Andrés</a> had to "fight" with the Store QA people quite a bit: don't forget to thank him for this!</p>
<p>Although I developed only the Tilt Shift one, I will briefly introduce you the other two as well <img src='http://simonpena.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>The <a title="Enlarge &amp; Shrink plugin" href="http://store.ovi.com/content/302893" target="_blank">Enlarge &amp; Shrink plugin</a> is an add-on to the built-in Gallery application. You can use it to apply a radial distortion to a picture, so they look like enlarge and shrink effects (also known as punch or pinch).</p>
<p>The<a title="Facerecognition Reset Plugin" href="http://store.ovi.com/content/274192" target="_blank"> Face Recognition Reset plugin</a> also behaves as an add-on, but doesn't work on individual images. Instead, it forces the deletion or un/protection of the facerecognition database, something that you might need if for whatever reason the database gets corrupted.</p>
<p>And finally, the <a title="Gallery Tilt Shift plugin" href="http://store.ovi.com/content/274188" target="_blank">Tilt Shift plugin</a> lets you make a picture look as a miniature, by applying the following transformations:</p>
<ol>
<li>Blurring the image using a Gaussian Blur filter</li>
<li>Keep an area of the image focused (either vertically or horizontally)</li>
<li>Combine both parts of the image using a Gaussian filter (so the focus is lost gradually from the focused area to the rest of the image)</li>
<li>Increase the saturation, so the colors seems those of a miniature</li>
</ol>
<div class="wp-caption aligncenter" style="width: 280px"><img title="Before" src="http://igalia.github.com/gallery-tiltshift-plugin/images/screenshot-before.jpg" alt="Saint Isaac's Square - Saint Petersburg, before applying the effect" width="270" height="180" /><p class="wp-caption-text">Saint Isaac's Square - Saint Petersburg, before applying the effect</p></div>
<div class="wp-caption aligncenter" style="width: 280px"><img title="After" src="http://igalia.github.com/gallery-tiltshift-plugin/images/screenshot-after.jpg" alt="Saint Isaac's Square - Saint Petersburg, after applying the effect" width="270" height="180" /><p class="wp-caption-text">Saint Isaac's Square - Saint Petersburg, after applying the effect</p></div>
<p>There is a problem, however. Gallery uses <a title="MeeGo Image Editor" href="https://maemo.gitorious.org/meego-image-editor/" target="_blank">Quill</a>, and Quill was designed to use tiles in order to minimize the memory footprint and work happily in mobile devices. That tiling mechanism finally proved to be less flexible than it should, so for those edit operations where you can't rely only on the local information in the tile... things won't work.</p>
<p>You can still use these plugins for small images. Gallery doesn't do tiling on images of 512x512px or smaller, so that is what is currently supported. Another option is writing a complete new application to get this miniature effect (either using Quill with a different tiling configuration or not using it at all). You can check the full explanation at the <a title=" In depth:" href="https://github.com/Igalia/gallery-tiltshift-plugin#in-depth" target="_blank">GitHub page of the project</a>.</p>
<p>All these plugins are Open Source, so you can go to their page at GitHub: <a title="Enlarge &amp; Shrink plugin" href="http://igalia.github.com/gallery-enlarge-shrink-plugin/" target="_blank">Enlarge &amp; Shrink</a>, <a title="Facerecognition Reset Plugin" href="http://igalia.github.com/gallery-plugin-facerecognition-resetter/" target="_blank">Facerecognition Reset</a>, <a title="Gallery Tilt Shift plugin" href="http://igalia.github.com/gallery-tiltshift-plugin/" target="_blank">Gallery Tilt Shift</a></p>
<p>Take a look at all applications published by <a title="Igalia at the Nokia Store" href="http://store.ovi.com/publisher/Igalia/" target="_blank">Igalia at the Nokia Store</a>.</p>
<p style="text-align: center;"><a href="http://store.ovi.com/content/274188" target="_blank"><img class="size-full wp-image-1235 aligncenter" title="Download from the Nokia Store" src="http://simonpena.com/blog/wp-content/uploads/2012/09/505c4a934475a13482256832121058997.jpg" alt="Download from the Nokia Store" width="468" height="60" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://simonpena.com/blog/tech/announcing-the-gallery-tilt-shift-plugin-for-the-nokia-n9/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Grilo: better multimedia discovery in the living room</title>
		<link>http://simonpena.com/blog/tech/grilo-better-multimedia-discovery-in-the-living-room/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=grilo-better-multimedia-discovery-in-the-living-room</link>
		<comments>http://simonpena.com/blog/tech/grilo-better-multimedia-discovery-in-the-living-room/#comments</comments>
		<pubDate>Wed, 20 Jun 2012 09:55:27 +0000</pubDate>
		<dc:creator>Simón</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Grilo]]></category>
		<category><![CDATA[Igalia]]></category>

		<guid isPermaLink="false">http://simonpena.com/blog/?p=1163</guid>
		<description><![CDATA[Some days ago, I talked about my current living-room setup. It is cool, since I'm reusing components I already have, but it's quite clear that it has some issues: It won't extend well. If I ever want to browse my Flickr pictures, that won't be enough The same goes for videos (Youtube, Vimeo, blip.tv...) And [...]]]></description>
				<content:encoded><![CDATA[<p>Some days ago, I talked about <a href="http://simonpena.com/blog/tech/using-minidlna-on-a-sheevaplug-to-feed-content-into-a-panasonic-viera-tv/" target="_blank">my current living-room setup</a>. It is cool, since I'm reusing components I already have, but it's quite clear that it has some issues:</p>
<ul>
<li>It won't extend well. If I ever want to browse my <em>Flickr</em> pictures, that won't be enough</li>
<ul>
<li>The same goes for videos (<em>Youtube</em>, <em>Vimeo</em>, <em>blip.tv</em>...)</li>
<li>And many other services out there</li>
</ul>
<li>The TV supports part of the content, the <em>XBox</em>supports another part...</li>
<li>The UI for the <a href="http://en.wikipedia.org/wiki/Universal_Plug_and_Play" target="_blank">UPnP</a> clients is quite basic</li>
</ul>
<p>TVs are no longer regular TVs: they are smart! (Think about the <a href="http://panasonic.net/avc/viera/index.html" target="_blank">Panasonic Viera</a>, <a href="http://www.samsung.com/us/2012-smart-tv/" target="_blank">Samsung Smart TVs</a>, <a href="http://www.smarttv.philips.com/" target="_blank">Philips SmartTV</a>...). Many other devices have many different multimedia capabilities: some of them dedicated (<a href="http://www.asus.com/Multimedia/Digital_Media_Player/OPlay_HDPR1/" target="_blank">Asus O!Play</a>,<a href="http://www.blusens.com/en/productos/hogar-digital/blu:brain/" target="_blank">Blusens Blubrain</a>...) others are gaming devices that include these features (<em>PS3</em>, <em>XBox</em>...).</p>
<p>They solve different subsets of the problem: for example, providing <em>Flickr</em>, <em>Youtube</em>, <em>Vimeo</em>... applications, or having a better <em>UPnP</em> client, or even providing application markets so you get new apps for new services. But for that to happen, some developer has to provide the apps, maybe having to learn the API for a web service: <strong>none of these devices solve the need for a unified path, for a single experience, both from the developer and the user point of view</strong>.</p>
<p>With <a href="https://live.gnome.org/Grilo" target="_blank">Grilo</a>, you can get that. Grilo is a framework, developed and maintained by <a href="http://www.igalia.com/" target="_blank">Igalia</a>, focused on making media discovery and browsing easy for application developers. With it, you get</p>
<blockquote>
<ul>
<li>A single, high-level API that abstracts the differences among various media content providers, allowing application developers to integrate content from various services and sources easily.</li>
<li>A collection of plugins for accessing content from various media providers. Developers can share efforts and code by writing plugins for the framework that are application agnostic.</li>
<li>A flexible API that allows plugin developers to write plugins of various kinds.</li>
</ul>
</blockquote>
<p>Hardware vendors shipping their products with Grilo in their SDKs would expose to third party developers consistent APIs to access the different media providers. Developers targeting those platforms would only have to care about Grilo's API, since most popular media providers are already supported <em>out of the box</em>, and only if a service is very new (or less popular) they would have to write a plugin for it. One consequence for this is that developers will have more time to focus on what will let them differentiate from their competitors: the UI.</p>
<p>Users would finally get revolutionary experiences, where, for example, videos or pictures from different sources would be together, or where the application would be interactive and gesture-driven. Or anything you could imagine!</p>
<p>Check its <a href="https://live.gnome.org/Grilo" target="_blank">official page</a> in the GNOME project for all the details, its <a href="http://www.igalia.com/nc/work/project/item/grilo/" target="_blank">page at Igalia</a>, or <a href="http://www.ohloh.net/p/grilo-fw">Grilo at Ohloh</a> for past blog posts and other information. Also, if you come to Coruña for the <a href="http://www.guadec.org/" target="_blank">GUADEC</a>, don't hesitate to ask any igalian about it!</p>
]]></content:encoded>
			<wfw:commentRss>http://simonpena.com/blog/tech/grilo-better-multimedia-discovery-in-the-living-room/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using minidlna on a SheevaPlug to feed content into a Panasonic Viera TV</title>
		<link>http://simonpena.com/blog/tech/using-minidlna-on-a-sheevaplug-to-feed-content-into-a-panasonic-viera-tv/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=using-minidlna-on-a-sheevaplug-to-feed-content-into-a-panasonic-viera-tv</link>
		<comments>http://simonpena.com/blog/tech/using-minidlna-on-a-sheevaplug-to-feed-content-into-a-panasonic-viera-tv/#comments</comments>
		<pubDate>Mon, 04 Jun 2012 15:30:25 +0000</pubDate>
		<dc:creator>Simón</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Igalia]]></category>
		<category><![CDATA[minidlna]]></category>
		<category><![CDATA[panasonic]]></category>
		<category><![CDATA[plug computing]]></category>
		<category><![CDATA[sheeva plug]]></category>
		<category><![CDATA[viera]]></category>

		<guid isPermaLink="false">http://simonpena.com/blog/?p=1134</guid>
		<description><![CDATA[Since I bought a Panasonic Viera TV, some 5 months ago, I had been connecting my laptop to it whenever I wanted to watch a movie, some series or even the pictures I took on my trips. That was quite annoying: the VGA connection (since the laptop only has HDMI output in its dockstation), checking [...]]]></description>
				<content:encoded><![CDATA[<p>Since I bought a <a href="http://panasonic.net/avc/viera/index.html" title="Panasonic Viera TV" target="_blank">Panasonic Viera TV</a>, some 5 months ago, I had been connecting my laptop to it whenever I wanted to watch a movie, some series or even the pictures I took on my trips.</p>
<p>That was quite annoying: the VGA connection (since the laptop only has HDMI output in its dockstation), checking that the laptop had enough battery (or adding yet more wires to keep it plugged), connecting it to some external speakers... and all of this while having a <a href="http://www.globalscaletechnologies.com/p-26-sheevaplug-dev-kit-europe.aspx" title="SheevaPlug Dev Kit" target="_blank">SheevaPlug</a> almost 24/7.</p>
<p>So a couple of weeks ago I bought an external drive and configured it as a media server. This is my setup now, in case someone is interested:</p>
<ul>
<li>First generation SheevaPlug with the <a href="http://wdc.com/en/products/products.aspx?id=240" title="HDD Western Digital My Book" target="_blank">HDD Western Digital 2TB My Book</a></li>
<li>Panasonic Viera TV</li>
</ul>
<h2>Software</h2>
<ul>
<li><a href="http://sourceforge.net/projects/minidlna/" title="MiniDLNA" target="_blank">minidlna</a>. With a very simple configuration, it exposes your media content and works great with Viera's integrated upnp client.</li>
<li>Viera is able to use external srt subtitle files for some of the supported formats (typically avi or mp4), but that won't work with mkv.</li>
<ul>
<li>In that case, you can add a new subtitles track to your mkv (for example, using mkvmerge, from the <a href="http://www.bunkus.org/videotools/mkvtoolnix/" title="MKVToolNix -- Cross-platform tools for Matroska" target="_blank">mkvtoolnix</a> package)</li>
</ul>
</ul>
<h2>Oddities</h2>
<p>Viera is quite picky sometimes. If you create your own mkvs with mkvmerge, be sure not to add compression (check <em>compression:none</em> parameter). By default, mkvmerge tries to compress the header of the audio track (and most players are fine with that, but Viera is not)</p>
<p>I currently use something like the following to add a subtitles track:</p>
<blockquote>
<pre>mkvmerge -o output.mkv --compression -1:none file.mkv file.srt</pre>
</blockquote>
<p>Not only that: Viera seems to support a limited set of encodings for subtitles. <em>LATIN1</em> is known to work fine, so if you have your subtitles in <em>UTF</em>, you can use unaccent and iconv to convert them to <em>LATIN1</em>.</p>
<blockquote>
<pre>cat subtitles-utf.srt | unaccent LATIN1 | iconv -f UTF-8 -t LATIN1 -c &gt; subtitles-latin1.srt</pre>
</blockquote>
<p>And the previous script helps me striping non-LATIN1 characters out of a subtitles file.</p>
]]></content:encoded>
			<wfw:commentRss>http://simonpena.com/blog/tech/using-minidlna-on-a-sheevaplug-to-feed-content-into-a-panasonic-viera-tv/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>(Español) Curas, elefantes y chalecos reflectantes</title>
		<link>http://simonpena.com/blog/el-genuino-simon/curas-elefantes-y-chalecos-reflectantes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=curas-elefantes-y-chalecos-reflectantes</link>
		<comments>http://simonpena.com/blog/el-genuino-simon/curas-elefantes-y-chalecos-reflectantes/#comments</comments>
		<pubDate>Sun, 13 May 2012 12:21:42 +0000</pubDate>
		<dc:creator>Simón</dc:creator>
				<category><![CDATA[El Genuino Simón]]></category>
		<category><![CDATA[Sinsentidos]]></category>
		<category><![CDATA[Sueños]]></category>

		<guid isPermaLink="false">http://simonpena.com/blog/?p=1119</guid>
		<description><![CDATA[Sorry, this entry is only available in Español.]]></description>
				<content:encoded><![CDATA[<p>Sorry, this entry is only available in <a href="http://simonpena.com/blog/es/feed/">Español</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://simonpena.com/blog/el-genuino-simon/curas-elefantes-y-chalecos-reflectantes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Importing an OPML into Nokia N9 Feed Reader</title>
		<link>http://simonpena.com/blog/tech/importing-an-opml-into-nokia-n9-feed-reader/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=importing-an-opml-into-nokia-n9-feed-reader</link>
		<comments>http://simonpena.com/blog/tech/importing-an-opml-into-nokia-n9-feed-reader/#comments</comments>
		<pubDate>Wed, 21 Mar 2012 14:35:19 +0000</pubDate>
		<dc:creator>Simón</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Igalia]]></category>
		<category><![CDATA[maemo]]></category>
		<category><![CDATA[meego]]></category>
		<category><![CDATA[qml]]></category>

		<guid isPermaLink="false">http://simonpena.com/blog/?p=1096</guid>
		<description><![CDATA[As you know (and it's already reported), there's currently no way to import an OPML into the Nokia N9 Feed Reader application (see Harmattan Bug #159). However, I noticed that when you open a feed link with the built-in browser, it launches the Feed Reader app, and asks you to subscribe to the feed. I [...]]]></description>
				<content:encoded><![CDATA[<p>As you know (and it's already reported), there's currently no way to import an <a title="Outline Processor Markup Language" href="http://en.wikipedia.org/wiki/OPML" target="_blank">OPML</a> into the Nokia N9 Feed Reader application (see <a href="https://harmattan-bugs.nokia.com/show_bug.cgi?id=159" target="_blank">Harmattan Bug #159</a>).</p>
<p>However, I noticed that when you open a feed link with the built-in browser, it launches the Feed Reader app, and asks you to subscribe to the feed. I guessed that it was communicating with the Feed Reader using D-Bus, so I <code>dbus-monitor</code>ed it, and that's what I found:</p>
<ol>
<li>First, the browser asks the application to subscribe to a given feed (here I'm asking the client to subscribe to my blog's feed):<br />
<blockquote>
<pre>dbus-send --print-reply --dest=com.nokia.FeedReader \
/ \
com.nokia.FeedReader.subscribeFeed array:string:"http://simonpena.com/blog/feed/"</pre>
</blockquote>
</li>
<li>If the user accepts that, then the Feed Reader application requests the Engine to actually subscribe to the Feed. The nice thing is that, although you cannot (AFAIK) ask the client to subscribe to more than one feed at the time, you can ask the Engine to do it, so this actually works (requesting the engine to subscribe to my blog, <a title="Planet Maemo" href="http://planet.maemo.org/" target="_blank">Planet Maemo</a> and <a title="Planet Igalia" href="http://planet.igalia.com" target="_blank">Planet Igalia</a>):<br />
<blockquote>
<pre>dbus-send --print-reply --dest=com.nokia.FeedEngine \
/ \
com.nokia.FeedEngine.subscribe \
array:string:"http://simonpena.com/blog/feed/","http://maemo.org/news/planet-maemo/rss.xml","http://planet.igalia.com/atom.xml" \
string:"rssatom"</pre>
</blockquote>
</li>
</ol>
<p>From this point on, it should be quite straight forward to import an OPML into the Feed Reader application. You can use a <code><a title="QDomDocument" href="http://qt-project.org/doc/qt-4.8/qdomdocument.html" target="_blank">QDomDocument</a></code> to parse the OPML or use QML's <code><a title="XmlListModel" href="http://qt-project.org/doc/qt-4.8/qml-xmllistmodel.html" target="_blank">XmlListModel</a></code> to parse the OPML file.</p>
<blockquote>
<pre>XmlListModel {
    property string subTitle: ''

    query: subTitle ? "/opml/body/outline[@title='" + titleText + "']/outline": "/opml/body/outline"

    XmlRole { name: 'text'; query: '@text/string()' }
    XmlRole { name: 'title'; query: '@title/string()' }
    XmlRole { name: 'type'; query: '@type/string()' }
    XmlRole { name: 'xmlUrl'; query: '@xmlUrl/string()' }
    XmlRole { name: 'htmlUrl'; query: '@htmlUrl/string()' }
}</pre>
</blockquote>
<p>Then, you can use this to subscribe to the feeds using D-Bus:</p>
<blockquote>
<pre>static const QString DBUS_IFACE("com.nokia.FeedEngine");

void Controller::subscribeFeeds(const QStringList &amp;feedList) const
{
    QDBusInterface dbusInterface(DBUS_IFACE,
                                 "/",
                                 DBUS_IFACE,
                                 QDBusConnection::sessionBus());

    dbusInterface.asyncCall("subscribe",
                            QVariant::fromValue(feedList),
                            QVariant::fromValue(QString("rssatom")));
}</pre>
</blockquote>
<p>I hope you find this useful <img src='http://simonpena.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://simonpena.com/blog/tech/importing-an-opml-into-nokia-n9-feed-reader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mahjong Solitaire for the Nokia N9</title>
		<link>http://simonpena.com/blog/tech/mahjong-solitaire-for-the-nokia-n9/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mahjong-solitaire-for-the-nokia-n9</link>
		<comments>http://simonpena.com/blog/tech/mahjong-solitaire-for-the-nokia-n9/#comments</comments>
		<pubDate>Wed, 07 Mar 2012 08:26:04 +0000</pubDate>
		<dc:creator>Simón</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Igalia]]></category>
		<category><![CDATA[maemo]]></category>
		<category><![CDATA[mahjong]]></category>
		<category><![CDATA[meego]]></category>
		<category><![CDATA[qml]]></category>

		<guid isPermaLink="false">http://simonpena.com/blog/?p=1065</guid>
		<description><![CDATA[Last week, we got Mahjong Solitaire for N9 finally published. This has been a great opportunity to use QML in my daily work at Igalia, instead of using it simply for the occasional hacking, such as Butaca or the XKCD reader. So far, comments in the Nokia Store have been really positive -although some people [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://store.ovi.com/content/257391"><img class="size-full wp-image-1066 alignleft" title="Get Mahjong from the Nokia Store" src="http://simonpena.com/blog/wp-content/uploads/2012/03/mahjong-nokia-n9-2.jpg" alt="Get Mahjong from the Nokia Store" width="300" height="250" /></a></p>
<p>Last week, we got <a title="Mahjong Solitaire" href="http://store.ovi.com/content/257391" target="_blank">Mahjong Solitaire</a> for N9 finally published.</p>
<p>This has been a great opportunity to use QML in my daily work at <a title="Igalia" href="http://www.igalia.com" target="_blank">Igalia</a>, instead of using it simply for the occasional hacking, such as <a title="Butaca: Cinema Information" href="http://store.ovi.com/content/195876" target="_blank">Butaca</a> or the <a title="XKCD Reader" href="http://store.ovi.com/content/205765" target="_blank">XKCD reader</a>.</p>
<p>So far, comments in the Nokia Store have been really positive -although some people seem to miss the classic theme from the Mahjongs available back in Maemo. But not only the comments are positive: the application is currently listed in the <a title="Top Free Games" href="http://store.ovi.com/#/games?sortBy=mostPopular&amp;contentArea=games&amp;priceType=free" target="_blank">first position of the Top Free games</a>!</p>
<p>Drop me a line (<em>spena at igalia.com</em>) if you find issues, you have suggestions or if you simply want to complain about the colors <img src='http://simonpena.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://simonpena.com/blog/tech/mahjong-solitaire-for-the-nokia-n9/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Mixing QML and MeeGoTouch</title>
		<link>http://simonpena.com/blog/mswl/mixing-qml-and-meegotouch/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mixing-qml-and-meegotouch</link>
		<comments>http://simonpena.com/blog/mswl/mixing-qml-and-meegotouch/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 21:07:48 +0000</pubDate>
		<dc:creator>Simón</dc:creator>
				<category><![CDATA[Máster SW Libre]]></category>
		<category><![CDATA[harmattan]]></category>
		<category><![CDATA[Igalia]]></category>
		<category><![CDATA[maemo]]></category>
		<category><![CDATA[meego]]></category>
		<category><![CDATA[meegotouch]]></category>
		<category><![CDATA[qml]]></category>

		<guid isPermaLink="false">http://simonpena.com/blog/?p=1024</guid>
		<description><![CDATA[When trying to invoke a MeeGoTouch application's MSheet from a QML app, I was getting the following error: There is no instance of MDeviceProfile. Please create MComponentData first. Using MApplication instead of QApplication would solve that, but still a MApplicationWindow would be needed to make the MSheet appear. After searching on Google for a while [...]]]></description>
				<content:encoded><![CDATA[<p>When trying to invoke a MeeGoTouch application's MSheet from a QML app, I was getting the following error:</p>
<blockquote><pre>There is no instance of MDeviceProfile. Please create MComponentData first.</pre>
</blockquote>
<p>Using <code>MApplication</code> instead of <code>QApplication</code> would solve that, but still a <code>MApplicationWindow</code> would be needed to make the <code>MSheet</code> appear.</p>
<p>After searching on Google for a while (see after the snippet for the sources) and <a href="http://mg.pov.lt/harmattan-irclog/%23harmattan.2011-10-10.log.html#t2011-10-10T22:54:39" title="IRC logs" target="_blank">talking to gri in #harmattan</a>, I've come up with the following solution:</p>
<blockquote><pre>
#include &lt;MApplication&gt;
#include &lt;MApplicationWindow&gt;
#include &lt;MApplicationPage&gt;
#include &lt;QDeclarativeEngine&gt;
#include &lt;QGraphicsObject&gt;
#include &lt;QDeclarativeComponent&gt;
#include &lt;QDeclarativeContext&gt;

int main(int argc, char *argv[])
{
    MApplication app(argc, argv);
    QDeclarativeEngine engine;

    // The context is unused in this example
//    QDeclarativeContext *context = engine.rootContext();

    MApplicationWindow window;
    window.showFullScreen();

    MApplicationPage page;
    page.setPannable(false);
    page.appear(MApplication::instance()-&gt;activeWindow());

    QDeclarativeComponent component(&amp;engine, QUrl("qrc:/qml/main.qml"));
    QGraphicsObject *content = qobject_cast&lt;QGraphicsObject*&gt;(component.create());
    MWidget *centralWidget = new MWidget;
    content-&gt;setParentItem(centralWidget);
    page.setCentralWidget(centralWidget);

    int result = app.exec();

    delete centralWidget;

    return result;
}</pre>
</blockquote>
<p>From <a title="QML support in Meego touch Framework" href="http://permalink.gmane.org/gmane.comp.handhelds.meego.touch.devel/110" target="_blank">QML support in Meego touch Framework</a> I learnt that I had to load the QML into a MeeGoTouch widget, so I followed <a title="Loading QML components from C++" href="http://doc.qt.nokia.com/4.7-snapshot/qtbinding.html#loading-qml-components-from-c" target="_blank">Loading QML components from C++</a> to replace the <code>loadQmlComponent</code> non-existing method with the <code><a title="QDeclarativeComponent::create" href="http://doc.qt.nokia.com/4.7-snapshot/qdeclarativecomponent.html#create" target="_blank">QDeclarativeComponent::create</a></code> approach.</p>
<p>Also, note that I use <code><a title="QWidget::showFullScreen" href="http://doc.qt.nokia.com/4.7/qwidget.html#showFullScreen" target="_blank">MApplicationWindow::showFullScreen</a></code> instead of <code><a title="QWidget::show" href="http://doc.qt.nokia.com/4.7/qwidget.html#show" target="_blank">MApplicationWindow::show</a></code> and <code><a title="QWidget::setMinimumSize" href="http://doc.qt.nokia.com/4.7/qwidget.html#minimumSize-prop" target="_blank">MWidget::setMinimumSize<br />
</a></code></p>
]]></content:encoded>
			<wfw:commentRss>http://simonpena.com/blog/mswl/mixing-qml-and-meegotouch/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Butaca is now available in the Ovi Store</title>
		<link>http://simonpena.com/blog/mswl/butaca-is-now-available-in-the-ovi-store/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=butaca-is-now-available-in-the-ovi-store</link>
		<comments>http://simonpena.com/blog/mswl/butaca-is-now-available-in-the-ovi-store/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 07:40:00 +0000</pubDate>
		<dc:creator>Simón</dc:creator>
				<category><![CDATA[Butaca]]></category>
		<category><![CDATA[Máster SW Libre]]></category>
		<category><![CDATA[harmattan]]></category>
		<category><![CDATA[Igalia]]></category>
		<category><![CDATA[maemo]]></category>
		<category><![CDATA[meego]]></category>
		<category><![CDATA[qml]]></category>

		<guid isPermaLink="false">http://simonpena.com/blog/?p=1008</guid>
		<description><![CDATA[After having improved the movie showtimes support and updated the UI so it aligns better with the Swipe UX, this Saturday I submitted Butaca to the Ovi Store. Yesterday (yes, that quickly!) I got a notification that it had been accepted. I'm really satisfied with this release: I use the application myself a lot, and [...]]]></description>
				<content:encoded><![CDATA[<p>After having improved the movie showtimes support and updated the UI so it aligns better with the <a href="http://swipe.nokia.com/" target="_blank">Swipe UX</a>, this Saturday I submitted Butaca to the Ovi Store. Yesterday (yes, that quickly!) I got a notification that it had been accepted. I'm really satisfied with this release: I use the application myself a lot, and it's great to be able to check which movies are playing on the cinemas and later review their details and the crew's.</p>
<div class="wp-caption aligncenter" style="width: 145px"><a href="http://www.flickr.com/photos/bulfaiter/6132569939/"><img title="Search movie showtimes" src="http://farm7.static.flickr.com/6173/6132569939_2a9fb7f37f_m.jpg" alt="Search movie showtimes" width="135" height="240" /></a><p class="wp-caption-text">Searching movie showtimes</p></div>
<p>I've uploaded a <a title="MeeGo / Harmattan applications: Butaca 0.3.5 screencast" href="http://youtu.be/FCrAmmd-GcQ" target="_blank">screencast to Youtube</a>, displaying how the application works, and -as usual- <a title="Butaca Harmattan v0.3.5" href="http://www.flickr.com/photos/bulfaiter/sets/72157627637415158/detail/" target="_blank">screenshots</a> are available at my Flickr gallery. You can also review the <a title="Butaca 0.3.5 released" href="https://projects.developer.nokia.com/butaca/discussion/topic/7" target="_blank">release details</a> at the project page (where you'll be able to file bugs or get support as well).</p>
<p><iframe src="http://www.youtube.com/embed/FCrAmmd-GcQ" frameborder="0" width="560" height="345"></iframe></p>
<p>If you wonder what's to come next, here's some insight:</p>
<ul>
<li>Localization</li>
<li>Check for extras after and during the credits (now that I have an API available for that)</li>
<li>Offline mode / better data caching</li>
<li>Embed trailer playback in the application</li>
<li>UI improvements</li>
</ul>
<p><a title="Butaca" href="http://store.ovi.com/content/195876?lang=en_US" target="_blank">Download Butaca</a> for free from the Ovi Store!</p>
]]></content:encoded>
			<wfw:commentRss>http://simonpena.com/blog/mswl/butaca-is-now-available-in-the-ovi-store/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
