<?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</title>
	<atom:link href="http://philipp.wagner.name/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://philipp.wagner.name/blog</link>
	<description>whatever comes to a developer's mind</description>
	<lastBuildDate>Thu, 08 Jul 2010 16:26:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</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>Mozilla XForms 0.8.7 for Firefox 3.6 released</title>
		<link>http://philipp.wagner.name/blog/2010/05/mozilla-xforms-0-8-7-for-firefox-3-6-released/</link>
		<comments>http://philipp.wagner.name/blog/2010/05/mozilla-xforms-0-8-7-for-firefox-3-6-released/#comments</comments>
		<pubDate>Fri, 28 May 2010 23:59:05 +0000</pubDate>
		<dc:creator>Philipp</dc:creator>
				<category><![CDATA[XForms]]></category>

		<guid isPermaLink="false">http://philipp.wagner.name/blog/?p=87</guid>
		<description><![CDATA[After a (too) long time, we&#8217;ve finally got the XForms release 0.8.7 for Firefox 3.6 out the door. Get it from addons.mozilla.org while it&#8217;s fresh! It fixes many bugs, especially visible will be the better-looking select1 dropdown boxes on Linux and Mac. Please consult the release announcement for a complete list of changes. Known bugs: [...]]]></description>
			<content:encoded><![CDATA[<p>After a (too) long time, we&#8217;ve finally got the XForms release 0.8.7 for Firefox 3.6 out the door. Get it from<a href="https://addons.mozilla.org/de/firefox/addon/824"> addons.mozilla.org</a> while it&#8217;s fresh! It fixes many bugs, especially visible will be the better-looking select1 dropdown boxes on Linux and Mac.</p>
<p>Please consult the <a href="http://lists.w3.org/Archives/Public/www-forms/2010May/0023.html">release announcement</a> for a complete list of changes.</p>
<p>Known bugs:<br />
Inline schemas don&#8217;t work. As a workaround, use an external schema. (bug <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=567628">#567628</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://philipp.wagner.name/blog/2010/05/mozilla-xforms-0-8-7-for-firefox-3-6-released/feed/</wfw:commentRss>
		<slash:comments>2</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>Strange bugs and working XForms builds again</title>
		<link>http://philipp.wagner.name/blog/2010/02/strange-bugs-and-working-xforms-builds-again/</link>
		<comments>http://philipp.wagner.name/blog/2010/02/strange-bugs-and-working-xforms-builds-again/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 00:15:48 +0000</pubDate>
		<dc:creator>Philipp</dc:creator>
				<category><![CDATA[XForms]]></category>

		<guid isPermaLink="false">http://philipp.wagner.name/blog/?p=82</guid>
		<description><![CDATA[As a developer you&#8217;re used to deal with strange bugs on a daily basis. The one today was one of that kind. The Python script I use for building the XPIs uploads the finished files using HTTP POST. For building the POST data it uses MultipartPostHandler which I found on the web. But for some [...]]]></description>
			<content:encoded><![CDATA[<p>As a developer you&#8217;re used to deal with strange bugs on a daily basis. The one today was one of that kind. The Python script I use for building the XPIs uploads the finished files using HTTP POST. For building the POST data it uses <a href="http://peerit.blogspot.com/2007/07/multipartposthandler-doesnt-work-for.html">MultipartPostHandler</a> which I found on the web.</p>
<p>But for some time now I got a Python exception: <code>gaierror: (-2, 'Name or service not known')</code>.  And no, it&#8217;s not my name servers, those are up and running. Causing the problem was the following line:</p>
<pre> boundary = mimetools.choose_boundary()
</pre>
<p>Somehow gethostbyname() screwed up (we were switched to new DHCP servers recently) and looking up our own hostname failed. At least it took me some time to look at the right place for that exception. When opening an URL you expect such an exception usually not inside a function giving you a MIME boundary :-)</p>
<p>After all, the XForms builds for Linux are up and running again, now for mozilla-1.9.2 and mozilla-central. Please give these builds a try and report any regressions you find as we plan to release a version for Firefox 3.6 around March.</p>
]]></content:encoded>
			<wfw:commentRss>http://philipp.wagner.name/blog/2010/02/strange-bugs-and-working-xforms-builds-again/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>Quick note: XForms nightly builds for Firefox 3.5</title>
		<link>http://philipp.wagner.name/blog/2009/12/quick-note-xforms-nightly-builds-for-firefox-3-5/</link>
		<comments>http://philipp.wagner.name/blog/2009/12/quick-note-xforms-nightly-builds-for-firefox-3-5/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 23:44:54 +0000</pubDate>
		<dc:creator>Philipp</dc:creator>
				<category><![CDATA[XForms]]></category>

		<guid isPermaLink="false">http://philipp.wagner.name/blog/?p=75</guid>
		<description><![CDATA[I was finally able to restore the nightly builds for Firefox 3.5 (the switch to Mercurial required a rewrite of the build scripts as well). It should be working now, have a look at the build page for the details. Another quick note: XForms for Firefox 3.6 is on its way.]]></description>
			<content:encoded><![CDATA[<p>I was finally able to restore the nightly builds for Firefox 3.5 (the switch to Mercurial required a rewrite of the build scripts as well). It should be working now, have a look at <a href="http://philipp.wagner.name/mozilla-xforms/">the build page</a> for the details.</p>
<p>Another quick note: XForms for Firefox 3.6 is on its way.</p>
]]></content:encoded>
			<wfw:commentRss>http://philipp.wagner.name/blog/2009/12/quick-note-xforms-nightly-builds-for-firefox-3-5/feed/</wfw:commentRss>
		<slash:comments>0</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>
	</channel>
</rss>
