<?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>The Esite Code Log</title>
	<atom:link href="http://esite.ch/feed/" rel="self" type="application/rss+xml" />
	<link>http://esite.ch</link>
	<description>Project news, code snippets, bookmarks, scripts, howtos, …</description>
	<lastBuildDate>Sat, 23 Feb 2013 20:14:29 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Diodon is getting official</title>
		<link>http://esite.ch/2013/02/23/diodon-is-getting-official/</link>
		<comments>http://esite.ch/2013/02/23/diodon-is-getting-official/#comments</comments>
		<pubDate>Sat, 23 Feb 2013 20:14:29 +0000</pubDate>
		<dc:creator>Oliver Sauder</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[diodon]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://esite.ch/?p=523</guid>
		<description><![CDATA[I am glad to announce that with version 1.0.2 Diodon has made it into the official Ubuntu repository for Raring. This means that from Ubuntu 13.04 onwards no PPA will be needed to install Diodon. So simply install it with apt-get or use the Ubuntu Software Center. Of course the Stable Diodon PPA will remain [...]]]></description>
				<content:encoded><![CDATA[<p>I am glad to announce that with version 1.0.2 Diodon has made it into the official <a href="http://packages.ubuntu.com/raring/diodon">Ubuntu repository</a> for Raring. This means that from Ubuntu 13.04 onwards no PPA will be needed to install Diodon. So simply install it with apt-get or use the Ubuntu Software Center.</p>
<p>Of course the <a href="https://launchpad.net/~diodon-team/+archive/stable">Stable Diodon PPA</a> will remain for other versions of Ubuntu and to release stable packages which have not made it into the official repository yet. And for all lovers of cutting edge software, there is still the <a href="https://launchpad.net/~diodon-team/+archive/daily">Daily PPA</a> for the daily snapshots of Diodon.</p>
<p>Additionally with version 1.0.2 comes there a <a href="https://wiki.ubuntu.com/Apport">Apport integration</a> so you can simply report bugs. Just use the following command to do so:</p>
<p><code>ubuntu-bug diodon</code></p>
<p>Apport is collecting data like what version of Diodon is installed, what are the dependencies etc. and then also ask you whether you want to include your clipboard history. It then puts all this together and uploads it to Launchpad.net, where you can input a bug description. And then hopefully with all this information we will be able to find the cause of the issue quickly and provide a fix.</p>
<p>So therefore have fun using Diodon and do not hesitate to file any bug or annoyance you find.</p>
]]></content:encoded>
			<wfw:commentRss>http://esite.ch/2013/02/23/diodon-is-getting-official/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Starting a new Diodon era with a new look and feel</title>
		<link>http://esite.ch/2013/01/01/new-look-and-feel-starting-a-new-diodon-era/</link>
		<comments>http://esite.ch/2013/01/01/new-look-and-feel-starting-a-new-diodon-era/#comments</comments>
		<pubDate>Tue, 01 Jan 2013 18:10:52 +0000</pubDate>
		<dc:creator>Oliver Sauder</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[diodon]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://esite.ch/?p=483</guid>
		<description><![CDATA[It has been two years when the first version 0.1.0 of Diodon has been released. A lot of work has been done since when it comes to features but mainly to integration into the desktop. This new release is just one of those little steps to make Diodon better integrated and even more useful (see [...]]]></description>
				<content:encoded><![CDATA[<p>It has been two years when the first version 0.1.0 of Diodon has been released. A lot of work has been done since when it comes to features but mainly to integration into the desktop. <a href="https://launchpad.net/diodon/trunk/1.0.0">This new release</a> is just one of those little steps to make Diodon better integrated and even more useful (see <a href="https://launchpad.net/diodon/+milestone/1.0.0">issues solved</a>). And there are still <a href="https://blueprints.launchpad.net/diodon">many ideas</a> to be implemented in the future.</p>
<p>Nevertheless is this new version of Diodon a special milestone and therefore I want to give it the version 1.0.0. This is mainly to its long overdue new icons set which gives it&#8217;s unique look and feel. razvi of <a href="http://www.iloveubuntu.net/">iloveubuntu.net</a> has summarized the significance of this change in <a href="http://www.iloveubuntu.net/powerful-clipboard-manager-diodon-received-new-icons-daily-builds">this blog post</a> which I want to quote here:</p>
<blockquote><p>Usually, app icons play an important role on establishing the identity of applications, visual items that contain essential aspects of applications and/or shapes, colors, patterns, etc, designed with an easy-app-identification process in mind. [...] Diodon has just been enriched with new icons, refreshing its identity and properly expressing itself via simplistic yet interesting monochrome icons, as well as adopting colored icons.</p></blockquote>
<p><a href="http://esite.ch/2013/01/01/new-look-and-feel-starting-a-new-diodon-era/diodonindicator/" rel="attachment wp-att-499"><img src="http://esite.ch/wp-content/uploads/2013/01/DiodonIndicator.png" alt="DiodonIndicator" width="547" height="233" class="aligncenter size-full wp-image-499" /></a></p>
<p>As a celebration of this new milestone I think it is also time to start promoting Diodon even more. I therefore put a list together with possibilities for you to help out. And I am sure you will have plenty of more ideas.</p>
<ul>
<li>Post about Diodon on your blog</li>
<li>You use another distribution then Ubuntu? Create packages for this distribution (I promise that I will soon look into making a package for the official Ubuntu repository).</li>
<li>Add Diodon to your software stack on <a href="http://ohloh.net/">Ohloh.net</a> by using the <a href="https://www.ohloh.net/p/diodon">I Use This!</a> button.</li>
<li>Mark Diodon as &#8220;Like&#8221; on <a href="http://alternativeto.net/software/diodon/">AlternativeTo</a> and add alternatives</li>
<li>Now, there is also a Diodon <a href="https://launchpad.net/~diodon-users">user group</a> on launchpad. Join in to show your appreciation to Diodon and also optionally take part in the mailing list conversations.</li>
<li>Or simply follow Diodon on <a href="https://freecode.com/projects/diodon">Freecode</a></li>
<li>&#8230;</li>
</ul>
<p>I am looking forward to see Diodon getting more adapted in 2013. I herewith also wanted to take the opportunity to thanks the Diodon user community for all the valuable feedback I have received and for you loyalty <img src='http://esite.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Thanks&#8230; and have a happy new year 2013&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://esite.ch/2013/01/01/new-look-and-feel-starting-a-new-diodon-era/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Diodon now with a zeitgeist</title>
		<link>http://esite.ch/2012/10/22/diodon-now-with-a-zeitgeist/</link>
		<comments>http://esite.ch/2012/10/22/diodon-now-with-a-zeitgeist/#comments</comments>
		<pubDate>Mon, 22 Oct 2012 20:49:11 +0000</pubDate>
		<dc:creator>Oliver Sauder</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[diodon]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://esite.ch/?p=470</guid>
		<description><![CDATA[Diodon version 0.9.0 has been released today which is basically a maintenance release so it runs smoothly on Ubuntu 12.10. However, behind the scenes a few more things have changed. For instance is there now a unit testing framework in place which I wrote about in a previous post. What I want to introduce you [...]]]></description>
				<content:encoded><![CDATA[<p>Diodon version <a href="https://launchpad.net/diodon/+milestone/0.9.0">0.9.0</a> has been released today which is basically a maintenance release so it runs smoothly on Ubuntu 12.10. However, behind the scenes a few more things have changed.</p>
<p>For instance is there now a unit testing framework in place which I wrote about in a <a href="http://esite.ch/2012/06/26/writing-tests-for-vala/">previous post</a>.</p>
<p>What I want to introduce you in this post though is a start into a new Diodon era using Zeitgeist. You might ask yourself: What is Zeitgeist?</p>
<p>That&#8217;s a good question and I think best answered by the Zeitgeist folks themselves. So here is a quote from there <a href="http://zeitgeist-project.com">website</a>: </p>
<blockquote><p>Zeitgeist is a service which logs the users’ activities and events, anywhere from files opened to websites visited and conversations had.</p>
<p>It makes this information readily available for other applications to use. It is able to establish relationships between items based on similarity and usage patterns.</p></blockquote>
<p>As Diodon is basically keeping a history of the last users&#8217; copy events it makes perfect sense to store those events in Zeitgeist. Therefore is there now a Zeitgeist plugin (a so called Data Source) available for Diodon. You simply have to install the package diodon-plugins and enable the plugin by going to Preferences -> Plugins.</p>
<p>What this plugin for now basically does is storing a description of what has been copied at a certain time plus the path to the original application content has been copied from. It also points to a clipboard id. However as items currently get deleted when a certain history size has been reached, this id can not be used to execute a copy/paste event again. There are <a href="https://blueprints.launchpad.net/diodon/+spec/zeitgeist-integration">some ideas</a> though for the future that it might be possible to replace the current xml based storage with Zeitgeist completely. This is however only an idea so far. This Diodon Zeitgeist Plugin therefore is a playground to really see what Zeitgeist is capable of and how well it works with a clipboard manager. So if you have any feedback where we can go further from here, please let me know.</p>
<p>Will keep you updated about more exciting news when it comes to Diodon.</p>
]]></content:encoded>
			<wfw:commentRss>http://esite.ch/2012/10/22/diodon-now-with-a-zeitgeist/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tunefish is no more</title>
		<link>http://esite.ch/2012/10/03/tunefish-is-no-more/</link>
		<comments>http://esite.ch/2012/10/03/tunefish-is-no-more/#comments</comments>
		<pubDate>Wed, 03 Oct 2012 20:52:46 +0000</pubDate>
		<dc:creator>Oliver Sauder</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[tunefish]]></category>

		<guid isPermaLink="false">http://esite.ch/?p=451</guid>
		<description><![CDATA[Ever heard of Tunefish? If not this post is most likely not for you. However if you have or are interested what it is respectively is not anymore then please keep on reading&#8230; . Years ago when I still was at high school we had to write an essay on a Windows related topic. At [...]]]></description>
				<content:encoded><![CDATA[<p>Ever heard of Tunefish? If not this post is most likely not for you. However if you have or are interested what it is respectively is not anymore then please keep on reading&#8230; <img src='http://esite.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p>Years ago when I still was at high school we had to write an essay on a Windows related topic. At that time I did not really know much about Linux so I did not mind as much as I would probably do today. I chose to focus on the Windows settings system mainly the Registry. In addition to the essay I also developed an application which is basically an interface to many Windows global settings available. After a while I polished this application a bit and published it as Open Source under the name &#8220;Tunefish&#8221; on <a href="https://sourceforge.net/projects/tunefish/">SourceForge</a>. I wrote the application in <a href="http://en.wikipedia.org/wiki/CodeGear_Delphi">Delphi</a> which used to be quite popular at that time. I maintained it for a while. However when I completely switched over to Linux quite some time ago I lost interest and gave it up for adoption <img src='http://esite.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Unfortunately up to today, there is no-one who wanted to take over this project.</p>
<p>A few days ago when I was crawling through my current projects it occurred to me that not very often, but occasionally people still seem to download Tunefish. However, as it gives you access to many basic Windows settings and has not been tested since Windows XP SP2 it most likely will do more harm then anything else. So I have decided that I delete the project with all its files and executables altogether.</p>
<p>However as there might still be some valuable knowledge in the source code and its thorough documentation the <a href="https://sourceforge.net/p/tunefish/code/">Subversion repository</a> remains for now. So please feel free to have a look at it and use it under the term of the <a href="http://www.gnu.org/licenses/gpl-2.0.html">GPLv2 or higher</a>. If someone still wants to take over the hole project please have a look <a href="https://sourceforge.net/apps/trac/sourceforge/wiki/Abandoned%20Project%20Takeovers">here</a>. That would be awesome. If there is any issue with the current terms the code is licensed under, please talk to me. I am sure we find a solution.</p>
<p>For all former users of Tunefish I just wanted to point out that there are plenty of <a href="http://alternativeto.net/tag/tweaker/">alternatives</a> out there which do a similar job Tunefish used to do. If you have any other alternatives you use I am sure people would appreciate if you share them as comment on this post.</p>
<p>So Goodbye Tunefish. Let&#8217;s head for new shores&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://esite.ch/2012/10/03/tunefish-is-no-more/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Writing tests for Vala</title>
		<link>http://esite.ch/2012/06/26/writing-tests-for-vala/</link>
		<comments>http://esite.ch/2012/06/26/writing-tests-for-vala/#comments</comments>
		<pubDate>Tue, 26 Jun 2012 19:35:46 +0000</pubDate>
		<dc:creator>Oliver Sauder</dc:creator>
				<category><![CDATA[Knowledge base]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[vala]]></category>
		<category><![CDATA[waf]]></category>

		<guid isPermaLink="false">http://esite.ch/?p=425</guid>
		<description><![CDATA[There has been a long outstanding issue to get a unit test environment up and running for Diodon which is written in Vala. Finally, I have found a suitable solution. In this blog post I want to talk about my experience. Hope this helps you to get your Vala code tested as well. Comments are [...]]]></description>
				<content:encoded><![CDATA[<p>There has been a long outstanding issue to get a unit test environment up and running for <a href="https://bugs.launchpad.net/diodon/+bug/634393">Diodon</a> which is written in <a href="http://live.gnome.org/Vala">Vala</a>. Finally, I have found a suitable solution. In this blog post I want to talk about my experience. Hope this helps you to get your Vala code tested as well. Comments are welcome.</p>
<p>When I started my research on different vala unit test framework I found quite a few. Amongst them were <a href="http://asabil.wordpress.com/2009/01/23/vala-and-unit-testing/">vala-gtest-module</a> and <a href="http://gitorious.org/valadate">valadate</a>.</p>
<p>Those frameworks looked all quite promising. Unfortunately, all do not seem to be maintained anymore and are not available as official package in any distribution repository (Note: It seems that <a href="http://yorba.org/">Yorba</a> has adopted <a href="http://redmine.yorba.org/projects/valadate">valadate</a>. So there is still hope&#8230; <img src='http://esite.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ).<br />
Those issues make it very difficult to use these frameworks, as it would mean to run tests, the test framework library needs to be built from source as well. And as the code base of such is quite old, it might happen that it does not even build with the current vala version.</p>
<p>So I had to look for another solution. Doing so I came across <a href="http://developer.gnome.org/glib/unstable/glib-Testing.html">GTest</a> which is included in glib. This has the great advantage that I would not even need another dependency to get my vala code tested. And luckily the developers behind <a href="https://live.gnome.org/Libgee">libgee</a> created a very useful <a href="http://git.gnome.org/browse/libgee/tree/tests/testcase.vala">TestCase class</a> based on GTest so to use the GTest api is not as cumbersome.</p>
<p>Let&#8217;s take a look at this class and see how we can use it (note that the class is licensed under <a href="http://www.gnu.org/licenses/lgpl-2.1.html">LGPL</a> and written by Julien Peeters, see original <a href="http://git.gnome.org/browse/libgee/tree/tests/testcase.vala">source code</a>):</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="vala" style="font-family:monospace;"><span style="color: #0600FF;">public</span> <span style="color: #0600FF;">abstract</span> <span style="color: #FF0000;">class</span> Gee.<span style="color: #0000FF;">TestCase</span> <span style="color: #008000;">:</span> Object <span style="color: #000000;">&#123;</span>
&nbsp;
	<span style="color: #0600FF;">private</span> GLib.<span style="color: #0000FF;">TestSuite</span> suite<span style="color: #008000;">;</span>
	<span style="color: #0600FF;">private</span> Adaptor<span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> adaptors <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Adaptor<span style="color: #000000;">&#91;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
&nbsp;
	<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">delegate</span> <span style="color: #0600FF;">void</span> TestMethod <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
	<span style="color: #0600FF;">public</span> TestCase <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> name<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
		<span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">suite</span> <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> GLib.<span style="color: #0000FF;">TestSuite</span> <span style="color: #000000;">&#40;</span>name<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
	<span style="color: #000000;">&#125;</span>
&nbsp;
	<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> add_test <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> name, <span style="color: #008000;">owned</span> TestMethod test<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
		<span style="color: #0600FF;">var</span> adaptor <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Adaptor <span style="color: #000000;">&#40;</span>name, <span style="color: #000000;">&#40;</span><span style="color: #008000;">owned</span><span style="color: #000000;">&#41;</span>test, <span style="color: #0600FF;">this</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
		<span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">adaptors</span> <span style="color: #008000;">+=</span> adaptor<span style="color: #008000;">;</span>
&nbsp;
		<span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">suite</span>.<span style="color: #0000FF;">add</span> <span style="color: #000000;">&#40;</span><span style="color: #008000;">new</span> GLib.<span style="color: #0000FF;">TestCase</span> <span style="color: #000000;">&#40;</span>adaptor.<span style="color: #0000FF;">name</span>,
		                                   adaptor.<span style="color: #0000FF;">set_up</span>,
		                                   adaptor.<span style="color: #0000FF;">run</span>,
		                                   adaptor.<span style="color: #0000FF;">tear_down</span> <span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
	<span style="color: #000000;">&#125;</span>
&nbsp;
	<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">virtual</span> <span style="color: #0600FF;">void</span> set_up <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
	<span style="color: #000000;">&#125;</span>
&nbsp;
	<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">virtual</span> <span style="color: #0600FF;">void</span> tear_down <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
	<span style="color: #000000;">&#125;</span>
&nbsp;
	<span style="color: #0600FF;">public</span> GLib.<span style="color: #0000FF;">TestSuite</span> get_suite <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
		<span style="color: #0600FF;">return</span> <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">suite</span><span style="color: #008000;">;</span>
	<span style="color: #000000;">&#125;</span>
&nbsp;
	<span style="color: #0600FF;">private</span> <span style="color: #FF0000;">class</span> Adaptor <span style="color: #000000;">&#123;</span>
&nbsp;
		<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> name <span style="color: #000000;">&#123;</span> get<span style="color: #008000;">;</span> <span style="color: #0600FF;">private</span> set<span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
		<span style="color: #0600FF;">private</span> TestMethod test<span style="color: #008000;">;</span>
		<span style="color: #0600FF;">private</span> TestCase test_case<span style="color: #008000;">;</span>
&nbsp;
		<span style="color: #0600FF;">public</span> Adaptor <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> name,
		                <span style="color: #008000;">owned</span> TestMethod test,
		                TestCase test_case<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">name</span> <span style="color: #008000;">=</span> name<span style="color: #008000;">;</span>
			<span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">test</span> <span style="color: #008000;">=</span> <span style="color: #000000;">&#40;</span><span style="color: #008000;">owned</span><span style="color: #000000;">&#41;</span>test<span style="color: #008000;">;</span>
			<span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">test_case</span> <span style="color: #008000;">=</span> test_case<span style="color: #008000;">;</span>
		<span style="color: #000000;">&#125;</span>
&nbsp;
		<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> set_up <span style="color: #000000;">&#40;</span><span style="color: #0600FF;">void</span><span style="color: #008000;">*</span> fixture<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">test_case</span>.<span style="color: #0000FF;">set_up</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
		<span style="color: #000000;">&#125;</span>
&nbsp;
		<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> run <span style="color: #000000;">&#40;</span><span style="color: #0600FF;">void</span><span style="color: #008000;">*</span> fixture<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">test</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
		<span style="color: #000000;">&#125;</span>
&nbsp;
		<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> tear_down <span style="color: #000000;">&#40;</span><span style="color: #0600FF;">void</span><span style="color: #008000;">*</span> fixture<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">test_case</span>.<span style="color: #0000FF;">tear_down</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
		<span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>What we can do now is to implement a test case class like the following:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="vala" style="font-family:monospace;"><span style="color: #FF0000;">class</span> TestExample <span style="color: #008000;">:</span> TestCase <span style="color: #000000;">&#123;</span>
&nbsp;
  <span style="color: #0600FF;">public</span> TestExample<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
    <span style="color: #008080; font-style: italic;">// assign a name for this class</span>
    <span style="color: #0600FF;">base</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;TestExample&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #008080; font-style: italic;">// add test methods</span>
    add_test<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;test_example&quot;</span>, test_example<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
   <span style="color: #000000;">&#125;</span>
&nbsp;
   <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">override</span> <span style="color: #0600FF;">void</span> set_up <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
     <span style="color: #008080; font-style: italic;">// setup your test</span>
   <span style="color: #000000;">&#125;</span>
&nbsp;
   <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> test_example<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
     <span style="color: #008080; font-style: italic;">// add your expressions</span>
     <span style="color: #008080; font-style: italic;">// assert(expression);</span>
   <span style="color: #000000;">&#125;</span>
&nbsp;
   <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">override</span> <span style="color: #0600FF;">void</span> tear_down <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
     <span style="color: #008080; font-style: italic;">// tear down your test</span>
   <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>There are no naming convention here, how a test class and its test methods are called. However I prefer to name a test class the same as the class its testing + Test as prefix. For example the class above TestExample tests the functionality of the class Example. I do the same for test methods. So this means that the method test_example above tests the method example on the class Example.</p>
<p>This just as a note. Let&#8217;s go back to setting up our testing environment. So to be able to run the test we have just created, we need to compile all test classes into one executable with the following main method:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="vala" style="font-family:monospace;"><span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">int</span> main<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> args<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
  Test.<span style="color: #0000FF;">init</span> <span style="color: #000000;">&#40;</span><span style="color: #0600FF;">ref</span> args<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
  <span style="color: #008080; font-style: italic;">// add any of your test cases here</span>
  TestSuite.<span style="color: #0000FF;">get_root</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">add_suite</span><span style="color: #000000;">&#40;</span><span style="color: #008000;">new</span> TestExample<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">get_suite</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
  <span style="color: #0600FF;">return</span> Test.<span style="color: #0000FF;">run</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>Of course, you can create this executable by using your preferred build tool. In this post I just wanted to show you how this can be done with <a href="http://code.google.com/p/waf/">waf</a> which I am currently using to build diodon.</p>
<p>So a wscript_build of a tests folder where all test cases are located could look like this:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="python" style="font-family:monospace;">prog <span style="color: #66cc66;">=</span> bld.<span style="color: black;">new_task_gen</span> <span style="color: black;">&#40;</span>
  features <span style="color: #66cc66;">=</span> <span style="color: #483d8b;">'c cprogram test'</span><span style="color: #66cc66;">,</span>
  target <span style="color: #66cc66;">=</span> <span style="color: #483d8b;">'example-test'</span><span style="color: #66cc66;">,</span>
  source <span style="color: #66cc66;">=</span> bld.<span style="color: black;">path</span>.<span style="color: black;">ant_glob</span> <span style="color: black;">&#40;</span>incl<span style="color: #66cc66;">=</span><span style="color: #483d8b;">'**/*.vala'</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

<p>You probably noted that there is a feature test configured. This is a feature to run tests while building the executable with waf. I will come back to this later.</p>
<p>Let&#8217;s just make the assumption that this is not configured. This way we would now have an executable example-test which we could simply run in a terminal.</p>
<p>The output could look like this:</p>
<pre>
/TestExample/test_example: OK
</pre>
<p>Running a test executable would now always run all test cases. However this might take quite a while considering you wrote thousands of tests <img src='http://esite.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . For this reason, there is a tool called <a href="http://developer.gnome.org/glib/2.30/gtester.html">gtester</a> included in glib which has some nice features such as running only a specific test case.</p>
<p>So let&#8217;s say we only want to run the test TestExample, we could use the following command:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;">gtester <span style="color: #660033;">--verbose</span> <span style="color: #660033;">-p</span> <span style="color: #000000; font-weight: bold;">/</span>TestExample example-test</pre></td></tr></table></div>

<p>gtester has many more options. Best take a look at its <a href="http://developer.gnome.org/glib/2.30/gtester.html">documentation</a>.</p>
<p>It&#8217;s all great that we can now run our written tests manually to see whether our changes broke anything. However, it would be even better if such would be run every time we built our source code. And when a test fails that the build will fail as well (of course there should always be an option to disable running tests). This has the advantage when someone builds or packages your vala code on a different system with different dependencies, that errors the user might have with your code, already occur while building respectively running the tests.</p>
<p>So to do this with waf I want to come back to the test feature I have mentioned above. Beside configuring this feature we have to adjust the main wscript which could look like the following:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="python" style="font-family:monospace;">...
<span style="color: #ff7700;font-weight:bold;">def</span> options<span style="color: black;">&#40;</span>opt<span style="color: black;">&#41;</span>:
  ...
  <span style="color: black;">opt</span>.<span style="color: black;">add_option</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'--skiptests'</span><span style="color: #66cc66;">,</span> action<span style="color: #66cc66;">=</span><span style="color: #483d8b;">'store_true'</span><span style="color: #66cc66;">,</span> default<span style="color: #66cc66;">=</span><span style="color: #008000;">False</span><span style="color: #66cc66;">,</span>
    dest<span style="color: #66cc66;">=</span><span style="color: #483d8b;">'skiptests'</span><span style="color: #66cc66;">,</span> <span style="color: #008000;">help</span><span style="color: #66cc66;">=</span><span style="color: #483d8b;">'Skip unit tests'</span><span style="color: black;">&#41;</span>
  ...
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> build<span style="color: black;">&#40;</span>ctx<span style="color: black;">&#41;</span>:
  ...
  <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> Options.<span style="color: black;">options</span>.<span style="color: black;">skiptests</span>:
        ctx.<span style="color: black;">add_subdirs</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'tests'</span><span style="color: black;">&#41;</span>
  ...
  <span style="color: black;">ctx</span>.<span style="color: black;">add_post_fun</span><span style="color: black;">&#40;</span>post<span style="color: black;">&#41;</span>
&nbsp;
  <span style="color: #808080; font-style: italic;"># to execute all tests:</span>
  <span style="color: #808080; font-style: italic;"># $ waf --alltests</span>
  <span style="color: #808080; font-style: italic;"># to set this behaviour permanenly:    </span>
  ctx.<span style="color: black;">options</span>.<span style="color: black;">all_tests</span> <span style="color: #66cc66;">=</span> <span style="color: #008000;">True</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> post<span style="color: black;">&#40;</span>ctx<span style="color: black;">&#41;</span>:
  waf_unit_test.<span style="color: black;">summary</span><span style="color: black;">&#40;</span>ctx<span style="color: black;">&#41;</span>
&nbsp;
  <span style="color: #808080; font-style: italic;"># Tests have to pass</span>
  lst <span style="color: #66cc66;">=</span> <span style="color: #008000;">getattr</span><span style="color: black;">&#40;</span>ctx<span style="color: #66cc66;">,</span> <span style="color: #483d8b;">'utest_results'</span><span style="color: #66cc66;">,</span> <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
  <span style="color: #ff7700;font-weight:bold;">if</span> lst:
    tfail <span style="color: #66cc66;">=</span> <span style="color: #008000;">len</span><span style="color: black;">&#40;</span><span style="color: black;">&#91;</span>x <span style="color: #ff7700;font-weight:bold;">for</span> x <span style="color: #ff7700;font-weight:bold;">in</span> lst <span style="color: #ff7700;font-weight:bold;">if</span> x<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">if</span> tfail:
      ctx.<span style="color: black;">fatal</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Some test failed.&quot;</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

<p>When <i>./waf build</i> is now called, the tests will be run as well. It is also possible to skip tests by simply using <i>./waf build &#8211;skiptests</i>.</p>
<p>You can find a full fledge sample in the <a href="http://bazaar.launchpad.net/~diodon-team/diodon/trunk/files">diodon source code</a>.</p>
<p>If you use <a href="http://www.gnu.org/software/automake/">automake</a> I would recommend you take a look at the <a href="http://git.gnome.org/browse/libgee/tree/">libgee source code</a> which have implemented a similar approach with automake.</p>
<p>This is it. Hope this was helpful. And do not forget: Test more!!! <img src='http://esite.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://esite.ch/2012/06/26/writing-tests-for-vala/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Diodon available for testing in the Arch Linux User Repository</title>
		<link>http://esite.ch/2012/05/21/diodon-available-for-testing-in-the-arch-linux-user-repository/</link>
		<comments>http://esite.ch/2012/05/21/diodon-available-for-testing-in-the-arch-linux-user-repository/#comments</comments>
		<pubDate>Mon, 21 May 2012 20:11:37 +0000</pubDate>
		<dc:creator>Oliver Sauder</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[arch]]></category>
		<category><![CDATA[diodon]]></category>

		<guid isPermaLink="false">http://esite.ch/?p=403</guid>
		<description><![CDATA[Thanks to Jose is Diodon now packaged for Arch Linux and available for testing. If you are an Arch Linux user this is now a great opportunity to check out Diodon on your system. However note that the package is still in an early stage. So expect that the build won&#8217;t go as smooth. It [...]]]></description>
				<content:encoded><![CDATA[<p>Thanks to <a href="https://aur.archlinux.org/account.php?Action=AccountInfo&#038;ID=2423">Jose</a> is Diodon now packaged for <a href="http://www.archlinux.org/">Arch Linux</a> and <a href="https://aur.archlinux.org/packages.php?ID=45803l">available for testing</a>.</p>
<p>If you are an Arch Linux user this is now a great opportunity to check out Diodon on your system. However note that the package is still in an early stage. So expect that the build won&#8217;t go as smooth. It also depends on <a href="https://aur.archlinux.org/packages.php?ID=57219">libindicator3</a> and <a href="https://aur.archlinux.org/packages.php?ID=57214">libappindicator3</a> which are also not official packages.</p>
<p>Even more do those packages need testing. Although I can say that I was able to build diodon on my test arch installation and that it runs smoothly.</p>
<p>So let&#8217;s start with the instruction how to go about getting Diodon up and running on Arch. As diodon is only available in the <a href="https://aur.archlinux.org/">Arch User Repository</a> and also depends on other AUR packages, an easy way to go about this is to use <a href="http://aur.archlinux.org/packages.php?ID=5863">yaourt</a>. If you haven&#8217;t installed it yet you can follow <a href="http://archlinux.fr/yaourt-en">these instruction.</a></p>
<p>As soon as you have yaourt installed, you can simply run following command:<br />
<code><br />
yaourt -Sy diodon<br />
</code></p>
<p>and follow the instructions. If this step has been successful you can then simply run the command <i>diodon</i>.</p>
<p><i>Note: If one of the package fails to compile/install, best comment directly on the package itself on <a href="https://aur.archlinux.org/">AUR</a>. When you find bugs when Diodon could start smoothly, please report those on <a href="https://bugs.launchpad.net/diodon">Launchpad</a>. There is already <a href="https://bugs.launchpad.net/diodon/+bug/1002475">one bug</a> reported specific for arch linux. If you suffer from this bug as well, please add some comments.</i></p>
<p>It is exciting to see Diodon running on other Linux distributions. So which will be the next one?</p>
]]></content:encoded>
			<wfw:commentRss>http://esite.ch/2012/05/21/diodon-available-for-testing-in-the-arch-linux-user-repository/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Saving power with Diodon 0.8.0</title>
		<link>http://esite.ch/2012/04/26/saving-power-with-diodon-0-8-0/</link>
		<comments>http://esite.ch/2012/04/26/saving-power-with-diodon-0-8-0/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 20:55:04 +0000</pubDate>
		<dc:creator>Oliver Sauder</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[diodon]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://esite.ch/?p=394</guid>
		<description><![CDATA[Today, Ubuntu Precise has been released. Is this not a good time to release another Diodon version as well? Well, here it is . This new release of Diodon, however, does not bring many new feature but is a polish of the application you are (hopefully) already used to. Changes have been done so it [...]]]></description>
				<content:encoded><![CDATA[<p>Today, Ubuntu Precise has been released. Is this not a good time to release another Diodon version as well?</p>
<p>Well, here it is <img src='http://esite.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . This new release of Diodon, however, does not bring many new feature but is a polish of the application you are (hopefully) already used to. Changes have been done so it compiles smoothly in Ubuntu Precise with its new Unity Lens api. And now you should be able to use python plugins without any hassle as well.</p>
<p>But there is one small change which might interest you much more, if you often use Diodon on your laptop running on battery&#8230;</p>
<p>You might now ask yourself, what does Diodon have to do with my battery? Let me dive into this a bit deeper by explaining how Diodon works.</p>
<p>So to be able to create a history of clipboard items Diodon has to tell the clipboard that it has to call Diodon when there is any new content. Diodon will than add such to its history.</p>
<p>This works great for the normal clipboard which you use with Ctrl + C. Unfortunately the clipboard is not able to tell Diodon, when a primary selection has changed (an area on the screen which is selected by the mouse). To get around this, Diodon has to check in a regular interval whether the primary selection has changed. This works quite well on desktop machines and plugged in laptops.<br />
However, imagine when your CPU wants to go to sleep and just before it wants to the interval is over and will check whether the primary selection has changed. This of course will wake up the CPU again. As this happens over and over again it will discharge your battery faster than it would be really necessary.</p>
<p>There is now good news to this. In Diodon version prior to 0.8.0 there was no way to stop this timer but closing Diodon. In this new version, however, you can simple go the preferences and uncheck &#8220;Use primary selection&#8221;. This way you can still use Diodon (of course whit the restriction that the primary selection is not added to the history) but not uselessly waking up the CPU and therefore saving power.</p>
<p><a href="https://code.launchpad.net/~diodon-team/+archive/stable">Here</a> you can find the new version to be installed for Ubuntu Precise. Let me know what you think.</p>
]]></content:encoded>
			<wfw:commentRss>http://esite.ch/2012/04/26/saving-power-with-diodon-0-8-0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Happy Diodon New Year with 0.7.0</title>
		<link>http://esite.ch/2012/01/04/happy-diodon-new-year-with-0-7-0/</link>
		<comments>http://esite.ch/2012/01/04/happy-diodon-new-year-with-0-7-0/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 17:41:48 +0000</pubDate>
		<dc:creator>Oliver Sauder</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[diodon]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://esite.ch/?p=382</guid>
		<description><![CDATA[The new year has just started. And there is so much ahead what can be implemented for Diodon. Might it be a better GNOME3 integration or a thought about how Zeitgeist might be helpful. There are also a bunch of ideas for different plugins. And I hope Diodon will finally get its own icon. (when [...]]]></description>
				<content:encoded><![CDATA[<p>The new year has just started. And there is so much ahead what can be implemented for Diodon. Might it be a better <a href="https://blueprints.launchpad.net/diodon/+spec/better-gnome3-integration">GNOME3 integration</a> or a thought about how <a href="http://zeitgeist-project.com/about/">Zeitgeist</a> might be helpful.</p>
<p>There are also a bunch of <a href="https://blueprints.launchpad.net/diodon/+spec/ideas-for-plugins">ideas</a> for different plugins. And I hope Diodon will finally get <a href="https://bugs.launchpad.net/diodon/+bug/693173">its own icon</a>. (when you are a designer and would be willing to help us out here, <a href="https://launchpad.net/diodon">please contact us</a>).</p>
<p>We will see what of these things can be accomplished this year. However what I can assure you is that Diodon 0.7.0 will be released today.</p>
<p>It introduces a new key combination so the diodon history menu can be accessed just with one hand on the keyboard. You can read more about it <a href="http://esite.ch/2011/12/03/whats-new-on-the-diodon-front/">here</a>. Furthermore does this Diodon version also work together with Java applications. This has been a naughty bug and I am sure that quite a few people are happy to see this fixed.</p>
<p>You can install the new version with following commands:</p>
<pre>sudo add-apt-repository ppa:diodon-team/stable
sudo apt-get update
sudo apt-get install diodon</pre>
<p>Happy Diodon new year <img src='http://esite.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://esite.ch/2012/01/04/happy-diodon-new-year-with-0-7-0/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>What&#8217;s new on the Diodon front?</title>
		<link>http://esite.ch/2011/12/03/whats-new-on-the-diodon-front/</link>
		<comments>http://esite.ch/2011/12/03/whats-new-on-the-diodon-front/#comments</comments>
		<pubDate>Sat, 03 Dec 2011 20:13:13 +0000</pubDate>
		<dc:creator>Oliver Sauder</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[diodon]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://esite.ch/?p=370</guid>
		<description><![CDATA[The development on Diodon has been continuing and I&#8217;m happy to introduce you to a new feature which makes accessing the indicator easier. The idea for this has come from fatlp. Thanks a lot for this. You can find all details about it on this blueprint. Up to today, when you wanted to access the [...]]]></description>
				<content:encoded><![CDATA[<p>The development on Diodon has been continuing and I&#8217;m happy to introduce you to a new feature which makes accessing the indicator easier.</p>
<p>The idea for this has come from <a href="https://launchpad.net/~i-mehlbox">fatlp</a>. Thanks a lot for this. You can find all details about it on <a href="https://blueprints.launchpad.net/diodon/+spec/key-combination">this blueprint</a>.</p>
<p>Up to today, when you wanted to access the indicator with your keyboard, you pressed and released &lt;Ctrl&gt;&lt;Alt&gt;V and then used the arrows up and down following with Enter to choose a clipboard item.<br />
This will still work in future releases. However in the new release (which is currently available in the <a href="https://code.launchpad.net/~diodon-team/+archive/daily">daily ppa</a> for testing) you can do the following:<br />
Press &lt;Ctrl&gt;&lt;Alt&gt;V. While you keep pressing &lt;Ctrl&gt;&lt;Alt&gt; you can browse through the different clipboard items by pressing V multiple times until you have selected the item you want to paste. Now release &lt;Ctrl&gt;&lt;Alt&gt; and the selected item will be copied to your clipboard and pasted (when enabled).<br />
This of course also works with your customized key. The rule is that you keep pressing the modifiers and with the key you can browse through your history.</p>
<p>After I have been using this new key combination a couple of times I&#8217;ve already started to love. I hope you do as well <img src='http://esite.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p>I&#8217;m happy to hear your comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://esite.ch/2011/12/03/whats-new-on-the-diodon-front/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Diodon 0.6.0 released and how to build it on your preferred distribution</title>
		<link>http://esite.ch/2011/10/29/diodon-0-6-0-released-and-how-to-build-it-on-your-preferred-distribution/</link>
		<comments>http://esite.ch/2011/10/29/diodon-0-6-0-released-and-how-to-build-it-on-your-preferred-distribution/#comments</comments>
		<pubDate>Sat, 29 Oct 2011 09:46:27 +0000</pubDate>
		<dc:creator>Oliver Sauder</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[diodon]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://esite.ch/?p=351</guid>
		<description><![CDATA[The last stable release of Diodon had been released quite a while ago. However the development has been going on and major changes now are ready to be released. Some of the changes have been discussed in this blog post However here is a quick overview what has changed and what needs to be taken [...]]]></description>
				<content:encoded><![CDATA[<p>The last stable release of Diodon had been released quite a while ago. However the development has been going on and major changes now are ready to be released. Some of the changes have been discussed <a href="http://esite.ch/2011/10/13/ramping-up-plugin-system-for-diodon/">in this blog post</a></p>
<p>However here is a quick overview what has changed and what needs to be taken care of:</p>
<p>Release notes:
<ul>
<li>Diodon has been updated to gtk+-3.0 and therefore runs only on Oneiric (or all other distributions supporting gtk+-3.0).</li>
<li>gconf has been replaced with GSettings/dconf. All settings (except the history) will be lost after installing this version and need to be set again</li>
<li>Unity Lens is not installed per default anymore. Install the package diodon-plugins and activate it in the preferences plugins tab. When building from source use <i>./waf configure &#8211;enable-unitylens-plugin</i> to enable it.</li>
<li>The Application Indicator is now also a plugin which is enabled by default. The plugin can be disabled in the preferences however.</li>
</ul>
<p>Changelog:
<ul>
<li>Implement plugin system using libpeas (LP: #826422)</li>
<li>Unity Lens now runs on Oneiric (LP: #830001)</li>
<li>Using libunique so only one instance can be started (LP: #870774)</li>
<li>Update to gtk+-3.0 (LP: #794637)</li>
<li>Fixed issues with gtk+-3.0 applications (LP: #879256, #875708)</li>
<li>switching to GSettings/dconf (LP: #689462)</li>
</ul>
<p>You can install Diodon with the following commands
<pre><code>sudo add-apt-repository ppa:diodon-team/stable
sudo apt-get update
sudo apt-get install diodon</pre>
<p></code></p>
<p>This release also brought about changes which should make it easier to build Diodon on your preferred distribution. It used to be the case that Diodon required packages for the <a href="https://wiki.ubuntu.com/DesktopExperienceTeam/ApplicationIndicators">Application Indicators</a> which are unfortunately not available on all other distribution.<br />
When Diodon is built from source just running <i>./waf configure</i> such packages will still be needed. However you can disable it with <i>./waf configure --disable-indicator-plugin</i>.<br />
Please notice when building Diodon with this option you can only use it with the Hotkey (&lt;Ctrl&gt;&lt;Alt&gt;V per default).</p>
<p>I would love to see packages of Diodon for other distribution as well. So go for it <img src='http://esite.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .<br />
When you struggle building Diodon <a href="https://launchpad.net/diodon">please contact us</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://esite.ch/2011/10/29/diodon-0-6-0-released-and-how-to-build-it-on-your-preferred-distribution/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
