<?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>Unmaintainable &#187; linux</title>
	<atom:link href="http://unmaintainable.wordpress.com/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://unmaintainable.wordpress.com</link>
	<description>Scripting, Software Engineering and Stuff in Between</description>
	<lastBuildDate>Sun, 22 Nov 2009 09:05:47 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='unmaintainable.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/6f90ae5619dfc90140df401ac60575d2?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Unmaintainable &#187; linux</title>
		<link>http://unmaintainable.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://unmaintainable.wordpress.com/osd.xml" title="Unmaintainable" />
		<item>
		<title>Apache 2.2 and Digest Authentication</title>
		<link>http://unmaintainable.wordpress.com/2009/11/22/apache-digest-authentication/</link>
		<comments>http://unmaintainable.wordpress.com/2009/11/22/apache-digest-authentication/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 09:04:59 +0000</pubDate>
		<dc:creator>mafr</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://unmaintainable.wordpress.com/?p=347</guid>
		<description><![CDATA[A few weeks ago I wanted to enable digest authentication on an Apache 2.2 web server. I got basic authentication working within minutes, but I didn&#8217;t want to send plain text passwords over the web, so how difficult could it be?

I followed some tutorial on the net but despite following the instructions throughly, all I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unmaintainable.wordpress.com&blog=586265&post=347&subd=unmaintainable&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A few weeks ago I wanted to enable digest authentication on an Apache 2.2 web server. I got basic authentication working within minutes, but I didn&#8217;t want to send plain text passwords over the web, so how difficult could it be?</p>
<p><span id="more-347"></span></p>
<p>I followed some tutorial on the net but despite following the instructions throughly, all I could get was an error message in my <code>error.log</code> file:</p>
<pre>
Invalid command 'AuthDigestFile', perhaps misspelled or defined
  by a module not included in the server configuration
</pre>
<p>It turns out that the <code>AuthDigestFile</code> configuration command from Apache 2.0 and earlier (see <a href="http://httpd.apache.org/docs/1.3/howto/auth.html">1.3 docs</a> or <a href="http://httpd.apache.org/docs/2.0/mod/mod_auth_digest.html">2.2 docs</a>) doesn&#8217;t work on Apache 2.2 anymore. In 2.2, you use <code>AuthUserFile</code>, just like with basic authentication.</p>
<p>It&#8217;s all in <a href="http://httpd.apache.org/docs/2.2/mod/mod_auth_digest.html">mod_auth_digest&#8217;s documentation</a>, including a nice, working example. It didn&#8217;t occur to me until late that the tutorial I had found on the net could have been outdated. Oh well.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/unmaintainable.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/unmaintainable.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/unmaintainable.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/unmaintainable.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/unmaintainable.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/unmaintainable.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/unmaintainable.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/unmaintainable.wordpress.com/347/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/unmaintainable.wordpress.com/347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/unmaintainable.wordpress.com/347/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unmaintainable.wordpress.com&blog=586265&post=347&subd=unmaintainable&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://unmaintainable.wordpress.com/2009/11/22/apache-digest-authentication/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59c9677a3b9569af44561adab6c2a980?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mafr</media:title>
		</media:content>
	</item>
		<item>
		<title>An IMAP Configuration for Mutt</title>
		<link>http://unmaintainable.wordpress.com/2009/09/08/imap-configuration-for-mutt/</link>
		<comments>http://unmaintainable.wordpress.com/2009/09/08/imap-configuration-for-mutt/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 09:41:50 +0000</pubDate>
		<dc:creator>mafr</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://unmaintainable.wordpress.com/?p=316</guid>
		<description><![CDATA[Usually, I download all my email via fetchmail, sort it into folders using procmail and read the mails with mutt. This works reasonably well and I&#8217;ve been using this mail setup without major changes for about 10 years. Since I recently bought a netbook, I also wanted to read mails with it, but without touching [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unmaintainable.wordpress.com&blog=586265&post=316&subd=unmaintainable&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Usually, I download all my email via fetchmail, sort it into folders using procmail and read the mails with mutt. This works reasonably well and I&#8217;ve been using this mail setup without major changes for about 10 years. Since I recently bought a netbook, I also wanted to read mails with it, but without touching my existing mail setup. The netbook should only read mails directly on the server without downloading anything to local disk.</p>
<p><span id="more-316"></span></p>
<p>My mail service provider 1&amp;1 supports IMAP and a webmail client that I sometimes use, so I decided to follow the webmail client&#8217;s conventions regarding folder names. This way, I can use mutt on the netbook and the webmail client interchangeably.</p>
<p>Based on a <a href="http://shreevatsa.wordpress.com/2007/07/31/using-gmail-with-mutt-the-minimal-way/">mutt configuration for gmail</a>, I ended up with the following IMAP-related settings:</p>
<pre>
set from = &quot;your.address&#64;example.invalid&quot;
set realname = &quot;Your Real Name&quot;

set imap_user = &quot;matthias&#64;mafr.de&quot;
set imap_pass = &quot;*******&quot;

set smtp_url = &quot;smtp://$imap_user@smtp.1und1.de:587/&quot;
set smtp_pass = $imap_pass

set folder = &quot;{imap.1und1.de/ssl}&quot;
set spoolfile = &quot;+INBOX&quot;
set record = &quot;+Gesendete Objekte&quot;
set postponed = &quot;+Entwürfe&quot;
set trash = &quot;+Papierkorb&quot;

set move = no

mailboxes &quot;+INBOX&quot;

set header_cache = &quot;~/.cache/mutt/headers&quot;
</pre>
<p>The most important account settings are <cite>imap_user</cite>, <cite>imap_pass</cite> (optional, mutt will prompt for it), and <cite>folder</cite>. Folder names prefixed with a <cite>+</cite> sign are relative to <cite>folder</cite>. Note that I disabled moving read mails to the <cite>mbox</cite> folder; I want to keep everything in my inbox. Because of the <cite>record</cite> setting, all sent mails are recorded in a folder on the IMAP server.</p>
<p>To speed things up, I enabled the header cache. You could also cache entire messages, but since mutt doesn&#8217;t expire them yet, I don&#8217;t use this feature.</p>
<p>What doesn&#8217;t work: Neither fetchmail nor the 1&amp;1 server propagate the IMAP &quot;seen&quot; flag of the emails to a BSD mbox-style &quot;Status: RO&quot; header. Because of this, I have to mark all downloaded mails as read manually.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/unmaintainable.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/unmaintainable.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/unmaintainable.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/unmaintainable.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/unmaintainable.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/unmaintainable.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/unmaintainable.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/unmaintainable.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/unmaintainable.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/unmaintainable.wordpress.com/316/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unmaintainable.wordpress.com&blog=586265&post=316&subd=unmaintainable&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://unmaintainable.wordpress.com/2009/09/08/imap-configuration-for-mutt/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59c9677a3b9569af44561adab6c2a980?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mafr</media:title>
		</media:content>
	</item>
		<item>
		<title>Ubuntu: Changes in Python 2.6</title>
		<link>http://unmaintainable.wordpress.com/2009/08/26/ubuntu-changes-python-2-6/</link>
		<comments>http://unmaintainable.wordpress.com/2009/08/26/ubuntu-changes-python-2-6/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 08:05:59 +0000</pubDate>
		<dc:creator>mafr</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://unmaintainable.wordpress.com/?p=306</guid>
		<description><![CDATA[Once in a while, I install Python packages from source using distutils. The distutils-powered setup.py script found in many packages installs software in /usr/local/ &#8211; quite useful because it doesn&#8217;t interfere with packages managed by your distribution. Since Ubuntu Jaunty and Python 2.6, this doesn&#8217;t work anymore.

Previously, your usual command python setup.py install installed packages [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unmaintainable.wordpress.com&blog=586265&post=306&subd=unmaintainable&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Once in a while, I install Python packages from source using distutils. The distutils-powered <code>setup.py</code> script found in many packages installs software in <code>/usr/local/</code> &#8211; quite useful because it doesn&#8217;t interfere with packages managed by your distribution. Since Ubuntu Jaunty and Python 2.6, this doesn&#8217;t work anymore.</p>
<p><span id="more-306"></span></p>
<p>Previously, your usual command <code>python setup.py install</code> installed packages in <code>/usr/local/lib/pythonX.Y/site-packages/</code>, depending on your Python version. As of Ubuntu Jaunty, Python 2.6 no longer has this directory in <code>sys.path</code>. Instead, it expects local packages in <code>/usr/local/lib/python2.6/dist-packages/</code>, so your locally installed packages are no longer found.</p>
<p>I learned from <a href="https://lists.ubuntu.com/archives/ubuntu-devel/2009-February/027439.html">this posting</a> that distutils now supports an <code>--install-layout=deb</code> switch that installs the package in <code>/usr/local/lib/python2.6/dist-packages</code>. The switch is accepted in distutils from Python 2.4 and 2.5, too, without having any effect, so you can always include it in your command line.</p>
<p>To sum things up, the new command line for installing python packages in <code>/usr/local/</code> is</p>
<pre>
  python setup.py install --install-layout=deb
</pre>
<p>This probably applies to Debian systems as well, judging from the name choice of <code>--install-layout</code>&#8217;s parameter. I updated my <a href="/2007/01/14/package-management-using-stow/">posting on stow</a> to reflect this change.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/unmaintainable.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/unmaintainable.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/unmaintainable.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/unmaintainable.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/unmaintainable.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/unmaintainable.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/unmaintainable.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/unmaintainable.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/unmaintainable.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/unmaintainable.wordpress.com/306/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unmaintainable.wordpress.com&blog=586265&post=306&subd=unmaintainable&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://unmaintainable.wordpress.com/2009/08/26/ubuntu-changes-python-2-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59c9677a3b9569af44561adab6c2a980?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mafr</media:title>
		</media:content>
	</item>
		<item>
		<title>Upgrading to Ubuntu Intrepid</title>
		<link>http://unmaintainable.wordpress.com/2008/11/22/upgrading-to-ubuntu-intrepid/</link>
		<comments>http://unmaintainable.wordpress.com/2008/11/22/upgrading-to-ubuntu-intrepid/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 12:13:19 +0000</pubDate>
		<dc:creator>mafr</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://unmaintainable.wordpress.com/?p=101</guid>
		<description><![CDATA[Upgrading from Ubuntu &#8220;Hardy Heron&#8221; to &#8220;Intrepid Ibex&#8221; wasn&#8217;t the smooth ride I was used to. I&#8217;m a pretty happy Ubuntu user and my system (an old Acer Travelmate 291) has been running all Ubuntu releases since &#8220;Breezy Badger&#8221; without a single reinstall. This time, however, I experienced problems with WLAN, sound, battery status display, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unmaintainable.wordpress.com&blog=586265&post=101&subd=unmaintainable&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Upgrading from Ubuntu &#8220;Hardy Heron&#8221; to &#8220;Intrepid Ibex&#8221; wasn&#8217;t the smooth ride I was used to. I&#8217;m a pretty happy Ubuntu user and my system (an old Acer Travelmate 291) has been running all Ubuntu releases since &#8220;Breezy Badger&#8221; without a single reinstall. This time, however, I experienced problems with WLAN, sound, battery status display, and postfix SASL authentification.</p>
<p><span id="more-101"></span></p>
<p>Since &#8220;Hardy&#8221; is a &#8220;long term support&#8221; release, the update manager doesn&#8217;t announce the availability of the &#8220;Intrepid&#8221; release. You first have to go to &#8220;System / Administration / Software Sources&#8221; and in the &#8220;Updates&#8221; tab change &#8220;Long term support releases only&#8221; to &#8220;Normal releases&#8221;. Then the update manager will display the &#8220;Update&#8221; button.</p>
<p>After the update, kernel 2.6.25 was installed. Since WLAN and sound didn&#8217;t work, I upgraded to 2.6.27 which was also available but things didn&#8217;t improve. A look at <code>dmesg(1)</code> showed that the firmware for my <code>ipw2100</code> chip wasn&#8217;t found. I installed the <code>linux-firmware</code> package and things worked again.</p>
<p>Sending mail didn&#8217;t work because postfix wasn&#8217;t able to authenticate to my provider&#8217;s SMTP server. Nothing in the logs pointed to the exact problem, but after re-generating all .db-Files in <code>/etc/postfix/</code> using <code>sudo postmap hash:filename</code> mysteriously solved the problem.</p>
<p>Maybe my system is showing its age and has accumulated too much cruft over the years. Or maybe I shouldn&#8217;t update my system so soon after a new release &#8230;</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/unmaintainable.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/unmaintainable.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/unmaintainable.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/unmaintainable.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/unmaintainable.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/unmaintainable.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/unmaintainable.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/unmaintainable.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/unmaintainable.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/unmaintainable.wordpress.com/101/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unmaintainable.wordpress.com&blog=586265&post=101&subd=unmaintainable&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://unmaintainable.wordpress.com/2008/11/22/upgrading-to-ubuntu-intrepid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59c9677a3b9569af44561adab6c2a980?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mafr</media:title>
		</media:content>
	</item>
		<item>
		<title>Rsync Backups For External Disks</title>
		<link>http://unmaintainable.wordpress.com/2008/06/26/rsync-backups/</link>
		<comments>http://unmaintainable.wordpress.com/2008/06/26/rsync-backups/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 09:18:49 +0000</pubDate>
		<dc:creator>mafr</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://unmaintainable.wordpress.com/?p=57</guid>
		<description><![CDATA[Virtually everybody agrees that backups are a good idea, but few people actually do them. Backup software is often time consuming to set up or just overkill for a single-user system. In this article I&#8217;ll show how easy it is to build your own backup solution on Linux using rsync and an external disk drive.

The [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unmaintainable.wordpress.com&blog=586265&post=57&subd=unmaintainable&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Virtually everybody agrees that backups are a good idea, but few people actually do them. Backup software is often time consuming to set up or just overkill for a single-user system. In this article I&#8217;ll show how easy it is to build your own backup solution on Linux using <a href="http://rsync.samba.org/">rsync</a> and an external disk drive.</p>
<p><span id="more-57"></span></p>
<p>The backup schema proposed here is based on Mike Rubel&#8217;s excellent <a href="http://www.mikerubel.org/computers/rsync_snapshots/">Easy Automated Snapshot-Style Backups with Linux and Rsync</a> article. In my schema we leave out anything sophisticated and concentrate on the single-user scenario. The result is probably one of the simplest and least expensive backup systems you can get away with.</p>
<h4>Features</h4>
<p>These are the features in a nutshell:</p>
<ul>
<li>No network, server or special software (except rsync) required</li>
<li>Suitable for single-user workstations</li>
<li>After setup usable without root access</li>
<li>Multiple backups are possible, with each being a complete snapshot</li>
<li>Restoring a backup is done using standard Unix utilities (cp!)</li>
<li>Very space-efficient due to use of hard links between backups</li>
<li>Backup mediums are cheap (any external USB drive will do)</li>
</ul>
<p>Rsync snapshots make use of Unix hard links to save space. This works under the assumption that only a small percentage of files change between backups which should be true in many cases.</p>
<p>The backup medium shouldn&#8217;t be mounted all the time because that would increase the risk of accidental overwrites and other hazards. An external drive disconnected from both power and USB most of the time is a pretty good solution for single-user workstations. The downside is that backups have to be triggered manually which is a bit inconvenient and requires discipline.</p>
<p>If you need networked multi-user backups, try <a href="http://www.dirvish.org/">dirvish</a> which shares many advantages with the solution presented here. It is a proven rsync-based system and can be executed from a central backup server via cron.</p>
<h4>Setup</h4>
<p>First of all you need an external disk drive. I would suggest that it should be at least 2-3 times as big as the data you want to backup. Then create a file system that supports hard links (ext2/3 do, among others). When using ext2/3 it&#8217;s a good idea to set the usual 5% space reservation for user root to zero; otherwise you&#8217;d waste a lot of space. You might also want to adjust the file system check interval using <code>tune2fs(8)</code>.</p>
<p>Make sure your user can mount the disk and write to it. Create a dedicated <code>backup</code> directory on your disk, especially if you use the disk for other archiving purposes, too. It also helps to easily check if the disk is mounted.</p>
<h4>Process</h4>
<p>In your backup directory, each snapshot gets its own subdirectory. The snapshots share common, unmodified files to save space. After a few backups, the directory looks like this:</p>
<pre>
  $ ls /path/to/backup/dir/
  backup.0 backup.1 backup.2 backup.3
  $
</pre>
<p>The latest backup is always <code>backup.0</code>, the oldest is the one with the highest number (<code>backup.3</code> here). When a new backup is made, the oldest directory is deleted and the other ones&#8217; IDs are moved up. That means, <code>backup.2</code> becomes <code>backup.3</code>, <code>backup.1</code> becomes <code>backup.2</code> and so on.</p>
<p>When a new backup is made, rsync links to files in <code>backup.1</code> if a file hasn&#8217;t changed since last time. The rsync command line responsible for this behavior looks like this:</p>
<pre>
  $ cd /path/to/backup/dir/
  $ rsync --archive --link-dest=../backup.1 SOURCE_DIR/ backup.0
</pre>
<p>Note that the trailing slash with <code>SOURCE_DIR</code> is significant.</p>
<p>In case you don&#8217;t want to backup certain files (browser caches or the <code>~/.gvfs</code> mountpoint come to mind), you can add exclusion patterns to rsync&#8217;s command line. Using the <code>--filter</code> switch (or the more limited <code>--exclude-from</code>), those patterns may be specified in a separate file, too.</p>
<p>Putting all together, you should end up with a <a href="http://musicbrainz.org/~matt/scripts/backup.sh">simple backup script</a> and optionally an <a href="http://musicbrainz.org/~matt/scripts/backup.rc">rsync filter file</a>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/unmaintainable.wordpress.com/57/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/unmaintainable.wordpress.com/57/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/unmaintainable.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/unmaintainable.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/unmaintainable.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/unmaintainable.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/unmaintainable.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/unmaintainable.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/unmaintainable.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/unmaintainable.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/unmaintainable.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/unmaintainable.wordpress.com/57/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unmaintainable.wordpress.com&blog=586265&post=57&subd=unmaintainable&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://unmaintainable.wordpress.com/2008/06/26/rsync-backups/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59c9677a3b9569af44561adab6c2a980?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mafr</media:title>
		</media:content>
	</item>
		<item>
		<title>Moving a Linux System</title>
		<link>http://unmaintainable.wordpress.com/2008/02/03/moving-a-linux-system/</link>
		<comments>http://unmaintainable.wordpress.com/2008/02/03/moving-a-linux-system/#comments</comments>
		<pubDate>Sun, 03 Feb 2008 09:38:24 +0000</pubDate>
		<dc:creator>mafr</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://unmaintainable.wordpress.com/?p=42</guid>
		<description><![CDATA[Recently, I decided to re-partition my hard disk because I needed a larger swap partition. In this article, I&#8217;ll describe the process of backing up an existing system and restore it somewhere else. I haven&#8217;t done anything like it in years, so I was up to some smaller surprises that I was fortunately able to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unmaintainable.wordpress.com&blog=586265&post=42&subd=unmaintainable&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Recently, I decided to re-partition my hard disk because I <a href="/2007/12/23/hibernation-troubles/">needed a larger swap partition</a>. In this article, I&#8217;ll describe the process of backing up an existing system and restore it somewhere else. I haven&#8217;t done anything like it in years, so I was up to some smaller surprises that I was fortunately able to solve quickly. In any case, being extra careful and planning ahead usually saves quite a few headaches. Moving a system is no trivial task, so follow this article at your own risk.</p>
<p><span id="more-42"></span></p>
<p>First of all, the existing data has to be backed up on another system. The backup should be created in single user mode to make sure there are no processes running that modify the filesystem. Since there are a few things you don&#8217;t want to backup (like <code>/proc</code> or other pseudo filesystems), you should figure out what they are, maybe using <code>mount(8)</code>. For my system, this command worked:</p>
<pre>
  tar cf -
      --exclude /proc --exclude /sys --exclude /var/run
      --exclude /var/lock --exclude /dev
      /
      | ssh user@host "cat &gt; backup.tar"
</pre>
<p>The command creates a tarball (excluding a few directories) and directly sends it to a different host. If you have a second disk in your computer with enough space then you could also save it there, but a backup on a different system is always recommended. It&#8217;s also a good idea to test the backup to see if everything is there and files can be extracted without errors.</p>
<p>After the backup is done, boot into a rescue system (like the Ubuntu installation CD) and re-partition the disk. In my case, an alternative would have been to shrink my root filesystem using <code>resize2fs(8)</code>, to adjust the partition&#8217;s size (via <code>fdisk(8)</code>) and add a second swap area at the then free area. I decided against this because if I made any errors during the procedure I wouldn&#8217;t find out until the filesystem fills up (and possibly overwrites part of the swap area).</p>
<p>So I created a new swap partition (type 82) and a root partition (type 83) and formatted the partitions using <code>mkswap(8)</code> and <code>mkfs</code>. Make sure you don&#8217;t lose the generated UUIDs &#8211; you&#8217;re going to need them later. If you&#8217;re using ext2 or ext3 use <code>tune2fs(8)</code> for the usual adjustments (reserved block count, file system check interval etc.).</p>
<p>Mount the new root filesystem (<code>/mnt</code> is used in this example) and extract the backup there:</p>
<pre>
  cd /mnt
  ssh user@host "cat backup.tar" | tar xpf -
</pre>
<p>Make sure everything looks OK and don&#8217;t forget to create the directories that were excluded from the backup:</p>
<pre>
  mkdir /proc /sys /var/run /var/lock /dev
</pre>
<p>Since newer distributions use UUIDs to identify filesystems, we&#8217;ll have to adjust the extracted system to use the newly generated UUIDs. Those UUIDs hide in several places:</p>
<ul>
<li>/mnt/etc/fstab</li>
<li>/mnt/boot/grub/menu.lst</li>
<li>/mnt/etc/initramfs-tools/conf.d/resume (for hibernation)</li>
</ul>
<p>Make sure to update the UUIDs everywhere. I didn&#8217;t get them all at the first attempt, so I got kernel panics and hibernation didn&#8217;t work. Then setup the master boot record using grub. I did it at the grub shell, but the following command should work, too:</p>
<pre>
  grub-install --root-directory /mnt
</pre>
<p>After booting into your system for the first time, you have to run <code>update-initramfs -u</code> and then restart the system. Otherwise hibernation will be broken. After that&#8217;s been done, your system should work the same way as before.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/unmaintainable.wordpress.com/42/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/unmaintainable.wordpress.com/42/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/unmaintainable.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/unmaintainable.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/unmaintainable.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/unmaintainable.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/unmaintainable.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/unmaintainable.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/unmaintainable.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/unmaintainable.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/unmaintainable.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/unmaintainable.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unmaintainable.wordpress.com&blog=586265&post=42&subd=unmaintainable&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://unmaintainable.wordpress.com/2008/02/03/moving-a-linux-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59c9677a3b9569af44561adab6c2a980?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mafr</media:title>
		</media:content>
	</item>
		<item>
		<title>Ubuntu Gutsy Hibernation Troubles</title>
		<link>http://unmaintainable.wordpress.com/2007/12/23/hibernation-troubles/</link>
		<comments>http://unmaintainable.wordpress.com/2007/12/23/hibernation-troubles/#comments</comments>
		<pubDate>Sun, 23 Dec 2007 10:10:58 +0000</pubDate>
		<dc:creator>mafr</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://unmaintainable.wordpress.com/2007/12/23/hibernation-troubles/</guid>
		<description><![CDATA[When I wanted to suspend my notebook today the hibernate button was gone from the menu. Running the /etc/acpi/hibernate.sh shell script as root still worked, but there was no way to get that silly button back.

My first idea was some kind of configuration trouble, suddenly appearing for no reason (I never trusted gconf completely anyway). [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unmaintainable.wordpress.com&blog=586265&post=39&subd=unmaintainable&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>When I wanted to suspend my notebook today the hibernate button was gone from the menu. Running the <code>/etc/acpi/hibernate.sh</code> shell script as root still worked, but there was no way to get that silly button back.</p>
<p><span id="more-39"></span></p>
<p>My first idea was some kind of configuration trouble, suddenly appearing for no reason (I never trusted gconf completely anyway). But obviously, that wasn&#8217;t the problem:</p>
<pre>
 $ gconftool-2 -g /apps/gnome-power-manager/general/can_hibernate
 true
 $
</pre>
<p>After some time reading shell scripts I found the problem tough. A while ago I added more RAM to my notebook and also had to configure a swap file because my swap partition was too small. Things worked fine for a while, but then an upgrade of package <code>powermanagement-interface</code> (0.3.16) came along with the following change:</p>
<pre>
powermanagement-interface (0.3.16) gutsy; urgency=low

  * pmi.acpi: Disable suspend and hibernate if /host is mounted via fuse;
    disable hibernate if a swap file is active.
</pre>
<p>I cannot say if there could possibly be problems with swap files, but this change leaves me with two ugly options:</p>
<ol>
<li>Hack the <code>/usr/sbin/pmi</code> shell script to disable the check (gah!)</li>
<li>Render the swap file obsolete by re-partitioning my disk</li>
</ol>
<p>Unless someone comes up with a better idea, I&#8217;m leaning towards option 2 &#8230;</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/unmaintainable.wordpress.com/39/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/unmaintainable.wordpress.com/39/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/unmaintainable.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/unmaintainable.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/unmaintainable.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/unmaintainable.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/unmaintainable.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/unmaintainable.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/unmaintainable.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/unmaintainable.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/unmaintainable.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/unmaintainable.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unmaintainable.wordpress.com&blog=586265&post=39&subd=unmaintainable&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://unmaintainable.wordpress.com/2007/12/23/hibernation-troubles/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59c9677a3b9569af44561adab6c2a980?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mafr</media:title>
		</media:content>
	</item>
		<item>
		<title>Lightweight Package Management using Stow</title>
		<link>http://unmaintainable.wordpress.com/2007/01/14/package-management-using-stow/</link>
		<comments>http://unmaintainable.wordpress.com/2007/01/14/package-management-using-stow/#comments</comments>
		<pubDate>Sun, 14 Jan 2007 10:52:28 +0000</pubDate>
		<dc:creator>mafr</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://unmaintainable.wordpress.com/2007/01/14/package-management-using-stow/</guid>
		<description><![CDATA[Package management tools like apt-get make it very easy to install and remove software. The package manager takes care of downloading the package together with its dependencies if, of course, someone has taken the time to create a package and made it available to you. In some cases, you don&#8217;t want to interfere with your [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unmaintainable.wordpress.com&blog=586265&post=12&subd=unmaintainable&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Package management tools like apt-get make it very easy to install and remove software. The package manager takes care of downloading the package together with its dependencies if, of course, someone has taken the time to create a package and made it available to you. In some cases, you don&#8217;t want to interfere with your local package management, however. With a bit of bad luck, third party packages can mess up your package system or cause conflicts when upgrading your distribution.</p>
<p>Because of this, people often install source packages to <code>/usr/local</code> without bothering to create deb or rpm packages. The problem with this approach is that it leads to a lot of clutter in <code>/usr/local</code> and it makes uninstalling software pretty difficult. Using the <a href="http://www.gnu.org/software/stow/">stow</a> tool, you can easily install software from source and uninstall it later. <em>Stow</em> doesn&#8217;t even need a package database or configuration files for this.</p>
<p><span id="more-12"></span></p>
<p>The idea of stow is to install each software package into a directory structure on its own and use symlinks to make it available to the rest of the system. Suppose you want to install a nice little software package (let&#8217;s call it <code>yourpackage-0.1</code>) from source. You would then install it in <code>/usr/local/stow/yourpackage-0.1</code>, where it has its own directory structure with <code>bin</code>, <code>lib</code>, <code>include</code> and other directories. Stow would then create symlinks, so that <code>/usr/local/bin/foo</code> would be a symlink to <code>/usr/local/stow/yourpackage-0.1/bin/foo</code>.</p>
<p>If you&#8217;re using <em>stow</em> for the first time, you have to create the <code>/usr/local/stow</code> directory. It doesn&#8217;t have to be owned by root; on my system it belongs to the <em>src</em> user, which I use to install software.</p>
<p>Let&#8217;s install two software packages from source to see how it works. The first example is <a href="http://musicbrainz.org/doc/libdiscid">libdiscid</a>, a library written in C which has autoconf support:</p>
<pre>
   $ tar xvzf libdiscid-0.1.tar.gz
   $ cd libdiscid-0.1
   $ ./configure --prefix=/usr/local/stow/libdiscid-0.1
   $ make
   $ make install
   # cd /usr/local/stow &amp;&amp; stow libdiscid-0.1
   # ldconfig
</pre>
<p>Note the <code>--prefix</code> argument which tells <code>configure</code> where to install the package. The first five commands can be executed by the user owning <code>/usr/local/stow</code>. Only the creation of symlinks done by the <em>stow</em> tool requires root privileges. The <code>ldconfig</code> call is required for libraries to tell the dynamic linker about the new library.</p>
<p>Python packages work much the same way. We&#8217;ll use <a href="http://musicbrainz.org/doc/PythonMusicBrainz2">python-musicbrainz2</a> as a demo:</p>
<pre>
   $ tar xvzf python-musicbrainz2-0.4.0.tar.gz
   $ ./setup.py install \
        --prefix=/usr/local/stow/python-musicbrainz2-0.4.0 \
        --install-layout=deb
   # cd /usr/local/stow &amp;&amp; stow python-musicbrainz2-0.4.0
</pre>
<p>Obviously, the <code>--install-layout=deb</code> parameter is only relevant for Debian-based systems.</p>
<p>Uninstalling a software package works using the following command:</p>
<pre>
   # cd /usr/local/stow &amp;&amp; stow -D python-musicbrainz2-0.4.0
</pre>
<p>This only removes the symlinks but not the package itself. To get rid of it altogether, you have to remove the <code>python-musicbrainz2</code> directory manually.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/unmaintainable.wordpress.com/12/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/unmaintainable.wordpress.com/12/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/unmaintainable.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/unmaintainable.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/unmaintainable.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/unmaintainable.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/unmaintainable.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/unmaintainable.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/unmaintainable.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/unmaintainable.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/unmaintainable.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/unmaintainable.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unmaintainable.wordpress.com&blog=586265&post=12&subd=unmaintainable&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://unmaintainable.wordpress.com/2007/01/14/package-management-using-stow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59c9677a3b9569af44561adab6c2a980?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mafr</media:title>
		</media:content>
	</item>
		<item>
		<title>Printing RFCs and Internet Drafts</title>
		<link>http://unmaintainable.wordpress.com/2006/12/23/printing-rfcs/</link>
		<comments>http://unmaintainable.wordpress.com/2006/12/23/printing-rfcs/#comments</comments>
		<pubDate>Sat, 23 Dec 2006 09:53:18 +0000</pubDate>
		<dc:creator>mafr</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://unmaintainable.wordpress.com/2006/12/23/printing-rfcs/</guid>
		<description><![CDATA[The a2ps command line utility converts text files to PostScript which can then be sent to a printer. The resulting output contains all kinds of boxes and additional information which limits the space on the printed page to make your own notes.

Of course, this can all be turned off, but it requires quite a few [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unmaintainable.wordpress.com&blog=586265&post=8&subd=unmaintainable&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The <code>a2ps</code> command line utility converts text files to PostScript which can then be sent to a printer. The resulting output contains all kinds of boxes and additional information which limits the space on the printed page to make your own notes.</p>
<p><span id="more-8"></span></p>
<p>Of course, this can all be turned off, but it requires quite a few command line switches to get rid of it all. Fortunately, there is the (undocumented) <code>lp</code> user option which tells <code>a2ps</code> to print like a good old line printer. User options are pre-configured <em>profiles</em> which can be enabled manually.</p>
<p>To print an RFC with two pages per sheet using the <code>lp</code> user option, use the following command:</p>
<pre>
    a2ps -o output.ps -=lp -2 rfcXXXX.txt
</pre>
<p>You can then print the resulting <code>output.ps</code> file using <code>lpr</code>. If you leave out the <code>-o</code> switch and its argument, the output is sent to the printer directly. If you don&#8217;t have a PostScript enabled printer, your local printing system should take care of converting it to your printer&#8217;s native format.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/unmaintainable.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/unmaintainable.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/unmaintainable.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/unmaintainable.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/unmaintainable.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/unmaintainable.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/unmaintainable.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/unmaintainable.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/unmaintainable.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/unmaintainable.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/unmaintainable.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/unmaintainable.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unmaintainable.wordpress.com&blog=586265&post=8&subd=unmaintainable&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://unmaintainable.wordpress.com/2006/12/23/printing-rfcs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59c9677a3b9569af44561adab6c2a980?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mafr</media:title>
		</media:content>
	</item>
	</channel>
</rss>