<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Trueg&#039;s Blog</title>
	<atom:link href="http://trueg.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://trueg.wordpress.com</link>
	<description>Semantic Desktop - Wha?</description>
	<lastBuildDate>Mon, 20 May 2013 16:57:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='trueg.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Trueg&#039;s Blog</title>
		<link>http://trueg.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://trueg.wordpress.com/osd.xml" title="Trueg&#039;s Blog" />
	<atom:link rel='hub' href='http://trueg.wordpress.com/?pushpress=hub'/>
		<item>
		<title>TPAC 2012 &#8211; Who Am I (On the Web)?</title>
		<link>http://trueg.wordpress.com/2012/11/08/tpac-2012-who-am-i-on-the-web/</link>
		<comments>http://trueg.wordpress.com/2012/11/08/tpac-2012-who-am-i-on-the-web/#comments</comments>
		<pubDate>Thu, 08 Nov 2012 10:37:11 +0000</pubDate>
		<dc:creator>Sebastian Trüg</dc:creator>
				<category><![CDATA[ODS]]></category>
		<category><![CDATA[identity]]></category>
		<category><![CDATA[tpac]]></category>
		<category><![CDATA[w3c]]></category>
		<category><![CDATA[WebID]]></category>

		<guid isPermaLink="false">http://trueg.wordpress.com/?p=884</guid>
		<description><![CDATA[Last week I attended my first TPAC ever &#8211; in Lyon, France. Coming from the open-source world and such events like Fosdem or the ever brilliant Akademy I was not sure what to expect. Should I pack a suite? On &#8230; <a href="http://trueg.wordpress.com/2012/11/08/tpac-2012-who-am-i-on-the-web/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&#038;blog=6648236&#038;post=884&#038;subd=trueg&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Last week I attended my first <a href="http://www.w3.org/2012/10/TPAC/">TPAC</a> ever &#8211; in Lyon, France. Coming from the open-source world and such events like <a href="http://fosdem.org/">Fosdem</a> or the ever brilliant <a href="http://akademy.kde.org/">Akademy</a> I was not sure what to expect. Should I pack a suite? On arrival all my fears were blown away by an incredibly well organized event with a lot of nice people. I felt very welcome as a newbie, there was even a breakfast for the first-timers with some short presentations to get an overview of the <a href="http://www.w3.org/">W3C</a>&#8216;s work in general and the existing working groups. So before getting into any details: I would love this to become a regular thing (not sure it will though, seeing that next year the TPAC will be in China).</p>
<p><img class="aligncenter" alt="" src="http://www.w3.org/2012/10/TPAC/img/tpac-logo2012.png" height="146" width="105" /></p>
<p>My main reason for going to the TPAC was identity on the Web, or short <a href="http://webid.info">WebID</a>. <a href="http://www.openlinksw.com/">OpenLink Software</a> is a strong supporter of the WebID identification and authentication system. Thus, it was important to be present for the meeting of the WebID community group.</p>
<p>The meeting with roughly 15 people spawned some interesting discussions. The most heatedly debated topic was that of splitting the WebID protocol into two parts: 1. identification and 2. authentication. The reason for this is not at all technical but more political. The WebID protocol which uses public keys embedded in RDF profiles and X.509 certificates which contain a personal profile URL has always had trouble being accepted by several working groups and people. So in order to lower the barrier for acceptance and to level the playing field the idea was to split the part which is indisputable (at least in the semantic web world) from the part that people really have a problem with (TLS).</p>
<p>This lead to a very simple definition of a WebID which I will repeat in my own words since it is not written in stone yet (or rather &#8220;written in spec&#8221;):</p>
<blockquote><p>A WebID is a dereferencable URI which denotes an agent (person, organization, or software). It resolves to an RDF profile document uniquely identifying the agent.</p></blockquote>
<p>Here &#8220;uniquely identify&#8221; simply means that the profile contains some relation of the WebID to another identifier. This identifier can be an email address (foaf:mbox), it can be a Twitter account, an OpenID, or, to restore the connection to the WebID protocol, a public key.</p>
<p>The nice thing about this separation of identity and authentication is that the WebID is now compatible with any of the authentication systems out there. It can be used with WebID-Auth (this is how I call the X.509 certificate + public key in agent profile system formally known as WebID), but also with OpenID or even with OAuth. Imagine a service provider like Google returning a WebID as part of the OAuth authentication result. In case of an OpenID the OpenID itself could be the WebID or another WebID would be returned after successful authentication. Then the client could dereference it to get additional information.</p>
<p>This is especially interesting when it comes to WebACLs. Now we could imagine defining WebACLs on WebIDs from any source. Using mutual owl:sameAs relations these WebIDs could be made to denote the same person which the authorizing service could then use to build a list of identifiers that map the one used in the ACL rule.</p>
<p>In any case this is a definition that should pose no problems to such working groups as the Linked Data Protocol. Even the OpenID or OAuth community should wee the benefits of identifying people via URIs. In the end the Web is a Web of URIs&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trueg.wordpress.com/884/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trueg.wordpress.com/884/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&#038;blog=6648236&#038;post=884&#038;subd=trueg&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trueg.wordpress.com/2012/11/08/tpac-2012-who-am-i-on-the-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e3242746dbb0eb09c34c039b6ef15e86?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">trueg</media:title>
		</media:content>

		<media:content url="http://www.w3.org/2012/10/TPAC/img/tpac-logo2012.png" medium="image" />
	</item>
		<item>
		<title>And Now For Something Completely Different: Resizable Bootstrap Modals</title>
		<link>http://trueg.wordpress.com/2012/10/12/and-now-for-something-completely-different-resizable-bootstrap-modals/</link>
		<comments>http://trueg.wordpress.com/2012/10/12/and-now-for-something-completely-different-resizable-bootstrap-modals/#comments</comments>
		<pubDate>Fri, 12 Oct 2012 12:36:04 +0000</pubDate>
		<dc:creator>Sebastian Trüg</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://trueg.wordpress.com/?p=878</guid>
		<description><![CDATA[(Update: Now with better overflow handling.) I have been doing more CSS + JS as I would have liked these past months. I am still a newbie but today I did something which I am happy enough about to make &#8230; <a href="http://trueg.wordpress.com/2012/10/12/and-now-for-something-completely-different-resizable-bootstrap-modals/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&#038;blog=6648236&#038;post=878&#038;subd=trueg&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><em>(Update: Now with better overflow handling.)</em></p>
<p>I have been doing more CSS + JS as I would have liked these past months. I am still a newbie but today I did something which I am happy enough about to make it into a short blog post.</p>
<p><a href="http://twitter.github.com/bootstrap/index.html">Twitter&#8217;s Bootstrap</a> CSS framework is a nice basis to get your web page going. It also has modal windows. <a href="http://jqueryui.com/resizable/">JQuery has the resizable function</a> which allows to add resize handles to any div. In order to make this work with a Bootstrap modal I did the following things:</p>
<p>1. Slightly change the positioning of the jQuery resize handles so they do not force scrollbars on the Bootstrap modal and do not add a weird border:</p>
<pre>.ui-resizable-s {
  bottom: 0;
}
.ui-resizable-e {
  right: 0;
}</pre>
<p>2. A little bit of JS magic to properly reposition the modal once it has been resized:</p>
<pre>$(".modal").on("resize", function(event, ui) {
    ui.element.css("margin-left", -ui.size.width/2);
    ui.element.css("margin-top", -ui.size.height/2);
    ui.element.css("top", "50%");
    ui.element.css("left", "50%");

    $(ui.element).find(".modal-body").each(function() {
      $(this).css("max-height", 400 + ui.size.height - ui.originalSize.height);
    });
});</pre>
<p>Just look at the Bootstrap modal&#8217;s margin in Firebug or something similar to understand the first two statements. The top and left values are to fix the positioning in Opera. The last statement is to also resize the modal body for proper overflow handling.</p>
<p>Now just enable resize on all modals or on whatever modal you want:</p>
<pre>$(".modal").resizable();</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trueg.wordpress.com/878/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trueg.wordpress.com/878/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&#038;blog=6648236&#038;post=878&#038;subd=trueg&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trueg.wordpress.com/2012/10/12/and-now-for-something-completely-different-resizable-bootstrap-modals/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e3242746dbb0eb09c34c039b6ef15e86?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">trueg</media:title>
		</media:content>
	</item>
		<item>
		<title>Digitally Sign Emails With Your X.509 Certificate in Evolution</title>
		<link>http://trueg.wordpress.com/2012/09/28/digitally-sign-emails-with-your-x-509-certificate-in-evolution/</link>
		<comments>http://trueg.wordpress.com/2012/09/28/digitally-sign-emails-with-your-x-509-certificate-in-evolution/#comments</comments>
		<pubDate>Fri, 28 Sep 2012 14:26:14 +0000</pubDate>
		<dc:creator>Sebastian Trüg</dc:creator>
				<category><![CDATA[ODS]]></category>
		<category><![CDATA[Certificate]]></category>
		<category><![CDATA[Evolution]]></category>
		<category><![CDATA[smime]]></category>
		<category><![CDATA[WebID]]></category>
		<category><![CDATA[X.509]]></category>

		<guid isPermaLink="false">http://trueg.wordpress.com/?p=870</guid>
		<description><![CDATA[Digitally signing Emails is always a good idea. People can verify that you actually sent the mail and they can encrypt emails in return. A while ago Kingsley showed how to sign emails in Thunderbird.I will now follow up with &#8230; <a href="http://trueg.wordpress.com/2012/09/28/digitally-sign-emails-with-your-x-509-certificate-in-evolution/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&#038;blog=6648236&#038;post=870&#038;subd=trueg&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Digitally signing Emails is always a good idea. People can verify that you actually sent the mail and they can encrypt emails in return. A while ago <a href="https://plus.google.com/112399767740508618350/posts/7UFzrLZpxnm">Kingsley showed how to sign emails in Thunderbird</a>.I will now follow up with a short post on how to do the same in Evolution.</p>
<p>The process begins with actually getting an X.509 certificate including an embedded <a href="http://webid.info/">WebID</a>. There are a few services out there that can help with this, most notably OpenLink&#8217;s own <a href="http://id.myopenlink.net/certgen/">YouID</a> and <a href="http://id.myopenlink.net/ods/">ODS.</a> The former allows you to create a new certificate based on existing social service accounts. The latter requires you to create an ODS account and then create a new certificate via <em>Profile edit</em> -&gt; <em>Security</em> -&gt; <em>Certificate Generator</em>. In any case make sure to use the same email address for the certificate that you will be using for email sending.</p>
<p>The certificate will actually be created by the web browser, making sure that the private key is safe.</p>
<p>If you are a Google Chrome user you can skip the next step since Evolution shares its key storage with Chrome (and several other applications). If you are a user of Firefox you need to perform one extra step: go to the Firefox preferences, into the advanced section, click the &#8220;Certificates&#8221; button, choose the previously created certificate, and export it to a .p12 file.</p>
<p>Back in Evolution&#8217;s settings you can now import this file:</p>
<p><a href="http://trueg.files.wordpress.com/2012/09/evolution-import-cert.png"><img class="aligncenter size-medium wp-image-871" title="evolution-import-cert" src="http://trueg.files.wordpress.com/2012/09/evolution-import-cert.png?w=300&#038;h=259" alt="" width="300" height="259" /></a>To actually sign emails with your shiny new certificate stay in the Evolution settings, choose to edit the <em>Mail Account</em> in question, select the certificate in the <em>Secure MIME (S/MIME)</em> section and check &#8220;<em>Digitally sign outgoing messages (by default)</em>&#8220;:</p>
<p><a href="http://trueg.files.wordpress.com/2012/09/evolution-sign.png"><img class="aligncenter size-medium wp-image-872" title="evolution-sign" src="http://trueg.files.wordpress.com/2012/09/evolution-sign.png?w=300&#038;h=297" alt="" width="300" height="297" /></a>The nice thing about Evolution here is that in contrast to Thunderbird there is no need to manually import the root certificate which was used to sign your certificate (in our case the one from OpenLink). Evolution will simply ask you to trust that certificate the first time you try to send a signed email:</p>
<p><a href="http://trueg.files.wordpress.com/2012/09/evolution-confirm-ssl-exception.png"><img class="aligncenter size-medium wp-image-873" title="evolution-confirm-ssl-exception" src="http://trueg.files.wordpress.com/2012/09/evolution-confirm-ssl-exception.png?w=300&#038;h=226" alt="" width="300" height="226" /></a>That&#8217;s it. Email signing in Evolution is easy.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trueg.wordpress.com/870/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trueg.wordpress.com/870/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&#038;blog=6648236&#038;post=870&#038;subd=trueg&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trueg.wordpress.com/2012/09/28/digitally-sign-emails-with-your-x-509-certificate-in-evolution/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e3242746dbb0eb09c34c039b6ef15e86?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">trueg</media:title>
		</media:content>

		<media:content url="http://trueg.files.wordpress.com/2012/09/evolution-import-cert.png?w=300" medium="image">
			<media:title type="html">evolution-import-cert</media:title>
		</media:content>

		<media:content url="http://trueg.files.wordpress.com/2012/09/evolution-sign.png?w=300" medium="image">
			<media:title type="html">evolution-sign</media:title>
		</media:content>

		<media:content url="http://trueg.files.wordpress.com/2012/09/evolution-confirm-ssl-exception.png?w=300" medium="image">
			<media:title type="html">evolution-confirm-ssl-exception</media:title>
		</media:content>
	</item>
		<item>
		<title>Use an X.509 certificate for SSH Login</title>
		<link>http://trueg.wordpress.com/2012/09/06/use-an-x-509-certificate-for-ssh-login/</link>
		<comments>http://trueg.wordpress.com/2012/09/06/use-an-x-509-certificate-for-ssh-login/#comments</comments>
		<pubDate>Thu, 06 Sep 2012 16:16:23 +0000</pubDate>
		<dc:creator>Sebastian Trüg</dc:creator>
				<category><![CDATA[ODS]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[openssl]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[WebID]]></category>
		<category><![CDATA[X509]]></category>

		<guid isPermaLink="false">http://trueg.wordpress.com/?p=867</guid>
		<description><![CDATA[An X.509 certificate contains a private and a public key. As such it is suitable for password-less login via SSH. However, as always with certificates and keys and all that powerful stuff the handling of it all is very clumsy. &#8230; <a href="http://trueg.wordpress.com/2012/09/06/use-an-x-509-certificate-for-ssh-login/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&#038;blog=6648236&#038;post=867&#038;subd=trueg&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>An X.509 certificate contains a private and a public key. As such it is suitable for password-less login via SSH. However, as always with certificates and keys and all that powerful stuff the handling of it all is very clumsy. <a href="https://plus.google.com/112399767740508618350/posts/Yee8L58efd7">Kingsley just explained how to setup SSH with X.509 certificates</a>. I will try to add the missing pieces here.</p>
<ol>
<li>If you do not have a X.509 certificate yet create one with an embedded WebID via the <a href="http://id.myopenlink.net/certgen/">OpenLink YouID service</a>. Make sure the details actually get saved in the last step, for example by posting an identity claim to your Twitter or LinkedIn accounts. This will make the YouID service persist your profile which in turn will result in your new WebID being dereferencable. Kingsley has some nice Linked data details on that in his post.</li>
<li>Export the new certificate which should now be installed in your browser&#8217;s key store, into a P12 file. This can be done via the certificate viewer in the browser preferences.</li>
<li>Convert the P12 into PEM format:
<pre># openssl pkcs12 -in MyCert.p12 -out MyCert.pem -nodes</pre>
</li>
<li>Extract the private key from the P12:
<pre># openssl pkcs12 -in MyCert.p12 -out MySSHKeys.pem -nodes -nocerts</pre>
</li>
<li>Finally extract the public key from the certificate PEM file and append it to the private key:
<pre># openssl x509 -in MyCert.pem -pubkey -noout &gt;&gt; MySSHKeys.pem</pre>
</li>
<li>MyCert.pem can now be removed. It is not required anymore.</li>
<li>You can use ssh-keygen to create the line to put into your remote <em>~/.ssh/authorized_keys</em>file:
<pre># ssh-keygen -i -m PKCS8 -f MySSHKeys.pem</pre>
</li>
</ol>
<p>Now you are ready to take your shiny new login stuff for a test drive and log into your remote account via:</p>
<pre># ssh -i MySSHKeys.pem user@REMOTE</pre>
<p>And to put the cherry on top you can tell ssh to always use that key with the host in question by adding the following block to your client&#8217;s ~/.ssh/config file:</p>
<pre>Host REMOTE
   IdentityFile ~/MySSHKeys.pem</pre>
<p>This makes login even easier:</p>
<pre># ssh user@REMOTE</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trueg.wordpress.com/867/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trueg.wordpress.com/867/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&#038;blog=6648236&#038;post=867&#038;subd=trueg&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trueg.wordpress.com/2012/09/06/use-an-x-509-certificate-for-ssh-login/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e3242746dbb0eb09c34c039b6ef15e86?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">trueg</media:title>
		</media:content>
	</item>
		<item>
		<title>Virtuoso 6.1.6 and KDE 4.9</title>
		<link>http://trueg.wordpress.com/2012/08/02/virtuoso-6-1-6-and-kde-4-9/</link>
		<comments>http://trueg.wordpress.com/2012/08/02/virtuoso-6-1-6-and-kde-4-9/#comments</comments>
		<pubDate>Thu, 02 Aug 2012 15:19:57 +0000</pubDate>
		<dc:creator>Sebastian Trüg</dc:creator>
				<category><![CDATA[Nepomuk]]></category>
		<category><![CDATA[VOS]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Semantic desktop]]></category>
		<category><![CDATA[Virtuoso]]></category>

		<guid isPermaLink="false">http://trueg.wordpress.com/?p=865</guid>
		<description><![CDATA[Shortly after KDE 4.9 hits the net Virtuoso 6.1.6 follows. Virtuoso 6.1.6 comes with a ton of fixes, improvements and optimizations and it is highly recommended to update for the best Nepomuk experience. Virtuoso 6.1.6 has been tested by the &#8230; <a href="http://trueg.wordpress.com/2012/08/02/virtuoso-6-1-6-and-kde-4-9/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&#038;blog=6648236&#038;post=865&#038;subd=trueg&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Shortly after <a href="http://www.kde.org/announcements/4.9">KDE 4.9</a> hits the net <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VOSNews#2012-08-02:%20Announcing%20Virtuoso%20Open-Source%20Edition%20v6.1.6">Virtuoso 6.1.6</a> follows. Virtuoso 6.1.6 comes with a ton of fixes, improvements and optimizations and it is highly recommended to update for the best Nepomuk experience.</p>
<p>Virtuoso 6.1.6 has been tested by the Nepomuk team in cooperation with OpenLink Software before its release. It is <em>the</em> recommended release for Nepomuk. This is not only true for KDE 4.9 but for any version before it.</p>
<p><a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VOSDownload">Get the sources</a> while they are hot and build your packages.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trueg.wordpress.com/865/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trueg.wordpress.com/865/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&#038;blog=6648236&#038;post=865&#038;subd=trueg&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trueg.wordpress.com/2012/08/02/virtuoso-6-1-6-and-kde-4-9/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e3242746dbb0eb09c34c039b6ef15e86?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">trueg</media:title>
		</media:content>
	</item>
		<item>
		<title>Debugging Nepomuk/Virtuoso’s CPU usage</title>
		<link>http://trueg.wordpress.com/2012/07/04/debugging-nepomukvirtuosos-cpu-usage/</link>
		<comments>http://trueg.wordpress.com/2012/07/04/debugging-nepomukvirtuosos-cpu-usage/#comments</comments>
		<pubDate>Wed, 04 Jul 2012 08:48:07 +0000</pubDate>
		<dc:creator>Sebastian Trüg</dc:creator>
				<category><![CDATA[Nepomuk]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Semantic desktop]]></category>
		<category><![CDATA[Soprano]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[Virtuoso]]></category>

		<guid isPermaLink="false">http://trueg.wordpress.com/?p=863</guid>
		<description><![CDATA[Rabauke wrote a very good blog post about debugging Nepomuk and Virtuoso query performance on OpenSuse. Also David Faure posted a Virtuoso patch on the Nepomuk mailing list which makes the Virtuoso status() command output the full queries instead of &#8230; <a href="http://trueg.wordpress.com/2012/07/04/debugging-nepomukvirtuosos-cpu-usage/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&#038;blog=6648236&#038;post=863&#038;subd=trueg&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="https://kdeatopensuse.wordpress.com/">Rabauke</a> wrote a very good <a href="https://kdeatopensuse.wordpress.com/2011/11/09/debugging-nepomukvirtuosos-cpu-usage/">blog post about debugging Nepomuk and Virtuoso</a> query performance on OpenSuse.</p>
<p>Also <a href="http://mail.kde.org/pipermail/nepomuk/2012-July/002669.html">David Faure posted a Virtuoso patch</a> on the <a href="https://mail.kde.org/mailman/listinfo/nepomuk">Nepomuk mailing list</a> which makes the Virtuoso <a href="http://docs.openlinksw.com/virtuoso/fn_status.html">status</a>() command output the full queries instead of the truncated ones. I will try to get the latter into Virtuoso upstream, maybe with an additional parameter to the function.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trueg.wordpress.com/863/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trueg.wordpress.com/863/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&#038;blog=6648236&#038;post=863&#038;subd=trueg&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trueg.wordpress.com/2012/07/04/debugging-nepomukvirtuosos-cpu-usage/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e3242746dbb0eb09c34c039b6ef15e86?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">trueg</media:title>
		</media:content>
	</item>
		<item>
		<title>Nepomuk Tasks: KActivityManager Crash</title>
		<link>http://trueg.wordpress.com/2012/04/30/nepomuk-tasks-kactivitymanager-crash/</link>
		<comments>http://trueg.wordpress.com/2012/04/30/nepomuk-tasks-kactivitymanager-crash/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 16:31:15 +0000</pubDate>
		<dc:creator>Sebastian Trüg</dc:creator>
				<category><![CDATA[Nepomuk]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[fundraiser]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Semantic desktop]]></category>
		<category><![CDATA[Soprano]]></category>

		<guid isPermaLink="false">http://trueg.wordpress.com/?p=851</guid>
		<description><![CDATA[After a little silence during which I was occupied with Eastern and OpenLink related work I bring you news about the second Nepomuk task: the KActivityManager crash. Ivan Cukic already &#8220;fixed&#8221; the bug by simply not using Nepomuk but an &#8230; <a href="http://trueg.wordpress.com/2012/04/30/nepomuk-tasks-kactivitymanager-crash/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&#038;blog=6648236&#038;post=851&#038;subd=trueg&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>After a little silence during which I was occupied with Eastern and OpenLink related work I bring you news about the second <a title="Nepomuk Task Sponsoring" href="http://trueg.wordpress.com/nepomuk-task-sponsoring/">Nepomuk task</a>: the KActivityManager crash.</p>
<p><a href="http://ivan.fomentgroup.org/blog/">Ivan Cukic</a> already &#8220;fixed&#8221; the bug by simply not using Nepomuk but an SQLite backend (at least that is how I understood it, correct me if I am wrong). However, I wanted to fix the root of the original problem.</p>
<p><a href="http://soprano.sf.net">Soprano</a> provides the communication channel between Nepomuk and its clients. It is based on a very simple custom protocol going through a local socket. So far <a href="http://qt-project.org/doc/qt-4.8/qlocalsocket.html">QLocalSocket</a>, ie. Qt&#8217;s implementation was used. The problem with <a href="http://qt-project.org/doc/qt-4.8/qlocalsocket.html">QLocalSocket</a> is that it is a <a href="http://qt-project.org/doc/qt-4.8/qobject.html">QObject</a>. Thus, it cannot live in two threads at the same time. The hacky solution was to maintain one socket per thread. Sadly that resulted in complicated maintenance code which was impossible to get right. Hence crashes like <a href="https://bugs.kde.org/show_bug.cgi?id=269573">#269573</a> or <a href="https://bugs.kde.org/show_bug.cgi?id=283451">#283451</a> (basically <a href="https://bugs.kde.org/buglist.cgi?order=Importance&amp;query_format=advanced&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;longdesc=ClientConnection&amp;longdesc_type=allwordssubstr&amp;product=nepomuk">any crash involving The <em>Soprano::ClientConnection</em></a>) were never fixed.</p>
<p>A few days ago I finally gave up and decided to get rid of QLocalSocket and replace it with my own implementation. The only problem is that in order to keep Windows compatibility I had to keep the old implementation around by adding quite a lot of <em>#ifdefs</em>.</p>
<p>And now I could use some testers for a Soprano client library that does only create a single connection to the server instead of one per thread. I already <a href="http://commits.kde.org/soprano/437abbe0995a671c8b3ce6cd958f49ffad35a188">pushed the new code</a> into Soprano&#8217;s git master. So all you need to do is run KDE on top of that.</p>
<p>Oh, and while at it I finally fixed the problem with re-connecting of clients. So now a restart of Nepomuk will no longer leave the clients with dangling connections, unable to perform queries. That fix, however, is in kdelibs.</p>
<p>Well, the day was long, I am tired, and this blog post feels a little boring. So before in addition to that it gets too long I will stop.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trueg.wordpress.com/851/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trueg.wordpress.com/851/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&#038;blog=6648236&#038;post=851&#038;subd=trueg&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trueg.wordpress.com/2012/04/30/nepomuk-tasks-kactivitymanager-crash/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e3242746dbb0eb09c34c039b6ef15e86?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">trueg</media:title>
		</media:content>
	</item>
		<item>
		<title>Nepomuk Tasks: Let The Virtuoso Inferencing Begin</title>
		<link>http://trueg.wordpress.com/2012/04/03/nepomuk-tasks-let-the-virtuoso-inferencing-begin/</link>
		<comments>http://trueg.wordpress.com/2012/04/03/nepomuk-tasks-let-the-virtuoso-inferencing-begin/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 07:43:56 +0000</pubDate>
		<dc:creator>Sebastian Trüg</dc:creator>
				<category><![CDATA[Nepomuk]]></category>
		<category><![CDATA[fundraiser]]></category>
		<category><![CDATA[inference]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Semantic desktop]]></category>
		<category><![CDATA[Soprano]]></category>
		<category><![CDATA[SPARQL]]></category>
		<category><![CDATA[Virtuoso]]></category>

		<guid isPermaLink="false">http://trueg.wordpress.com/?p=841</guid>
		<description><![CDATA[Only four days ago I started the experiment to fund specific Nepomuk tasks through donations. Like with last year&#8217;s fundraiser I was uncertain if it was a good idea. That, however, changed when only a few hours later two tasks &#8230; <a href="http://trueg.wordpress.com/2012/04/03/nepomuk-tasks-let-the-virtuoso-inferencing-begin/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&#038;blog=6648236&#038;post=841&#038;subd=trueg&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Only four days ago I <a title="Nepomuk Tasks – Sponsor a Bug or Feature" href="http://trueg.wordpress.com/2012/03/30/nepomuk-tasks-sponsor-a-bug-or-feature/">started the experiment</a> to fund specific <a title="Nepomuk Task Sponsoring" href="http://trueg.wordpress.com/nepomuk-task-sponsoring/">Nepomuk tasks</a> through donations. Like with last year&#8217;s fundraiser I was uncertain if it was a good idea. That, however, changed when only a few hours later two tasks had already reached their donation goal. Again it became obvious that the work done here is appreciated and that the &#8220;open&#8221; in Open-Source is understood for what it actually is.</p>
<p>So despite my wife not being overly happy about it I used the weekend to work on one of the tasks: Virtuoso inferencing.</p>
<h2>Inference?</h2>
<p>As a quick reminder: the inferencer automatically infers information from the data in the database. While <a href="http://docs.openlinksw.com/virtuoso/rdfsparqlrule.html">Virtuoso can handle pretty much any inference rule</a> you throw at it we stick to the basics for now: if resource <em>R1</em> is of type <em>B</em> and <em>B</em> derives from <em>A</em> then <em>R1</em> is also of type <em>A</em>. And: if <em>R1</em> has property <em>P1</em> with value &#8220;<em>foobar</em>&#8221; and <em>P1</em> is derived from <em>P2</em> then <em>R1</em> also has property <em>P2</em> with value &#8220;<em>foobar</em>&#8220;.</p>
<h2>Crappy Inference</h2>
<p>This is already very useful and even mandatory in many cases. Until now we used what we called &#8220;crappy inferencing 1 &amp; 2&#8243;. The Crappy inferencer 1 was based on work done in the original Nepomuk project and it simply inserted triples for all sub-class and sub-property relations. That way we could simulate real inference by querying for something like</p>
<pre>select * where {
  ?r ?p "foobar" . 
  ?p rdfs:subPropertyOf rdfs:label .
}</pre>
<p>and catch all sub-properties of rdfs:label like nao:prefLabel or nie:title. While this works it means bad performance, additional storage and additional maintenance.</p>
<p>The Crappy Inferencer 2 was even worse. It inserted rdf:type triples for all super-classes. This means that it would look at every added and removed triple to check if it was a rdf:type triple. If so it would add or remove the appropriate rdf:type triples for the super-types. That way we could do fast type queries without relying on the crappy inferencer 1 which relies on the rdfs:subClassOf method. But this meant even more maintenance and even more storage space wasted.</p>
<h2>Introducing: Virtuoso Inference</h2>
<p>So now we simply rely on Virtuoso to do all that and it does such a wonderful job. Thanks to <a href="http://docs.openlinksw.com/virtuoso/rdfgraphsecurity.html">Virtuoso graph groups</a> we can keep our clean ontology separation (each ontology has its own graph) and still stick to a very simple extension of the queries:</p>
<pre>DEFINE input:inference &lt;nepomuk:/ontographgroup&gt;
select * where {
  ?r rdfs:label "foobar" .
}</pre>
<p>Brilliant. Of course there are still situations in which you do not want to use the inferencer. Imagine for example the listing of resource properties in the UI. This is what it would look like with inference:<a href="https://trueg.files.wordpress.com/2012/04/dolphin-metadata-with-inference.png"><img class="aligncenter size-medium wp-image-844" title="dolphin-metadata-with-inference" src="https://trueg.files.wordpress.com/2012/04/dolphin-metadata-with-inference.png?w=101&#038;h=300" alt="" width="101" height="300" /></a></p>
<p>We do not want that. Inference is intended for machine, not for the human, at least not like this. So since back in the day I did not think of adding query flags to Soprano I simply introduced a new virtual query language: <a href="http://soprano.sourceforge.net/apidox/trunk/namespaceSoprano_1_1Query.html#ab568869993a9d6c452c8e5a34d5ac26ca8cf0e7dab9f679199c3419de5276f7a1">SparqlNoInference</a>.</p>
<h2>Resource Visibility</h2>
<p>While at it I also improved the resource visibility support by simplifying it. We do not need any additional processing anymore. This again means less work on startup and with every triple manipulation command. Again we save space and increase performance. But this also means that resource visibility filtering will not work as before anymore. <a href="http://kde-apps.org/content/show.php/Nepoogle?content=145505">Nepoogle</a> for example will need adjustment to the new way of filtering. Instead of</p>
<pre>?r nao:userVisible 1 .</pre>
<p>we now need</p>
<pre>FILTER EXISTS { ?r a [ nao:userVisible "true"^^xsd:boolean ] }</pre>
<h2>Testing</h2>
<p>The implementation is done. All that rests are the tests. I am already running all the patches but I still need to adjust some unit tests and maybe write new ones.</p>
<p>You can also test it. The code changes are, as always, spread over Soprano, kdelibs and kde-runtime. Both kdelibs and kde-runtime now contain a branch &#8220;nepomuk/virtuosoInference&#8221;. For Soprano you need git master.</p>
<p>Look for regressions of any kind so we can merge this as soon as possible. The goal is KDE 4.9.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trueg.wordpress.com/841/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trueg.wordpress.com/841/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&#038;blog=6648236&#038;post=841&#038;subd=trueg&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trueg.wordpress.com/2012/04/03/nepomuk-tasks-let-the-virtuoso-inferencing-begin/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e3242746dbb0eb09c34c039b6ef15e86?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">trueg</media:title>
		</media:content>

		<media:content url="https://trueg.files.wordpress.com/2012/04/dolphin-metadata-with-inference.png?w=101" medium="image">
			<media:title type="html">dolphin-metadata-with-inference</media:title>
		</media:content>
	</item>
		<item>
		<title>Akonadi, Nepomuk, and A Lot Of CPU</title>
		<link>http://trueg.wordpress.com/2012/04/02/akonadi-nepomuk-and-a-lot-of-cpu/</link>
		<comments>http://trueg.wordpress.com/2012/04/02/akonadi-nepomuk-and-a-lot-of-cpu/#comments</comments>
		<pubDate>Mon, 02 Apr 2012 08:56:52 +0000</pubDate>
		<dc:creator>Sebastian Trüg</dc:creator>
				<category><![CDATA[Nepomuk]]></category>
		<category><![CDATA[Akonadi]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[kolab]]></category>
		<category><![CDATA[Semantic desktop]]></category>
		<category><![CDATA[SPARQL]]></category>

		<guid isPermaLink="false">http://trueg.wordpress.com/?p=814</guid>
		<description><![CDATA[One Bug has been driving people crazy. This is more than understandable seeing that the bug was an endless high CPU usage by Virtuoso, the database used in Nepomuk. Kolab Systems, the Free Software groupware company behind Kolab, a driving force &#8230; <a href="http://trueg.wordpress.com/2012/04/02/akonadi-nepomuk-and-a-lot-of-cpu/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&#038;blog=6648236&#038;post=814&#038;subd=trueg&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>One Bug has been driving people crazy. This is more than understandable seeing that the bug was an endless <a href="https://bugs.kde.org/show_bug.cgi?id=289932">high CPU usage by Virtuoso</a>, the database used in Nepomuk. <a href="http://kolabsys.com">Kolab Systems</a>, the Free Software groupware company behind <a href="http://kolab.org">Kolab</a>, a driving force behind Akonadi, sponsored me to look into that issue.</p>
<p>Finding the issue turned out to be a bit harder than I thought, coming up with a fix even more so. In the process I ended up improving the Akonadi Nepomuk Email indexer/feeder in several places. This, however useful and worthwhile, turned out to be unrelated to the high CPU usage. Virtuoso was not to blame either. In the end the real issue was solved by <a title="Nepomuk Gives Back Your CPU Cycles…" href="http://trueg.wordpress.com/2012/03/07/nepomuk-gives-back-your-cpu-cycles/">a little SPARQL query optimization</a>.</p>
<p>Application developers against Akonadi and Nepomuk might want to keep that in mind: The way you build your queries will have dramatic impact on the performance of the whole system. So this is also where opimizations are likely to have a lot of impact in case people want to help improve things further. Discussing query design with the Nepomuk team or on the <a href="https://lists.sourceforge.net/lists/listinfo/virtuoso-users">Virtuoso mailing list</a> can go a long way here.</p>
<p>So thanks to the support from Kolab Systems, Virtuoso is no longer chewing so much CPU, and Akonadi Email indexing will work a lot smoother with KDE 4.8.2.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trueg.wordpress.com/814/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trueg.wordpress.com/814/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&#038;blog=6648236&#038;post=814&#038;subd=trueg&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trueg.wordpress.com/2012/04/02/akonadi-nepomuk-and-a-lot-of-cpu/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e3242746dbb0eb09c34c039b6ef15e86?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">trueg</media:title>
		</media:content>
	</item>
		<item>
		<title>Nepomuk Tasks &#8211; Sponsor a Bug or Feature</title>
		<link>http://trueg.wordpress.com/2012/03/30/nepomuk-tasks-sponsor-a-bug-or-feature/</link>
		<comments>http://trueg.wordpress.com/2012/03/30/nepomuk-tasks-sponsor-a-bug-or-feature/#comments</comments>
		<pubDate>Fri, 30 Mar 2012 09:15:54 +0000</pubDate>
		<dc:creator>Sebastian Trüg</dc:creator>
				<category><![CDATA[Nepomuk]]></category>
		<category><![CDATA[fundraiser]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Semantic desktop]]></category>

		<guid isPermaLink="false">http://trueg.wordpress.com/?p=830</guid>
		<description><![CDATA[Thanks to a very successful fundraiser in 2011 I was able to continue working on Nepomuk and searching for new enterprise sponsoring. Sadly that search was not fruitful and in 2012 Nepomuk has become a hobby. Several people proposed to start &#8230; <a href="http://trueg.wordpress.com/2012/03/30/nepomuk-tasks-sponsor-a-bug-or-feature/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&#038;blog=6648236&#038;post=830&#038;subd=trueg&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Thanks to a very <a title="Nepomuk Fundraiser – Badamm (Or Some Other Really Clever and Funny Title I Cannot Think of at the Moment)" href="http://trueg.wordpress.com/2011/12/02/nepomuk-fundraiser-badamm-or-some-other-really-clever-and-funny-title-i-cannot-think-of-at-the-moment/">successful fundraiser in 2011</a> I was able to continue working on Nepomuk and searching for new enterprise sponsoring. Sadly that search was not fruitful and in 2012 Nepomuk has become a hobby. Several people proposed to start another fundraiser or try to raise money on a monthly basis. I, however, will try to get sponsoring for specific bugs or features. Depending on their size the sponsoring goal will differ. This would allow me to keep working on Nepomuk as more than a hobby.</p>
<p><a title="Nepomuk Task Sponsoring" href="http://trueg.wordpress.com/nepomuk-task-sponsoring/">The Nepomuk Tasks page</a> lists the current tasks that can be sponsored. Of course you can propose new tasks but I will try to keep the list of current tasks small. Donate to the tasks you would like to see finished, ignore the ones you do not deem important. I will simply remove tasks if there is no activity within a certain period of time. So please have a look at</p>
<p style="text-align:center;"><a title="Nepomuk Task Sponsoring" href="http://trueg.wordpress.com/nepomuk-task-sponsoring/"><img title="Nepomuk" src="http://trueg.files.wordpress.com/2011/09/nepomuk.png?w=64&#038;h=64" alt="" width="64" height="64" /><br />
The Nepomuk Tasks Page</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trueg.wordpress.com/830/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trueg.wordpress.com/830/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&#038;blog=6648236&#038;post=830&#038;subd=trueg&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trueg.wordpress.com/2012/03/30/nepomuk-tasks-sponsor-a-bug-or-feature/feed/</wfw:commentRss>
		<slash:comments>59</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e3242746dbb0eb09c34c039b6ef15e86?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">trueg</media:title>
		</media:content>

		<media:content url="http://trueg.files.wordpress.com/2011/09/nepomuk.png" medium="image">
			<media:title type="html">Nepomuk</media:title>
		</media:content>
	</item>
	</channel>
</rss>
