<?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's Blog &#187; Ubuntu</title>
	<atom:link href="http://bloc.eurion.net/archives/tag/ubuntu/feed/" rel="self" type="application/rss+xml" />
	<link>http://bloc.eurion.net</link>
	<description>I would love to change the world, but they won't give me the source code...</description>
	<lastBuildDate>Wed, 17 Mar 2010 21:55:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<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>
<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>
<p><a href="&lt;/dd">And now that you&#8217;ve read this post, maybe you would like to </a><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='Permanent Link: Sudoku solving with Python and SAT'>Sudoku solving with Python and SAT</a></li>
<li><a href='http://bloc.eurion.net/archives/2010/introducing-espeak-gui/' rel='bookmark' title='Permanent Link: Introducing espeak-gui'>Introducing espeak-gui</a></li>
<li><a href='http://bloc.eurion.net/archives/2009/uds-2009/' rel='bookmark' title='Permanent Link: UDS 2009'>UDS 2009</a></li>
</ol></p><hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2010/python-snippets-web-directory/#comments">One comment</a><br />
© Siegfried-Angel Gevatter Pujals, 2010. |
<a href="http://bloc.eurion.net/archives/2010/python-snippets-web-directory/">Permalink</a> |
<a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">License</a> |
Post tags: <a href="http://bloc.eurion.net/archives/tag/opportunistic-development/" rel="tag">opportunistic development</a>, <a href="http://bloc.eurion.net/archives/tag/python/" rel="tag">python</a>, <a href="http://bloc.eurion.net/archives/tag/ubuntu/" rel="tag">Ubuntu</a>, <a href="http://bloc.eurion.net/archives/tag/website/" rel="tag">website</a><br/>
</small></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>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 because of [...]]]></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 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>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2010/debian-confession/feed/</wfw:commentRss>
		<slash:comments>8</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 it [...]]]></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/2009/gnome-shell-window-list/' rel='bookmark' title='Permanent Link: 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></li>
