<?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>Eurion · RainCT&#039;s Blog &#187; Planet Ubuntu</title>
	<atom:link href="http://bloc.eurion.net/archives/category/ubuntu-planet/feed/" rel="self" type="application/rss+xml" />
	<link>http://bloc.eurion.net</link>
	<description>I would love to change the world, but they won&#039;t give me the source code...</description>
	<lastBuildDate>Sun, 29 Jan 2012 13:23:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Debian Games Team Meeting</title>
		<link>http://bloc.eurion.net/archives/2011/debian-games-team-meeting/</link>
		<comments>http://bloc.eurion.net/archives/2011/debian-games-team-meeting/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 15:24:18 +0000</pubDate>
		<dc:creator>Contributed Article</dc:creator>
				<category><![CDATA[Planet Debian]]></category>
		<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[packaging]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=1870</guid>
		<description><![CDATA[This announcement was provided by Martin Erik Werner. I&#8217;m reproducing it for Planet Ubuntu. The Debian/Ubuntu Games Team is organizing another meeting. If you&#8217;re into developing and/or packaging of games, or just generally curious about games in Debian/Ubuntu, you should join! It will be held next Saturday, the 26th of November, in the #debian-games channel [...]]]></description>
			<content:encoded><![CDATA[<p><small><strong>This announcement was provided by Martin Erik Werner. I&#8217;m reproducing it for Planet Ubuntu.</strong></small></p>
<p>The <a href="http://wiki.debian.org/Games/Team">Debian/Ubuntu Games Team</a> is organizing another <a href="http://wiki.debian.org/Games/Meetings/2011-11-26">meeting</a>. If you&#8217;re into developing and/or packaging of games, or just generally curious about games in Debian/Ubuntu, you should join!</p>
<p>It will be held next Saturday, the 26th of November, in the #debian-games channel on irc.debian.org (also know as irc.oftc.net) at 10:00 UTC. More information is available on the wiki page <a href="http://wiki.debian.org/Games/Meetings/2011-11-26">Games/Meetings/2011-11-26</a>.</p>
<p>The agenda starts off with the usual round of introductions, so if you&#8217;re new to the Team, say hi! Then we&#8217;ll be going through the action items from the last meeting, including work on the Debian Games LiveCD, and what&#8217;s up with the /usr/games/ path anyways?</p>
<p>Next we&#8217;ll be moving onto how the Games Team is faring in terms of members: are new recruits finding it comfortable, should we advertise more?</p>
<p>Next up it&#8217;s the squeeky penguin: Wheezy is somewhere in the not-completely-distant future, how does that affect the Games Team, should we be scuffling to get specific tasks done?</p>
<p>Then onto the recurring question of Sponsoring, and how to improve it, should we be utilising <a href="http://mentors.debian.net/">DebExpo</a> more? What about our favourite <a href="http://pet.debian.net/pkg-games/pet.cgi">PET</a>?</p>
<p>Lastly, <a href="http://www.playdeb.net/">PlayDeb</a> is doing some really neat stuff, would it make sense for our team to push some changes to PlayDeb? Would it make sense for PlayDeb to push changes to Debian Games?</p>
<p>Hopes are for a good discussion, and a merry time, hope to see you all there!</p>
<p>Related posts:<ol>
<li><a href='http://bloc.eurion.net/archives/2009/one-week-with-debian/' rel='bookmark' title='One week with Debian'>One week with Debian</a> <small>Jaunty was a great experience, until around a month (or...</small></li>
<li><a href='http://bloc.eurion.net/archives/2010/debious-a-dubious-debian-packaging-gui/' rel='bookmark' title='Debious &#8211; A dubious Debian packaging GUI'>Debious &#8211; A dubious Debian packaging GUI</a> <small>Just some little (unfinished) concept mockup. Seeing that much of...</small></li>
<li><a href='http://bloc.eurion.net/archives/2011/a-list-of-some-commercial-gnulinux-games/' rel='bookmark' title='A list of some commercial GNU/Linux games'>A list of some commercial GNU/Linux games</a> <small>I thought I&#8217;d be nice to make a little list...</small></li>
</ol></p> <p><a href="http://bloc.eurion.net/?flattrss_redirect&amp;id=1870&amp;md5=5a95ce4143b8aa26adf15d73dc48056e" title="Flattr" target="_blank"><img src="http://bloc.eurion.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2011/debian-games-team-meeting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Activity Log Manager for Zeitgeist released!</title>
		<link>http://bloc.eurion.net/archives/2011/activity-log-manager-released/</link>
		<comments>http://bloc.eurion.net/archives/2011/activity-log-manager-released/#comments</comments>
		<pubDate>Tue, 17 May 2011 14:40:46 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[Programari lliure]]></category>
		<category><![CDATA[zeitgeist]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=1381</guid>
		<description><![CDATA[On behalf of the Activity Log Manager team and the Zeitgeist Project, I am&#160;happy to announce the first release of Activity Log Manager (0.8.0), a user interface for managing Zeitgeist blacklists,&#160;deleting recent events as well as temporarily pausing the logging. Grab it while it&#39;s hot. Note that you&#39;ll need Zeitgeist 0.8.0 (or later) for it [...]]]></description>
			<content:encoded><![CDATA[<p><meta content="text/html; charset=utf-8" http-equiv="content-type" /></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; width: auto; max-width: 45em; "><span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: 'UbuntuBeta Regular', Ubuntu, 'Bitstream Vera Sans', 'DejaVu Sans', Tahoma, sans-serif; line-height: 18px; ">On behalf of the Activity Log Manager team and the <a href="http://zeitgeist-project.com">Zeitgeist Project</a>, I am&nbsp;happy to announce the first release of <a href="https://launchpad.net/activity-log-manager">Activity Log Manager</a> (0.8.0), a user interface for managing Zeitgeist blacklists,&nbsp;deleting recent events as well as temporarily pausing the logging.</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; width: auto; max-width: 45em; text-align: center; "><span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: 'UbuntuBeta Regular', Ubuntu, 'Bitstream Vera Sans', 'DejaVu Sans', Tahoma, sans-serif; line-height: 18px; "><meta content="text/html; charset=utf-8" http-equiv="content-type" /><span class="Apple-style-span" style="color: rgb(34, 34, 34); font-family: Arial, Verdana, sans-serif; line-height: normal; "><a href="http://bloc.eurion.net/wp-content/uploads/2011/05/activity-log-manager.png"><img alt="" class="aligncenter size-medium wp-image-1382" height="214" src="http://bloc.eurion.net/wp-content/uploads/2011/05/activity-log-manager-300x214.png" style="cursor: default; " title="activity-log-manager" width="300" /></a></span></span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; width: auto; max-width: 45em; "><span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: 'UbuntuBeta Regular', Ubuntu, 'Bitstream Vera Sans', 'DejaVu Sans', Tahoma, sans-serif; line-height: 18px; "><a href="https://launchpad.net/activity-log-manager/+download">Grab it</a> while it&#39;s hot. Note that you&#39;ll need Zeitgeist 0.8.0 (or later) for it to work. If you&#39;re an Ubuntu user you can get packages from <a href="https://launchpad.net/~zeitgeist/+archive/ppa">our PPA</a>; I&#39;ve also uploaded it to Debian.</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; width: auto; max-width: 45em; "><span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: 'UbuntuBeta Regular', Ubuntu, 'Bitstream Vera Sans', 'DejaVu Sans', Tahoma, sans-serif; line-height: 18px; ">I&#39;d also like to use this chance to thank <a href="http://collabora.com/">Collabora</a>&nbsp;for sponsoring my (and <a href="http://seilo.geekyogre.com/">Seif</a>&#39;s) work on Zeitgeist!</span></p>
<p>Related posts:<ol>
<li><a href='http://bloc.eurion.net/archives/2010/zeitgeist-0-5-1-released/' rel='bookmark' title='Zeitgeist 0.5.1 released!'>Zeitgeist 0.5.1 released!</a> <small>On behalf of the Zeitgeist Project team, I am pleased...</small></li>
<li><a href='http://bloc.eurion.net/archives/2011/zeitgeist-0-7-1-made-in-aarhus-released/' rel='bookmark' title='Zeitgeist 0.7.1 &#8220;Made in Aarhus&#8221; released!'>Zeitgeist 0.7.1 &#8220;Made in Aarhus&#8221; released!</a> <small>On behalf of the Zeitgeist team I am proud to...</small></li>
<li><a href='http://bloc.eurion.net/archives/2010/gnome-activity-journal-and-installing-it-on-ubuntu/' rel='bookmark' title='GNOME Activity Journal, and installing it on Ubuntu'>GNOME Activity Journal, and installing it on Ubuntu</a> <small>As already announced by Seif, the first development release of...</small></li>
</ol></p> <p><a href="http://bloc.eurion.net/?flattrss_redirect&amp;id=1381&amp;md5=352d2011dda24a36f79488075ba887f3" title="Flattr" target="_blank"><img src="http://bloc.eurion.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2011/activity-log-manager-released/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Zeitgeist 0.7.1 &#8220;Made in Aarhus&#8221; released!</title>
		<link>http://bloc.eurion.net/archives/2011/zeitgeist-0-7-1-made-in-aarhus-released/</link>
		<comments>http://bloc.eurion.net/archives/2011/zeitgeist-0-7-1-made-in-aarhus-released/#comments</comments>
		<pubDate>Sun, 20 Mar 2011 16:11:40 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Programari lliure]]></category>
		<category><![CDATA[zeitgeist]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=1270</guid>
		<description><![CDATA[On behalf of the Zeitgeist team I am proud to announce the release of Zeitgeist 0.7.1 &#34;Made in Aarhus&#34;. This is a minor release before 0.8.0&#160;(which will be the first one introducing storage awareness). What is Zeitgeist? Zeitgeist is a service which logs the users&#39;s activities and events, anywhere from files opened to websites visited [...]]]></description>
			<content:encoded><![CDATA[<p>On behalf of the Zeitgeist team I am proud to announce the <a href="https://launchpad.net/zeitgeist/+announcement/7988">release</a> of Zeitgeist 0.7.1 &quot;Made in Aarhus&quot;. This is a minor release before <a href="https://launchpad.net/zeitgeist/+milestone/0.8.0">0.8.0</a>&nbsp;(which will be the first one introducing <a href="http://www.grillbar.org/wordpress/?p=536">storage awareness</a>).</p>
<p><strong>What is Zeitgeist?</strong></p>
<p>Zeitgeist is a service which logs the users&#39;s activities and events, anywhere from files opened to websites visited and conversations, and makes this information readily available for other applications to use. It is also able to establish relationships between items based on similarity and usage patterns.</p>
<p>The Zeitgeist engine is a user-level service and does not provide a GUI. It is intended to support dedicated journalling applications and deep integration with other desktop components.</p>
<p><strong>Where?</strong></p>
<p>Downloads: <a href="https://launchpad.net/zeitgeist/+download">launchpad.net/zeitgeist/+download</a> (<a href="http://launchpad.net/zeitgeist/0.7/0.7.1/+download/zeitgeist-0.7.1.tar.gz">zeitgeist-0.7.1.tar.gz</a>)</p>
<p>About Zeitgeist: <a href="http://zeitgeist-project.com">zeitgeist-project.com<br />
	</a>Wiki: <a href="http://wiki.zeitgeist-project.com">wiki.zeitgeist-project.com</a></p>
<p>See also <a href="https://launchpad.net/zeitgeist-datahub">Zeitgeist Datahub</a>, <a href="https://launchpad.net/gnome-activity-journal">GNOME Activity Journal</a> and the repository for additional <a href="https://launchpad.net/zeitgeist-dataproviders">Zeitgeist data-sources</a>. You may as well like <a href="https://launchpad.net/sezen">Sezen</a>.</p>
<p><strong>News since 0.7.0</strong></p>
<pre>Engine:

 - Expose property information in the D-Bus introspection output.
 - Mention column names explicitly when inserting events, for compatibility
   with the upcoming 0.8 release.

Python API:

 - Expose DataSourceRegistry&#39;s enabled status in a callback.
 - Automatically reconnect to Zeitgeist if the connection is lost when using
   methods asynchronously (so far this only happened for synchronous calls).
 - Reinstall all active monitors upon reconnection (LP: #673008, #727226).
 - Fix a (harmless) race condition requesting the bus name (LP: #732015).

Overall:

 - Added new event interpretation types: AcceptEvent, DenyEvent and ExpireEvent.
 - Include NCO in the generated ontologies.
 - Better ./configure check for python-rdflib.
 - Update the manpage to document exit codes.
</pre>
<p>Thanks to everyone who contributed to this release, and since I hadn&#39;t blogged about it before, also to everyone who made the <a href="http://live.gnome.org/Hackfests/Zeitgeist2011">Zeitgeist Hackfest in Aarhus</a> possible, including our sponsors:</p>
<p style="text-align: center; "><img alt="" class="aligncenter size-full wp-image-1276" height="57" src="http://bloc.eurion.net/wp-content/uploads/2011/03/collabora-logo-175.png" title="collabora-logo-175" width="175" />&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;<img alt="" class="aligncenter size-full wp-image-1280" height="84" src="http://bloc.eurion.net/wp-content/uploads/2011/03/incuba.gif" title="incuba" width="114" />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<img alt="" class="aligncenter size-medium wp-image-1279" height="41" src="http://bloc.eurion.net/wp-content/uploads/2011/03/aarhus-computer-science-300x41.png" title="aarhus-computer-science" width="300" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;<img alt="" height="100" src="http://bloc.eurion.net/wp-content/uploads/2009/11/gnome-sponsored-badge-150x150.png" width="100" /></p>
<p>Related posts:<ol>
<li><a href='http://bloc.eurion.net/archives/2010/zeitgeist-0-5-1-released/' rel='bookmark' title='Zeitgeist 0.5.1 released!'>Zeitgeist 0.5.1 released!</a> <small>On behalf of the Zeitgeist Project team, I am pleased...</small></li>
<li><a href='http://bloc.eurion.net/archives/2011/activity-log-manager-released/' rel='bookmark' title='Activity Log Manager for Zeitgeist released!'>Activity Log Manager for Zeitgeist released!</a> <small>On behalf of the Activity Log Manager team and the...</small></li>
<li><a href='http://bloc.eurion.net/archives/2010/zeitgeist-0-3-3-is-out/' rel='bookmark' title='Zeitgeist 0.3.3 is out!'>Zeitgeist 0.3.3 is out!</a> <small>From the release announcement: On behalf of the Zeitgeist Project...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2011/zeitgeist-0-7-1-made-in-aarhus-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>On Intel AppUp, the ExoPC Slate, MeeGo and Ubuntu 10.10</title>
		<link>http://bloc.eurion.net/archives/2011/on-intel-appup-the-exopc-slate-meego-and-ubuntu-10-10/</link>
		<comments>http://bloc.eurion.net/archives/2011/on-intel-appup-the-exopc-slate-meego-and-ubuntu-10-10/#comments</comments>
		<pubDate>Sat, 19 Feb 2011 21:51:29 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[meego]]></category>
		<category><![CDATA[mwc]]></category>
		<category><![CDATA[tablet]]></category>
		<category><![CDATA[touchscreen]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=1233</guid>
		<description><![CDATA[Introduction (Intel Rocks!) Last Wednesday I attended the Intel AppUp Developer Day, a workshop where Intel employees presented the MeeGo stack and introduced Intel AppUp, a software center which will be shipping in netbooks/tablets/carputers/etc. There was also a live demo on how to design interfaces with QML and one of the Angry Birds creator said [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction (Intel Rocks!)</strong></p>
<p>Last Wednesday I attended the <a href="http://appdeveloper.intel.com/en-us/blog/2011/02/09/intel-appup-developer-program-mobile-world-congress">Intel AppUp Developer Day</a>, a workshop where Intel employees presented the MeeGo stack and introduced Intel AppUp, a software center which will be shipping in netbooks/tablets/carputers/etc. There was also a live demo on how to design interfaces with QML and one of the <a href="http://www.rovio.com/index.php?page=angry-birds">Angry Birds</a> creator said some words. Best of all, Intel was nice enough to give every participant a tablet!</p>
<p><strong>MeeGo (really alpha!)</strong></p>
<p>The ExoPC Slate came with&nbsp;Intel&#39;s new <a href="http://appdeveloper.intel.com/en-us/blog/2011/01/27/meego-tablets">tablet version of MeeGo</a>, which like its netbook counterpart seems to place great emphasis on social and multimedia uses, but it better suited for the touch screen. The system is still pre-alpha, though, and when I tried to use it lots of stuff failed to work. Asking about it at the MeeGo pavilion I was told to re-install the <a href="http://appdeveloper.intel.com/en-us/meego-sdk-suite">image</a>, which solved some of the problems. Still, I don&#39;t really see myself using it at this point, so I decided to also put Ubuntu on it.</p>
<p><strong>Installing Ubuntu</strong></p>
<p>The installation went smooth; I got a message about the bootloader not being able to be installed, but I just ignored it and had no problems. I had already left half of the 64GB SSD empty when installing MeeGo, since it uses brtfs which Ubuntu can&#39;t resize yet. Of course, I had to plug in mouse and keyboard (I used a USB hub, since the tablet only has two USB ports and one is required for the installation media). Boot is somewhat slower than what I&#39;d expect for an SSD, and sometimes shows some <a href="https://bugs.launchpad.net/ubuntu/+source/udev/+bug/647404">weird error messages</a>&nbsp;which seem to have no effect.</p>
<p>One outstanding problem is that GRUB doesn&#39;t support the touch screen (and for that matter neither does it recognize my wireless keyboard), so if I want to change between Ubuntu and MeeGo I have to plug in a normal USB keyboard.</p>
<p><strong>Getting the touch-screen to work (no multi-touch :()</strong></p>
<p>The touch-screen didn&#39;t work out of the box either but required some fiddling. Basically, I had to open /etc/default/boot and change &laquo;<em>GRUB_CMDLINE_LINUX_DEFAULT=&quot;quiet splash&quot;</em>&raquo; to &laquo;<em>GRUB_CMDLINE_LINUX_DEFAULT=&quot;quiet splash usbhid.quirks=0xeef:0x72a1:0&#215;40&quot;</em>&raquo; and run &laquo;<em>sudo update-grub</em>&raquo;, otherwise touching the screen would invariably send the pointer to the top-left. And basically, that&#39;s it, now it&#39;s working using the free drivers!</p>
<p>However, the free drivers only support a single finger. There&#39;s also the option of using the proprietary hid_egalax driver, which is supposed to correctly support tracking two fingers (and it does in MeeGo), but I didn&#39;t have so much luck in Ubuntu and functionally I don&#39;t really see a difference between them. To install it I downloaded the&nbsp;<a href="http://home.eeti.com.tw/web20/eGalaxTouchDriver/linuxDriver.htm">eGalaxTouch</a>&nbsp;tarball: <a href="http://home.eeti.com.tw/web20/drivers/touch_driver/Linux/20110117/eGalaxTouch-3.04.4912-32b-k26.tar.gz">eGalaxTouch-3.04.4912-32b-k26.tar.gz</a>. Then uncompressed the file, executed the setup script and restarted the computer. This time the result wasn&#39;t so nice, since in addition to still not doing any multi-touch, the pointer was showing up in the wrong place and somehow now the touch-screen device shows up four times. The pointer problem was easy to fix, though, by running XXXX and calibrating the four &quot;devices&quot;, so this basically left me just how I was with the free drivers.</p>
<p>Since with a single finger I have no way of triggering a right-click, I enabled the &quot;secondary click when pressing primary button&quot; accessibility option in the mouse preferences.</p>
<p><strong>Final touch (pun intended?)</strong></p>
<p>For typing I&#39;ve installed &quot;matchbox-keyboard&quot; and placed a launcher for it in the top panel. Suggestions on better alternatives are welcome (especially if they show up automatically when I focus a text box).</p>
<p>Now something I could do to at least get a little bit of coolness factor is enabling single-finger scroll support in Chromium, by installing the <a href="http://www.chromeextensions.org/appearance-functioning/chrometouch/">chromeTouch</a> extension (apparently there is also a similar extension for Firefox).</p>
<p>Finally, I disabled the key-binding for &quot;open music player&quot;, since by default the Slate&#39;s touch hot-key had been assigned to it and it kept opening Rhythmbox every time I accidentally went over the hot-key.</p>
<p><strong>References</strong></p>
<p>To wrap up this post, here&#39;s some random pages which helped me on my way here:</p>
<ul>
<li><a href="http://art.ubuntuforums.org/showthread.php?t=1541396">eGalax Touch Screen on Ubuntu 10.04</a></li>
<li><a href="http://samiux.blogspot.com/2010/11/howto-ubuntu-1010-on-gigabyte-touchnote.html">Ubuntu 10.10 on Gigabyte TouchNote T1028X</a></li>
<li><a href="http://wiki.meego.com/Installing_MeeGo_and_Handset_Images_on_ExoPC">Installing MeeGo and Handset Images on ExoPC</a></li>
<li><a href="http://ubuntuforums.org/showthread.php?t=1468376&amp;page=19">Ubuntu on EeePC T101MT</a></li>
<li><a href="http://www.exopc.com/forum/viewtopic.php?f=39&amp;t=2805#p44114">ExoPC does Ubuntu 10.10 Netbook</a></li>
<li><a href="https://help.ubuntu.com/community/EloTouchScreen">EloTouchScreen</a></li>
<li><a href="http://wiki.linuxmce.org/index.php/Egalax-Touchscreen">Egalax-TouchScreen</a></li>
<li><a href="https://wiki.ubuntu.com/X/Testing/Touchscreen">X/Testing/Touchscreen</a></li>
<li><a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/549447">Bug #549447: eGalax touch-screen configured as tablet</a></li>
</ul>
<p>Related posts:<ol>
<li><a href='http://bloc.eurion.net/archives/2009/updated-voxforge-packages-in-ubuntu/' rel='bookmark' title='Updated Voxforge packages in Ubuntu'>Updated Voxforge packages in Ubuntu</a> <small>Just a quick note today to mention that I&#8217;ve updated...</small></li>
<li><a href='http://bloc.eurion.net/archives/2009/reducing-sshs-connection-time-on-ubuntu/' rel='bookmark' title='Reducing SSH&#8217;s connection time on Ubuntu'>Reducing SSH&#8217;s connection time on Ubuntu</a> <small>If you use SSH on your local network you may...</small></li>
<li><a href='http://bloc.eurion.net/archives/2010/gnome-activity-journal-and-installing-it-on-ubuntu/' rel='bookmark' title='GNOME Activity Journal, and installing it on Ubuntu'>GNOME Activity Journal, and installing it on Ubuntu</a> <small>As already announced by Seif, the first development release of...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2011/on-intel-appup-the-exopc-slate-meego-and-ubuntu-10-10/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A list of some commercial GNU/Linux games</title>
		<link>http://bloc.eurion.net/archives/2011/a-list-of-some-commercial-gnulinux-games/</link>
		<comments>http://bloc.eurion.net/archives/2011/a-list-of-some-commercial-gnulinux-games/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 16:32:17 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[games]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=872</guid>
		<description><![CDATA[I thought I&#8217;d be nice to make a little list of some of the GNU/Linux games I&#8217;ve tried out this past year. I&#8217;ve tried to keep the list heterogeneous (different game genres, all from different producers, some freshly released and some quite older&#8230;). I&#8217;ve also decided to only include commercial games in this post; if [...]]]></description>
			<content:encoded><![CDATA[<p>I thought I&#8217;d be nice to make a little list of some of the GNU/Linux games I&#8217;ve tried out this past year. I&#8217;ve tried to keep the list heterogeneous (different game genres, all from different producers, some freshly released and some quite older&#8230;).</p>
<p>I&#8217;ve also decided to only include commercial games in this post; if it gets positive feedback I may also post a list of my favourite free games.</p>
<p>Anyway, here it goes:</p>
<table border="0">
<tbody>
<tr>
<td><a href="http://bloc.eurion.net/wp-content/uploads/2011/01/vendetta-online.png"><img class="size-medium wp-image-873 aligncenter" title="Vendetta Online" src="http://bloc.eurion.net/wp-content/uploads/2011/01/vendetta-online-300x187.png" alt="" width="300" height="187" /></a></td>
<td><strong><a href="http://vendetta-online.com/">Vendetta Online</a></strong></p>
<p>A massively multiplayer online first-person space-combat game featuring possibilities in trading, mining, combat, warfare, piracy&#8230;</p>
<p>Price: $9.99 / month (free 8 hour trial)<br />
License: Proprietary</td>
</tr>
<tr>
<td><strong><a href="http://www.wolfire.com/lugaru">Lugaru HD</a></strong></p>
<p>A third-person action game featuring a rabbit on a fight to save his fellow rabbits from slavery in a fight against corrupt rabbits and wolves.</p>
<p>Price: $9.99<br />
License: Open-source <a href="http://hg.icculus.org/icculus/lugaru/">code</a>, proprietary data<br />
<em>Humble Indie Bundle #1</em></td>
<td><a href="http://bloc.eurion.net/wp-content/uploads/2011/01/lugaru.png"><img class="aligncenter" title="Lugaru HD" src="http://bloc.eurion.net/wp-content/uploads/2011/01/lugaru-150x150.png" alt="" width="150" height="150" /></a></td>
</tr>
<tr>
<td><a href="http://bloc.eurion.net/wp-content/uploads/2011/01/andyetitmoves.png"><img class="size-medium wp-image-883 aligncenter" title="And Yet It Moves" src="http://bloc.eurion.net/wp-content/uploads/2011/01/andyetitmoves-300x182.png" alt="" width="300" height="182" /></a></td>
<td><a href="http://www.andyetitmoves.net/"><strong>And Yet It Moves</strong></a></p>
<p>A platform game in a world of paper collage you can rotate at will, turning walls into floors, slides into platforms and moving stacks of rocks (or even enemies).</p>
<p>Price: $9.99 / 8.99€<br />
License: Proprietary</td>
</tr>
<tr>
<td><strong><a href="http://www.savage2.com/">Savage 2</a></strong></p>
<p>A fantasy first-person shooter, action role-playing game (in player role) and real-time strategy (in commander role) multiplayer game.</p>
<p>Price: Free / $9.99 (Premium Account)<br />
License: Proprietary</p>
<p>See also <a href="http://www.heroesofnewerth.com/"><strong>Heroes of Newerth</strong></a>, a fantasy strategy game inspired in DotA ($30).</td>
<td><a href="http://bloc.eurion.net/wp-content/uploads/2011/01/savage2.jpg"><img class="size-thumbnail wp-image-886 aligncenter" title="Savage 2" src="http://bloc.eurion.net/wp-content/uploads/2011/01/savage2-150x150.jpg" alt="" width="150" height="150" /></a></td>
</tr>
<tr>
<td><a href="http://bloc.eurion.net/wp-content/uploads/2011/01/enemy-territory-quake-wars.jpg"><img class="aligncenter size-medium wp-image-891" title="Enemy Territory: Quake Wars" src="http://bloc.eurion.net/wp-content/uploads/2011/01/enemy-territory-quake-wars-300x225.jpg" alt="" width="300" height="225" /></a></td>
<td><strong><a href="http://www.idsoftware.com/games/enemyterritory/etqw/">Enemy Territory: Quake Wars</a></strong></p>
<p>A futuristic, objective-driven and class-based multiplayer first person shooter featuring the fight between the Earth&#8217;s Global Defense Force and the alien Strogg.</p>
<p><a href="http://www.google.com/search?q=enemy+territory+quake+wars+pc&amp;tbs=shop:1">Available at shops</a><br />
License: Proprietary</td>
</tr>
<tr>
<td><strong><a href="http://www.penumbragame.com/">Penumbra</a> (Overture, Black Plague)</strong></p>
<p>A series of exploration-based horror games.</p>
<p>Price: 16.20€ (demo available)<br />
License: Open-source <a href="http://frictionalgames.blogspot.com/2010/05/penumbra-overture-goes-open-source.html">code</a>, proprietary data</p>
<p>See also <a href="http://www.amnesiagame.com/">Amnesia: The Dark Descent</a>.</td>
<td><a href="http://bloc.eurion.net/wp-content/uploads/2011/01/penumbra-black-plague.jpg"><img class="aligncenter size-thumbnail wp-image-893" title="Penumbra: Black Plague" src="http://bloc.eurion.net/wp-content/uploads/2011/01/penumbra-black-plague-150x150.jpg" alt="" width="150" height="150" /></a></td>
</tr>
<tr>
<td><a href="http://bloc.eurion.net/wp-content/uploads/2011/01/world-of-goo.png"><img class="aligncenter size-medium wp-image-895" title="World of Goo" src="http://bloc.eurion.net/wp-content/uploads/2011/01/world-of-goo-300x224.png" alt="" width="300" height="224" /></a></td>
<td><strong><a href="http://www.worldofgoo.com/">World of Goo</a></strong></p>
<p>A physics-based puzzle game. Truly a work of art.</p>
<p>Price: $20<br />
License: Proprietary<br />
<em>Humble Indie Bundle #1 </em></td>
</tr>
<tr>
<td><strong><a href="http://www.tycoongames.eu/adventures/bionicheart.php">Bionic Heart</a></strong></p>
<p>A science-fiction visual novel with interactive scenes (you can choose between different actions which change the ending of the story).</p>
<p>Price: 12.70€ + VAT (demo available)<br />
License: Proprietary</td>
<td><a href="http://bloc.eurion.net/wp-content/uploads/2011/01/bionic-heart.png"><img class="aligncenter size-thumbnail wp-image-903" title="Bionic Heart" src="http://bloc.eurion.net/wp-content/uploads/2011/01/bionic-heart-150x150.png" alt="" width="150" height="150" /></a></td>
</tr>
<tr>
<td><a href="http://bloc.eurion.net/wp-content/uploads/2011/01/revenge-of-the-titans.jpg"><img class="aligncenter size-medium wp-image-896" title="Revenge of the Titans" src="http://bloc.eurion.net/wp-content/uploads/2011/01/revenge-of-the-titans-300x300.jpg" alt="" width="210" height="210" /></a></td>
<td><a href="http://www.puppygames.net/revenge-of-the-titans/"><strong>Revenge of the Titans</strong></a></p>
<p>A tower defense game with RTS elements.</p>
<p>Price: 10.66€ + VAT<br />
License: <a href="http://blog.wolfire.com/2010/12/Revenge-of-the-Titans-will-go-open-source-at-1-75M">Open-source code</a> (not yet available), proprietary data<br />
<em> Humble Indie Bundle #2</em></td>
</tr>
</tbody>
</table>
<p>There are many more GNU/Linux-compatible games out there. Check out the other <a href="http://www.humblebundle.com/">Humble Indie Bundle</a> games, for instance. You may also follow <a href="http://www.linuxgames.com/">LinuxGames</a> to keep up with the latest news.</p>
<p>Related posts:<ol>
<li><a href='http://bloc.eurion.net/archives/2011/debian-games-team-meeting/' rel='bookmark' title='Debian Games Team Meeting'>Debian Games Team Meeting</a> <small>This announcement was provided by Martin Erik Werner. I&#8217;m reproducing...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2011/a-list-of-some-commercial-gnulinux-games/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Debious &#8211; A dubious Debian packaging GUI</title>
		<link>http://bloc.eurion.net/archives/2010/debious-a-dubious-debian-packaging-gui/</link>
		<comments>http://bloc.eurion.net/archives/2010/debious-a-dubious-debian-packaging-gui/#comments</comments>
		<pubDate>Sat, 16 Oct 2010 12:49:50 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Debian]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[packaging]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=753</guid>
		<description><![CDATA[Just some little (unfinished) concept mockup. Seeing that much of it still ends up as a &#8220;text box with syntax highlighting&#8221; it&#8217;d probably make sense to implement it as a gedit plugin. Balsamiq source XML Related posts: Debian Games Team Meeting This announcement was provided by Martin Erik Werner. I&#8217;m reproducing... Packaging: Test-building your packages [...]]]></description>
			<content:encoded><![CDATA[<p>Just some little (unfinished) concept mockup. Seeing that much of it still ends up as a &#8220;text box with syntax highlighting&#8221; it&#8217;d probably make sense to implement it as a gedit plugin.</p>
<p style="text-align: center;"><a href="http://bloc.eurion.net/wp-content/uploads/2010/10/debious.png"></a><a href="http://bloc.eurion.net/wp-content/uploads/2010/10/debious.png"><img class="size-large wp-image-754 aligncenter" title="Debious - A dubious Debian packaging GUI" src="http://bloc.eurion.net/wp-content/uploads/2010/10/debious-1024x523.png" alt="" width="1024" height="523" /></a><a href="http://bloc.eurion.net/wp-content/uploads/2010/10/debious_balsamiq.txt">Balsamiq source XML</a></p>
<p>Related posts:<ol>
<li><a href='http://bloc.eurion.net/archives/2011/debian-games-team-meeting/' rel='bookmark' title='Debian Games Team Meeting'>Debian Games Team Meeting</a> <small>This announcement was provided by Martin Erik Werner. I&#8217;m reproducing...</small></li>
<li><a href='http://bloc.eurion.net/archives/2009/test-build-debian-packages/' rel='bookmark' title='Packaging: Test-building your packages'>Packaging: Test-building your packages</a> <small>Short version: how to test-build Debian/Ubuntu packages in a chroot...</small></li>
<li><a href='http://bloc.eurion.net/archives/2009/one-week-with-debian/' rel='bookmark' title='One week with Debian'>One week with Debian</a> <small>Jaunty was a great experience, until around a month (or...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2010/debious-a-dubious-debian-packaging-gui/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>My dot files (Tips and Tricks for Bash &amp; co.)</title>
		<link>http://bloc.eurion.net/archives/2010/bashrc-configuration-files-tips/</link>
		<comments>http://bloc.eurion.net/archives/2010/bashrc-configuration-files-tips/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 20:40:55 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[bash]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=738</guid>
		<description><![CDATA[.bashrc # If not running interactively, don't do anything [ -z "$PS1" ] &#38;&#38; return # don't put duplicate lines in the history and ignore same sucessive entries. export HISTCONTROL=ignoreboth # make the history longer HISTFILESIZE=5000 # append to the history file, don't overwrite it shopt -s histappend # check the window size after each [...]]]></description>
			<content:encoded><![CDATA[<p><strong>.bashrc</strong></p>
<pre><em># If not running interactively, don't do anything</em>
[ -z "$PS1" ] &amp;&amp; return

<em># don't put duplicate lines in the history and ignore same sucessive entries</em>.
export HISTCONTROL=ignoreboth

<em># make the history longer</em>
HISTFILESIZE=5000

<em># append to the history file, don't overwrite it</em>
shopt -s histappend

<em># check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.</em>
shopt -s checkwinsize

<em># make less more friendly for non-text input files, see lesspipe(1)</em>
[ -x /usr/bin/lesspipe ] &amp;&amp; eval "$(SHELL=/bin/sh lesspipe)"

case "$TERM" in
xterm*|rxvt*|screen)
    #PS1='\[\e[1;34m\][\u, \W]\$ \[\e[m\]'
    # <a href="http://live.gnome.org/Git/Tips">http://live.gnome.org/Git/Tips</a>, <a href="http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html">http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html</a>
    <strong>PS1</strong>='\[\e[1;34m\][\u, \W$(__git_ps1 "(\[\e[1;30m\]%s\[\e[m\]\[\e[1;34m\])")]\$ \[\e[m\]'
    ;;
*)
    ;;
esac

<em># enable color support of ls and also add handy aliases</em>
if [ -x /usr/bin/dircolors ]; then
    eval "`dircolors -b`"
    alias ls='ls --color=auto'
fi

shopt -s cdspell
shopt -s cmdhist

<em># enable programmable completion features</em>
if [ -f /etc/bash_dyncompletion ]; then
    . <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=467231#5">/etc/bash_dyncompletion</a>
elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

. ~/.bash_aliases

export PATH=$PATH:/sbin:/usr/sbin:/home/rainct/bin:/home/rainct/.local/bin
export DEBFULLNAME="Siegfried-Angel Gevatter Pujals"
export DEBSIGN_KEYID="363DEAE3"
export DEB_MAINTAINER_MODE=1
export <a href="http://manpages.ubuntu.com/pbuilder-dist">PBUILDFOLDER</a>="/home/rainct/pbuilder"
export QUILT_PATCHES=debian/patches
export GREP_OPTIONS='--color=auto --exclude-dir=\.svn'
export EDITOR=nano

<em># This also needs an entry in .devscript:
# DEBUILD_PRSERVE_ENVVARS=DPKG_GENSYMBOLS_CHECK_LEVEL</em>
export DPKG_GENSYMBOLS_CHECK_LEVEL=4</pre>
<p><span id="more-738"></span></p>
<p><strong>.bash_aliases</strong></p>
<pre>alias sh='<a href="http://manpages.ubuntu.com/rlwrap">rlwrap</a> sh'
alias dash='rlwrap dash'
alias perl='rlwrap perl'

alias sl='ls'
alias geany='ex geany'
alias glade='ex glade-3'
alias dpkg-build='dpkg-buildpackage'

alias <strong>go</strong>='gnome-open'
alias apt-break-lock='sudo rm -f /var/lib/dpkg/lock; sudo rm -f /var/lock/aptitude;'
alias get-ppa-key='sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com '
alias caff='caff -m yes'
alias svn-buildpackage='svn-buildpackage --svn-ignore'

<strong>ex</strong>() {
	nohup "$@" &gt;/dev/null 2&gt;&amp;1 &lt;&amp;1 &amp; disown %%
}

<strong>getdir</strong>() {
	if [ ! $1 ]; then
		echo "Usage: getdir "
	else
		if [ ! -e $1 ]; then mkdir -p $1; fi
		cd $1
	fi
}

<strong>getsrc</strong>() {
	if [ ! $1 ]; then
		echo "Usage: getsrc "
	else
		getdir $1
		apt-get source $1
	fi
}</pre>
<p><strong>.inputrc</strong> (<a href="http://blog.lynxworks.eu/2010/09/bash/">source</a>)</p>
<pre>"\e[A":history-search-backward
"\e[B":history-search-forward</pre>
<p><strong>.bazaar/bazaar.conf</strong></p>
<pre>...
[ALIASES]
log = log --git</pre>
<p><strong>.gitconfig</strong></p>
<pre>...
[url "ssh://sgevatter@git.gnome.org/git/"]
	insteadof = gnome:
[color]
	ui = auto</pre>
<p><strong>.ssh/config</strong></p>
<pre>...

Host *.debian.org
  User rainct-guest

Host git.gnome.org
    User sgevatter
    Compression yes
    CompressionLevel 3</pre>
<hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2010/bashrc-configuration-files-tips/#comments">5 comments</a><br />
© Siegfried-Angel Gevatter Pujals, 2010. |
<a href="http://bloc.eurion.net/archives/2010/bashrc-configuration-files-tips/">Permalink</a> |
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">License</a> |
Post tags: <a href="http://bloc.eurion.net/archives/tag/bash/" rel="tag">bash</a><br/>
</small></p><p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2010/bashrc-configuration-files-tips/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Language Identification and it&#8217;s state in Free Software</title>
		<link>http://bloc.eurion.net/archives/2010/language-identification-and-free-software/</link>
		<comments>http://bloc.eurion.net/archives/2010/language-identification-and-free-software/#comments</comments>
		<pubDate>Sat, 25 Sep 2010 20:17:06 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Debian]]></category>
		<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[language identification]]></category>
		<category><![CDATA[Programari lliure]]></category>
		<category><![CDATA[text categorization]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=732</guid>
		<description><![CDATA[Working on a new feature for eSpeak GUI I started looking into language identification. Forcing users to manually choose the text&#8217;s language is a botheration, so trying to guess it by checking which system dictionary contains the most words from the text or some other method would surely be beneficial. After a quick search I [...]]]></description>
			<content:encoded><![CDATA[<p>Working on a new feature for <a href="https://launchpad.net/espeak-gui">eSpeak GUI</a> I started looking into <a href="http://en.wikipedia.org/wiki/Language_identification">language identification</a>. Forcing users to manually choose the text&#8217;s language is a <abbr title="Or, in other words, a PITA">botheration</abbr>, so trying to guess it by checking which <a href="http://packages.debian.org/sid/wcatalan">system dictionary</a> contains the most words from the text or some other method would surely be beneficial.</p>
<p>After a quick search I learned that it&#8217;s much easier than this: it&#8217;s possible to reliably <a href="http://scholar.google.com/scholar?as_q=&amp;as_epq=N+Gram+Based+Text+Categorization&amp;as_sauthors=WB+Cavnar&amp;as_ylo=1994">determine the language based on statistic n-gram information</a>. Ignoring the fact that now I officially hate Firefox, Chromium, OpenOffice.org and everyone else there for not implementing this and having me spend the day changing the spell-checker&#8217;s language, I was left with the choice on how to use this in <a href="https://launchpad.net/espeak-gui">eSpeak GUI</a>.</p>
<p>The first option I found was <a href="http://www.let.rug.nl/~vannoord/TextCat/">TextCat</a>, which is also the only library I&#8217;ve found to be <a href="http://packages.debian.org/source/sid/libtextcat">packaged</a> for Debian. However, ignoring the fact that upstream isn&#8217;t maintaining it any more (such a library shouldn&#8217;t need too much maintainance, after all), the package declares incorrect dependencies (<a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=593897">bug filled</a> a month ago, no response yet) and the API is also pretty crappy (it requires a physical file indicating the location of the statistic models).</p>
<p>Unrelated to that, I&#8217;ve also found that the Catalan text samples it includes are <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=593897">incorrect</a>, so the same may be true for other languages. I guess it&#8217;d make sense to work on a new (and completely Unicode) language samples collection. I&#8217;ve thought of using something like the <a href="http://www.ohchr.org/EN/UDHR/Pages/SearchByLang.aspx">Universal Declaration of Human Rights</a> since this way all languages can have the same text, but being more of a legal thing it may be biased by some words being too repetitive.</p>
<p>Looking for other alternatives to the TextCat library I&#8217;ve only found the following:</p>
<ul>
<li><a href="http://gitorious.org/textcat">TextCat</a> (same name, different code): PHP licensed, so incompatible with GPL projects.</li>
<li><a href="http://freshmeat.net/projects/mguesser/">Mguesser</a> (part of <a href="http://packages.debian.org/sid/mnogosearch-mysql">mnogosearch-mysql</a>): it&#8217;s a standalone executable and not a library.</li>
<li>SpamAssassin&#8217;s <a href="http://spamassassin.apache.org/full/3.1.x/doc/Mail_SpamAssassin_Plugin_TextCat.html">TextCat.pm</a>: also a standalone executable, this time written in Perl. Apparently they were using a fork of TextCat (the original library, not the PHP licensed one) before that.</li>
</ul>
<p>So it looks like I&#8217;ll have to start by getting a good collection of text samples I can use to generate the statistic data. Then I have several options on how to actually use it. As I see it, those are my possibilities:</p>
<ol>
<li>Fixing <a href="http://packages.debian.org/source/sid/libtextcat">libtextcat</a>&#8216;s packaging and just <a href="http://bazaar.launchpad.net/~rainct/espeak-gui/trunk/annotate/head:/src/language.py">using</a> that.</li>
<li>Taking it over as new upstream maintainer. Not my preferred option as I don&#8217;t really feel like maintaining a C library at this point.</li>
<li>Trying to convince the maintainer of the new TextCat (with last commit January this year and a more sane API) to re-license it in a GPL-compatible way, packaging that and seeing how that one works (haven&#8217;t tried it out yet).</li>
<li>Writing my own implementation in Python, maybe based upon <a href="http://ling.unizd.hr/~dcavar/LID/">this example</a> or <em>TextCat.pm</em>.</li>
</ol>
<p>Any other ideas, pointers to some library I may have missed or offers to collaborate are very welcome. Please also note that my intention in writing this post is not only to rant about there being no well-maintained ready-to-use library being available, but especially raising awareness on the topic of language identification. I&#8217;d love to see this feature all around the desktop, just like (and in combination with) spell-checking, which is already omnipresent.</p>
<hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2010/language-identification-and-free-software/#comments">11 comments</a><br />
© Siegfried-Angel Gevatter Pujals, 2010. |
<a href="http://bloc.eurion.net/archives/2010/language-identification-and-free-software/">Permalink</a> |
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">License</a> |
Post tags: <a href="http://bloc.eurion.net/archives/tag/language-identification/" rel="tag">language identification</a>, <a href="http://bloc.eurion.net/archives/tag/programari-lliure/" rel="tag">Programari lliure</a>, <a href="http://bloc.eurion.net/archives/tag/text-categorization/" rel="tag">text categorization</a><br/>
</small></p><p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2010/language-identification-and-free-software/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>The Red Hat Way</title>
		<link>http://bloc.eurion.net/archives/2010/video-red-hat-way/</link>
		<comments>http://bloc.eurion.net/archives/2010/video-red-hat-way/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 21:28:08 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[commercial]]></category>
		<category><![CDATA[guadec]]></category>
		<category><![CDATA[Programari lliure]]></category>
		<category><![CDATA[Red Hat]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=728</guid>
		<description><![CDATA[I&#8217;ve just used one of the GUADEC USB sticks for the first time and found that, in addition to several PDF brochures and a bunch of wallpapers, it includes a Red Hat commercial. Excellent as always. http://www.youtube.com/watch?v=ySyPIoyXJ-k Related posts: Obtenir vídeos del YouTube en format .ogg (en Linux) Actualització:  He creat un programa amb interfície [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just used one of the <a href="http://www.guadec.org/index.php/guadec/2010">GUADEC</a> <a href="http://www.flickr.com/photos/qense/4835366489/">USB sticks</a> for the first time and found that, in addition to several PDF brochures and a bunch of wallpapers, it includes a Red Hat commercial. Excellent as always.</p>
<p style="text-align: center;">
<p><a href="http://www.youtube.com/watch?v=ySyPIoyXJ-k">http://www.youtube.com/watch?v=ySyPIoyXJ-k</a></p></p>
<p>Related posts:<ol>
<li><a href='http://bloc.eurion.net/archives/2007/obtenir-videos-del-youtube-en-format-ogg-en-linux/' rel='bookmark' title='Obtenir vídeos del YouTube en format .ogg (en Linux)'>Obtenir vídeos del YouTube en format .ogg (en Linux)</a> <small>Actualització:  He creat un programa amb interfície gràfica per a...</small></li>
<li><a href='http://bloc.eurion.net/archives/2010/yet-another-guadec-post/' rel='bookmark' title='Yet another GUADEC post'>Yet another GUADEC post</a> <small>I haven&#8217;t blogged for quite a few weeks, so I...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2010/video-red-hat-way/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zeitgeist 0.5.1 released!</title>
		<link>http://bloc.eurion.net/archives/2010/zeitgeist-0-5-1-released/</link>
		<comments>http://bloc.eurion.net/archives/2010/zeitgeist-0-5-1-released/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 22:22:35 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Programari lliure]]></category>
		<category><![CDATA[zeitgeist]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=687</guid>
		<description><![CDATA[On behalf of the Zeitgeist Project team, I am pleased to announce the immediate availability of Zeitgeist 0.5.1. What is Zeitgeist? Zeitgeist is an event-logging framework for desktop and mobile devices. Applications can push events into the log, and anyone can query the log via the rich query API. The logged events are semantically categorized [...]]]></description>
			<content:encoded><![CDATA[<p>On behalf of the <a href="https://launchpad.net/zeitgeist-project">Zeitgeist Project</a> team, I am pleased to announce the <a href="http://lists.zeitgeist-project.com/pipermail/dev/2010-September/000151.html">immediate availability of Zeitgeist 0.5.1</a>.</p>
<p><strong>What is Zeitgeist?</strong></p>
<p>Zeitgeist is an event-logging framework for desktop and mobile devices. Applications can push events into the log, and anyone can query the log via the rich query API. The logged events are semantically categorized and can come from any sort of activity, such as file usage, communications, browsing history, etc.</p>
<p>The Zeitgeist engine is a user-level service and does not provide a GUI. It is intended to support dedicated journalling applications and deep integration with other desktop components.</p>
<p><strong>Where?</strong></p>
<p>Downloads: <a href="https://launchpad.net/zeitgeist/+download">https://launchpad.net/zeitgeist/+download</a> (<a href="http://edge.launchpad.net/zeitgeist/0.5/0.5.1/+download/zeitgeist-0.5.1.tar.gz">zeitgeist-0.5.1.tar.gz</a>)</p>
<p>About Zeitgeist: <a href="http://zeitgeist-project.com">http://zeitgeist-project.com</a><br />
Wiki: <a href="http://live.gnome.org/Zeitgeist">http://live.gnome.org/Zeitgeist</a></p>
<p><strong>News since 0.5.0</strong></p>
<pre>2010-09-09: <strong>Zeitgeist 0.5.1</strong> "Spongebob is <a href="https://launchpad.net/~thekorn">not</a> funny"

Engine:

- Don't use the return value of Extension.post_insert_event() when
dispatching the post insert hooks. The post_insert_event() method
has no return value.
- Initialize ZeitgeistEngine after RemoteInterface, so that --replace
does its job before the main engine and extensions start (LP: #614315).
- Added support for queries on the Subject.Storage field of an Event
(LP: #580364).
- Some optimizations in the find_events() method. Also the profiling
data is much more useful.

Python API:

- Check arguments of Event.new_for_values() and Subject.new_for_values()
(LP: #580372).
- Redefined the result of TimeRange.always(), UNIX timestamp "0" is now
the left corner of the interval (LP: #614295).
- Added a new helper module called zeitgeist.mimetypes which basically
provides two functions (LP: #586524):
* get_interpretation_for_mimetype(), which tries to get a suitable
interpretation for a given mime-type.
* get_manifestation_for_uri(), which tries to lookup a manifestation
for the given URI.
- The DataSource model now provides easy access to the information it
holds through properties.

Overall:

- The tool to build our ontology now supports rdflib2 and rdflib3
(LP: #626224).
- Added "make check" and "make doc" commands to the rootlevel Makefile
(LP: #628661)
- Translation updates.
- Updated test suite.
- Documentation updates.
</pre>
<p>Related posts:<ol>
<li><a href='http://bloc.eurion.net/archives/2011/zeitgeist-0-7-1-made-in-aarhus-released/' rel='bookmark' title='Zeitgeist 0.7.1 &#8220;Made in Aarhus&#8221; released!'>Zeitgeist 0.7.1 &#8220;Made in Aarhus&#8221; released!</a> <small>On behalf of the Zeitgeist team I am proud to...</small></li>
<li><a href='http://bloc.eurion.net/archives/2011/activity-log-manager-released/' rel='bookmark' title='Activity Log Manager for Zeitgeist released!'>Activity Log Manager for Zeitgeist released!</a> <small>On behalf of the Activity Log Manager team and the...</small></li>
<li><a href='http://bloc.eurion.net/archives/2010/zeitgeist-0-3-3-is-out/' rel='bookmark' title='Zeitgeist 0.3.3 is out!'>Zeitgeist 0.3.3 is out!</a> <small>From the release announcement: On behalf of the Zeitgeist Project...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2010/zeitgeist-0-5-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Experiments with image recognition</title>
		<link>http://bloc.eurion.net/archives/2010/experiments-with-image-recognition/</link>
		<comments>http://bloc.eurion.net/archives/2010/experiments-with-image-recognition/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 15:47:19 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[color recognition]]></category>
		<category><![CDATA[computer vision]]></category>
		<category><![CDATA[image recognition]]></category>
		<category><![CDATA[opencv]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=636</guid>
		<description><![CDATA[It&#8217;s summer, which means: I&#8217;ve got time for some crazy experiments! As you may know, two years ago I played around with voice recognition. My original idea for this summer was to do some robotics stuff, but unfortunately I&#8217;ve had problems getting the serial connection to work. But don&#8217;t worry, because I&#8217;ve found something else to do. [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s summer, which means: I&#8217;ve got time for some crazy experiments! As you may know, two years ago I played around with <a href="http://bloc.eurion.net/archives/2008/writing-a-command-and-control-application-with-voice-recognition/">voice recognition</a>. My original idea for this summer was to do some <a href="http://picasaweb.google.com/siggi.gevatter/RoboticsCourse">robotics</a> stuff, but unfortunately I&#8217;ve had problems getting the serial connection to work. But don&#8217;t worry, because I&#8217;ve found something else to do. I noticed a nice red box lying around in my room, so I thought: «let&#8217;s see how difficult it is to get my computer to <em>see</em> it».</p>
<p>For extra fun, I also decided to impose two rules: no reading up on existing algorithms or «weird maths» (I&#8217;ll have enough time for this when I study Computer Vision at <a href="http://www.fib.upc.edu/en.html">university</a>), and no «magic» (ie., implementing everything myself and not using existing functions for edge detection or whatever).</p>
<p><a href="http://www.youtube.com/watch?v=5q1gkTo84LY"><img class="size-full wp-image-639 alignright" title="Screenshot of the first video" src="http://bloc.eurion.net/wp-content/uploads/2010/08/first-video.png" alt="" width="200" height="140" /></a></p>
<p><strong>First steps</strong></p>
<p>Of course, my first choice for trying this was Python, so I installed <a href="http://www.pythonware.com/products/pil/">PIL</a> and <a href="http://www.scipy.org/">SciPy</a>, and took a photo of the box. With just a function call, they give me access to each pixel&#8217;s <a href="http://en.wikipedia.org/wiki/RGB_color_model">RGB</a> value, so it&#8217;s really easy to have it change all points that aren&#8217;t red into black and other funny stuff.</p>
<p>However, iterating through all the pixels in the image was quite slow (in the order of several seconds) so I decided to switch to C and <a href="http://opencv.willowgarage.com/wiki/">OpenCV</a>, which turned out to be really nice to work with. After a while I had <a href="http://bazaar.launchpad.net/~rainct/%2Bjunk/color-recognition/annotate/6/recognition.c">written down</a> the first algorithm I could think of, and it kinda worked (see video at right). I want to thank <a href="http://mhr3.blogspot.com">Michal</a> for the idea of converting the image to the <a href="http://en.wikipedia.org/wiki/HSL_and_HSV">HSV colour space</a> for colour checking.</p>
<p><strong>Noise reduction</strong></p>
<div class="mceTemp">
<dl id="attachment_649" class="wp-caption alignleft" style="width: 160px;">
<dt class="wp-caption-dt"><a href="http://bloc.eurion.net/wp-content/uploads/2010/08/isolated-pixel-correction.png"><img class="size-thumbnail wp-image-649" title="Pixel Correction" src="http://bloc.eurion.net/wp-content/uploads/2010/08/isolated-pixel-correction-150x150.png" alt="" width="150" height="150" /></a></dt>
</dl>
</div>
<p>After I had a first success, I worked on some new multi-pass code with lots of loops to see if I can get some noise reduction. I started by turning everything which isn&#8217;t detected as red into black so that I get a better overview of what&#8217;s going on. Then I improved this to let it find non-matching pixels surrounded by red ones (on the top and the left they must be adjacent, but on the right and bottom the nearest red may be some distance away; this works even for groups of pixels since the image is processed from left to right and from top to bottom). Finally, I added some more code to remove any little group of red pixels surrounded by non-matching ones. The effect of this will be seen later.</p>
<div class="mceTemp">
<dl id="attachment_642" class="wp-caption alignright" style="width: 160px;">
<dt class="wp-caption-dt"><a href="http://bloc.eurion.net/wp-content/uploads/2010/08/evening.png"><img class="size-thumbnail wp-image-642 " title="Noise reduction at night" src="http://bloc.eurion.net/wp-content/uploads/2010/08/evening-150x150.png" alt="" width="150" height="150" /></a></dt>
</dl>
</div>
<p><strong>Illumination</strong></p>
<p>For some reason the detection gets mad if there is artificial light (or maybe it&#8217;s just that I haven&#8217;t found the right colour values to check for). No light at all (except for that of the computer screens) works better -after reducing the minimum levels of saturation and brightness I was checking for-, but it gives a lot of noise. My first program therefore fails miserably under such conditions.</p>
<p>However, now that I have the noise reduction this is no longer a problem. See by yourself: <em>image at right</em>. (The really bright points are those which didn&#8217;t match but have been converted to red since they are surrounded).</p>
<p><strong>Second try at box detection</strong></p>
<p>I could just have put my previous box detection algorithm on top of it, but I decided to make use of the fact that the noise reduction is successfully removing everything except for the box. Thus, instead of searching for red lines likes before I just localize the left-most, right-most, highest and lowest red points.</p>
<p>Using those four points, I calculate the centre of the box (and I could also reliably determine the position of the four corners, if I added some more code to find whether the box is horizontally aligned or not).</p>
<p>Finally I calculate the relative movement of the centre point and this way I can control a pointer (bottom right of the video). Here we go:</p>
<p style="text-align: center;">
<p><a href="http://www.youtube.com/watch?v=y8qgiTQfuJE">http://www.youtube.com/watch?v=y8qgiTQfuJE</a></p>
</p>
<p style="text-align: center;">(And it works as well <a href="http://bloc.eurion.net/wp-content/uploads/2010/08/3views-night.png">at night</a>! -<a href="http://bazaar.launchpad.net/~rainct/%2Bjunk/color-recognition/annotate/22/isolate.c"> Code is here</a>)</p>
<hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2010/experiments-with-image-recognition/#comments">6 comments</a><br />
© Siegfried-Angel Gevatter Pujals, 2010. |
<a href="http://bloc.eurion.net/archives/2010/experiments-with-image-recognition/">Permalink</a> |
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">License</a> |
Post tags: <a href="http://bloc.eurion.net/archives/tag/color-recognition/" rel="tag">color recognition</a>, <a href="http://bloc.eurion.net/archives/tag/computer-vision/" rel="tag">computer vision</a>, <a href="http://bloc.eurion.net/archives/tag/image-recognition/" rel="tag">image recognition</a>, <a href="http://bloc.eurion.net/archives/tag/opencv/" rel="tag">opencv</a><br/>
</small></p><p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2010/experiments-with-image-recognition/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Yet another GUADEC post</title>
		<link>http://bloc.eurion.net/archives/2010/yet-another-guadec-post/</link>
		<comments>http://bloc.eurion.net/archives/2010/yet-another-guadec-post/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 13:14:38 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[guadec]]></category>
		<category><![CDATA[zeitgeist]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=599</guid>
		<description><![CDATA[I haven&#8217;t blogged for quite a few weeks, so I guess it&#8217;s time I revive my blog, and what better way to do this than writing about how awesome GUADEC was? :) Saturday 25 I went to the Barcelona airport to take a plane at twelve. The plane started almost two hours later because part [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-thumbnail wp-image-432" title="gnome-sponsored-badge" src="http://bloc.eurion.net/wp-content/uploads/2009/11/gnome-sponsored-badge-150x150.png" alt="gnome-sponsored-badge" width="150" height="150" /></p>
<p>I haven&#8217;t blogged for quite a few weeks, so I guess it&#8217;s time I revive my blog, and what better way to do this than writing about how awesome <a href="http://2010.guadec.org/">GUADEC</a> was? :)</p>
<p><strong>Saturday 25</strong></p>
<p>I went to the Barcelona airport to take a plane at twelve. The plane started almost two hours later because part of the airport was closed for inspection or something, but I finally arrived at Amsterdam. There I took a train to Den Haag and after half an hour of enjoying the green view through the window I arrived at Central Station.</p>
<p>Ten minutes later I entered <a href="http://www.accorhotels.com/gb/hotel-1317-mercure-den-haag-central/index.shtml">the hotel</a> and found Clemens and the others from <a href="http://inventedhere.de/">invented here</a>. We went to <a href="http://revspace.nl/">RevSpace</a> for a while. There wasn&#8217;t much going on (the <a href="http://www.gnu.org/ghm/2010/denhaag/">GNU Hackers meeting</a> was already over), but I think the place is pretty cool. Too bad there seems to be no<a href="http://hackerspaces.org/"> hackerspace</a> in Barcelona&#8230;</p>
<p>After a while we went out for dinner, and sitting at the restaurant we found <a href="http://www.vuntz.net/">Vincent</a>. Back at the hotel I had a drink with some Canonical folks, and finally I went to sleep and discovered who my room mate would be: <a href="http://identi.ca/jjmarin">Juanjo</a>.</p>
<p><strong>Monday 26 &amp; Tuesday 27<br />
</strong></p>
<p>On Monday I went to the <a href="http://inventedhere.de/the-first-two-guadec-open-design-thinking-workshops">design thinking workshop</a> out of curiosity for what that&#8217;d be, and it turned out to be an interesting experience. I&#8217;d have preferred if they had chosen another topic, though, since &#8220;<em>How might we simplify the handling of digital information?</em>&#8221; is something I&#8217;ve been <a href="http://zeitgeist-project.com">working on</a> and thinking about for the past year so I have my mind pretty much made up on this topic.</p>
<p>I met several Google <a href="http://perditusinventusque.blogspot.com/2010/05/gnome-shell-message-tray.html">Summer</a> <a href="https://launchpad.net/~hmpoumpouka">of</a> <a href="http://freesteph.info/">Code</a> <a href="http://attente.ca/">students</a> and the GNOME Shell team, I infiltrated myself into the GSoC dinner and participated in the soccer match Tuesday evening.</p>
<p><strong>Wednesday 28</strong></p>
<p><a href="http://guadec.org/index.php/guadec/2010/schedConf/program">Wednesday</a>, my first GUADEC starts! Opening talk, Web, Who makes GNOME, State of GNOME Shell, Shell Yes!, GNOME: <a href="http://guadec.org/index.php/guadec/2010/paper/view/12">State of the Union</a> (most funny talk ever), Crypto, Clutter, Clutter.</p>
<p>See <a href="http://guadec.org/index.php/guadec/index/announcement/view/23">the GUADEC blog</a> and Steph&#8217;s <a href="http://freesteph.info/post2010/07/27/First-day-at-GUADEC">blog</a> <a href="http://freesteph.info/post/2010/07/28/The-coolest-roadmap-I-ve-seen">posts</a> for more details.</p>
<p>Once the venue closed I went with Will and Steph to the Canonical party and <a title="don't ask :P"><em>eventually</em></a> we arrived there.</p>
<p><strong>Thursday 29</strong></p>
<p>After just five hours of needed sleep I had <a href="http://seilo.geekyogre.com/">Seif</a> on the phone waking me up. He and <a href="http://reflaction.info/">Thorsten</a> had just arrived, and we started working on the slides for our talk. I went to the Haagse Hogeschool and assisted to part of Emmanuele&#8217;s &#8220;So you think you can release?&#8221; talk. Then, after <a href="http://kakaroto.homelinux.net/">Youness</a> joined us, we finished this: <a href="http://bloc.eurion.net/wp-content/uploads/2010/07/Zeitgeist-Slides-GUADEC-2010.pdf">Zeitgeist Slides &#8211; GUADEC 2010</a>, and finally it was time for our presentation where we talked about the state of <a href="http://zeitgeist-project.com">Zeitgeist</a> and introduced <a href="http://gitorious.org/teamgeist">Teamgeist</a>.</p>
<p>I attended several other talks (JavaScript, How a Free Desktop can help -and hinder- Free Speech, GNOME 3 and Your Application and Malware threats to a Linux Desktop by Thorsten Sick), and finally there was a GNOME Shell dinner at an Indian place. After that we all went to the Collabora Beach Party until they started closing up.</p>
<p>See also: <a href="http://guadec.org/index.php/guadec/index/announcement/view/24">GUADEC blog</a>, <a href="http://freesteph.info/post/2010/07/29/Second-day-at-GUADEC">Steph&#8217;s blog</a>.</p>
<p><strong>Friday 30</strong></p>
<p><a href="http://blogs.gnome.org/abustany/">Adrien</a> familiarized us with his work making it easy to <a href="http://guadec.org/index.php/guadec/2010/paper/view/83">making GNOME more connected</a> by accessing online information through Tracker, there was more talk about how we need to embrace the web (using web technologies for easier development and also integrating online data into our applications was a very recurring topic all along GUADEC), Fabrice Mous keynote gave me another example of how governments suck at throwing money around, there was a talk on the future of Cairo and finally Danilo talked about Launchpad.</p>
<p>GUADEC closed with the announcement that the next Desktop Summit will be in Berlin (cool, maybe I&#8217;ll get to see the <a href="http://www.c-base.org/">c-base</a> then?) and after helping clean up the kilometric mess of network cables (btw, kudos to everyone who helped organizing GUADEC &#8211; you guys rock!) I headed to the RevSpace again for the afterparty for ice cream and many games of pinball! On the way back to the hotel <a href="http://blogs.gnome.org/otte/2010/07/30/highlights-of-guadec-2010/">Benjamin</a> explained me his secret plans for breaking GNOME.</p>
<p>Again, more <a href="http://guadec.org/index.php/guadec/index/announcement/view/26">here</a> and <a href="http://freesteph.info/post/2010/07/30/Final-day-at-GUADEC">here</a>.</p>
<p><strong>Satuday 31<br />
</strong></p>
<p>Slept until late, hanged around in the hotel lobby for some hours with some other guys (I also passed by RevSpace to see if I could find anyone there, no luck) and finally I took the train back to Amsterdam, ate something there, and for a change I had to wait one hour for the plane to arrive. I&#8217;m back in normal life now, but the next GUADEC is only one year away :).</p>
<p>Related posts:<ol>
<li><a href='http://bloc.eurion.net/archives/2010/video-red-hat-way/' rel='bookmark' title='The Red Hat Way'>The Red Hat Way</a> <small>I&#8217;ve just used one of the GUADEC USB sticks for...</small></li>
<li><a href='http://bloc.eurion.net/archives/2010/gnome-activity-journal-and-installing-it-on-ubuntu/' rel='bookmark' title='GNOME Activity Journal, and installing it on Ubuntu'>GNOME Activity Journal, and installing it on Ubuntu</a> <small>As already announced by Seif, the first development release of...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2010/yet-another-guadec-post/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Zeitgeist 0.3.3 is out!</title>
		<link>http://bloc.eurion.net/archives/2010/zeitgeist-0-3-3-is-out/</link>
		<comments>http://bloc.eurion.net/archives/2010/zeitgeist-0-3-3-is-out/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 14:28:46 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[Programari lliure]]></category>
		<category><![CDATA[zeitgeist]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=560</guid>
		<description><![CDATA[From the release announcement: On behalf of the Zeitgeist Project team, I am pleased to announce the immediate availability of Zeitgeist 0.3.3. It introduces an improved relationship algorithm, new sorting types for queries, a data-source registry (providing the possibility of easily disabling individual loggers) and several bug fixes and other enhancements. What is Zeitgeist? Zeitgeist [...]]]></description>
			<content:encoded><![CDATA[<p>From the <a href="https://edge.launchpad.net/zeitgeist/+announcement/5642">release announcement</a>:</p>
<p>On behalf of the Zeitgeist Project team, I am pleased to announce the immediate availability of Zeitgeist 0.3.3. It introduces an improved relationship algorithm, new sorting types for queries, a <a href="http://bloc.eurion.net/archives/2010/zeitgeist-data-source-registry/">data-source registry</a> (providing the possibility of easily disabling individual loggers) and several bug fixes and other enhancements.</p>
<p><strong>What is Zeitgeist?</strong></p>
<p>Zeitgeist is an event-logging framework for desktop and mobile devices. Applications can push events into the log, and anyone can query the log via the rich query API. The logged events are semantically categorized and can come from any sort of activity, such as file usage, communications, browsing history, etc. The Zeitgeist engine is a user-level service and does not provide a GUI. It is intended to support dedicated journalling applications and deep integration with other desktop components.</p>
<p><strong>Where?</strong></p>
<p>Downloads: <a href="https://launchpad.net/zeitgeist/+download">https://launchpad.net/zeitgeist/+download</a> (<a href="http://edge.launchpad.net/zeitgeist/0.3/0.3.3/+download/zeitgeist-0.3.3.tar.gz">zeitgeist-0.3.3.tar.gz</a>)</p>
<p>About Zeitgeist: <a href="http://zeitgeist-project.com">http://zeitgeist-project.com</a></p>
<p>Wiki: <a href="http://live.gnome.org/Zeitgeist">http://live.gnome.org/Zeitgeist</a></p>
<p><strong>News since 0.3.2</strong></p>
<pre>Engine:

- Added MostPopularActor, LeastPopularActor, MostRecentActor and
LeastRecentActor as possible ReturnTypes for FindEvents and
FindEventsId (LP: #493903).
- Let {Find,Get,Insert}* hooks know the bus name of the caller, when
executed over D-Bus.
- Add an extension implementing a data-source registry (allowing to disable
data-sources from a centralized place and see their description).
- Overhauled FindRelatedUris for better results and improved performance.
- Changed FindEvents, FindEventIds and FindRelatedUris to not treat zeros in
the given TimeRange specially; "(0, 0)" can no longer be used (LP: #490242).
- Fixed a crash in the GtkRecentlyUsed data-source parsing malfored .desktop
files (LP: #526357), and added support for more file mimetypes (LP: #510761).
- Fixed a crash in the GtkRecentlyUsed data-source trying to read broken
symlinks disguised as .desktop files (LP: #523761).
- Fixed a crash in the GtkRecentlyUsed data-source which happened when there
was no display friendly version of a URI (LP: #531793).
- Renamed --no-passive-loggers option to --no-datahub. Output printed by
zeitgeist-datahub is no longer visible in zeitgeist-daemon's output.
- Added --log-level option to change the output verbosity.
- DeleteEvents now correctly removes any unreferenced values (URIs, actors,
etc.) and not only the events themselves (LP: #491646).
- Fixed insertion of events with a payload (LP: #557708).
- Fixed an exception in DeleteEvents.
- Fixed event deletions not always getting committed (LP: #566184).
- Ignore deletion requests for non-existant events.

Python API:
- Made the Interpretation and Manifestation classes iterable.
- Added symbol lookup by URI, in the form of dictionary access.
- Fixed the display name for Interpretation.SOURCECODE.
- Fixed find_events_for_values and find_event_ids_for_values (LP: #510804).
- Added a get_extension() method to ZeitgeistDBusInterface, to get convenient
access to D-Bus interfaces provided by engine extensions.

Overall:
- More fixes and code enhancements.
- Manpage updates.
- Translation updates.
</pre>
<p>Related posts:<ol>
<li><a href='http://bloc.eurion.net/archives/2010/zeitgeist-data-source-registry/' rel='bookmark' title='Zeitgeist Data-Source Registry'>Zeitgeist Data-Source Registry</a> <small>This post is about an upcoming feature in Zeitgeist 0.3.3...</small></li>
<li><a href='http://bloc.eurion.net/archives/2009/here-is-zeitgeist-0-2-1/' rel='bookmark' title='Here is Zeitgeist 0.2.1!'>Here is Zeitgeist 0.2.1!</a> <small>One month after the first Zeitgeist release (0.2), here is...</small></li>
<li><a href='http://bloc.eurion.net/archives/2010/zeitgeist-0-5-1-released/' rel='bookmark' title='Zeitgeist 0.5.1 released!'>Zeitgeist 0.5.1 released!</a> <small>On behalf of the Zeitgeist Project team, I am pleased...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2010/zeitgeist-0-3-3-is-out/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Automatic music rating</title>
		<link>http://bloc.eurion.net/archives/2010/automatic-music-rating/</link>
		<comments>http://bloc.eurion.net/archives/2010/automatic-music-rating/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 19:59:20 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[zeitgeist]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=553</guid>
		<description><![CDATA[The problem I like listening to music while I&#8217;m programming. However, I have lots of music on my computer and I don&#8217;t really like all of it (or find it appropriate as background music for when I&#8217;m programming). I guess I could spend a few evenings going through my music collection, deleting anything I don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p><strong>The problem</strong></p>
<p>I like listening to music while I&#8217;m programming. However, I have lots of music on my computer and I don&#8217;t really like all of it (or find it appropriate as background music for when I&#8217;m programming).</p>
<p>I guess I could spend a few evenings going through my music collection, deleting anything I don&#8217;t like (which isn&#8217;t always such an easy decision), creating a playlist or whatever. This isn&#8217;t a permanent solution, though, since with the time my collection will continue growing, I may get sick of hearing some songs, my taste may change, etc. Also, I prefer spending my time programming, reading or doing anything else more interesting than sorting my music collection.</p>
<p>Unrelated to the problem itself, let me also mention that I use different media players. Currently I&#8217;m mostly using Banshee, but I&#8217;ve been intermittently toggling between it and Rhythmbox those last months, and also used a command-line player for some time. I&#8217;m saying this because I expect a optimal solution to be media player-independent. <em>The bigger problem of each media player having its own database is also something I&#8217;d like to see addressed, maybe with some technology like Tracker, but that is another topic.</em></p>
<p><strong>The status quo</strong></p>
<p>My current way to approach this problem is basically setting my media player to choose songs randomly, and using the big &#8220;Next &gt;&gt;|&#8221; button on my keyboard whenever it chooses some song which annoys me.</p>
<p>(Banshee&#8217;s playback list interface has an option to automatically fill itself sorting songs by popularity, but it doesn&#8217;t seem to work good at all here; I also recall Amarok having some automatic playlist generation options, but I&#8217;m not using any KDE applications anymore and in any case this is outside the scope of an application-neutral solution).</p>
<p><strong>The solution</strong></p>
<p>It has recently occurred to me that a neat solution for this would be to gather information from a generic event log and to translate that into a numerical punctuation for each song. I think you may already guess where I&#8217;m heading, but if not: <a href="http://zeitgeist-project.com/">Zeitgeist</a>!</p>
<p>With the appropriate data-sources installed, Zeitgeist holds information on which songs started playing automatically (because they are on a playlist or because you have your media player set to random), which were started manually, and in both cases which you listened to completely and which ones you skipped (and how long you resisted listening to them). It shouldn&#8217;t be too difficult to write a script which will periodically request this information from Zeitgeist and give songs positive points for every time you listened to them completely (extra if you chose them yourself manually) and negative points to the ones you skipped (but giving less negative points if you resisted half of the song than if you skipped it right after you recognized it).</p>
<p>With this punctuation information, music players can avoid playing songs you don&#8217;t like and give you only those you like or new ones for which there isn&#8217;t any information yet (if it followed the punctuation strictly this would end with the same songs being played all the time and new songs with punctuation around 0 being ignored). The importance of the play/skip actions would decay over time (it&#8217;s more important to consider whether you listened to the song yesterday than if you did six months ago), etc., etc.</p>
<p>If we wanted to create something really fancy we could even look at generating different ratings for separate circumstances, eg. in case you like listening to a different sort of music during the morning than during the evening, or to differentiate between what you like to hear while you are coding and while the computer is idle (maybe because you are doing paper homework and only using the computer to get some background music). The information for all this is there in Zeitgeist, so it&#8217;s only a matter of writing a good algorithm.</p>
<p><strong>The implementation</strong></p>
<p>I&#8217;ve already explained most of how this should work in the previous section, but here&#8217;s a bit of an overview of what&#8217;s needed for this:</p>
<ul>
<li>Data-sources inserting the music reproduction information. We already have a <a href="https://launchpad.net/zeitgeist-dataproviders">data-source</a> for Rhythmbox implemented as an extension, but Banshee and any other players are missing.</li>
<li>The actual algorithm, probably implemented as a periodically run script leaving the aggregated information at some accessible place, although this may vary depending on the degree of fanciness you choose.</li>
<li>The interface, ie. plugins for Rhythmbox and other media players which take that information and use it to provide an option for semi-randomly choosing music excluding stuff you don&#8217;t like.</li>
</ul>
<p>If I&#8217;ve got you interested on this, I&#8217;m willing to mentor someone on this, so get in touch! Feel free to jump into <strong>#zeitgeist</strong> on <strong>irc.freenode.net</strong> or <a href="mailto:rainct@ubuntu.com">drop me a mail</a>.</p>
<hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2010/automatic-music-rating/#comments">19 comments</a><br />
© Siegfried-Angel Gevatter Pujals, 2010. |
<a href="http://bloc.eurion.net/archives/2010/automatic-music-rating/">Permalink</a> |
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">License</a> |
Post tags: <a href="http://bloc.eurion.net/archives/tag/music/" rel="tag">music</a>, <a href="http://bloc.eurion.net/archives/tag/zeitgeist/" rel="tag">zeitgeist</a><br/>
</small></p><p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2010/automatic-music-rating/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Sudoku solving with Python and SAT</title>
		<link>http://bloc.eurion.net/archives/2010/sudoku-solving-with-python-and-sat/</link>
		<comments>http://bloc.eurion.net/archives/2010/sudoku-solving-with-python-and-sat/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 21:53:20 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[logics]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=541</guid>
		<description><![CDATA[At Logic class last week we saw how to solve a Sudoku using SAT and for fun I decided to actually try this out using Python. It turned out to be pretty trivial to implement and I thought I&#8217;d share the experience. First of all let&#8217;s see how the Sudoku problem was described at class: [...]]]></description>
			<content:encoded><![CDATA[<p>At <a href="http://www.fib.upc.edu/en/estudiar-enginyeria-informatica/enginyeries-pla-2003/assignatures/IL.html">Logic</a> class last week we saw how to solve a <a href="http://en.wikipedia.org/wiki/Sudoku">Sudoku</a> using <a href="http://en.wikipedia.org/wiki/Boolean_satisfiability_problem">SAT</a> and for fun I decided to actually try this out using Python. It turned out to be pretty trivial to implement and I thought I&#8217;d share the experience.</p>
<p>First of all let&#8217;s see how the Sudoku problem was described at class: we have a table with 9 rows and 9 columns;</p>
<ul>
<li><strong>1.</strong> Each field [i, j] (where i=1..9 and j=1..9) has at least one value (between 1 and 9).</li>
<li><strong>2.</strong> Each field [i, j] (where i=1..9 and j=1..9) doesn&#8217;t have more than one value.</li>
<li><strong>3.</strong> There isn&#8217;t any repeated value in any row, column or 3&#215;3 group.</li>
<li><strong>4.</strong> Some of the fields have a predefined value.</li>
</ul>
<p>Now to implement this in code, first of all I needed a Python module implementing SAT solving. A quick search in Debian&#8217;s repositories gave me <a href="http://www.logilab.org/card/eid/3441">python-logilab-constraint</a>, which I&#8217;ve found to be quite nice to use, even though it could definitely take some speed improvements.</p>
<p>Conditions <strong>1</strong> and <strong>2</strong> aren&#8217;t a problem at all, as <em>logilab.constraint</em> can be used quite naturally <small>[0]</small>. We just define a variable for each field (eg., x11 to x99, where the first number is the row and the second number is the column) and the domain in which they operate (integer value from 1 to 9):</p>
<pre>values = range(1, 10) # [1..9]
variables = ["x%d%d" % (i, j) for j in values for i in values]
domains = {}

for variable in variables:
	domains[variable] = fd.FiniteDomain(values)
</pre>
<p>The <strong>4</strong>th rule is also straightforward, we just need to hardcode the values. If we have a bidimensional list <em>sudoku</em> containing the initial numbers and <em>None</em> in all empty fields, we add each of them as a constraint:</p>
<pre>constraints = []
for i, row in enumerate(sudoku):
	for j, field in enumerate(row):
		if field is None:
			continue
		variable = "x%d%d" % (i+1, j+1)
		constraints.append(fd.make_expression((variable,),
			"%s == %d" % (variable, field)))
</pre>
<p>Now only rule <strong>3</strong> remains; here we basically have to set up three more groups of constraints: one for rows, one for columns and one for the 3&#215;3 groups. My initial implementation checked each row/column/group at once; for example, for the first row «<em>x11 != x12 != x13 != &#8230; != x19</em>», for the first column «<em>x11 != x21 != &#8230; != x91</em>», etc. However, this proved to be extremely slow, and after checking the «<em>Performance considerations</em>» section of <a href="http://www.logilab.org/card/eid/3441">Logilab Constraint&#8217;s documentation</a> I split up the row and column conditions <small>[1]</small> to lots of smaller conditions, as in: «<em>x11 != x12</em>», «<em>x11 != x13</em>», «x11 != x14», etc. I also moved the constraints for the initial numbers to the top (I had them at the end of the <em>constraints</em> list before), as they are the simplest ones. With those changes resolution time changed from several minutes to some tenths of a second.</p>
<p>And this is it. After all constraints have been added, we just need to run the solver:</p>
<pre>repository = Repository(variables, domains, constraints)
solutions = Solver().solve(repository)
</pre>
<p>The complete code is available via Bazaar at <a href="http://bazaar.launchpad.net/~rainct/%2Bjunk/sudoku-sat/annotate/head%3A/sudoku.py">lp:~rainct/+junk/sudoku-sat</a>. Being completely new to the <em>logilab.constraints</em> module, or implementing any such stuff at all, it took me around half an hour to write this, which shows how SAT makes such sort of problems really straightforward.</p>
<p><small><br />
[0] Using <em>logilab.constraint</em> it&#8217;s possible to assign arbitrary Python data to variables (here we just give each an integer, but variables could also take tuples or whatever else). When this problem was presented at class using pure propositional logic it was a bit more cumbersome, as we couldn&#8217;t just say &#8220;there&#8217;s a variable x11 with domain [1..9]&#8220;. For instance, rule <strong>1</strong> was «<em>(p111 | p112 | p113 | &#8230; | p119) and (p121 | &#8230; | p129) &#8230;</em>», where &#8220;p111&#8243; would be True if field [1,1] is supposed to contain a one, &#8220;p112&#8243; is True if it&#8217;s supposed to contain a two, etc.<br />
[1] I didn&#8217;t bother also splitting up he 3&#215;3 group constraints since the other two changes already gave me enough of a speedup; changing that may squeeze a few msecs more out of it.<br />
P.S.: If you&#8217;d like a more formal explanation of this, a search on Google found this paper: <a href="http://www.cl.cam.ac.uk/~tw333/publications/weber05satbased.pdf">A SAT-based Sudoku Solver</a>.<br />
</small></p>
<p>Related posts:<ol>
<li><a href='http://bloc.eurion.net/archives/2010/python-snippets-web-directory/' rel='bookmark' title='You no longer have an excuse not to look at Python Snippets!'>You no longer have an excuse not to look at Python Snippets!</a> <small>You&#8217;ve probably already heard of Jono Bacon&#8217;s effort to create...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2010/sudoku-solving-with-python-and-sat/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>You no longer have an excuse not to look at Python Snippets!</title>
		<link>http://bloc.eurion.net/archives/2010/python-snippets-web-directory/</link>
		<comments>http://bloc.eurion.net/archives/2010/python-snippets-web-directory/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 23:12:15 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[opportunistic development]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=525</guid>
		<description><![CDATA[You&#8217;ve probably already heard of Jono Bacon&#8217;s effort to create a collection of Python snippets and of Acire, the application to browse through them. If you&#8217;re interested in developing something with Python you should really take a look at those 115 (and couting!) awesome snippets, ranging from the most basic stuff to more advanced examples [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;ve probably already heard of Jono Bacon&#8217;s effort to <a href="https://wiki.ubuntu.com/PythonSnippets">create a collection of Python snippets</a> and of <a href="http://www.jonobacon.org/2010/02/26/acire-0-3-released/">Acire</a>, the application to browse through them. If you&#8217;re interested in developing something with Python you should really take a look at those 115 (and couting!) awesome <a href="https://launchpad.net/python-snippets">snippets</a>, ranging from the most basic stuff to more advanced examples on a wide range of topics.</p>
<p>Last Thursday there was a talk on Acire and a snippet creation party (as part of the <a href="https://wiki.ubuntu.com/UbuntuOpportunisticDeveloperWeek">Ubuntu Opportunistic Developer Week</a>) and someone mentioned it would be nice to have a web interface. So, yesterday I took a couple hours and hacked together a quick script to convert the snippets to HTML, resulting in <a href="http://eurion.net/python-snippets/">this snippets directory</a> which you can use to look up stuff when you haven&#8217;t Acire at hand or to give links to snippets to other people!</p>
<div id="attachment_538" class="wp-caption aligncenter" style="width: 310px"><a href="http://bloc.eurion.net/wp-content/uploads/2010/03/python-snippets-web.png"><img class="size-medium wp-image-538" title="python-snippets-web" src="http://bloc.eurion.net/wp-content/uploads/2010/03/python-snippets-web-300x156.png" alt="" width="300" height="156" /></a><p class="wp-caption-text">The new web interface to python-snippets!</p></div>
<p>And now that you&#8217;ve read this post, maybe you would like to <a href="http://eurion.net/python-snippets/snippet/Load%20an%20Image%20and%20detect%20click%20events.html">delve into Clutter</a>, <a href="http://eurion.net/python-snippets/snippet/Create%20an%20Application%20Indicator.html">update your application to work with Application Indicator</a>, <a href="http://eurion.net/python-snippets/snippet/Recently%20used%20items%20%28async%29.html">see how easy it is to get data from Zeitgeist</a> or <a href="http://eurion.net/python-snippets/snippet/Lists%20101.html">refresh the knowledge on lists</a> you gained at <a href="https://wiki.ubuntu.com/MeetingLogs/OpWeek1002/Python4Programmers">Rick Spencer&#8217;s Python talk</a>?</p>
<p><em>The code for the snippets generator is available <a href="https://code.launchpad.net/~rainct/+junk/python-snippets-webui">here</a>. Thanks go to <a href="http://www.makotemplates.org/">Mako Templates</a>, <a title="Pygments - Python syntax highlighter" href="http://pygments.org/">Pygments</a> and <a title="Universal Encoding Detector: character encoding auto-detection in Python" href="http://chardet.feedparser.org/">Chardet</a> for having made it dead easy to create this page! And, of course, patches are welcome.<br />
</em></p>
<p>Related posts:<ol>
<li><a href='http://bloc.eurion.net/archives/2010/sudoku-solving-with-python-and-sat/' rel='bookmark' title='Sudoku solving with Python and SAT'>Sudoku solving with Python and SAT</a> <small>At Logic class last week we saw how to solve...</small></li>
<li><a href='http://bloc.eurion.net/archives/2010/introducing-espeak-gui/' rel='bookmark' title='Introducing espeak-gui'>Introducing espeak-gui</a> <small>I&#8217;m joining the hype of presenting little new projects there...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2010/python-snippets-web-directory/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zeitgeist Data-Source Registry</title>
		<link>http://bloc.eurion.net/archives/2010/zeitgeist-data-source-registry/</link>
		<comments>http://bloc.eurion.net/archives/2010/zeitgeist-data-source-registry/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 18:13:33 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Debian]]></category>
		<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[Programari lliure]]></category>
		<category><![CDATA[zeitgeist]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=515</guid>
		<description><![CDATA[This post is about an upcoming feature in Zeitgeist 0.3.3 and is so far only available in checkouts from trunk or our PPA. It is expected to be released within the next weeks. Some weeks ago I implemented a new feature in Zeitgeist and I figured I&#8217;d drop some lines about it. I&#8217;m talking about [...]]]></description>
			<content:encoded><![CDATA[<p><em>This post is about an upcoming feature in <a href="http://zeitgeist-project.com">Zeitgeist</a> 0.3.3 and is so far only available in checkouts from <a href="https://code.launchpad.net/~zeitgeist/zeitgeist/trunk">trunk</a> or our <a href="https://launchpad.net/~zeitgeist/+archive/ppa">PPA</a>. It is expected to be released within the next weeks.</em></p>
<p>Some weeks ago I implemented a new feature in Zeitgeist and I figured I&#8217;d drop some lines about it. I&#8217;m talking about a <strong>data-source registry</strong>.</p>
<p>You may be wondering, «<em>what the hell is that even, a data-source?</em>». So Zeitgeist is a database, a global event log, but it doesn&#8217;t do any magic indexing or monitoring by itself;  the information it logs needs to come from somewhere &#8211; be it applications sending it to Zeitgeist themselves, <a href="http://manpages.ubuntu.com/manpages/lucid/en/man1/zeitgeist-datahub.1.html">daemons</a>, plugins for applications, etc. Any such entity is called a «<em>data-source</em>».</p>
<p>Having a register of all data-sources interacting with Zeitgeist provides some benefits, like for example:</p>
<div id="attachment_516" class="wp-caption alignright" style="width: 310px"><a href="http://bloc.eurion.net/wp-content/uploads/2010/02/zeitgeist-registry.png"><img class="size-medium wp-image-516 " title="Zeitgeist: data-source management UI" src="http://bloc.eurion.net/wp-content/uploads/2010/02/zeitgeist-registry-300x77.png" alt="Screenshot of tools/gtk/zeitgeist-data-sources-gtk.py" width="300" height="77" /></a><p class="wp-caption-text">Prototype of a data-source management user-interface</p></div>
<ul>
<li>Having a list of them. Lists are nice :).</li>
<li>Being able to disable data-sources from a centralized place instead of requiring each to write its own preferences dialogue.</li>
<li>Being able to set up a blacklist rule considering which data-source the information comes from as a condition <em>(not implemented yet)</em>.</li>
</ul>
<p><strong>More details</strong></p>
<p>When they register, data-sources will need to provide the following information: an unique ID, a name (may be localized), a description (may be localized) and optionally a template specifying what sort of events it logs. Additionally, the last timestamp the data-source was seen by Zeitgeist, whether it is running right now and whether it is enabled will also be available.</p>
<p>It is important to note that registration is not compulsory; while it is highly encouraged for data-sources to use it, is it still possible to anonymously insert information into Zeitgeist (for example from a shell script). The event template is also only informational, and will not be enforced by Zeitgeist at this time.</p>
<p><strong>Avoiding duplicates from GTK Recently Used</strong></p>
<p>You may know that <a href="http://manpages.ubuntu.com/manpages/lucid/en/man1/zeitgeist-datahub.1.html">zeitgeist-datahub</a> provides basic support for applications which have no direct Zeitgeist support but do use GTK&#8217;s <a href="http://www.pygtk.org/docs/pygtk/class-gtkrecentmanager.html">RecentManager</a>, which is not as detailed as we would like, but it is better than nothing. However, until now we had a problem: when applications had support for both, GTK&#8217;s Recently Used and Zeitgeist (be it native or as an <a href="https://launchpad.net/zeitgeist-dataproviders">extension</a>), it was possible for duplicate events to be inserted or other sorts of conflicts between both data-sources. Now that we have the information from the registry available, we&#8217;ve been able to solve this modifying our Recently Used data-source to ignore any events concerning applications which already have another data-source logging the same types of events.<br />
&nbsp;</p>
<hr />In case you don&#8217;t care at all about what I&#8217;m talking here and you just want to see fancy interfaces, <a title="GNOME Activity Journal 0.3.3" href="http://seilo.geekyogre.com/2010/02/gnome-activity-journal-0-3-3-is-out/">go check this out</a>.</p>
<p>Related posts:<ol>
<li><a href='http://bloc.eurion.net/archives/2010/zeitgeist-0-3-3-is-out/' rel='bookmark' title='Zeitgeist 0.3.3 is out!'>Zeitgeist 0.3.3 is out!</a> <small>From the release announcement: On behalf of the Zeitgeist Project...</small></li>
<li><a href='http://bloc.eurion.net/archives/2009/zeitgeist-is-out/' rel='bookmark' title='Zeitgeist is out!'>Zeitgeist is out!</a> <small>World, the first Zeitgeist release is out! From the release...</small></li>
<li><a href='http://bloc.eurion.net/archives/2009/zeitgeist-api-02/' rel='bookmark' title='Introduction to Zeitgeist 0.2&#8242;s API'>Introduction to Zeitgeist 0.2&#8242;s API</a> <small>So now that Zeitgeist 0.2.0 is out I&#8217;ve thought I&#8217;d...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2010/zeitgeist-data-source-registry/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Confession</title>
		<link>http://bloc.eurion.net/archives/2010/debian-confession/</link>
		<comments>http://bloc.eurion.net/archives/2010/debian-confession/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 23:49:38 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Debian]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Programari lliure]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=478</guid>
		<description><![CDATA[My dear Ubuntu, I think the time has come that I make a confession. You may be wondering why I haven&#8217;t spent much time with you those last months, and you have the right to know. The case is, I have another one. She&#8217;s called Debian. No, it&#8217;s not because of you. It&#8217;s also not [...]]]></description>
			<content:encoded><![CDATA[<p>My dear Ubuntu,</p>
<p>I think the time has come that I make a confession. You may be wondering why I haven&#8217;t spent much time with you those last months, and you have the right to know. The case is, I have another one. She&#8217;s called Debian.</p>
<p>No, it&#8217;s not because of you. It&#8217;s also not because of your <a href="http://canonical.com">parents</a>; while they <a href="https://lists.ubuntu.com/archives/ubuntu-devel/2010-January/029976.html">aren&#8217;t perfect</a>, they are great in many ways and I certainly don&#8217;t want to run away from then. Just wait and let me explain this. You surely remember that I spent <a href="../archives/2009/one-week-with-debian/">a week</a> with her some time ago? Well, now that I want to <a href="https://nm.debian.org/nmstatus.php?email=rainct@ubuntu.com">join Debian&#8217;s family</a>, I decided that after all that wasn&#8217;t much time to get to know here, so I gave her another chance, and with this second experience I fell in love with her <a href="http://www.debian.org/releases/unstable/">unstable</a> character. Ubuntu, you are really extraordinary, and I&#8217;m still telling anyone who wants to listen about your wonders, but you just can&#8217;t appease my desire for trying out new things as well as Debian does.</p>
<p>Now, this doesn&#8217;t mean we won&#8217;t see each other anymore. I&#8217;ll still take you with me whenever I <a href="http://commercial.asus.com/images/asusepc1005-front_open1504.jpg">travel</a>, and I&#8217;ll continue helping you with the <a href="https://launchpad.net/ubuntu">household</a>. In fact, all this wouldn&#8217;t signify a big change at all, if it wasn&#8217;t that at the same time I also decided to refocus most of my efforts on <a href="http://zeitgeist-project.com">raising</a> <a href="http://gnome.org">children</a>, which is what really reduced the time I spent helping you.</p>
<p>So, while currently I&#8217;m not seeing you as much as before, I hope you all the best, and I&#8217;ll still try to help you advance, be it indirectly (<a href="http://debian.org">1</a>, <a href="http://gnome.org">2</a>) or, while probably to a lesser degree, continuing with direct contributions.</p>
<p><em>By the way, hello Planet Debian!</em></p>
<hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2010/debian-confession/#comments">8 comments</a><br />
© Siegfried-Angel Gevatter Pujals, 2010. |
<a href="http://bloc.eurion.net/archives/2010/debian-confession/">Permalink</a> |
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">License</a> |
Post tags: <a href="http://bloc.eurion.net/archives/tag/debian/" rel="tag">Debian</a>, <a href="http://bloc.eurion.net/archives/tag/programari-lliure/" rel="tag">Programari lliure</a>, <a href="http://bloc.eurion.net/archives/tag/ubuntu/" rel="tag">Ubuntu</a><br/>
</small></p><p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2010/debian-confession/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>FOSDEM 2010</title>
		<link>http://bloc.eurion.net/archives/2010/im-going-to-fosdem/</link>
		<comments>http://bloc.eurion.net/archives/2010/im-going-to-fosdem/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 14:54:32 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[fosdem]]></category>
		<category><![CDATA[Programari lliure]]></category>
		<category><![CDATA[zeitgeist]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=496</guid>
		<description><![CDATA[By the way, if you&#39;re coming too and are interested in Zeitgeist, don&#39;t forget to poke me (or Seif)! Related posts: Zeitgeist is out! World, the first Zeitgeist release is out! From the release... Zeitgeist since UDS Quite some stuff has been going on in Zeitgeist since... Introduction to Zeitgeist 0.2&#8242;s API So now that [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.fosdem.org"><img alt="I'm going to FOSDEM, the Free and Open Source Software Developers' European Meeting" class="aligncenter" src="http://www.fosdem.org/promo/going-to" /></a></p>
<p style="text-align: center;"><em>By the way, if you&#39;re coming too and are interested in <a href="http://zeitgeist-project.com">Zeitgeist</a>, don&#39;t forget to poke me (or <a href="http://seilo.geekyogre.com/">Seif</a>)!</em></p>
<p>Related posts:<ol>
<li><a href='http://bloc.eurion.net/archives/2009/zeitgeist-is-out/' rel='bookmark' title='Zeitgeist is out!'>Zeitgeist is out!</a> <small>World, the first Zeitgeist release is out! From the release...</small></li>
<li><a href='http://bloc.eurion.net/archives/2009/zeitgeist-since-uds/' rel='bookmark' title='Zeitgeist since UDS'>Zeitgeist since UDS</a> <small>Quite some stuff has been going on in Zeitgeist since...</small></li>
<li><a href='http://bloc.eurion.net/archives/2009/zeitgeist-api-02/' rel='bookmark' title='Introduction to Zeitgeist 0.2&#8242;s API'>Introduction to Zeitgeist 0.2&#8242;s API</a> <small>So now that Zeitgeist 0.2.0 is out I&#8217;ve thought I&#8217;d...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2010/im-going-to-fosdem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GNOME Activity Journal, and installing it on Ubuntu</title>
		<link>http://bloc.eurion.net/archives/2010/gnome-activity-journal-and-installing-it-on-ubuntu/</link>
		<comments>http://bloc.eurion.net/archives/2010/gnome-activity-journal-and-installing-it-on-ubuntu/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 15:00:44 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[Programari lliure]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[zeitgeist]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=481</guid>
		<description><![CDATA[As already announced by Seif, the first development release of the GNOME Activity Journal (what was formerly known as GNOME Zeitgeist) is finally out! While several sources have already propagated the good news, what doesn&#8217;t seem to be so widely known is how easy it is to get the Activity Journal running on Ubuntu. Because [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bloc.eurion.net/wp-content/uploads/2010/01/gnome-activity-journal-0.3.2.png"><img class="size-medium wp-image-482 alignright" title="gnome-activity-journal-0.3.2" src="http://bloc.eurion.net/wp-content/uploads/2010/01/gnome-activity-journal-0.3.2-300x143.png" alt="GNOME Activity Journal, 0.3.2" width="300" height="143" /></a>As already announced by <a href="http://seilo.geekyogre.com/">Seif</a>, the first development release of the <a href="https://launchpad.net/gnome-activity-journal">GNOME Activity Journal</a> (what was formerly known as <em>GNOME Zeitgeist</em>) is finally <a href="https://launchpad.net/gnome-activity-journal/+announcement/4900">out</a>!</p>
<p>While several sources have already propagated the good news, what doesn&#8217;t seem to be so widely known is how easy it is to get the Activity Journal running on Ubuntu. Because it is!</p>
<p><strong>Installation on Ubuntu Karmic or Lucid</strong></p>
<pre>sudo add-apt-repository ppa:zeitgeist/ppa
sudo aptitude update
sudo aptitude install gnome-activity-journal</pre>
<p>Now go to <strong>Applications</strong> -&gt; <strong>Utility</strong> -&gt; <strong>Activity Journal</strong> and enjoy the sweetness!</p>
<p><strong>Installation on other systems</strong></p>
<p>Our <a href="https://launchpad.net/~zeitgeist/+archive/ppa">Personal Package Archive</a> also has packages for Ubuntu Jaunty which you can add the usual way (by adding it to <strong>System</strong> -&gt; <strong>Administration</strong> -&gt; <strong>Software Sources</strong> or editing your <em>sources.list</em>), and the same packages as for Ubuntu work for Debian Sid (to which Zeitgeist <a href="https://edge.launchpad.net/zeitgeist/+announcement/4899">0.3.2</a> and the GNOME Activity Journal will be uploaded shortly).</p>
<p>There may be packages for other distributions available; if you can&#8217;t find any for yours, you can do the installation by hand:</p>
<p>[<strong>For Zeitgeist</strong>] &#8211; Build dependencies: <em>intltool</em></p>
<pre>$ wget http://launchpad.net/zeitgeist/0.3/0.3.2/+download/zeitgeist-0.3.2.tar.gz
$ tar -xzvf zeitgeist-0.3.2.tar.gz
$ cd zeitgeist-0.3.2
$ ./configure
$ make
# make install</pre>
<p>[<strong>For the GNOME Activity Journal</strong>] &#8211; Build dependencies: <em>Python (2.5+)</em>, <em>Python-DistUtils-Extra</em>, <em>intltool</em></p>
<pre>$ wget http://launchpad.net/gnome-activity-journal/0.3/0.3.2/+download/gnome-activity-journal-0.3.2.tar.gz
$ tar -xzvf gnome-activity-journal-0.3.2.tar.gz
$ cd gnome-activity-journal-0.3.2
$ python setup.py build
# python setup.py install</pre>
<p><strong>But, what is the GNOME Activity Journal?</strong></p>
<p>The <a href="https://launchpad.net/gnome-activity-journal">GNOME Activity Journal</a> is a tool for easily browsing and finding files, contacts and other resources on your computer. Using <a href="http://zeitgeist-project.com/">Zeitgeist</a>, it keeps a chronological journal of your activity and supports tagging and bookmarking (using the new <a href="http://projects.gnome.org/tracker/">Tracker</a> 0.7) and establishing relationships between resources.</p>
<p>While this first release only supports basic browsing of file activities, the <a href="http://zeitgeist-project.com">underlying infrastructure</a> can do much more and you can expect the missing functionality to become available in future releases.</p>
<p>Related posts:<ol>
<li><a href='http://bloc.eurion.net/archives/2011/activity-log-manager-released/' rel='bookmark' title='Activity Log Manager for Zeitgeist released!'>Activity Log Manager for Zeitgeist released!</a> <small>On behalf of the Activity Log Manager team and the...</small></li>
<li><a href='http://bloc.eurion.net/archives/2009/gnome-shell-window-list/' rel='bookmark' title='Another GNOME Shell post: what do you think about the window list?'>Another GNOME Shell post: what do you think about the window list?</a> <small>It&#8217;s already a few months since my two posts on...</small></li>
<li><a href='http://bloc.eurion.net/archives/2009/gnome-do-08-alpha-and-docky/' rel='bookmark' title='GNOME Do &#8211; 0.8 Alpha and Docky'>GNOME Do &#8211; 0.8 Alpha and Docky</a> <small>A friend told me not much ago about a new...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2010/gnome-activity-journal-and-installing-it-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

