<?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>philipp's weblog &#187; other stuff</title>
	<atom:link href="http://philipp.wagner.name/blog/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://philipp.wagner.name/blog</link>
	<description>whatever comes to a developer's mind</description>
	<lastBuildDate>Wed, 25 Aug 2010 18:43:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Majordomo Web API</title>
		<link>http://philipp.wagner.name/blog/2010/07/majordomo-web-api/</link>
		<comments>http://philipp.wagner.name/blog/2010/07/majordomo-web-api/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 16:26:39 +0000</pubDate>
		<dc:creator>Philipp</dc:creator>
				<category><![CDATA[other stuff]]></category>

		<guid isPermaLink="false">http://philipp.wagner.name/blog/?p=90</guid>
		<description><![CDATA[Did you ever want to sync your Majordomo mailing list with another address database? Or make it easy for users to unsubscribe using a web interface? Then you will have noticed that Majordomo only offers you a mail interface or an admin tool that you have install on your mailserver. So what if you don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Did you ever want to sync your Majordomo mailing list with another address database? Or make it easy for users to unsubscribe using a web interface? Then you will have noticed that Majordomo only offers you a mail interface or an admin tool that you have install on your mailserver. So what if you don&#8217;t have access to the mailserver?</p>
<p>Then I got the solution for you: introducing Majordomo Web API</p>
<p>I needed to sync an address database in eGroupware with different Majordomo mailing lists (every night). I did this by building a small API that looks like a normal asynchronous API &#8211; just with the difference that in be background a mail request to Majordomo is sent and the results are retrieved from an IMAP or POP3 account.</p>
<p><a href="http://philipp.wagner.name/hg/majordomo-web/">Get the code</a><a href="http://philipp.wagner.name/hg/majordomo-web/"></a>, or look at <a href="http://philipp.wagner.name/hg/majordomo-web/file/5e5168295125/egroupware_update_mailinglists.php">egroupware_update_mailinglists.php</a> script for an example. It should be easy to build a modern AJAX web interface on top of the JSON-based RPC interface.</p>
<p>As it always is, our mailing list provider switched from Majordomo to Mailman only a couple weeks after I finished the scripts. So the work didn&#8217;t really pay off, but I hope it&#8217;s useful to somebody out there.</p>
]]></content:encoded>
			<wfw:commentRss>http://philipp.wagner.name/blog/2010/07/majordomo-web-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Note to myself: NFS4 is not yet ready</title>
		<link>http://philipp.wagner.name/blog/2010/03/note-to-myself-nfs4-is-not-yet-ready/</link>
		<comments>http://philipp.wagner.name/blog/2010/03/note-to-myself-nfs4-is-not-yet-ready/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 21:16:13 +0000</pubDate>
		<dc:creator>Philipp</dc:creator>
				<category><![CDATA[other stuff]]></category>

		<guid isPermaLink="false">http://philipp.wagner.name/blog/?p=85</guid>
		<description><![CDATA[I have several PCs mounting its home directory as well as other data directories from a NFS server. Until now I was using good (?) old NFSv3. Today I tried a switch to NFSv4 in order to decrease locking the problems Firefox has with its sqlite databases being on a NFS filesystem. Quick notes: if [...]]]></description>
			<content:encoded><![CDATA[<p>I have several PCs mounting its home directory as well as other data directories from a NFS server. Until now I was using good (?) old NFSv3. Today I tried a switch to NFSv4 in order to decrease locking the problems Firefox has with its sqlite databases being on a NFS filesystem. Quick notes:</p>
<ul>
<li>if you use (and need) ACLs (the default POSIX ACLs), do not switch to NFSv4. It probably will take ten more years to be fully working (the speed of NFS development seems to be close to GNU Hurd).</li>
<li>if you modify the &#8220;Domain&#8221; entry in /etc/idmapd.conf, modify it on all clients and the server, otherwise all users and groups will be mapped to &#8220;nobody&#8221;.</li>
<li>I don&#8217;t know yet if the Firefox locking problems are gone (I hope so &#8230;)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://philipp.wagner.name/blog/2010/03/note-to-myself-nfs4-is-not-yet-ready/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XForms for Firefox 3.6</title>
		<link>http://philipp.wagner.name/blog/2010/01/xforms-for-firefox-3-6/</link>
		<comments>http://philipp.wagner.name/blog/2010/01/xforms-for-firefox-3-6/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 09:55:43 +0000</pubDate>
		<dc:creator>Philipp</dc:creator>
				<category><![CDATA[other stuff]]></category>

		<guid isPermaLink="false">http://philipp.wagner.name/blog/?p=79</guid>
		<description><![CDATA[Firefox 3.6 will be released today, Januar 21st. Unfortunately the XForms extension for this version is not yet ready. We&#8217;re planning an official release for Firefox 3.6 within this quarter, see bug 539184 for details. The nightly builds for 3.6 are currently broken as well, I hope to get this fixed until the end of [...]]]></description>
			<content:encoded><![CDATA[<p>Firefox 3.6 will be released today, Januar 21st. Unfortunately the XForms extension for this version is not yet ready. We&#8217;re planning an official release for Firefox 3.6 within this quarter, see <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=539184">bug 539184</a> for details. The nightly builds for 3.6 are currently broken as well, I hope to get this fixed until the end of the week.</p>
<p>As a side note, there will be no official release for XForms for Firefox 3.5. The XPI package available at my builds page has been tested by many people and works well, but no further development efforts will go into that version.</p>
]]></content:encoded>
			<wfw:commentRss>http://philipp.wagner.name/blog/2010/01/xforms-for-firefox-3-6/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>MDC go, go, go!</title>
		<link>http://philipp.wagner.name/blog/2009/12/mdc-go-go-go/</link>
		<comments>http://philipp.wagner.name/blog/2009/12/mdc-go-go-go/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 09:51:10 +0000</pubDate>
		<dc:creator>Philipp</dc:creator>
				<category><![CDATA[other stuff]]></category>

		<guid isPermaLink="false">http://philipp.wagner.name/blog/?p=68</guid>
		<description><![CDATA[Yeah, documentation in an unstable wiki is great. I wonder if MDC uses HTTPS only to make it even slower &#8230;]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-full wp-image-69 aligncenter" title="MDC unavailable" src="http://philipp.wagner.name/blog/wp-content/uploads/2009/12/mdc-unavailable.jpg" alt="MDC unavailable" width="540" height="144" /></p>
<p>Yeah, documentation in an unstable wiki is great. I wonder if MDC uses HTTPS only to make it even slower &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://philipp.wagner.name/blog/2009/12/mdc-go-go-go/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Speiseplan Studentenwerk München als RSS</title>
		<link>http://philipp.wagner.name/blog/2009/10/speiseplan-studentenwerk-munchen-als-rss/</link>
		<comments>http://philipp.wagner.name/blog/2009/10/speiseplan-studentenwerk-munchen-als-rss/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 22:05:27 +0000</pubDate>
		<dc:creator>Philipp</dc:creator>
				<category><![CDATA[other stuff]]></category>

		<guid isPermaLink="false">http://philipp.wagner.name/blog/?p=65</guid>
		<description><![CDATA[Damit alle, die kein KDE4 benutzen (oder sich noch nicht von Ubuntu trennen können), dennoch in Genuss des Mensa-Speiseplans bekommen, habe ich die RSS-Feeds aktualisiert (die gab es schon länger, aber eher so als Service unter Freunden): http://philipp.wagner.name/cafeteriamenu/ Der Quellcode ist ebenfalls im Mercurial Repository verfügbar (nein, Code zum Parsen von HTML-Seiten ist nicht schön). [...]]]></description>
			<content:encoded><![CDATA[<p>Damit alle, die kein KDE4 benutzen (oder sich noch nicht von Ubuntu trennen können), dennoch in Genuss des Mensa-Speiseplans bekommen, habe ich die RSS-Feeds aktualisiert (die gab es schon länger, aber eher so als Service unter Freunden):</p>
<p><a href="http://philipp.wagner.name/cafeteriamenu/">http://philipp.wagner.name/cafeteriamenu/</a></p>
<p>Der Quellcode ist ebenfalls im <a href="http://philipp.wagner.name/hg/cafeteria">Mercurial Repository</a> verfügbar (nein, Code zum Parsen von HTML-Seiten ist nicht schön).</p>
<p>Have a lot of fun&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://philipp.wagner.name/blog/2009/10/speiseplan-studentenwerk-munchen-als-rss/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New version of the Cafeteria plasmoid</title>
		<link>http://philipp.wagner.name/blog/2009/10/new-version-of-the-cafeteria-plasmoid/</link>
		<comments>http://philipp.wagner.name/blog/2009/10/new-version-of-the-cafeteria-plasmoid/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 17:09:47 +0000</pubDate>
		<dc:creator>Philipp</dc:creator>
				<category><![CDATA[other stuff]]></category>

		<guid isPermaLink="false">http://philipp.wagner.name/blog/?p=58</guid>
		<description><![CDATA[The semester starts again and I took the chance to get back to the cafeteria plasmoid and fix some old issues. Changes include: Fix the cmake build files to work with newer KDE versions. Add caching and network status detection to the data engine. The menu for the next week is cached if you are [...]]]></description>
			<content:encoded><![CDATA[<p>The semester starts again and I took the chance to get back to the cafeteria plasmoid and fix some old issues. Changes include:</p>
<ul>
<li>Fix the cmake build files to work with newer KDE versions.</li>
<li>Add caching and network status detection to the data engine. The menu for the next week is cached if you are online and available without network connection. The cached data is only used if no network connection is available and refreshed as soon as you&#8217;re online again.</li>
</ul>
<p>Download the source packages:<a href="http://philipp.wagner.name/sw/cafeteria_engine-0.2.tar.bz2"><br />
cafeteria_engine-0.2.tar.bz2</a><br />
<a href="http://philipp.wagner.name/sw/cafeteria_plasmoid-0.2.tar.bz2">cafeteria_plasmoid-0.2.tar.bz2</a></p>
<p>Build instructions are included in the README files.</p>
<p>I&#8217;ve added the code to my <a href="http://philipp.wagner.name/hg/cafeteria">Mercurial repository</a> as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://philipp.wagner.name/blog/2009/10/new-version-of-the-cafeteria-plasmoid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Copy files with dd and netcat</title>
		<link>http://philipp.wagner.name/blog/2009/10/copy-files-with-dd-and-netcat/</link>
		<comments>http://philipp.wagner.name/blog/2009/10/copy-files-with-dd-and-netcat/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 07:59:08 +0000</pubDate>
		<dc:creator>Philipp</dc:creator>
				<category><![CDATA[other stuff]]></category>

		<guid isPermaLink="false">http://philipp.wagner.name/blog/?p=54</guid>
		<description><![CDATA[Today I had to copy several LVM partitions to another machine. The first tools I thought of were dd and netcat (nc), the swiss army knife for every sysadmin. But the following two lines didn&#8217;t make me happy: source$ ssh root@192.168.66.2 -- nc -l 3333 \&#124; dd of=/dev/VolGroupData/data1 &#38; source$ dd if=/dev/VolGroupData/data1 &#124; nc 192.168.66.2 [...]]]></description>
			<content:encoded><![CDATA[<p>Today I had to copy several LVM partitions to another machine. The first tools I thought of were dd and netcat (nc), the swiss army knife for every sysadmin. But the following two lines didn&#8217;t make me happy:</p>
<pre>source$ ssh root@192.168.66.2 -- nc -l 3333 \| dd of=/dev/VolGroupData/data1 &amp;
source$ dd if=/dev/VolGroupData/data1 | nc 192.168.66.2 3333</pre>
<p>dstat on the target host shows:</p>
<pre>----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw
[... removed first few lines until memory caches are full ...]
 0   1  88  10   0   0|  15M   15M|  16M  493k|   0     0 |  15k 9177
 0   1  88  10   0   0|  16M   17M|  17M  538k|   0     0 |  16k 9597
 0   1  89  10   0   0|  16M   16M|  17M  547k|   0     0 |  16k 9767
 0   1  88  10   0   0|  16M   15M|  17M  541k|   0     0 |  16k 9413</pre>
<p>Only 17 MB/s over Gigabit ethernet? And where are the disk reads coming from? Well, after some more experimenting, the answer was not that hard: block size. dd uses a default block size of 512 Bytes, increasing it to 4 KB shows an entirely different picture:</p>
<pre>source$ ssh root@192.168.66.2 -- nc -l 3333 \| dd <strong>obs=4K</strong> of=/dev/VolGroupData/data1 &amp;
source$ dd <strong>ibs=4K</strong> if=/dev/VolGroupData/data1 | nc 192.168.66.2 3333</pre>
<pre>----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw
[... removed first few lines until memory caches are full ...]
1   6  92   0   0   0|   0    74M|  77M 1821k|   0     0 |  57k   85k
1   7  92   0   0   0|1638B   73M|  77M 1819k|   0     0 |  59k   88k
1   8  91   0   0   0|   0    70M|  74M 1724k|   0     0 |  49k   72k
1   7  92   0   0   0|   0    70M|  74M 1737k|   0     0 |  56k   82k
1   6  92   0   0   0|   0    73M|  76M 1795k|   0     0 |  57k   86k
1   6  93   0   0   0|   0    72M|  75M 1779k|   0     0 |  56k   85k</pre>
<p>Now, how about that? Average was in the end around 65 MB/s, which is much closer to what I expected.</p>
]]></content:encoded>
			<wfw:commentRss>http://philipp.wagner.name/blog/2009/10/copy-files-with-dd-and-netcat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing libspeechmike</title>
		<link>http://philipp.wagner.name/blog/2009/06/introducing-libspeechmike/</link>
		<comments>http://philipp.wagner.name/blog/2009/06/introducing-libspeechmike/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 17:27:39 +0000</pubDate>
		<dc:creator>Philipp</dc:creator>
				<category><![CDATA[other stuff]]></category>

		<guid isPermaLink="false">http://philipp.wagner.name/blog/?p=40</guid>
		<description><![CDATA[I recently got a Philips Speechmike device. It seems Philips has a Linux SDK for it, but I was unable to obtain it. I thought it wouldn&#8217;t be impossible to write a Linux driver for those couple buttons, so I gave it a try. First the good things: The speaker and microphone work perfectly out-of-the-box [...]]]></description>
			<content:encoded><![CDATA[<p>I recently got a <a href="http://www.dictation.philips.com/index.php?id=57">Philips Speechmike</a> device. It seems Philips has a Linux SDK for it, but I was unable to obtain it. I thought it wouldn&#8217;t be impossible to write a Linux driver for those couple buttons, so I gave it a try.</p>
<p>First the good things:</p>
<ul>
<li>The speaker and microphone work perfectly out-of-the-box with zero configuration using the snd_usb_audio Linux kernel module.</li>
<li>The same thing is true for the trackball and scrollwheel as well as the mouse buttons. They are recognized as regular USB mouse and instantly usable.</li>
</ul>
<p>Not working out-of-the-box are the buttons on top and the status LEDs.</p>
<p>Now there are a couple different layers where you could start writing a driver for these buttons:</p>
<ol>
<li>the kernel. Make it work like a keyboard device.</li>
<li>X11.  Make it work like a keyboard device, too.</li>
<li>create a library that an application could like if it wants to provide support for the SpeechMike.</li>
</ol>
<p>After some discussion on the linux-usb mailing list it became clear that the SpeechMike is not a usual USB HID device that could be easily supported by the existing code.</p>
<p>I then thought about the idea of the device being a keyboard a bit more: which keyboard events would you assign to the buttons? Use e.g. KEY_PLAY for the &#8220;Play&#8221; button? That would mean pressing the &#8220;Play&#8221; button on the SpeechMike would have the same meaning as pressing the &#8220;Play&#8221; button on your multimedia keyboard. Didn&#8217;t sound like a good idea to me. Use the more general events like F23? Doesn&#8217;t look like a good solution either.</p>
<p>I also found out that you can press an arbitrary number of buttons at the same time, like modifier keys (CTRL, &#8230;) on your normal keyboard. I wasn&#8217;t sure how that would work with a kernel driver or a X11 driver, so I finally decided to write a simple library which I could use in my application.</p>
<p>So here it is: libspeechmike. You can get the source code from my Mercurial (hg) repository at</p>
<p><a href="http://philipp.wagner.name/hg/libspeechmike">http://philipp.wagner.name/hg/libspeechmike</a>.</p>
<p>The source code includes a example program, speechmike_dump, that shows you which keys you pressed and can serve as a reference if you want to build your own application with it. It uses the <a href="http://www.mjmwired.net/kernel/Documentation/usb/hiddev.txt">hiddev</a> interface, which is really easy to use without the need of another library (like libhid or libusb). You only need to make sure you have read permissions for the device file.</p>
<p>The LEDs are currently <em>not</em> working, I guess I&#8217;ll need to do some USB sniffing with the original Philips driver on Windows to get those working.</p>
]]></content:encoded>
			<wfw:commentRss>http://philipp.wagner.name/blog/2009/06/introducing-libspeechmike/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Speeding up Gallery2</title>
		<link>http://philipp.wagner.name/blog/2008/11/speeding-up-gallery2/</link>
		<comments>http://philipp.wagner.name/blog/2008/11/speeding-up-gallery2/#comments</comments>
		<pubDate>Sun, 02 Nov 2008 17:08:39 +0000</pubDate>
		<dc:creator>Philipp</dc:creator>
				<category><![CDATA[other stuff]]></category>

		<guid isPermaLink="false">http://philipp.wagner.name/blog/?p=13</guid>
		<description><![CDATA[I have been using Gallery2 for my private picture collection for quite some time. It&#8217;s a great piece of software that shows how to write PHP code. Unfortunately, all the abstraction layers make it quite slow without additional help. I did three things to speed things up a bit: Use lighttpd (doesn&#8217;t give that much [...]]]></description>
			<content:encoded><![CDATA[<p>I have been using Gallery2 for my private picture collection for quite some time. It&#8217;s a great piece of software that shows how to write PHP code. Unfortunately, all the abstraction layers make it quite slow without additional help. I did three things to speed things up a bit:</p>
<ol>
<li>Use lighttpd (doesn&#8217;t give that much of a performance gain, but at least a bit). This requires PHP to run as FastCGI.</li>
<li>For PHP: use <a href="http://xcache.lighttpd.net/">XCache</a> (makes a huge difference as all the classes don&#8217;t need to be recompiled for each request)</li>
<li>Use lighttpd&#8217;s <a href="http://blog.lighttpd.net/articles/2006/07/02/x-sendfile">X-Sendfile support</a> to make the webserver send the pictures to the client and get the load away from PHP.</li>
</ol>
<p>For point 3 I needed to modify Gallery2, the patch (for Gallery 2.3) is available here:<br />
<a href="http://philipp.wagner.name/sw/g2-sendfile.patch">http://philipp.wagner.name/sw/g2-sendfile.patch</a></p>
<p>To enable sendfile support, add this to your config.php:<br />
<code>$gallery-&gt;setConfig('useSendFile', true);</code></p>
<p>And don&#8217;t forget to enable X-Sendfile support in your webserver&#8217;s configuration!</p>
<p>This patch does not require Lighttpd, I&#8217;ve tested it with Apache and <a href="http://tn123.ath.cx/mod_xsendfile/">mod_xsendfile</a>, too. Please note that Sendfile (as well as XCache) do not work with lighttpd 1.4 as soon as mod_cgi is enabled (they silently stop working, error reporting is not one of the strengths of lighttpd).</p>
<p>Of course I did no benchmarks (*gg*) but things feel much snappier now, and that&#8217;s all that counts.</p>
]]></content:encoded>
			<wfw:commentRss>http://philipp.wagner.name/blog/2008/11/speeding-up-gallery2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>What&#8217;s for lunch?</title>
		<link>http://philipp.wagner.name/blog/2008/10/whats-for-lunch/</link>
		<comments>http://philipp.wagner.name/blog/2008/10/whats-for-lunch/#comments</comments>
		<pubDate>Sun, 19 Oct 2008 16:14:21 +0000</pubDate>
		<dc:creator>Philipp</dc:creator>
				<category><![CDATA[other stuff]]></category>

		<guid isPermaLink="false">http://philipp.wagner.name/blog/?p=6</guid>
		<description><![CDATA[If you&#8217;re working in a company or go to university or college, that&#8217;s probably close to the most important question of the day. Wouldn&#8217;t it be great to have that information right on your desktop? While I was playing around with KDE4, I thought it would be great to have a Plasmoid (like a Dashboard [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re working in a company or go to university or college, that&#8217;s probably close to the most important question of the day. Wouldn&#8217;t it be great to have that information right on your desktop? While I was playing around with KDE4, I thought it would be great to have a Plasmoid (like a Dashboard Widget for all the Mac users out there) displaying today&#8217;s menu.</p>
<p>That was actually half a year ago, but back then I didn&#8217;t find time to look more closely at it. First I thought I&#8217;d be able to write the Plasmoid using ECMA-Script (JavaScript). But it seems that the bindings are still under heavy development (like everything in the Plasma:: namespace) and not really usable yet. So I found a tutorial on how to write a Plasmoid using C++. Doing further reading, I also found out that I&#8217;d need to write a DataEngine to get the data, too.</p>
<p>It took me a while to fight my way throught the documentation *cough* (<a title="[1]" href="http://websvn.kde.org/trunk/KDE/kdeplasma-addons/dataengines/">[1]</a>, <a href="http://api.kde.org/4.x-api/kdebase-workspace-apidocs/libs/plasma/html/index.html">[2]</a>, <a href="http://aseigo.blogspot.com/">[3]</a>) and understand the basic concepts, I think I got it mostly working now :-)</p>
<p>Before I continue with more talking, have a look:</p>
<p style="text-align: center;"><a href="http://philipp.wagner.name/blog/wp-content/uploads/2008/10/plasmoid.jpg" rel="lightbox[6]"><img class="size-medium wp-image-7 aligncenter" title="Cafeteria Plasmoid" src="http://philipp.wagner.name/blog/wp-content/uploads/2008/10/plasmoid.jpg" alt="" width="300" height="189" /></a></p>
<p style="text-align: left;">The data comes from a webservice I operate, which currently gives the menus of all cafeterias of the Studentenwerk München. Drop me a note if you like it and would like to get your cafeteria&#8217;s menu in there, too.</p>
<p style="text-align: left;">So finally, here are the sources:<br />
The data engine: <a href="http://philipp.wagner.name/sw/cafeteria_engine-0.1.tar.bz2">cafeteria_engine-0.1.tar.bz2<br />
</a>The plasmoid: <a href="http://philipp.wagner.name/sw/cafeteria_plasmoid-0.1.tar.bz2">cafeteria_plasmoid-0.1.tar.bz2</a></p>
<p style="text-align: left;">I did development on openSUSE 11.0 using the Factory KDE repository (which currently contains KDE 4.1.2).</p>
<p style="text-align: left;">This is getting long, so I&#8217;ll postpone my rant about missing documentation to the next blog post ;-) I&#8217;d love to get some freeback on this, so feel free to drop me a note.</p>
<p style="text-align: left;"><strong>Update: </strong>I just noticed that sometimes after adding the plasmoid to the desktop for the first time and clicking on &#8220;Configure&#8221;, you&#8217;ll get a segfault with a backtrace like in <a href="http://bugs.kde.org/show_bug.cgi?id=168278">bug #168278</a>. To work around that, add the plasmoid to the desktop, log off and on again and configure it then (and possibly do the same again?). That way it should work. I guess this is a bug in Qt, but that&#8217;s not yet for sure (the QGraphics* stuff is pretty new and known to be buggy).</p>
<p style="text-align: left;"><strong>Update 2:</strong> There is a fix in qt-copy now, which will be part of Qt 4.4.4 and 4.5 (see <a href="http://www.mail-archive.com/plasma-devel@kde.org/msg01872.html">here</a>).</p>
]]></content:encoded>
			<wfw:commentRss>http://philipp.wagner.name/blog/2008/10/whats-for-lunch/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