<li><a href='http://bloc.eurion.net/archives/2009/gnome-do-08-alpha-and-docky/' rel='bookmark' title='Permanent Link: GNOME Do &#8211; 0.8 Alpha and Docky'>GNOME Do &#8211; 0.8 Alpha and Docky</a></li>
<li><a href='http://bloc.eurion.net/archives/2009/updated-voxforge-packages-in-ubuntu/' rel='bookmark' title='Permanent Link: Updated Voxforge packages in Ubuntu'>Updated Voxforge packages in Ubuntu</a></li>
</ol></p><hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2010/gnome-activity-journal-and-installing-it-on-ubuntu/#comments">7 comments</a><br />
© Siegfried-Angel Gevatter Pujals, 2010. |
<a href="http://bloc.eurion.net/archives/2010/gnome-activity-journal-and-installing-it-on-ubuntu/">Permalink</a> |
<a 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/gnome/" rel="tag">gnome</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>, <a href="http://bloc.eurion.net/archives/tag/zeitgeist/" rel="tag">zeitgeist</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2010/gnome-activity-journal-and-installing-it-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>espeak-gui 0.2</title>
		<link>http://bloc.eurion.net/archives/2010/espeak-gui-0-2/</link>
		<comments>http://bloc.eurion.net/archives/2010/espeak-gui-0-2/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 20:10:26 +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[gtk]]></category>
		<category><![CDATA[Programari lliure]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[speech-synthesis]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=470</guid>
		<description><![CDATA[Yesterday I did a first release of espeak-gui, so while I&#8217;m still in practice I&#8217;ve decided to get out a second one!
The main changes are fixing a crash bug and&#8230; internationalization support. So, if you like this project but you&#8217;re not a coder, now you&#8217;ve got a way to contribute: translating it into your language [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I did a first release of <a href="http://bloc.eurion.net/archives/2010/introducing-espeak-gui/">espeak-gui</a>, so while I&#8217;m still in practice I&#8217;ve decided to get out a second one!</p>
<p>The main changes are fixing a crash bug and&#8230; internationalization support. So, if you like this project but you&#8217;re not a coder, now you&#8217;ve got a way to contribute: <a href="https://translations.launchpad.net/espeak-gui">translating it into your language</a> (come on, it only has a few strings! :)).</p>
<p>The new version is already in <a href="https://launchpad.net/~rainct/+archive/voice/">my PPA</a>: <a href="https://launchpad.net/~rainct/+archive/voice/+files/espeak-gui_0.2-0ubuntu1~ppa1_all.deb">espeak-gui_0.2-0ubuntu1~ppa1_all.deb</a>. A tarball is also available, and the installation instructions are the following:</p>
<pre>$ wget -c <a href="http://launchpad.net/espeak-gui/trunk/0.2/+download/espeak-gui-0.2.tar.gz">http://launchpad.net/espeak-gui/trunk/0.2/+download/espeak-gui-0.2.tar.gz</a>
$ tar -xzvf espeak-gui-0.2.tar.gz; cd espeak-gui-0.2
$ python setup.py build
$ sudo python setup.py install</pre>
<p>In case you didn&#8217;t already have the previous version, you&#8217;ll also need to install the <a href="https://launchpad.net/python-espeak">python-espeak</a> module, for which there are also .deb&#8217;s (<a href="https://launchpad.net/~rainct/+archive/voice/+files/python-espeak_0.0ubuntu1~ppa1_i386.deb">i386</a>, <a href="https://launchpad.net/~rainct/+archive/voice/+files/python-espeak_0.0ubuntu1~ppa1_amd64.deb">amd64</a>) or the manual installation option like explained in my <a href="http://bloc.eurion.net/archives/2010/introducing-espeak-gui/">previous post</a>:</p>
<pre>$ bzr get lp:python-espeak
$ cd python-espeak
$ python setup.py build
$ sudo python setup.py install</pre>
<p>Here are the contents of the NEWS file:</p>
<pre>2010-01-02: Version 0.2
-----------------------

 - Fixed a crash happening when there was no voice language set in
   gconf (LP: 502253). [Reported by Rugby471]
 - Added a "Plain text" filter to the Open/Save dialogues.
 - Added internationalization support.
 - Added a manpage and a gconf schemas file.
 - A couple little user interface improvements.

Translations: Catalan.</pre>


<p>Related posts:<ol><li><a href='http://bloc.eurion.net/archives/2010/introducing-espeak-gui/' rel='bookmark' title='Permanent Link: Introducing espeak-gui'>Introducing espeak-gui</a></li>
<li><a href='http://bloc.eurion.net/archives/2010/gnome-activity-journal-and-installing-it-on-ubuntu/' rel='bookmark' title='Permanent Link: GNOME Activity Journal, and installing it on Ubuntu'>GNOME Activity Journal, and installing it on Ubuntu</a></li>
<li><a href='http://bloc.eurion.net/archives/2009/here-is-zeitgeist-0-2-1/' rel='bookmark' title='Permanent Link: Here is Zeitgeist 0.2.1!'>Here is Zeitgeist 0.2.1!</a></li>
</ol></p><hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2010/espeak-gui-0-2/#comments">29 comments</a><br />
© Siegfried-Angel Gevatter Pujals, 2010. |
<a href="http://bloc.eurion.net/archives/2010/espeak-gui-0-2/">Permalink</a> |
<a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">License</a> |
Post tags: <a href="http://bloc.eurion.net/archives/tag/gnome/" rel="tag">gnome</a>, <a href="http://bloc.eurion.net/archives/tag/gtk/" rel="tag">gtk</a>, <a href="http://bloc.eurion.net/archives/tag/programari-lliure/" rel="tag">Programari lliure</a>, <a href="http://bloc.eurion.net/archives/tag/python/" rel="tag">python</a>, <a href="http://bloc.eurion.net/archives/tag/speech-synthesis/" rel="tag">speech-synthesis</a>, <a href="http://bloc.eurion.net/archives/tag/ubuntu/" rel="tag">Ubuntu</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2010/espeak-gui-0-2/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>Introducing espeak-gui</title>
		<link>http://bloc.eurion.net/archives/2010/introducing-espeak-gui/</link>
		<comments>http://bloc.eurion.net/archives/2010/introducing-espeak-gui/#comments</comments>
		<pubDate>Fri, 01 Jan 2010 21:33:36 +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[gtk]]></category>
		<category><![CDATA[Programari lliure]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[speech-synthesis]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=463</guid>
		<description><![CDATA[I&#8217;m joining the hype of presenting little new projects there seems to be those days, unleashing the first version of espeak-gui, a graphical interface to let the computer read out text.
Why, when, who?
The project started almost a year ago when, out of curiosity on what writing Python bindings for C/C++ libraries is like, I started [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bloc.eurion.net/wp-content/uploads/2010/01/espeak-gui-0.1.png"><img class="size-medium wp-image-464 alignright" title="Screenshot of espeak-gui (version 0.1)" src="http://bloc.eurion.net/wp-content/uploads/2010/01/espeak-gui-0.1-300x180.png" alt="" width="300" height="180" /></a>I&#8217;m joining the hype of presenting little new projects there seems to be those days, unleashing the first version of <a href="https://launchpad.net/espeak-gui">espeak-gui</a>, a graphical interface to let the computer read out text.</p>
<p><strong>Why, when, who?</strong></p>
<p>The project started almost a year ago when, out of curiosity on what writing Python bindings for C/C++ libraries is like, I started <a href="https://launchpad.net/python-espeak">python-espeak</a>, bindings for the espeak speech synthesizer (which, by the way, comes installed by default on Ubuntu and many other distributions).</p>
<p>It turned out that writing bindings isn&#8217;t as funny as I thought so they haven&#8217;t advanced much since then, but the basic functionality was there and I felt the need for some application using those bindings, so that&#8217;s how I started <a href="https://launchpad.net/python-espeak">espeak-gui</a>.</p>
<p>Some months later, in true Free Software spirit, someone else -interested in an application like this for personal usage- found my code on Launchpad and got in touch with me, providing me with quite some nice patches. Thank you, <a href="https://launchpad.net/~joe-a-burmeister">Joe Burmeister</a>! However, I didn&#8217;t do any more work on it, as I&#8217;ve been busy with other projects (eg. <a href="http://zeitgeist-project.com/">Zeitgeist</a>), and development stalled there.</p>
<p>Now, another half a year later, I&#8217;ve finally got back to this and decided it&#8217;s time I push it out into the wild. So, after cleaning it up a bit more and implementing some new feature, here you have <a href="https://launchpad.net/espeak-gui">espeak-gui</a>!</p>
<p>(The bindings aren&#8217;t really encouraged for widespread usage at this point and I&#8217;ll probably end up rewriting them using <a href="http://www.swig.org/">SWIG</a> or something else; however, if you&#8217;re interested in using them please get in touch with me).</p>
<p><strong>Where do I get it?</strong></p>
<p>If you&#8217;re using Ubuntu or Debian, you can find a <a href="https://launchpad.net/~rainct/+archive/voice/+packages">packages for python-espeak and espeak-gui</a> in <a href="https://launchpad.net/~rainct/+archive/voice">my PPA</a>.</p>
<p>For users of other distributions, you can install them manually after installing the needed dependencies (most importantly, libespeak-dev).</p>
<p>For the Python bindings for espeak:</p>
<pre>$ bzr get lp:python-espeak
$ cd python-espeak
$ python setup.py build
# python setup.py install
</pre>
<p>And for the GUI:</p>
<pre>$ wget -c <a href="http://launchpad.net/espeak-gui/trunk/0.1/+download/espeak-gui-0.1.tar.gz">http://launchpad.net/espeak-gui/trunk/0.1/+download/espeak-gui-0.1.tar.gz</a>
$ tar -xzvf espeak-gui-0.1.tar.gz
$ cd espeak-gui-0.1
# python setup.py install
</pre>
<p>[<strong>Update:</strong> A new version is out, see <a href="http://bloc.eurion.net/archives/2010/espeak-gui-0-2/">espeak-gui 0.2</a> for details.]</p>
<p>I have several ideas on how to continue improving it and I think I&#8217;ll slowly continue doing so (or maybe not so slowly if I get positive feedback on this :)). Also, patches are always welcome!</p>
<p><strong>Using it</strong></p>
<p>Once installed, you&#8217;ll find <a href="https://launchpad.net/espeak-gui">espeak-gui</a> under <em>Applications</em> -&gt; <em>Sound and Video</em> (maybe Accessibility would be a better place?), or you can run it from the command line like this:</p>
<pre>espeak [ &lt;file 1&gt; &lt;file 2&gt; ... ]</pre>


<p>Related posts:<ol><li><a href='http://bloc.eurion.net/archives/2010/espeak-gui-0-2/' rel='bookmark' title='Permanent Link: espeak-gui 0.2'>espeak-gui 0.2</a></li>
<li><a href='http://bloc.eurion.net/archives/2010/gnome-activity-journal-and-installing-it-on-ubuntu/' rel='bookmark' title='Permanent Link: GNOME Activity Journal, and installing it on Ubuntu'>GNOME Activity Journal, and installing it on Ubuntu</a></li>
<li><a href='http://bloc.eurion.net/archives/2009/zeitgeist-api-02/' rel='bookmark' title='Permanent Link: Introduction to Zeitgeist 0.2&#8217;s API'>Introduction to Zeitgeist 0.2&#8217;s API</a></li>
</ol></p><hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2010/introducing-espeak-gui/#comments">14 comments</a><br />
© Siegfried-Angel Gevatter Pujals, 2010. |
<a href="http://bloc.eurion.net/archives/2010/introducing-espeak-gui/">Permalink</a> |
<a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">License</a> |
Post tags: <a href="http://bloc.eurion.net/archives/tag/gnome/" rel="tag">gnome</a>, <a href="http://bloc.eurion.net/archives/tag/gtk/" rel="tag">gtk</a>, <a href="http://bloc.eurion.net/archives/tag/programari-lliure/" rel="tag">Programari lliure</a>, <a href="http://bloc.eurion.net/archives/tag/python/" rel="tag">python</a>, <a href="http://bloc.eurion.net/archives/tag/speech-synthesis/" rel="tag">speech-synthesis</a>, <a href="http://bloc.eurion.net/archives/tag/ubuntu/" rel="tag">Ubuntu</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2010/introducing-espeak-gui/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>No sound problem with Wolfenstein: Enemy Territory</title>
		<link>http://bloc.eurion.net/archives/2009/no-sound-problem-with-wolfenstein-enemy-territory/</link>
		<comments>http://bloc.eurion.net/archives/2009/no-sound-problem-with-wolfenstein-enemy-territory/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 16:19:33 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Jocs]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=455</guid>
		<description><![CDATA[I don&#8217;t really play much, but of the few games I know Wolfenstein: Enemy Territory is probably the one with which I&#8217;ve spend the most time so far. By featuring multiple player roles (soldier, engineer, medic, etc.) and, even while being multiplayer, nice objective-based scenarios, it provides for much better experience that many other more [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t really play much, but of the few games I know <a href="http://en.wikipedia.org/wiki/Wolfenstein:_Enemy_Territory">Wolfenstein: Enemy Territory</a> is probably the one with which I&#8217;ve spend the most time so far. By featuring multiple player roles (soldier, engineer, medic, etc.) and, even while being multiplayer, nice objective-based scenarios, it provides for much better experience that many other more popular shooters. And best of all, it&#8217;s completely free of cost, has native support for GNU/Linux and a portion of it&#8217;s source code is open!</p>
<p>But it&#8217;s not to advertise this game that I&#8217;m writing about it, but because I want to write down some solution to the &#8220;no sound problem&#8221; which you&#8217;re likely to find if you try it out, and so that I can remember about the fixes in the future. So, here&#8217;s the different things you can try; if one of them fails just go to the next one, and let&#8217;s hope that at least the last one does the trick!</p>
<p><strong>1. Install the &#8220;oss-compat&#8221; package.</strong><br />
As easy as that! Although this alone has never fixed the problem with me, it often does together with solution 2 (described just below), and maybe in your case it may be all you&#8217;re missing.</p>
<p><strong>2. A bit of command-line magic</strong><br />
The next one, which <a href="http://buck-nasty.blogspot.com/2008/08/wolfenstein-enemy-territory-no-sound.html">seems</a> <a href="http://fedoraforum.org/forum/showthread.php?t=163169">to</a> <a href="https://help.ubuntu.com/community/Games/Native/ReturnToCastleWolfensteinEnemyTerritory">be</a> the most successful option, is trying to execute the following line before running <em>Enemy Territory</em>:</p>
<pre>echo "et.x86 0 0 direct" | sudo tee /proc/asound/card0/pcm0p/oss</pre>
<p>If after doing this the sound works, you can make the change permanent by adding that line to your <em>/etc/rc.local/</em>, for example by running:</p>
<pre>sudo sed -i "s:^exit 0:echo 'et.x86 0 0 direct' &gt; /proc/asound/card0/pcm0p/oss\nexit 0:" /etc/rc.local</pre>
<p><strong>3. Let&#8217;s call the artillery</strong></p>
<p>Hopefully you&#8217;ll be enjoying an <em>Enemy Territory</em> game with the sound of explosions and shots in your ears, but if the previous solutions didn&#8217;t do the trick do not despair, there&#8217;s still hope. I&#8217;ve found a different solution <a href="http://www.tomshardware.com/forum/37440-13-sound-wolfenstein-linux">in this thread</a> and it consists in the following:</p>
<p>a) Download this script: <a href="http://bloc.eurion.net/wp-content/uploads/2009/12/wolfsp-sdl-sound.sh">wolfsp-sdl-sound.sh</a> (<a href="http://nullkey.ath.cx/~stuff/et-sdl-sound/wolfsp-sdl-sound.gz">original download link</a>, <a href="http://members.lycos.co.uk/lordbanter/wolfsp-sdl-sound.gz">alternative download link</a>), created by <a href="http://nullkey.ath.cx/">Pyry Haulos</a>.</p>
<p>b) Open it with a text editor and customize it to match your configuration: change the line «<em>GAME_PATH=&#8221;/home/games/enemy-territory&#8221;</em>» to point to the location of your <em>Enemy Territory</em> installation (most likely «<em>GAME_PATH=&#8221;/usr/local/games/enemy-territor&#8221;</em>»); in case your directory with the game files isn&#8217;t called «<em>enemy-territory</em>» like in the example you&#8217;ll also need to adapt the <em>GAME_DIR</em> variable.</p>
<p>c) Save this file somewhere on your computer, make it executable if needed (you can do this by right clicking on it, selecting &#8220;Properties&#8221; and under the &#8220;Permissions&#8221; tab of the dialogue that will show up checking the box to allow execution of the file). Done, now whenever you want to run the game just start it by running this file.</p>
<p>I hope this is useful for someone out there :).</p>


<p>Related posts:<ol><li><a href='http://bloc.eurion.net/archives/2009/no-sound-on-hp-pavilion-dv6-1110ss/' rel='bookmark' title='Permanent Link: No sound on HP Pavilion dv6-1110ss'>No sound on HP Pavilion dv6-1110ss</a></li>
<li><a href='http://bloc.eurion.net/archives/2009/lock-cd-tray-when-laptop-lid-closed/' rel='bookmark' title='Permanent Link: Lock the CD tray when the laptop&#8217;s lid is closed'>Lock the CD tray when the laptop&#8217;s lid is closed</a></li>
<li><a href='http://bloc.eurion.net/archives/2009/getting-your-scanner-to-work-with-ubuntu-gt68xx/' rel='bookmark' title='Permanent Link: Getting your scanner to work with Ubuntu (gt68xx)'>Getting your scanner to work with Ubuntu (gt68xx)</a></li>
</ol></p><hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2009/no-sound-problem-with-wolfenstein-enemy-territory/#comments">No comments</a><br />
© Siegfried-Angel Gevatter Pujals, 2009. |
<a href="http://bloc.eurion.net/archives/2009/no-sound-problem-with-wolfenstein-enemy-territory/">Permalink</a> |
<a 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/jocs/" rel="tag">Jocs</a>, <a href="http://bloc.eurion.net/archives/tag/ubuntu/" rel="tag">Ubuntu</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2009/no-sound-problem-with-wolfenstein-enemy-territory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arreglant paquets que no compilen: necpp</title>
		<link>http://bloc.eurion.net/archives/2009/arreglant-paquets-que-no-compilen-necpp/</link>
		<comments>http://bloc.eurion.net/archives/2009/arreglant-paquets-que-no-compilen-necpp/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 22:10:36 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[motu]]></category>
		<category><![CDATA[Programari lliure]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=409</guid>
		<description><![CDATA[Una mica més tard del que tenia previst, però continuo el meu apunt sobre com arreglar paquets de l&#8217;Ubuntu que no compilen amb un primer exemple pràctic (o més que exemple, amb un cas real). El paquet triat, seleccionat de la llista de paquets que no compilen, s&#8217;anomena necpp. Procedim a seguir amb els passos [...]]]></description>
			<content:encoded><![CDATA[<p>Una mica més tard del que tenia previst, però continuo el meu apunt sobre <a href="http://bloc.eurion.net/archives/2009/contribuir-a-ubuntu-arreglar-paquets-que-no-compilen/">com arreglar paquets de l&#8217;Ubuntu que no compilen</a> amb un primer exemple pràctic (o més que exemple, amb un cas real). El paquet triat, seleccionat de la <a href="http://people.ubuntuwire.org/~wgrant/rebuild-ftbfs-test/test-rebuild-20090909.html">llista de paquets que no compilen</a>, s&#8217;anomena <strong>necpp</strong>. Procedim a seguir amb els passos que vaig descriure.</p>
<p><strong>1. Comprovació de l&#8217;estat</strong></p>
<p>Ara no perquè ja he arreglat el paquet, però si miravem a <a href="https://launchpad.net/ubuntu/+source/necpp">https://launchpad.net/ubuntu/+source/<strong>necpp</strong></a> veiem que la última versió del paquet era l&#8217;afectada, i que no hi havia informes d&#8217;error relacionats amb el problema (recordem que, si n&#8217;hi hagués, podríem trobar-hi pistes o bé veure que algú altre ja està treballant en arreglar aquest paquet). Comprovant els informes d&#8217;error a Debian (<a href="http://bugs.debian.org/necpp">http://bugs.debian.org/<strong>necpp</strong></a>) tampoc trobem res, i a <a href="http://packages.debian.org/necpp">http://packages.debian.org/<strong>necpp</strong></a> comprovem que tampoc hi ha cap versió més nova que la de l&#8217;Ubuntu on ho hagin arreglat. Així doncs, tirem endavant, i obrim un informe d&#8217;error al Launchpad per indicar que hi estem treballant (<a href="https://bugs.launchpad.net/ubuntu/+source/necpp/+bug/447454">exemple</a>).</p>
<p><strong>2. Obtenció del paquet font</strong><br />
Baixem el paquet font:</p>
<pre>apt-get source <strong>necpp</strong></pre>
<p>Si ho proveu ara, obtindreu la nova versió del paquet que ja he arreglat, però podeu baixar-vos l&#8217;anterior a fi de seguir el tutorial fent això en lloc de l&#8217;<em>apt-get source</em>:</p>
<pre>dget https://launchpad.net/ubuntu/+archive/primary/+files/<strong>necpp</strong>_<strong>1.3.0+cvs20090101</strong>-<strong>1ubuntu1</strong>.dsc
dpkg-source -x <strong>necpp</strong>_<strong>1.3.0+cvs20090101</strong>-<strong>1ubuntu1</strong>.dsc</pre>
<p>Ara, comprovem que efectivament podem reproduir el problema, intentant compilar-lo:</p>
<pre>pbuilder-karmic build <strong>necpp</strong>_<strong>1.3.0+cvs20090101</strong>-<strong>1ubuntu1</strong>.dsc</pre>
<p>El <a href="http://launchpadlibrarian.net/31951395/buildlog_ubuntu-karmic-amd64.necpp_1.3.0%2Bcvs20090101-1ubuntu1_FAILEDTOBUILD.txt.gz">missatge d&#8217;error</a> que rebem és el següent:</p>
<pre>[...]
XGetopt.cpp: In function 'int XGetopt(int, char**, const char*)':
XGetopt.cpp:170: error: invalid conversion from 'const char*' to 'char*'
make[3]: *** [XGetopt.o] Error 1
[...]</pre>
<p><strong>3. Solució del problema</strong><br />
Arribem així a la part més difícil, ja que aquesta no és sistemàtica.</p>
<p>El missatge d&#8217;error ens parla d&#8217;un fitxer <em>XGetopt.cpp</em>, el qual podem trobar al directori <em>str/</em>. Si mirem a la línia que menciona, la 170, ens trobem el següent:</p>
<pre>cp = strchr(optstring, c);</pre>
<p>Si cerquem informació sobre la funció <strong>strchr</strong> del C++, <a href="http://www.cplusplus.com/reference/clibrary/cstring/strchr/">trobem</a> que està sobrecarregada i té dues versions:</p>
<pre>const char * strchr (const char * str, int character);
char * strchr (char * str, int character);</pre>
<p>Veiem que si el primer paràmetre de la funció és constant, el resultat de la funció és una constant, i sí el paràmetre no és constant, el resultat tampoc ho és. Si mirem de quin tipus és la variable <em>optstring</em>, a la línia 133 trobem que és constant, de manera que el resultat de la funció també ho és. Si ara mirem com és la variable <em>cp</em>, a la qual s&#8217;està assignant la sortida de la funció, a la línia 136 veiem:</p>
<pre>char *cp;</pre>
<p>És a dir, no és constant, de manera que aquí tenim el problema. Si mirem la resta del codi on existeix aquesta variable, no trobem cap lloc on es modifiqui el valor de la cadena de text a la qual apunta, així que podem convertir la variable en constant sense problema. Per fer-ho, simplement cal canviar la línia afegint-hi «<em>const</em>» al davant, i com que si executem l&#8217;ordre</p>
<pre>what-patch</pre>
<p>ens diu que el paquet no utilitza cap sistema de pegats («<em>patchless?</em>») podem fer el canvi modificant el fitxer directament.</p>
<p>Per acabar, afegim una entrada nova al fitxer <em>debian/changelog</em>, declarant una revisió nova del paquet i explicant els canvis que hem fet. Executem l&#8217;ordre següent:</p>
<pre>dch -i</pre>
<p>I ha de quedar una cosa com ara:</p>
<pre>necpp (1.3.0+cvs20090101-1ubuntu2) karmic; urgency=low

  * src/XGetopt.cpp (LP: #447454)
     - Change the definition of the "cp" variable from type "char*" to
       "const char*", to avoid an "invalid conversion" error when the
       result of "strchr(const char*, ...)" is assigned to it.

 -- Siegfried-Angel Gevatter Pujals   Sat, 24 Oct 2009 19:58:55 +0200</pre>
<p>És important no oblidar-nos de referenciar el número de l&#8217;informe d&#8217;error que hem obert, i explicar clarament el motiu de tots els canvis.</p>
<p><strong>4. Regenerant el paquet font</strong></p>
<pre>debuild -S</pre>
<p>Això ens crearà un paquet font per a la nova revisió, que podem compilar tal com hem fet abans (però utilitzant el fitxer <em>.dsc</em> de la nova revisió, no el d&#8217;abans):</p>
<pre>pbuilder-karmic build <strong>necpp</strong>_<strong>1.3.0+cvs20090101</strong>-<strong>1ubuntu2</strong>.dsc</pre>
<p>Aquest cop funcionarà, així que ara només queda generar un fitxer de diferències i comprovar que només hi ha els canvis que hem fet intencionadament.</p>
<pre>debdiff <strong>necpp</strong>_<strong>1.3.0+cvs20090101</strong>-<strong>1ubuntu1</strong>.dsc <strong>necpp</strong>_<strong>1.3.0+cvs20090101</strong>-<strong>1ubuntu2</strong>.dsc &gt; <strong>necpp</strong>_<strong>1.3.0+cvs20090101</strong>-<strong>1ubuntu2</strong>.debdiff</pre>
<p>En aquest cas, el contingut del fitxer ha de ser el següent:</p>
<pre>diff -u necpp-1.3.0+cvs20090101/debian/changelog necpp-1.3.0+cvs20090101/debian/changelog
--- necpp-1.3.0+cvs20090101/debian/changelog
+++ necpp-1.3.0+cvs20090101/debian/changelog
@@ -1,3 +1,12 @@
+necpp (1.3.0+cvs20090101-1ubuntu2) karmic; urgency=low
+
+  * src/XGetopt.cpp (LP: #447454)
+     - Change the definition of the "cp" variable from type "char*" to
+       "const char*", to avoid an "invalid conversion" error when the
+       result of "strchr(const char*, ...)" is assigned to it.
+
+ -- Siegfried-Angel Gevatter Pujals   Sat, 24 Oct 2009 19:58:55 +0200
+
 necpp (1.3.0+cvs20090101-1ubuntu1) karmic; urgency=low

   * Merge from debian unstable, remaining changes from jaunty:
only in patch2:
unchanged:
--- necpp-1.3.0+cvs20090101.orig/src/XGetopt.cpp
+++ necpp-1.3.0+cvs20090101/src/XGetopt.cpp
@@ -133,7 +133,7 @@
 int XGetopt(int argc, char *argv[], const char *optstring)
 {
 	char c;
-	char *cp;
+	const char *cp;
 	static char *next = NULL;
 	if (optind == 0)
 		next = NULL;</pre>
<p><strong>5. Enviant els canvis a l&#8217;Ubuntu</strong></p>
<p>Ara que tenim el fitxer de diferències, l&#8217;adjuntem a l&#8217;informe d&#8217;error que hem creat al principi, i subscrivim l&#8217;equip de revisors adequat a l&#8217;informe. En aquest cas, el paquet està al dipòsit <em>universe</em>, com podem comprovar:</p>
<pre>
$ apt-cache madison <strong>necpp</strong>
     necpp | 1.3.0+cvs20090101-1ubuntu1 | http://mirror.pacific.net.au karmic/<strong>universe</strong> Sources</pre>
<p>Així doncs, l&#8217;equip és l&#8217;<em>ubuntu-universe-sponsors</em>. Ara només queda esperar que algú revisi el paquet i el pugi a l&#8217;Ubuntu, però com que som bons ciutadans també reportarem l&#8217;error a Debian tot donant-los-en la solució.</p>


<p>Related posts:<ol><li><a href='http://bloc.eurion.net/archives/2009/contribuir-a-ubuntu-arreglar-paquets-que-no-compilen/' rel='bookmark' title='Permanent Link: Com contribuir a l&#8217;Ubuntu &#8211; Arreglar paquets que no compilen correctament'>Com contribuir a l&#8217;Ubuntu &#8211; Arreglar paquets que no compilen correctament</a></li>
</ol></p><hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2009/arreglant-paquets-que-no-compilen-necpp/#comments">No comments</a><br />
© Siegfried-Angel Gevatter Pujals, 2009. |
<a href="http://bloc.eurion.net/archives/2009/arreglant-paquets-que-no-compilen-necpp/">Permalink</a> |
<a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">License</a> |
Post tags: <a href="http://bloc.eurion.net/archives/tag/motu/" rel="tag">motu</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>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2009/arreglant-paquets-que-no-compilen-necpp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Com contribuir a l&#8217;Ubuntu &#8211; Arreglar paquets que no compilen correctament</title>
		<link>http://bloc.eurion.net/archives/2009/contribuir-a-ubuntu-arreglar-paquets-que-no-compilen/</link>
		<comments>http://bloc.eurion.net/archives/2009/contribuir-a-ubuntu-arreglar-paquets-que-no-compilen/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 17:49:55 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[motu]]></category>
		<category><![CDATA[Programari lliure]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=394</guid>
		<description><![CDATA[El passat cap de setmana va tenir lloc l&#8217;Ubuntu Global Jam i l&#8217;equip català d&#8217;Ubuntu va aportar-hi el seu granet de sorra. Així, va tenir lloc una marató de traducció i, per la tarda, també es va fer una mica d&#8217;introducció a l&#8217;empaquetament de programes amb un exemple pràctic: com arreglar un paquet que no [...]]]></description>
			<content:encoded><![CDATA[<p>El passat cap de setmana va tenir lloc l&#8217;<a href="http://davidplanella.wordpress.com/2009/10/04/ubuntu-jamming-catalan-style/">Ubuntu Global Jam</a> i l&#8217;<a href="http://ubuntu.cat">equip català d&#8217;Ubuntu</a> va aportar-hi el seu granet de sorra. Així, va tenir lloc una marató de traducció i, per la tarda, també es va fer una mica d&#8217;introducció a l&#8217;empaquetament de programes amb un exemple pràctic: com arreglar un paquet que no compila. Seguint el suggeriment de l&#8217;<a href="http://log.alexm.org/">Alex Muntada</a> de fer un resum d&#8217;aquesta darrera activitat, m&#8217;he decidit a escriure una sèrie d&#8217;apunts sobre el tema.</p>
<p><strong>Prefaci</strong></p>
<p>Inauguro la sèrie amb aquest  primer apunt, on tot seguit explicaré conceptes generals en quant als &#8220;paquets que no compilen&#8221; i que fer amb ells; en successius apunts, i per tal de deixar-ho tot ben clar, explicaré els passos necessaris per a arreglar diferents paquets concrets. Depenent de la resposta que rebin aquests escrits, pot ser que més endavant enceti una sèrie nova que tracti algun altre tema relacionat amb els paquets, a partir dels coneixements adquirits amb aquesta.</p>
<p><strong>Introducció</strong></p>
<p>Si esteu llegint això ja deveu saber que en l&#8217;Ubuntu els programes venen preparats en forma de paquets; gestors de paquets (com ara l&#8217;Afegeix/Elimina, el Synaptic o l&#8217;Apt) us proporcionen una llista de tots els paquets disponibles i simplement esperen les vostres indicacions per tal de descarregar, insta?lar i mantenir actualitzats els paquets que us interessin. Ara bé, per increïble que pugui semblar, aquests paquets no apareixen del no-res, sinó que hi ha una munió de gent dedicant temps a crear-los i actualitzar-los.</p>
<p>Quan hom crea un paquet el que fa és agafar el codi font del programa (amb petites modificacions, si convé, com ara arreglar-ne algun error) i afegir-hi la informació necessària per a crear un programa. Un cop això està fet, el paquet font (source package) resultant és enviat al Launchpad (servidor d&#8217;Ubuntu), on és compilat per a les diferents arquitectures, tot creant els paquets binaris (.deb) que tots coneixem. Pot ocórrer que un paquet font no compili correctament (i no es creïn els paquets .deb) per a una o més arquitectures; en aquest cas, cal trobar quin és el problema i enviar una nova revisió del paquet al Launchpad. Del fet que un paquet no compili correctament se&#8217;n diu <em>FTBFS</em> («<em>Fails to Build From Source</em>»).</p>
<p>Normalment, poc abans que surti una nova versió de l&#8217;Ubuntu, s&#8217;intenta tornar a compilar tots els paques dels dipòsits oficials per tal de comprovar que encara compilin correctament. Aquesta operació acaba donant un llarg llistat de paquets que fallen i que convé arreglar. Els motius que els paquets no compilin correctament són diversos, i poden ser coses com ara: l&#8217;ús d&#8217;una nova versió més estricta d&#8217;un compilador (com passa sovint amb el gcc), canvis en les dependències de construcció del paquet (és a dir, en els paquets de que cal disposar per crear-lo, <em>«build dependencies</em>»; pot ser un canvi en el contingut d&#8217;algun d&#8217;aquests paquets el que provoqui el problema, que hagi canviat el nom d&#8217;algun d&#8217;ells i ara no el trobi&#8230;), etc.</p>
<p>La llista de paquets que no compilen correctament a la Karmic es troba aquí: <a href="http://people.ubuntuwire.org/~wgrant/rebuild-ftbfs-test/test-rebuild-20090909.html">Build status for Ubuntu Karmic</a>. Passem a veure, en termes generals, que fer amb aquests paquets.</p>
<p><strong>0. Preparació abans de tractar amb paquets </strong>(això només cal fer-ho el primer cop)</p>
<p>Abans de posar-nos mans a la obra ens cal preparar el nostre sistema, instal·lant-hi unes quantes eines.</p>
<pre>sudo aptitude install ubuntu-dev-tools devscripts debhelper cdbs patchutils pbuilder build-essential</pre>
<p>Fem saber el nostre nom a aquestes eines, obrint el fitxer <em>.bashrc</em> i afegint les dues línies següents al final (tot substituint les dades per les nostres pròpies, és clar!):</p>
<pre>export DEBEMAIL=usuari@proveidor.com
export DEBFULLNAME="Nom Cognom"</pre>
<p>[En cas que disposem d'una clau PGP, convé escriure el mateix nom i l'adreça de correu electrònica tal com els tenim a la clau, tot posant el comentari -si n'hi ha- entre parèntesis i a continuació del nom.]<br />
També crearem un entorn Ubuntu mínim on podem provar de compilar els paquets sense que afectin (ni siguin afectats) pel nostre sistema. [Si no estem utilitzant la Karmic, cal insta?lar el paquet <em><a href="http://packages.ubuntu.com/debootstrap">debootstrap</a></em> del dipòsit <em>-backports</em> corresponent a la versió que utilitzem. També és recomanable agafar la última versió de l'<em>ubuntu-dev-tools</em>.]</p>
<pre>sudo ln -s <a href="http://bloc.eurion.net/archives/2009/test-build-debian-packages/">/usr/bin/pbuilder-dist</a> /usr/local/bin/pbuilder-karmic
sudo chmod +x /usr/local/bin/pbuilder-karmic
pbuilder-karmic create</pre>
<p>Haurem d&#8217;esperar una estona fins que tot el sistema base sigui insta?lat i actualitzat. Per acabar, ens hem d&#8217;assegurar que tinguem una línia <em>deb-src</em> per a la Karmic (encara que estiguem utilitzant la Jaunty o l&#8217;Intrepid, al ser de codi font això no té importància) al fitxer <em>/etc/apt/sources.list</em> i la llista de paquets actualitzada (<em>sudo aptitude update</em>).</p>
<p><strong>1. Comprovació de l&#8217;estat de l&#8217;error: ja hi està treballant algú?<br />
</strong></p>
<p>Un cop hem triat quin paquet volem arreglar, anem a <em>https://launchpad.net/ubuntu/+source/<strong>nom_paquet</strong></em>, comprovem que la última versió indicada sigui la mateixa que a la llista de FTBFS, i comprovem els informes d&#8217;error per si ja n&#8217;hi ha algun sobre el problema en qüestió. Si és així, comprovem que no estigui assignat a ningú (si ho està, deixem el paquet per ell i ens en busquem algun altre, per no duplicar la feina), mirem si l&#8217;informe conté alguna informació rellevant, i ens l&#8217;assignem a nosaltres, canviant a  més l&#8217;estat a <em>In Progress</em>. Si no hi ha cap informe d&#8217;error sobre el FTBFS, en creem un i igualment ens l&#8217;assignem a nosaltres i el marquem com a en progrés.</p>
<p>Fet això, comprovem també <em>http://packages.qa.debian.org/<strong>nom_paquet</strong></em>, on ens assegurem que a Debian no hi hagi ja una versió nova del paquet que solucioni l&#8217;error ni un informe d&#8217;error amb informació que ens pugui ser útil. Si fos el cas que a Debian el paquet ja ha estat arreglat, depenent de la situació en tindríem prou amb demanar que sigui sincronitzat a l&#8217;Ubuntu (veure <a href="https://wiki.ubuntu.com/SyncRequestProcess">sync requests</a>) o bé, si el paquet d&#8217;allà té altres canvis que en aquest moment no volem (per exemple una versió amb funcionalitats noves, ja entrada en vigor la <em>Feature Freeze</em>), podem agafar la solució de Debian de forma isolada per aplicar-la al nostre paquet.</p>
<p><strong>2. Obtenció del paquet font</strong></p>
<p>Ara que hem comprovat que el problema encara no ha estat solucionat, potser hem trobat alguna informació útil, i que hem indicat que estem treballant en arreglar-lo, procedim a baixar el paquet font:</p>
<pre>apt-get source <strong>nom_paquet</strong></pre>
<p>Això baixarà tres fitxers al nostre directori actual: <em>nom_paquet_versió.orig.tar.gz</em>, <em>nom_paquet-versió-revisió.diff.gz</em> i <em>nom_paquet-versió-revisió.dsc</em>. El primer és el codi font agafat de l&#8217;autor original (&lt;em&gt;upstream&lt;/em&gt;), sense modificacions; el segon fitxer és un fitxer de diferències que conté la informació necessària per crear al paquet (que serà posada en un directori anomenat «debian» dins del codi font) i en alguns casos també canvis al codi original, i l&#8217;últim fitxer simplement serveix per verificar que els altres dos són correctes (que no ha estat modificats o corromputs pel camí). Automàticament, també descomprimirà el contingut del <em>.tar.gz</em> i li aplicarà els canvis del <em>.diff.gz</em>, de manera que trobarem un directori <em>nom_paquet-versió</em> on treballar.</p>
<p>[En el paràgraf anterior, «<em>nom_paquet</em>» es refereix al nom del paquet font, «<em>versió</em>» al número de versió que li ha posat l'autor original, i «<em>revisió</em>» al número de revisió del paquet, que pren la forma <em>XubuntuY</em>, on <em>X</em> és la revisió de Debian i <em>Y</em> la revisió d'Ubuntu -si el paquet ve directament de Debian, simplement serà <em>X</em>-].</p>
<p>Arribats a aquest punt, podem verificar que realment el paquet no compila correctament, tot intentant-ho amb:</p>
<pre>pbuilder-karmic build <strong>nom_paquet</strong>-<strong>versió</strong>-<strong>revisió</strong>.dsc</pre>
<p>Per a continuar, ens situarem dins del directori descomprimit:</p>
<pre>cd <strong>nom_paquet</strong>-<strong>versió</strong></pre>
<p><strong>3. Solució del problema</strong></p>
<p>Ara que tenim el paquet de codi font, hem de trobar la solució al problema. Per a això ens és útil llegir el registre de l&#8217;intent de creació del paquet fallit, cercar informació als informes d&#8217;error d&#8217;Ubuntu i Debian (com ja s&#8217;ha mencionat abans) i del lloc web de l&#8217;autor original, llegir el registre de canvis del paquet (el fitxer <strong>debian/changelog</strong> dins del directori de codi font) per si hi ha referències útils, etc. Aquest constitueix el pas crític i més important, ja que si no sabem com solucionar l&#8217;error poc podrem fer.</p>
<p>[En cas que trobem un canvi al <em>debian/changelog</em> que sembli rellevant al problema actual, però no l'acabem d'entendre, preguntarem a la persona que l'hagi fet, ja sigui enviant-li un missatge de correu electrònic o cercant-lo a l'IRC (canal <em>#ubuntu-motu</em> o <em>#ubuntu-devel</em> a <em>irc.freenode.org</em>.]</p>
<p>Un cop haguem trobat com solucionar el problema, apliquem els canvis necessaris. Aquests acostumen a consistir en una modificació al fitxer <strong>debian/rules</strong> (per corregir les instruccions de creació del paquet), <strong>debian/control</strong> (per corregir les dependències de construcció) o als fitxers de codi font; les modificacions a aquests darrers cal fer-les utilitzant un sistema de pegats, en cas que el paquet ja disposi d&#8217;un (podem veure-ho amb l&#8217;ordre <strong>what-patch</strong>), o bé modificant els fitxers directament en cas contrari.</p>
<p>Fet això, haurem d&#8217;afegir a la informació del paquet una nova revisió. Per a això executarem «<em>dch -i</em>» i, a l&#8217;espai on descriure els canvis, explicarem detalladament què hem fet i perquè. També hi inclourem una referència a l&#8217;informe d&#8217;error que hem obert (o trobat) anteriorment, de la forma «<em>(LP: #<strong>número</strong>)</em>». Usualment el format utilitzat és d&#8217;aquest tipus:</p>
<pre>  * debian/control: Add foo as a build dependency, because the build system invokes command bar provided by the former; this fixes a FTBFS (LP: #123456).</pre>
<p>Com veieu, es comença posant el nom del fitxer (o els fitxers) modificat, dos punts, i a continuació s&#8217;expliquen detalladament els canvis; cada canvi es posa en una línia separada (començant per «  *»).</p>
<p><strong>4. Regenerant el paquet font</strong></p>
<p>Hem arreglat el problema i hem documentat tot en una entrada nova al fitxer <em>debian/changelog</em>. Ara podem procedir a crear un paquet font per a la nova revisió; això ho farem amb l&#8217;ordre següent</p>
<pre>debuild -S</pre>
<p>[És estrany, però pot ser que algun paquet requereixi la insta?lació de part de les dependències de construcció per tal de crear el paquet font. Quan aquest sigui el cas, n'hi ha prou amb insta?lar les dependències mancants i repetir l'ordre.]</p>
<p>Si tot va bé, ara podem tornar al directori pare del codi font (&lt;em&gt;cd ..&lt;/em&gt;) i ens trobarem amb dos fitxers nous: un &lt;em&gt;.diff.gz&lt;/em&gt; i un &lt;.dsc&gt; per a la nova revisió (l&#8217;&lt;em&gt;.orig.tar.gz&lt;/em&gt; no ens cal, ja que la versió de l&#8217;autor original és la mateixa que abans).</p>
<p>Ara podem tornar a provar de construir el paquet, i si hem fet bé la nostra feina aquest cop funcionarà (i deixarà un o més paquets binaris a <em>~/pbuilder/karmic_result/</em>):</p>
<pre>pbuilder-karmic build <strong>nom_paquet</strong>-<strong>versió</strong>-<strong>revisió_nova</strong>.dsc</pre>
<p>Si ha funcionat, felicitats! Per acabar, crearem un fitxer de diferències amb els canvis entre la revisió actual de l&#8217;Ubuntu i la nova que hem preparat, tot fent:</p>
<pre>debdiff <strong>nom_paquet</strong>-<strong>versió</strong>-<strong>revisió_original</strong>.dsc <strong>nom_paquet</strong>-<strong>versió</strong>-<strong>revisió_nova</strong>.dsc &gt; <strong>nom_paquet</strong>-<strong>versió</strong>-<strong>revisió_nova</strong>.debdiff</pre>
<p>El fitxer <em>.debdiff</em> l&#8217;obrirem amb un editor de text per comprovar que no s&#8217;hi hagi colat cap canvi que no haguem fet. [Si hi ha alguna cosa que no volem, haurem de desfer el canvi al directori del codi font i tornar a regenerar el paquet font, no s'hi val editar el fitxer <em>.debdiff</em> a mà ja que això segurament l'espatllarà.]</p>
<p><strong>Enviant els canvis a l&#8217;Ubuntu</strong></p>
<p>Un cop estiguem satisfets amb la nostra solució i haguem provat que funciona, adjuntarem el fitxer <em>.debdiff</em> a l&#8217;informe d&#8217;error que hem trobat o creat al <a href="https://launchpad.net/ubuntu">Launchpad</a> i només ens faltarà que un desenvolupador d&#8217;Ubuntu el comprovi i el pugi a l&#8217;Ubuntu. Per a això haurem de mirar en quin dipòsit està el paquet, fent:</p>
<pre>apt-cache madison <strong>nom_paquet</strong></pre>
<p>Si la penúltima paraula és «<em>universe</em>» o «<em>multiverse</em>», subscriure&#8217;m l&#8217;equip «<em>ubuntu-universe-sponsors</em>» a l&#8217;informe d&#8217;error utilitzant l&#8217;opció que trobarem al Launchpad a la dreta; si, en cavi, és «<em>main</em>» o «<em>restricted</em>», subscriure&#8217;m l&#8217;equip «<em>ubuntu-main-sponsors</em>». Ara, tot és qüestió d&#8217;esperar que algú revisi els nostres canvis i els apliqui o bé proposi possibles millores.</p>
<p>Quan els nostres canvis hagin estat acceptats, també els enviarem a Debian, en cas que allà també hi siguin rellevants. Per això simplement enviarem un mail a <em><strong>número_de_l&#8217;informe_d&#8217;error</strong>@bugs.debian.org</em> si ja existeix un informe d&#8217;error, o n&#8217;<a href="http://www.debian.org/Bugs/Reporting">obrirem un de nou</a> si no n&#8217;hi ha.</p>
<p><strong>Conclusió</strong></p>
<p>Si heu llegit tot això, us felicito, ja que realment heu mostrar voluntat. Com he promès al prefaci, els propers dies escriure uns quants apunts més explicant (de forma més breu) com arreglar alguns paquets particulars, tot veient solucions a diferents problemes.</p>


<p>Related posts:<ol><li><a href='http://bloc.eurion.net/archives/2009/arreglant-paquets-que-no-compilen-necpp/' rel='bookmark' title='Permanent Link: Arreglant paquets que no compilen: necpp'>Arreglant paquets que no compilen: necpp</a></li>
<li><a href='http://bloc.eurion.net/archives/2010/gnome-activity-journal-and-installing-it-on-ubuntu/' rel='bookmark' title='Permanent Link: GNOME Activity Journal, and installing it on Ubuntu'>GNOME Activity Journal, and installing it on Ubuntu</a></li>
<li><a href='http://bloc.eurion.net/archives/2007/copies-de-seguretat-ubuntu/' rel='bookmark' title='Permanent Link: Més val prevenir&#8230; (Còpies de seguretat a Ubuntu)'>Més val prevenir&#8230; (Còpies de seguretat a Ubuntu)</a></li>
</ol></p><hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2009/contribuir-a-ubuntu-arreglar-paquets-que-no-compilen/#comments">One comment</a><br />
© Siegfried-Angel Gevatter Pujals, 2009. |
<a href="http://bloc.eurion.net/archives/2009/contribuir-a-ubuntu-arreglar-paquets-que-no-compilen/">Permalink</a> |
<a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">License</a> |
Post tags: <a href="http://bloc.eurion.net/archives/tag/motu/" rel="tag">motu</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>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2009/contribuir-a-ubuntu-arreglar-paquets-que-no-compilen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to help with package screenshots</title>
		<link>http://bloc.eurion.net/archives/2009/how-to-help-with-package-screenshots/</link>
		<comments>http://bloc.eurion.net/archives/2009/how-to-help-with-package-screenshots/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 20:25:06 +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[packaging]]></category>
		<category><![CDATA[Programari lliure]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=355</guid>
		<description><![CDATA[By now most of you should have noticed that nifty feature that Add/Remove applications and Synaptic got a few months ago &#8211; being able to fetch a screenshot for every package, as can be seen in the image below.
What maybe isn&#8217;t that well-known is, where do those images actually come from? Easy: they are all [...]]]></description>
			<content:encoded><![CDATA[<p>By now most of you should have noticed that nifty feature that <em>Add/Remove applications</em> and <em>Synaptic</em> got a few months ago &#8211; being able to fetch a screenshot for every package, as can be seen in the image below.</p>
<p><div id="attachment_356" class="wp-caption aligncenter" style="width: 310px"><a href="http://bloc.eurion.net/wp-content/uploads/2009/09/freevial-package-screenshot.png"><img class="size-medium wp-image-356" title="Screenshot of gnome-app-install showing a screenshot for a package" src="http://bloc.eurion.net/wp-content/uploads/2009/09/freevial-package-screenshot-300x153.png" alt="..." width="300" height="153" /></a><p class="wp-caption-text"> </p></div></p>
<p>What maybe isn&#8217;t that well-known is, where do those images actually come from? Easy: they are all at <a href="http://screenshots.debian.net"> screenshots.debian.net</a> and applications interested in showing them fetch them from there.</p>
<p>Now, I&#8217;m not telling you this because I think it&#8217;s <em>soooo</em> interesting, but because I&#8217;m seeing lots of packages without screenshots and&#8230; <strong>you can help create those!</strong> So, go look for some of your favourite application missing a screenshot, take a meaningful screenshot of it (<a title="Screenshot guidelins" href="http://screenshots.debian.net/guidelines">in English, using PNG format, etc.</a>) and head over to <a href="http://screenshots.debian.net">screenshots.debian.net</a> to upload it :).</p>
<p><div id="attachment_358" class="wp-caption aligncenter" style="width: 310px"><a href="http://bloc.eurion.net/wp-content/uploads/2009/09/software-center.png"><img class="size-medium wp-image-358" title="Ubuntu Software Store (hopefully to be renamed soon!)" src="http://bloc.eurion.net/wp-content/uploads/2009/09/software-center-300x163.png" alt="The new software centre (which can be tested in Karmic) of course also shows those screenshots, and in a much nicer way (they fade in automatically)." width="300" height="163" /></a><p class="wp-caption-text">The new software centre (which can be tested in Karmic) of course also shows those screenshots, and in a much nicer way (they fade in automatically).</p></div></p>


<p>Related posts:<ol><li><a href='http://bloc.eurion.net/archives/2009/bolzano-gpl/' rel='bookmark' title='Permanent Link: GPL: Not here'>GPL: Not here</a></li>
</ol></p><hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2009/how-to-help-with-package-screenshots/#comments">10 comments</a><br />
© Siegfried-Angel Gevatter Pujals, 2009. |
<a href="http://bloc.eurion.net/archives/2009/how-to-help-with-package-screenshots/">Permalink</a> |
<a 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/packaging/" rel="tag">packaging</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>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2009/how-to-help-with-package-screenshots/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Here is Zeitgeist 0.2.1!</title>
		<link>http://bloc.eurion.net/archives/2009/here-is-zeitgeist-0-2-1/</link>
		<comments>http://bloc.eurion.net/archives/2009/here-is-zeitgeist-0-2-1/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 22:45:37 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gsoc2009]]></category>
		<category><![CDATA[Programari lliure]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[zeitgeist]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=349</guid>
		<description><![CDATA[One month after the first Zeitgeist release (0.2), here is Zeitgeist 0.2.1! This version, which is fully backwards compatible with the previous release, fixes a couple of issues, provides enhanced performance and removes the dependency on Storm and on a patches PyGTK+ version.
Here is the full changelog:

- Added compatibility with Python version 2.5.
- Removed the [...]]]></description>
			<content:encoded><![CDATA[<p>One month after <a href="http://bloc.eurion.net/archives/2009/zeitgeist-is-out/">the first Zeitgeist release</a> (0.2), here is Zeitgeist 0.2.1! This version, which is fully backwards compatible with the previous release, fixes a couple of issues, provides enhanced performance and removes the dependency on <a href="https://storm.canonical.com/">Storm</a> and on a patches PyGTK+ version.</p>
<p>Here is the full changelog:<br />
<code><br />
- Added compatibility with Python version 2.5.<br />
- Removed the Storm dependency, obtaining general performance improvements.<br />
- Removed the need for a patched PyGTK.<br />
- Made the GtkRecentlyUser logger more robust (fixes an infinit loop on some<br />
systems).<br />
- Improved performance of DeleteItems and UpdateItems.<br />
- Fixed a problem with the contents of the EventsChanged signal.<br />
- Fixed InsertEvents to enforce "mimetype" as a required value.<br />
- Fixed a bug where the sorting_asc=True in FindEvents would be ignored if used<br />
together with mode="mostused" (LP: #404947).<br />
- Highly improved caching.<br />
- Added a "--quit" option to zeitgeist-daemon to stop any running daemon.<br />
- General code improvements, new test cases and other minor fixes.<br />
</code></p>
<p>Additionally, it also adds the possibility to use a list of strings (instead of just a single string) as value for the &#8220;uri&#8221; and &#8220;name&#8221; filters; if used, the condition between the different values in the list is OR (so you can do, for example, <code>"name": [u"%ubuntu%", u"%debian%"]</code> to get all those items with either &#8220;ubuntu&#8221; or &#8220;debian&#8221; in their name).</p>
<p><a href="https://launchpad.net/zeitgeist/+download">Go get it here!</a> (Note: Zeitgeist by itself doesn&#8217;t provide any user interface and shouldn&#8217;t be relevant to end users. However, a GTK+ interface depending on it should be available soon, followed by GNOME Shell and other products which will also use it.)</p>


<p>Related posts:<ol><li><a href='http://bloc.eurion.net/archives/2009/zeitgeist-since-uds/' rel='bookmark' title='Permanent Link: Zeitgeist since UDS'>Zeitgeist since UDS</a></li>
<li><a href='http://bloc.eurion.net/archives/2009/zeitgeist-is-out/' rel='bookmark' title='Permanent Link: Zeitgeist is out!'>Zeitgeist is out!</a></li>
<li><a href='http://bloc.eurion.net/archives/2009/zeitgeist-api-02/' rel='bookmark' title='Permanent Link: Introduction to Zeitgeist 0.2&#8217;s API'>Introduction to Zeitgeist 0.2&#8217;s API</a></li>
</ol></p><hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2009/here-is-zeitgeist-0-2-1/#comments">2 comments</a><br />
© Siegfried-Angel Gevatter Pujals, 2009. |
<a href="http://bloc.eurion.net/archives/2009/here-is-zeitgeist-0-2-1/">Permalink</a> |
<a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">License</a> |
Post tags: <a href="http://bloc.eurion.net/archives/tag/gnome/" rel="tag">gnome</a>, <a href="http://bloc.eurion.net/archives/tag/gsoc2009/" rel="tag">gsoc2009</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>, <a href="http://bloc.eurion.net/archives/tag/zeitgeist/" rel="tag">zeitgeist</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2009/here-is-zeitgeist-0-2-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Introduction to Zeitgeist 0.2&#8217;s API</title>
		<link>http://bloc.eurion.net/archives/2009/zeitgeist-api-02/</link>
		<comments>http://bloc.eurion.net/archives/2009/zeitgeist-api-02/#comments</comments>
		<pubDate>Sun, 26 Jul 2009 17:51:43 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gsoc2009]]></category>
		<category><![CDATA[Programari lliure]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[zeitgeist]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=331</guid>
		<description><![CDATA[So now that Zeitgeist 0.2.0 is out I&#8217;ve thought I&#8217;d write down some examples of how to use it&#8217;s API to get information from it. Please keep in mind that this is a development version and the API isn&#8217;t guaranteed to be stable (and I can tell you now, many of them will change). If [...]]]></description>
			<content:encoded><![CDATA[<p>So now that <a href="http://bloc.eurion.net/archives/2009/zeitgeist-is-out/">Zeitgeist 0.2.0 is out</a> I&#8217;ve thought I&#8217;d write down some examples of how to use it&#8217;s API to get information from it. Please keep in mind that this is a development version and the API isn&#8217;t guaranteed to be stable (and I can tell you now, many of them will change). If you&#8217;re going to develop something for Zeitgeist it&#8217;s a good idea to come by and explain us what you&#8217;re doing (so that we can keep your use cases in mind and notify you in case of any important changes). This said, here we go.</p>
<p><strong>Installation</strong></p>
<p>If you use Ubuntu you can grab packages from <a href="https://launchpad.net/~zeitgeist/+archive/ppa">Zeitgeits&#8217;s PPA</a>, else <a href="https://launchpad.net/zeitgeist/+download">get the tarball</a> and install it (# make; make install). Once installed, start &#8220;zeitgeist-daemon&#8221; and leave it running in the background (at first it may be busy for some time going through all of your Firefox history, but after that you shouldn&#8217;t notice it).</p>
<p>Zeitgeist comes with a public Python module providing some convenience functions. This module makes it very easy to play with Zeitgeist from an interactive Python instance, which is something I recommend you to do while reading this post. Thanks to it, you can get access to Zeitgeist&#8217;s D-Bus interface simply doing: <code>from zeitgeist import dbusutils; iface = dbusutils.DBusInterface()</code>.</p>
<p><strong>API Examples</strong></p>
<p>For brevity, I&#8217;m only going to show some examples, but not explain what every parameter used in the call stands for. You&#8217;ll need to look at the <a href="http://docs.zeitgeist-project.com/api">DBus API documentation</a> to completely understand them.</p>
<p><em>Also, I&#8217;m using Python for the examples, but the same works with very little modifications in any other language (as long as it has D-Bus bindings).</em></p>
<p><code>iface.GetItems([u'file:///home/rainct/todo'])</code><br />
Returns a dictionary with basic information about the &#8220;todo&#8221; file in my home directory; uri, text (usually the filename), mimetype, tags, whether it&#8217;s bookmarked or not, etc. The values for some keys, like &#8220;timestamp&#8221;, are empty because they are only relevant for events, which are items put into a timeline (yes, this is a bit confusing, in future versions of Zeitgeist we will clearly differentiation between events and items).</p>
<p><code>iface.FindEvents(time.time() - 24*3600, time.time(), 5, False, 'event', [])</code><br />
Returns the five last events (or less, if less than five events where logged within the last twenty-four hours). If you opened the same file twice, it will have two events; to avoid this change <code>'event'</code> to <code>'item'</code>.</p>
<p><code>iface.FindEvents(0, 0, 10, True, 'event', [])</code><br />
Returns the ten first events ever registered with Zeitgeist which happened first <em>(the sorting is always done by timestamp, not by insertion order)</em>.</p>
<p><code>iface.FindEvents(0, 0, 2, False, 'mostused', [])</code><br />
Returns the last two events for to the items (URIs) which are used the most often.</p>
<p><code>iface.FindEvents(0, 0, 0, False, 'item', [{'tags': [u'zeitgeist'], 'bookmarked': True}])</code><br />
Returns all events (when there are more than one with the same URI, only the most recent of them because of the <code>'item'</code> parameter) which are bookmarked and have the tag &#8220;zeitgeist&#8221;.</p>
<p><code>iface.FindEvents(0, 0, 0, False, 'item', [{'tags': [u'zeitgeist']}, {'mimetypes': ['text/x-python'], 'bookmarked': True}])</code><br />
Returns all events (when there are more than one with the same URI, only the most recent of them because of the <code>'item'</code> parameter) which are bookmarked and have the tag &#8220;zeitgeist&#8221;.</p>
<p><code>iface.FindEvents(0, 0, 0, False, 'item', [{'tags': [u'zeitgeist', 'engine']}, {'mimetypes': ['text/x-python'], 'bookmarked': True}])</code><br />
Returns all events (without duplicated URIs) which either have the tags &#8220;zeitgeist&#8221; and &#8220;engine&#8221; or, alternatively, are Python files (determined by their mimetype) and are bookmarked.</p>
<p><code>iface.CountEvents(0, 0, 'item', [{'tags': [u'zeitgeist', 'engine']}, {'mimetypes': ['text/x-python'], 'bookmarked': True}])</code><br />
Same as above, but returning only the amount of results that the previous call would yield.</p>
<p><code>iface.FindApplications(time.time() - 3600*24*30, 0, [{'mimetypes': ['text/x-python']}])</code><br />
Returns the path to the .desktop files of all applications which were used to manipulate Python files within the last 30 days (eg., in my case: <em>[u'/usr/share/applications/geany.desktop', u'/usr/share/applications/gedit.desktop' ]</em>).</p>
<p><code>iface.GetTags(0, 0, 5, u'a%')</code><br />
Returns the five most used tags which start with &#8220;a&#8221; (case insensitive) in a list of tuples containing both the tag name and the amount of times it was used.</p>
<p><code>iface.GetLastInsertionDate(u'/usr/share/applications/gedit.desktop')</code><br />
Returns the timestamp of the last event related to Gedit.</p>
<p><code>iface.connect('EventsChanged', callback_function); import gobject; gobject.MainLoop.run()</code><br />
Calls <code>callback_function</code> every time a new event is inserted into the database or an existing one is modified. The callback function receives a list containing in the first place a string representing the type of change (&#8220;added&#8221;, &#8220;modified&#8221;, &#8220;deleted&#8221;) and in second place a list containing the affected events (or, in case of deletion, only a list with the deleted URIs).</p>


<p>Related posts:<ol><li><a href='http://bloc.eurion.net/archives/2009/zeitgeist-is-out/' rel='bookmark' title='Permanent Link: Zeitgeist is out!'>Zeitgeist is out!</a></li>
<li><a href='http://bloc.eurion.net/archives/2009/here-is-zeitgeist-0-2-1/' rel='bookmark' title='Permanent Link: Here is Zeitgeist 0.2.1!'>Here is Zeitgeist 0.2.1!</a></li>
<li><a href='http://bloc.eurion.net/archives/2010/zeitgeist-data-source-registry/' rel='bookmark' title='Permanent Link: Zeitgeist Data-Source Registry'>Zeitgeist Data-Source Registry</a></li>
</ol></p><hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2009/zeitgeist-api-02/#comments">No comments</a><br />
© Siegfried-Angel Gevatter Pujals, 2009. |
<a href="http://bloc.eurion.net/archives/2009/zeitgeist-api-02/">Permalink</a> |
<a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">License</a> |
Post tags: <a href="http://bloc.eurion.net/archives/tag/gnome/" rel="tag">gnome</a>, <a href="http://bloc.eurion.net/archives/tag/gsoc2009/" rel="tag">gsoc2009</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>, <a href="http://bloc.eurion.net/archives/tag/zeitgeist/" rel="tag">zeitgeist</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2009/zeitgeist-api-02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zeitgeist is out!</title>
		<link>http://bloc.eurion.net/archives/2009/zeitgeist-is-out/</link>
		<comments>http://bloc.eurion.net/archives/2009/zeitgeist-is-out/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 12:55:08 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gsoc2009]]></category>
		<category><![CDATA[Programari lliure]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[zeitgeist]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=336</guid>
		<description><![CDATA[World, the first Zeitgeist release is out! From the release announcement (slightly modified):
«««
With great joy and excitement, the Zeitgeist Team is proud to announce Zeitgeist 0.2 codename: okidoki), the first public release of the ultimate service for event logging (yes, there was no 0.1 announcement, we are too cool for that).
Zeitgeist is an &#8220;Event Logging [...]]]></description>
			<content:encoded><![CDATA[<p>World, the first Zeitgeist release is out! From the <a href="https://launchpad.net/zeitgeist/+announcement/3212">release announcement</a> (slightly modified):</p>
<p>«««<br />
With great joy and excitement, the Zeitgeist Team is proud to announce Zeitgeist 0.2 codename: <em>okidoki</em>), the first public release of the ultimate service for event logging (yes, there was no 0.1 announcement, we are too cool for that).</p>
<p style="text-align: left;">Zeitgeist is an &#8220;Event Logging Framework&#8221; that provides cross application awareness of the desktop&#8217;s activities.</p>
<p>You worked on a file, but you cannot remember where you saved it? You visited a web page about basketball three days ago, but you cannot find the URL in your browser&#8217;s history? No problem, this is where Zeitgeist enters the scene. It knows a lot about your activities and has a feature rich D-Bus API which allows GUI applications like <a href="http://launchpad.net/gnome-zeitgeist">gnome-zeitgeist</a>, <a href="http://launchpad.net/zeitgeist-filesystem">zeitgeistfs</a> and others to present you your activities in a readable way.</p>
<p><span style="text-decoration: underline;">Highlights of the 0.2 release:</span><br />
* SQLite backend for central information storage.<br />
* D-Bus API with support for storing and retrieving the data (with lots of filtering options!).<br />
* Support for logging items and events from GtkRecentManager,<br />
Firefox, Tomboy, Evolution and Twitter. Plus plugins for Epiphany and Bazaar!</p>
<p>All this has been possible thanks to (in alphabetical order):<br />
Markus Korn, Mikkel Kamstrup, Natan Yellin, Seif Lotfy and Siegfried-Angel Gevatter!</p>
<p style="text-align: left;"><span style="text-decoration: underline;">Installing Zeitgeist</span></p>
<p style="text-align: left;">To install Zeitgeist just <a href="http://launchpad.net/zeitgeist/0.2/0.2/+download/zeitgeist-0.2.0.tar.gz">download the tarball</a>, extract it, and then run:<br />
<code>$ make<br />
# make install</code><br />
If you are using Ubuntu it&#8217;s recommended that you install the <a href="https://launchpad.net/~zeitgeist/+archive/ppa/">packages from our PPA</a>. Finally, you can start the daemon, like this:<br />
<code>$ zeitgeist-daemon</code><br />
»»»</p>


<p>Related posts:<ol><li><a href='http://bloc.eurion.net/archives/2009/here-is-zeitgeist-0-2-1/' rel='bookmark' title='Permanent Link: Here is Zeitgeist 0.2.1!'>Here is Zeitgeist 0.2.1!</a></li>
<li><a href='http://bloc.eurion.net/archives/2009/zeitgeist-api-02/' rel='bookmark' title='Permanent Link: Introduction to Zeitgeist 0.2&#8217;s API'>Introduction to Zeitgeist 0.2&#8217;s API</a></li>
<li><a href='http://bloc.eurion.net/archives/2009/zeitgeist-since-uds/' rel='bookmark' title='Permanent Link: Zeitgeist since UDS'>Zeitgeist since UDS</a></li>
</ol></p><hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2009/zeitgeist-is-out/#comments">13 comments</a><br />
© Siegfried-Angel Gevatter Pujals, 2009. |
<a href="http://bloc.eurion.net/archives/2009/zeitgeist-is-out/">Permalink</a> |
<a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">License</a> |
Post tags: <a href="http://bloc.eurion.net/archives/tag/gnome/" rel="tag">gnome</a>, <a href="http://bloc.eurion.net/archives/tag/gsoc2009/" rel="tag">gsoc2009</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>, <a href="http://bloc.eurion.net/archives/tag/zeitgeist/" rel="tag">zeitgeist</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2009/zeitgeist-is-out/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Zeitgeist since UDS</title>
		<link>http://bloc.eurion.net/archives/2009/zeitgeist-since-uds/</link>
		<comments>http://bloc.eurion.net/archives/2009/zeitgeist-since-uds/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 14:45:47 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gsoc2009]]></category>
		<category><![CDATA[Programari lliure]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[zeitgeist]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=324</guid>
		<description><![CDATA[Quite some stuff has been going on in Zeitgeist since UDS, including the addition of two new developers to our team: Mikkel Kamstrup and Markus Korn, who both have been doing awesome work!
As planned, we split the project into the engine (Zeitgeist) and the default graphical user interface (GNOME Activity Journal), but during this time [...]]]></description>
			<content:encoded><![CDATA[<p>Quite some stuff has been going on in Zeitgeist since <a href="http://bloc.eurion.net/archives/2009/uds-2009/">UDS</a>, including the addition of two new developers to our team: <a href="https://edge.launchpad.net/~kamstrup">Mikkel Kamstrup</a> and <a href="https://launchpad.net/~thekorn">Markus Korn</a>, who both have been doing awesome work!</p>
<p>As planned, we split the project into the engine (<a href="https://launchpad.net/zeitgeist">Zeitgeist</a>) and the default graphical user interface (<a href="https://launchpad.net/gnome-zeitgeist">GNOME Activity Journal</a>), but during this time we also dropped our old database to start with a completely <a href="http://live.gnome.org/GnomeZeitgeist/DatabaseDesign">new structure</a> which is way more flexible and uses less disk space than our previous one.</p>
<p>Not so positively, some team members wanted to try out an ORM (<a href="https://storm.canonical.com/">Storm</a>), which from the start one I thought was a bad idea (it&#8217;s not that I can&#8217;t see the convenience for using one in certain projects, but for Zeitgeist, an engine mainly constituted by a little set of rather complex queries, I don&#8217;t really see how it can help us). Doing this -at the same time as the switch the the new database model- ended up as a pretty demotivating experience, and while we got it working at the end the result was an engine which worked slow (even with caching) and used lots of resources, so we&#8217;ve decided to go back to plain SQL.</p>
<p>Right now we still have a mix (we&#8217;ll probably finish quicking out the remaining Storm parts within the next weeks), but I already changed the main information request methods to SQL, thus reducing common operations from requiring up to thousands of queries to doing only a single one, doubling the speed while reducing memory usage. I hope to get further performance improvements while converting the remaining parts (for example, inserting data currently takes way more time than I&#8217;d like).</p>
<p>We also cleaned up the D-Bus API (it was pretty much of a mess before, just enough for the GUI to work) and added more functionality to it. However, it may still undergo substantial changes in future versions once we start making more use of the added flexibility the new database gives us (for example, for the 0.2 release we&#8217;ll probably split up tags into &#8220;user defined tags&#8221; and &#8220;automatically assigned tags&#8221;). Unrelated to this, Markus has started working at making it possible to configure and enable/disable loggers, so there&#8217;s also some cool stuff coming from this front (but nothing visible yet).</p>
<p>Just some random notes&#8230; You can read more about Zeitgeist at Seif&#8217;s blog, in his recent blog post &#8220;<a href="http://seilo.geekyogre.com/2009/07/some-zeitgeist-news/">Some Zeitgeist news</a>&#8220;, and if you have any comment you can come find us in #gnome-zeitgeist on GIMPnet . I&#8217;m now going back to work: after all, today we&#8217;re going to release <strong>Zeitgeist 0.1 (development preview)</strong>!</p>


<p>Related posts:<ol><li><a href='http://bloc.eurion.net/archives/2009/here-is-zeitgeist-0-2-1/' rel='bookmark' title='Permanent Link: Here is Zeitgeist 0.2.1!'>Here is Zeitgeist 0.2.1!</a></li>
<li><a href='http://bloc.eurion.net/archives/2009/zeitgeist-api-02/' rel='bookmark' title='Permanent Link: Introduction to Zeitgeist 0.2&#8217;s API'>Introduction to Zeitgeist 0.2&#8217;s API</a></li>
<li><a href='http://bloc.eurion.net/archives/2009/zeitgeist-is-out/' rel='bookmark' title='Permanent Link: Zeitgeist is out!'>Zeitgeist is out!</a></li>
</ol></p><hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2009/zeitgeist-since-uds/#comments">One comment</a><br />
© Siegfried-Angel Gevatter Pujals, 2009. |
<a href="http://bloc.eurion.net/archives/2009/zeitgeist-since-uds/">Permalink</a> |
<a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">License</a> |
Post tags: <a href="http://bloc.eurion.net/archives/tag/gnome/" rel="tag">gnome</a>, <a href="http://bloc.eurion.net/archives/tag/gsoc2009/" rel="tag">gsoc2009</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>, <a href="http://bloc.eurion.net/archives/tag/zeitgeist/" rel="tag">zeitgeist</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2009/zeitgeist-since-uds/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>No sound on HP Pavilion dv6-1110ss</title>
		<link>http://bloc.eurion.net/archives/2009/no-sound-on-hp-pavilion-dv6-1110ss/</link>
		<comments>http://bloc.eurion.net/archives/2009/no-sound-on-hp-pavilion-dv6-1110ss/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 10:16:15 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[laptop]]></category>
		<category><![CDATA[sound]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=321</guid>
		<description><![CDATA[I&#8217;ve recently installed Ubuntu Jaunty on an HP Pavilion dv6-1110ss and everything I tried worked fine except for one thing: there was no sound.
After searching for a while and trying out some stuff, the solution is easy. Just open file /etc/modprobe.d/alsa-base.conf and add the following lines:
options snd-pcsp index=-2
alias snd-card-0 snd-hda-intel
alias sound-slot-0 snd-hda-intel
options snd-hda-intel model=hp-m4
options snd-hda-intel [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently installed Ubuntu Jaunty on an HP Pavilion dv6-1110ss and everything I tried worked fine except for one thing: there was no sound.</p>
<p>After searching for a while and trying out <a href="http://ubuntuforums.org/showthread.php?t=1036508">some</a> <a href="https://answers.edge.launchpad.net/ubuntu/+question/75137">stuff</a>, the solution is easy. Just open file <em>/etc/modprobe.d/alsa-base.conf</em> and add the following lines:</p>
<p><code>options snd-pcsp index=-2<br />
alias snd-card-0 snd-hda-intel<br />
alias sound-slot-0 snd-hda-intel<br />
options snd-hda-intel model=hp-m4<br />
options snd-hda-intel enable_msi=1<br />
</code></p>
<p>(Before finding the previous solution I tried upgrading ALSA -following <a href="http://ubuntuforums.org/showthread.php?p=6589810">this instructions</a>- so I&#8217;ve tested this with ALSA 1.0.20, but I guess 1.0.18 should work aswell).</p>


<p>Related posts:<ol><li><a href='http://bloc.eurion.net/archives/2009/no-sound-problem-with-wolfenstein-enemy-territory/' rel='bookmark' title='Permanent Link: No sound problem with Wolfenstein: Enemy Territory'>No sound problem with Wolfenstein: Enemy Territory</a></li>
</ol></p><hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2009/no-sound-on-hp-pavilion-dv6-1110ss/#comments">4 comments</a><br />
© Siegfried-Angel Gevatter Pujals, 2009. |
<a href="http://bloc.eurion.net/archives/2009/no-sound-on-hp-pavilion-dv6-1110ss/">Permalink</a> |
<a 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/laptop/" rel="tag">laptop</a>, <a href="http://bloc.eurion.net/archives/tag/sound/" rel="tag">sound</a>, <a href="http://bloc.eurion.net/archives/tag/ubuntu/" rel="tag">Ubuntu</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2009/no-sound-on-hp-pavilion-dv6-1110ss/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Updated Voxforge packages in Ubuntu</title>
		<link>http://bloc.eurion.net/archives/2009/updated-voxforge-packages-in-ubuntu/</link>
		<comments>http://bloc.eurion.net/archives/2009/updated-voxforge-packages-in-ubuntu/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 17:06:25 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[speech-recognition]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=310</guid>
		<description><![CDATA[Just a quick note today to mention that I&#8217;ve updated the julius-voxforge package in Ubuntu Karmic from the two-years old 0.1.1~build726 to a recent daily snapshot. This new one has been generated using much more recorded speech (but on the other hand there are also some errors in the transcriptions which haven&#8217;t been fixed yet [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick note today to mention that I&#8217;ve updated the <a href="http://packages.ubuntu.com/karmic/julius-voxforge">julius-voxforge</a> package in Ubuntu Karmic from the two-years old 0.1.1~build726 to a recent daily snapshot. This new one has been generated using much more recorded speech (but on the other hand there are also some errors in the transcriptions which haven&#8217;t been fixed yet so it&#8217;s not as good as it could be; I&#8217;ll push some more snapshots from time to time and if it comes soon enough I&#8217;ll try to get in the next <em>stable</em> version which <a href="http://voxforge.org/home/forums/message-boards/acoustic-model-discussions/stable-release-or-daily-build">will come in some months</a>), but especially interesting is that it supports more phonemes now (remember the <a href="http://bloc.eurion.net/archives/2008/writing-a-command-and-control-application-with-voice-recognition/">old days</a> when words like &#8220;previous&#8221; or &#8220;computer&#8221; couldn&#8217;t be used?).</p>
<p>Anyway, I haven&#8217;t played much with it yet so if you try it out make sure to leave a comment, any feedback is welcome. The <a href="http://packages.ubuntu.com/karmic/julius-voxforge">package</a> can be installed safely on Jaunty and my last <a href="http://bloc.eurion.net/archives/2008/writing-a-command-and-control-application-with-voice-recognition/">blog post on speech recognition</a> has some explanation on how to use it. By the way, if you&#8217;re really interested in this, after the <a href="https://blueprints.launchpad.net/ubuntu/+spec/ubuntu-mobile-voice-user-interface">discussion</a> at <a href="http://bloc.eurion.net/archives/2009/uds-2009/">UDS</a> a <a href="https://launchpad.net/~voice-driven-ui">team</a> (with an associated mailing list) was created to work in this area, so feel free to come by there.</p>
<p>Well, that&#8217;s it for now. Thanks for reading, and, <span style="text-decoration: line-through;">if you&#8217;re a native English speaker,</span> please consider <a href="http://voxforge.org/home/read">donating some speech</a>, it only takes a few minutes! Or you may also help <a href="https://translations.launchpad.net/voxforge/voxforge-speech-submission-applet/">translating the website</a> into your language.</p>


<p>Related posts:<ol><li><a href='http://bloc.eurion.net/archives/2009/test-build-debian-packages/' rel='bookmark' title='Permanent Link: Packaging: Test-building your packages'>Packaging: Test-building your packages</a></li>
<li><a href='http://bloc.eurion.net/archives/2009/reducing-sshs-connection-time-on-ubuntu/' rel='bookmark' title='Permanent Link: Reducing SSH&#8217;s connection time on Ubuntu'>Reducing SSH&#8217;s connection time on Ubuntu</a></li>
<li><a href='http://bloc.eurion.net/archives/2009/getting-your-scanner-to-work-with-ubuntu-gt68xx/' rel='bookmark' title='Permanent Link: Getting your scanner to work with Ubuntu (gt68xx)'>Getting your scanner to work with Ubuntu (gt68xx)</a></li>
</ol></p><hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2009/updated-voxforge-packages-in-ubuntu/#comments">One comment</a><br />
© Siegfried-Angel Gevatter Pujals, 2009. |
<a href="http://bloc.eurion.net/archives/2009/updated-voxforge-packages-in-ubuntu/">Permalink</a> |
<a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">License</a> |
Post tags: <a href="http://bloc.eurion.net/archives/tag/speech-recognition/" rel="tag">speech-recognition</a>, <a href="http://bloc.eurion.net/archives/tag/ubuntu/" rel="tag">Ubuntu</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2009/updated-voxforge-packages-in-ubuntu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>UDS 2009</title>
		<link>http://bloc.eurion.net/archives/2009/uds-2009/</link>
		<comments>http://bloc.eurion.net/archives/2009/uds-2009/#comments</comments>
		<pubDate>Sat, 30 May 2009 13:07:42 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[gsoc2009]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[UDS]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=305</guid>
		<description><![CDATA[This being the first time I&#8217;m in person at a UDS, I know how difficult it is to follow it remotely and thus my intention was to blog about it daily, but now that I&#8217;ve been there I see why there aren&#8217;t many people doing this &#8211; it&#8217;s just too busy ;).
Anyway, now that it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>This being the first time I&#8217;m in person at a UDS, I know how difficult it is to follow it remotely and thus my intention was to blog about it daily, but now that I&#8217;ve been there I see why there aren&#8217;t many people doing this &#8211; it&#8217;s just too busy ;).</p>
<p>Anyway, now that it&#8217;s over I really need to write down some notes. Here you go:</p>
<p><strong>Fast development, and fast packaging of Python applications</strong></p>
<p>The two first sessions I attended after the opening were «<a href="https://blueprints.launchpad.net/ubuntu/+spec/desktop-karmic-application-layer-cake">Quickly project templates</a>» and «<a href="https://blueprints.launchpad.net/ubuntu/+spec/desktop-karmic-automagic-python-build-system">Automagic Python Build System</a>». The first one about creating a tool (named «quickly») for opportunistic programmers to create little applications, and the second one about creating an improved distutils where the setup.py file only need to contain meta-data (name of the application, name and e-mail of the author, license&#8230;) and everything else is automatically detected (which files should be installed where, which shouldn&#8217;t be installed at all, whether gettext files need to be compiled, etc.); further, this distutils would create a Debian package. As was mentioned during the discussion, this won&#8217;t work for everyone, but for the 80% of cases where it works it&#8217;ll be great.</p>
<p><strong><a href="https://blueprints.launchpad.net/ubuntu/+spec/foundations-karmic-apturl-policy">AptURL Policy Discussion</a></strong></p>
<p>The discussion was about whether it AptURL should work for PPAs and other external repositories. <a href="https://launchpad.net/~asac">Alexander</a> proposed to use a whitelisting approach where PPA owners could agree to a policy (not adding new packages without asking, etc.) and get approved for AptURL, but others felt this is not enough. There was no consensus at all during the session (other than perhaps that it&#8217;s too difficult to enable third party repositories, but the fix to this not necessarily being AptURL).</p>
<p><strong><a href="https://blueprints.launchpad.net/ubuntu/+spec/ubuntu-mobile-voice-user-interface">Proposal for Voice Driven User Interface</a></strong></p>
<p>This was a great sessions where we discussed the status and possibilities of controling the computer using voice. The conclusion was that for Karmic we would attempt to get the required tools in place and after that we&#8217;d try to get the community engaged to create enough <a href="http://voxforge.org">speech corpora</a>. This includes creating a mailing list to discuss voice interfaces and getting Pocketsphinx packaged; see the wiki page for more details.</p>
<p>If someone wants to start playing with this, <a href="http://packages.ubuntu.com/search?keywords=julius">Julius</a> (another speech recognition engine) is already packaged since Intrepid and some time ago I wrote about <a href="http://bloc.eurion.net/archives/2008/writing-a-command-and-control-application-with-voice-recognition/">how to use it to control applications</a> (including instructions to setup some basic commands to control Rhythmbox).</p>
<p><strong>Zeitgeist</strong></p>
<p>I met <a href="http://seilo.geekyogre.com/">Seif</a>, <a href="http://bloc.eurion.net/archives/2009/im-in-google-summer-of-code/">my Google Summer of Code</a> mentor, and we discussed not only the GSoC project (thanks to <a href="http://jassmith.wordpress.com/">Jason</a> we have a pretty cool idea for how it could look like) but also all of Zeitgeist in general (btw, I&#8217;m a Maintainer of the project by now).</p>
<p>During UDS we decided that the project will split into Zeitgeist (containing just the engine, its only GNOME-specific dependency being glib/gobjects) and GNOME Zeitgeist (the default, GTK+, GUI), and we discussed several future plugins for it (time-machine functionality for non-binary documents using <a href="http://bazaar-vcs.org/">Bazaar</a>, optional tracker integration, etc.).</p>
<p>Zeitgeist (the engine) is not only going to be used for GNOME Shell (GSoC) but also for the <a href="https://blueprints.launchpad.net/ubuntu/+spec/zeitgeist-for-unr-favorites">Ubuntu Netbook Remix&#8217;s launcher</a> (first as a prototype Python plugin, and once it has been tested that it works it&#8217;ll be put into the core) and for Ubuntu&#8217;s Parental Control, which was discussed at UDS as well.</p>
<p>Other than the GNOME Do and the UNR folks, <a href="https://launchpad.net/~persia">Emmet</a> also helped us planning Zeitgeist and I&#8217;m really happy to have finally meet him in person. Further, we also spoke with <a href="https://launchpad.net/~doctormo">Martin Owens</a> about how <a href="https://launchpad.net/coisas">Coisas</a> could integrate with Zeitgeist.</p>
<p><strong><a href="https://blueprints.launchpad.net/ubuntu/+spec/desktop-karmic-gnome-3">GNOME 3</a></strong></p>
<p>We want to get everything inside Karmic available as a &#8220;developer preview&#8221;. I&#8217;ll get the Zeitgeist engine into Debian as soon as we have it ready. GNOME Shell will be packaged too (outside the session, <a href="https://launchpad.net/~fta">Fabien</a> expressed interest in providing daily builds for all components in a PPA; I told him that I&#8217;d poke him once mutter has been fixed to be installable together with metacity).</p>
<p><strong><a href="https://blueprints.launchpad.net/ubuntu/+spec/rsync-based-deb-downloads">Speed up downloads of .debs by using rsync algorithm</a></strong></p>
<p>Zsync will be benchmarked (bandwidth, CPU use, etc.) and considered for packages (.deb) and for Source files. For the later, we discussed providing a Sources.lzma for the first-time download, and a &#8211;rsyncable Sources.gz for updates from there on.</p>
<p>Testing will be done with a separate server (zsync.ubuntu.com) which will provide the files needed by zsync; this will help determine the impact before doing any change to the mirrors.</p>
<p><strong><a href="https://blueprints.launchpad.net/ubuntu/+spec/package-license-tracking">Proposal to Record and Track Copyright Licensing for Packages</a></strong></p>
<p>Reasons why the <a href="http://dep.debian.net/deps/dep5/">machine-readable debian/copyright format</a> is interesting were discussed (between others, use by Canonical OEM was mentioned). We want to help pushing the format in Debian, and it was mentioned that work on tools to parse it will happen. From the Canonical side a goal is to get all packages in «main» using it.</p>
<p><strong><a href="https://blueprints.launchpad.net/ubuntu/+spec/desktop-karmic-death-by-100-paper-cuts">Death By a Hundred Paper Cuts</a></strong></p>
<p>Discussion with Canonical&#8217;s Design Team on what&#8217;s the best way to communicate with developers. A new project (<em>papercuts</em>) will be setup in Launchpad to identify issues which are of «wishlist» importance in Ubuntu but are important from the design perspective; such issues will be identified both looking at existing bug reports and doing user testing.</p>
<p><em>Paper cuts</em> were defined as little problems which are easy to fix but are a usability problem. For example, during user testing it was found that users though that the icon in Nautilus to switch between showing the current path as text or as buttons was to create a new icon. For this example, the desktop team confirmed that it is very easy to fix from a coding perspective, but that someone else has to provide them with a replacement icon first.</p>
<p>It was also mentioned that this project is going to be 100% open and that anyone is encouraged to participate. And also, that it&#8217;s better to fix 5 of those bugs which are easy than a single more difficult one.</p>
<p><strong>Mozilla Prism</strong></p>
<p>I had an informal talk with <a href="https://launchpad.net/~fta">Fabien</a> (and <a href="https://launchpad.net/~asac">Alexander</a>) about packaging of web applications for <a href="http://labs.mozilla.com/2007/10/prism/">Prism</a>. We agreed that rather than providing lots of binary packages it was best to go with <a href="https://blueprints.launchpad.net/ubuntu/+spec/desktop-karmic-prism-webapp-repository">a repository specific to Prism</a>, distribution neutral, which will contain .desktop files (with translations et all) and one or more links to the icons to use (this way we avoid copyright problems as we aren&#8217;t going to host any icon at all). The repository will be provided as a package in Ubuntu, but it will be possible for users to switch to third-party ones on the web.</p>
<p>On the visible part of this, there&#8217;ll be a new GUI instead of Prism&#8217;s default one, which will allow to easily install/uninstall web applications (Prism&#8217;s GUI will still be available, of course, to allow adding arbirtrary websites). I&#8217;ll get a prototype ready and from there one we can see how it advances (get feedback from users, upstream, other distributions, etc; some stuff I&#8217;m thinking about right now is possible integration directly in Firefox or Add/Remove, we&#8217;ll see). Oh, and all this will work without super-user privileges, any user will be able to «install» Prism applications, but a system-wide mode could be implemented too.</p>
<p><strong>Other random notes</strong></p>
<ul style="text-align: left;">
<li> The goal for Karmic is to boot in 15 seconds; as was said, this is a rather aggresive number, but boot speed is important and one of the first impressions users get about Ubuntu, so it is important to be really good here. Once the boot time is that fast, ensuring that there are no regressions in this respect will be fundamental (it will be something as important as CD size). Ah, and this isn&#8217;t going to be done by delaying startup, it&#8217;s real.</li>
<li><a href="http://canonical.com">Canonical</a> is working on having Android applications work on Ubuntu, without emulation (we saw a prototype of this, but lots of work are still required). Android will be integrated into Ubuntu&#8217;s kernel. It was also mentioned that, even though Android&#8217;s compiler isn&#8217;t Java compliant, it could be used to develop some fast applications for the desktop. Unrelated to this, we also saw a presentation of Moblin running on Ubuntu.</li>
<li><a href="https://launchpad.net/~scottritchie">Scott Ritchie</a> presented winelib as a convenient option to port Windows applications to GNU/Linux.</li>
<li>Fennex was mentioned as a browser candidate for <a href="http://www.canonical.com/projects/ubuntu/unr">UNR</a>, but it is too touch-device oriented (which is good, but only as long as it can also easily be used with the mouse, which here isn&#8217;t the case).</li>
<li>Bazaar rocks, as was discovered during the &#8220;Plans for Bazaar after 2.0&#8243; session.</li>
<li>I asked a couple persons (ie., <a href="https://launchpad.net/~james-w">James Westby</a> and a Launchpad developer) about Archive Reorganization. The answer was that work is on progress but there&#8217;s no firm deatline for when it will be ready (it may be there by Karmic+1, though).</li>
<li><a href="https://launchpad.net/~vorlon">Steve</a> organized a key signing party and by now my GPG key has been signed by several Debian Developers :D. Around 40 people participated. I want to use this chance to tank <a href="https://launchpad.net/~kitterman">Scott Kitterman</a> again for helping me get postfix running with GMail so that I can send out the signatures with <a href="http://packages.ubuntu.com/signing-party">caff</a>.</li>
<li><a href="https://launchpad.net/~scott">Scott James</a> helped me get <a href="http://merges.ubuntu.com">MoM</a> running MoM on my laptop (for this fixing a couple bugs at astonishing speed), so once I get a moment I&#8217;ll finally work on <a href="https://bugs.launchpad.net/merge-o-matic/+bug/252414">letting it look nice</a>.</li>
<li>Last but not least, UDS was absolutelly awesome and it was great meeting lots of people from IRC in person (guys, you know who you are :)).</li>
</ul>
<p>So, to finish this post I just want to mention that you can find a list of all sessions (with links to blueprints and wiki pages) at <a href="http://summit.ubuntu.com/uds-karmic/">summit.ubuntu.com</a> (you need a Launchpad account to enter the page) and notes about the discussions on Gobby (server: <em>gobby.ubuntu.com</em>).</p>
<p>By the way, like I&#8217;ve already told some people, after this amazing week I&#8217;ll be busy with exams for the next two weeks, so wish me luck and if you&#8217;re looking for me be aware that I may not get online much during this time.</p>


<p>Related posts:<ol><li><a href='http://bloc.eurion.net/archives/2009/zeitgeist-since-uds/' rel='bookmark' title='Permanent Link: Zeitgeist since UDS'>Zeitgeist since UDS</a></li>
<li><a href='http://bloc.eurion.net/archives/2010/gnome-activity-journal-and-installing-it-on-ubuntu/' rel='bookmark' title='Permanent Link: GNOME Activity Journal, and installing it on Ubuntu'>GNOME Activity Journal, and installing it on Ubuntu</a></li>
<li><a href='http://bloc.eurion.net/archives/2009/zeitgeist-api-02/' rel='bookmark' title='Permanent Link: Introduction to Zeitgeist 0.2&#8217;s API'>Introduction to Zeitgeist 0.2&#8217;s API</a></li>
</ol></p><hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2009/uds-2009/#comments">5 comments</a><br />
© Siegfried-Angel Gevatter Pujals, 2009. |
<a href="http://bloc.eurion.net/archives/2009/uds-2009/">Permalink</a> |
<a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">License</a> |
Post tags: <a href="http://bloc.eurion.net/archives/tag/gsoc2009/" rel="tag">gsoc2009</a>, <a href="http://bloc.eurion.net/archives/tag/ubuntu/" rel="tag">Ubuntu</a>, <a href="http://bloc.eurion.net/archives/tag/uds/" rel="tag">UDS</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2009/uds-2009/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Google Gears per a l&#8217;Ubuntu de 64 bits</title>
		<link>http://bloc.eurion.net/archives/2009/google-gears-ubuntu-64bits/</link>
		<comments>http://bloc.eurion.net/archives/2009/google-gears-ubuntu-64bits/#comments</comments>
		<pubDate>Fri, 01 May 2009 19:43:51 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=265</guid>
		<description><![CDATA[Avui només deixo una petita nota, per dir que qui vulgui instal·lar Google Gears per al Firefox a l&#8217;Ubuntu el pot trobar a https://launchpad.net/~stefanlsd/+archive/gears, tant per a 32 com per a 64 bits (tot i que Google no ofereix aquesta darrera versió!).
Per a qui no ho sàpiga, Google Gears és una extensió que afegeix noves [...]]]></description>
			<content:encoded><![CDATA[<p>Avui només deixo una petita nota, per dir que qui vulgui instal·lar Google Gears per al Firefox a l&#8217;Ubuntu el pot trobar a <a href="https://launchpad.net/~stefanlsd/+archive/gears">https://launchpad.net/~stefanlsd/+archive/gears</a>, tant per a 32 com per a 64 bits (tot i que Google no ofereix aquesta darrera versió!).</p>
<p>Per a qui no ho sàpiga, Google Gears és una extensió que afegeix noves característiques al navegador; principalment, permet que pàgines web autoritzades puguin desar dades al disc dur, i permet executar codi JavaScript sense que bloquegi la pàgina mentre s&#8217;executa. A mi m&#8217;interessa perquè amb Google Gears es pot utilitzar el GMail sense estar connectat a Internet (quan sí que ho estas, els missatges es sincronitzen al disc per tal poder-hi accedir després), però d&#8217;altres pàgines també poden aprofitar-lo (per exemple, el Wordpress ofereix una versió <em>Turbo</em> per a accelerar el panell de control).</p>


<p>Related posts:<ol><li><a href='http://bloc.eurion.net/archives/2009/getting-your-scanner-to-work-with-ubuntu-gt68xx/' rel='bookmark' title='Permanent Link: Getting your scanner to work with Ubuntu (gt68xx)'>Getting your scanner to work with Ubuntu (gt68xx)</a></li>
<li><a href='http://bloc.eurion.net/archives/2009/updated-voxforge-packages-in-ubuntu/' rel='bookmark' title='Permanent Link: Updated Voxforge packages in Ubuntu'>Updated Voxforge packages in Ubuntu</a></li>
<li><a href='http://bloc.eurion.net/archives/2009/reducing-sshs-connection-time-on-ubuntu/' rel='bookmark' title='Permanent Link: Reducing SSH&#8217;s connection time on Ubuntu'>Reducing SSH&#8217;s connection time on Ubuntu</a></li>
</ol></p><hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2009/google-gears-ubuntu-64bits/#comments">No comments</a><br />
© Siegfried-Angel Gevatter Pujals, 2009. |
<a href="http://bloc.eurion.net/archives/2009/google-gears-ubuntu-64bits/">Permalink</a> |
<a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">License</a> |
Post tags: <a href="http://bloc.eurion.net/archives/tag/ubuntu/" rel="tag">Ubuntu</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2009/google-gears-ubuntu-64bits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ctrl + Alt + Retrocés, recuperant l’arma de doble fil</title>
		<link>http://bloc.eurion.net/archives/2009/ctrl-alt-retroces-recuperant-l%e2%80%99arma-de-doble-fil/</link>
		<comments>http://bloc.eurion.net/archives/2009/ctrl-alt-retroces-recuperant-l%e2%80%99arma-de-doble-fil/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 19:51:05 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=259</guid>
		<description><![CDATA[Fa un parell d&#8217;anys vaig escriure un apunt comentant la combinació de tecles Ctrl + Alt + Retrocés (la qual serveix per a reiniciar l&#8217;entorn gràfic) i explicant com desactivar aquesta per evitar el risc de prémer-la de forma accidental i perdre tot el que estigui obert.
Doncs bé, amb l&#8217;última versió de l&#8217;Ubuntu, la 9.04 [...]]]></description>
			<content:encoded><![CDATA[<p>Fa un parell d&#8217;anys vaig escriure <a href="http://bloc.eurion.net/archives/2007/ctrl-alt-retroces-larma-de-doble-fil/">un apunt comentant la combinació de tecles Ctrl + Alt + Retrocés</a> (la qual serveix per a reiniciar l&#8217;entorn gràfic) i explicant com desactivar aquesta per evitar el risc de prémer-la de forma accidental i perdre tot el que estigui obert.</p>
<p>Doncs bé, amb l&#8217;última versió de l&#8217;Ubuntu, la 9.04 Jaunty Jackalope, això ja no cal ja que s&#8217;ha decidit desactivar aquesta combinació per defecte. Com a alternativa proposen l&#8217;opció <em>més forta</em> (ja que no treballa a nivell del servidor X sinó del nucli) <strong>Alt + Pet Sis + K</strong> (la qual, per cert, aquí no em funciona). També resulta que a hores d&#8217;ara he canviat d&#8217;opinió respecte a aquesta combinació de tecles i personalment prefereixo tenir-la activada; com que m&#8217;he trobat amb més gent que també la vol recuperar, explico aquí com fer-ho:</p>
<p>Primer de tot, instal·lem el paquet <strong>dontzap</strong> (<code>sudo aptitude install dontzap</code>). Un cop fer això, executem: <code>sudo dontzap --disable</code>. Finalment, teniu temps per preguntar-vos com és què és tant fàcil ;).</p>
<p>Per cert, per fi després d&#8217;anys d&#8217;utilitzar el Wordpress amb el tema predeterminat (i abans que introduïsin les actualitzacions amb un sol clic, també perpètuament desactualitzat) m&#8217;he decidit a canviar-lo; ja direu que us sembla l&#8217;aspecte nou :).</p>
<hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2009/ctrl-alt-retroces-recuperant-l%e2%80%99arma-de-doble-fil/#comments">4 comments</a><br />
© Siegfried-Angel Gevatter Pujals, 2009. |
<a href="http://bloc.eurion.net/archives/2009/ctrl-alt-retroces-recuperant-l%e2%80%99arma-de-doble-fil/">Permalink</a> |
<a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">License</a> |
Post tags: <a href="http://bloc.eurion.net/archives/tag/ubuntu/" rel="tag">Ubuntu</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2009/ctrl-alt-retroces-recuperant-l%e2%80%99arma-de-doble-fil/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Using RAM space for /tmp</title>
		<link>http://bloc.eurion.net/archives/2009/using-ram-space-for-tmp/</link>
		<comments>http://bloc.eurion.net/archives/2009/using-ram-space-for-tmp/#comments</comments>
		<pubDate>Sun, 19 Apr 2009 17:57:19 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=251</guid>
		<description><![CDATA[I have 4 GB of RAM but so far never needed more than half of them, so one day I told me: «why don&#8217;t I move /tmp into the RAM so that it&#8217;s faster?» (it also has some other benefits, like that when you power off the data there gets removed in a more safely [...]]]></description>
			<content:encoded><![CDATA[<p>I have 4 GB of RAM but so far never needed more than half of them, so one day I told me: «why don&#8217;t I move /tmp into the RAM so that it&#8217;s faster?» (it also has some other benefits, like that when you power off the data there gets removed in a more safely manner than if it had been written to the hard disk, but I won&#8217;t get into this now; I don&#8217;t want to convince anyone to do the same, but just explain it for those who might have the same idea).</p>
<p>To achieve this the only thing I had to do is open <em>/etc/fstab</em> and add the following line to it (this works on both Ubuntu Jaunty and Debian Lenny):</p>
<p><code>none /tmp tmpfs nr_inodes=200k,mode=01777,nosuid,nodev 0 0</code></p>
<p>(By default, up to half of the RAM is allocated for /tmp; you can override this value adding the «size» option; eg., «size=2G» to give it 2 GB or «size=1G» to give it only one).</p>
<p>Some people advice to do this change in a recovery console, but I did it <em>live</em> from my normal session and it works as well; just don&#8217;t forget to apply the change with the following commands if you do it like me:</p>
<p><code>sudo mv /tmp /tmp-orig; sudo mkdir /tmp; sudo mount /tmp; sudo mv /tmp-orig/* /tmp; sudo mv /tmp-orig/.* /tmp; sudo rmdir /tmp-orig</code></p>
<hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2009/using-ram-space-for-tmp/#comments">8 comments</a><br />
© Siegfried-Angel Gevatter Pujals, 2009. |
<a href="http://bloc.eurion.net/archives/2009/using-ram-space-for-tmp/">Permalink</a> |
<a 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/ubuntu/" rel="tag">Ubuntu</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2009/using-ram-space-for-tmp/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>One week with Debian</title>
		<link>http://bloc.eurion.net/archives/2009/one-week-with-debian/</link>
		<comments>http://bloc.eurion.net/archives/2009/one-week-with-debian/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 22:33:04 +0000</pubDate>
		<dc:creator>RainCT</dc:creator>
				<category><![CDATA[Planet Ubuntu]]></category>
		<category><![CDATA[Planet Ubuntu.cat]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://bloc.eurion.net/?p=248</guid>
		<description><![CDATA[Jaunty was a great experience, until around a month (or perhaps a bit more) ago, when my nice ext4 file systems started to get corrupt on daily basis and I had to reinstall, this time choosing ext3 and telling myself I wouldn&#8217;t touch ext4 ever again (or at least not within the next 6 months, [...]]]></description>
			<content:encoded><![CDATA[<p>Jaunty was a great experience, until around a month (or perhaps a bit more) ago, when my nice ext4 file systems started to get corrupt on daily basis and I had to reinstall, this time choosing ext3 and telling myself I wouldn&#8217;t touch ext4 ever again (or at least not within the next 6 months, I&#8217;d be lying to myself if I&#8217;d think I&#8217;m able to resist from trying it again longer than that). Now, the surprise was that the problems continued as worse as before, and lots of <em>fsck</em>s and several reinstalls (when the breakage would corrupt some system file) later I had to accept that either Jaunty (the kernel, or whatever) or my hard disk was badly broken. Not wanting to go back to Intrepid with it&#8217;s old packages, I decided that it&#8217;s about time that I try out Debian (especially as I intend to start the Debian New Maintainer process as soon a I get my GPG key signed).</p>
<p>So, running Ubuntu from an USB stick (the last file system corruption had taken some files from /sbin with it) I downloaded the first Debian CD and burned it to a CD (actually, first I booted from a Live CD and as I only have one DVD drive put the Debian image on a Pendrive, but it didn&#8217;t want to boot from there, so I put Ubuntu on the pendrive instead and burned the Debian CD from there). The installation process is pretty much like that one with Ubuntu&#8217;s alternate CD, but curiously in addition to the typical interface it offers a GTK interface of it (which works <strong>exactly</strong> the same but looks nicer). The only difference I did observe is that Debian doesn&#8217;t allow me to choose the Catalan keyboard variant during installation while Ubuntu does, and for some reason Debian took hours to install instead of the half an hour I was expecting (if some debian-installer developer happens to read this, giving some more information during installation on what it&#8217;s actually doing would be appreciated).</p>
<p>Once the installation completed Debian Lenny was up and running (with a 2.6.26 kernel), except for the W-LAN. After a few days watching for the file system to break again, I updated to a 2.6.29 kernel (where I could get my Intel PRO/Wireless 5300 AGN card to work) and managed to install the NVIDIA driver for it, and I haven&#8217;t had a single problem yet, so the file system corruption seems to be indeed a problem with Jaunty. I&#8217;ll try again with Jaunty once it&#8217;s out, and if the problem still happens investigate the issue a bit more (this means, try with a different kernel :P).</p>
<p>I&#8217;ve been using Debian for a week now and other than the surprisingly slow installation and no nice restricted-manager helping you with driver installation, I&#8217;m quite comfortable with it. There&#8217;s some stuff from Ubuntu which I miss (like command-not-found), but nothing big, and having <em>testing</em>, <em>unstable</em> and <em>experimental</em> to get newer packages from is cool. I still prefer Ubuntu, but it&#8217;s good to know that if something ever happens to it (just purely theoretically) I could live with Debian; and, in any case, I&#8217;ll keep this installation around (it only takes up 6GB, so there&#8217;s no reason to remove it once I get Ubuntu running fine again).</p>
<p>Anyway, thanks if you&#8217;re still reading this, and sorry for this long, boring post! The next ones will be more interesting, I promise! ;).</p>
<p>By the way, I&#8217;ve recently started using Identi.ca, so if for some weird reason you want to read more boring stuff from me, see <a href="http://identi.ca/rainct">my page there</a>.</p>


<p>Related posts:<ol><li><a href='http://bloc.eurion.net/archives/2009/test-build-debian-packages/' rel='bookmark' title='Permanent Link: Packaging: Test-building your packages'>Packaging: Test-building your packages</a></li>
</ol></p><hr />
<p><small>
<a href="http://bloc.eurion.net/archives/2009/one-week-with-debian/#comments">12 comments</a><br />
© Siegfried-Angel Gevatter Pujals, 2009. |
<a href="http://bloc.eurion.net/archives/2009/one-week-with-debian/">Permalink</a> |
<a 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/ubuntu/" rel="tag">Ubuntu</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://bloc.eurion.net/archives/2009/one-week-with-debian/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
