<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Changelog &#187; Debian</title>
	<atom:link href="http://changelog.complete.org/archives/category/technology/software/debian/feed" rel="self" type="application/rss+xml" />
	<link>http://changelog.complete.org</link>
	<description>Viewpoints on technology, society, and government</description>
	<lastBuildDate>Tue, 07 Feb 2012 08:31:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>A Proud Dad</title>
		<link>http://changelog.complete.org/archives/6359-a-proud-dad</link>
		<comments>http://changelog.complete.org/archives/6359-a-proud-dad#comments</comments>
		<pubDate>Wed, 16 Mar 2011 22:13:21 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Family]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[jacob]]></category>

		<guid isPermaLink="false">http://changelog.complete.org/?p=6359</guid>
		<description><![CDATA[I saw this on my computer screen the other day, and I&#8217;ve got to say it really warmed my heart. I&#8217;ll explain below if it doesn&#8217;t provoke that reaction for you. So here&#8217;s why that made me happy. Well for one, it was the first time Jacob had left stuff on my computer that I [...]]]></description>
			<content:encoded><![CDATA[<p>I saw this on my computer screen the other day, and I&#8217;ve got to say it really warmed my heart.  I&#8217;ll explain below if it doesn&#8217;t provoke that reaction for you.</p>
<p><a href="http://www.flickr.com/photos/jgoerzen/5524542501/" title="Evidence a 4-year-old has been using my computer by prairiecode, on Flickr"><img src="http://farm6.static.flickr.com/5172/5524542501_eb06b04fdd.jpg" width="500" height="241" alt="Evidence a 4-year-old has been using my computer" /></a></p>
<p>So here&#8217;s why that made me happy.  Well for one, it was the first time Jacob had left stuff on my computer that I found later.  And of course he left his name there.</p>
<p>But moreover, he&#8217;s learning a bit about the Unix shell.  sl is a command that displays an <a href="http://www.youtube.com/watch?v=BPMd2dsSVR0&#038;NR=1&#038;feature=fvwp">animated steam locomotive</a>.  I taught him how to use the semicolon to combine commands.  So he has realized that he can combine calls to sl with the semicolon to get a series of a LOT of steam trains all at once.  And was very excited about this discovery.</p>
<p>Also he likes how error messages start with the word &#8220;bash&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/6359-a-proud-dad/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>rdiff-backup, ZFS, and rsync scripts</title>
		<link>http://changelog.complete.org/archives/5572-rdiff-backup-zfs-and-rsync-scripts</link>
		<comments>http://changelog.complete.org/archives/5572-rdiff-backup-zfs-and-rsync-scripts#comments</comments>
		<pubDate>Tue, 25 Jan 2011 15:45:39 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[backups]]></category>
		<category><![CDATA[zfs]]></category>

		<guid isPermaLink="false">http://changelog.complete.org/?p=5572</guid>
		<description><![CDATA[rdiff-backup vs. ZFS As I&#8217;ve been writing about backups, I&#8217;ve gone ahead and run some tests with rdiff-backup. I have been using rdiff-backup personally for many years now &#8212; probably since 2002, when I packaged it up for Debian. It&#8217;s a nice, stable system, but I always like to look at other options for things [...]]]></description>
			<content:encoded><![CDATA[<p><b>rdiff-backup vs. ZFS</b></p>
<p>As I&#8217;ve been <a href="http://changelog.complete.org/archives/5547-research-on-deduplicating-disk-based-and-cloud-backups">writing about backups</a>, I&#8217;ve gone ahead and run some tests with <a href="http://www.nongnu.org/rdiff-backup/">rdiff-backup</a>.  I have been using rdiff-backup personally for many years now &#8212; probably since 2002, when I packaged it up for Debian.  It&#8217;s a nice, stable system, but I always like to look at other options for things every so often.</p>
<p>rdiff-backup stores an uncompressed current mirror of the filesystem, similar to rsync.  History is achieved by the use of compressed backwards binary deltas generated by rdiff (using the rsync algorithm).  So, you can restore the current copy very easily &#8212; a simple cp will do if you don&#8217;t need to preserve permissions.  rdiff-backup restores previous copies by applying all necessary binary deltas to generate the previous version.</p>
<p>Things I like about rdiff-backup:</p>
<ol>
<li>Bandwidth-efficient</li>
<li>Reasonably space-efficient, especially where history is concerned</li>
<li>Easily scriptable and nice CLI</li>
<li>Unlike tools such as duplicity, there is no need to periodically run full backups &#8212; old backups can be deleted without impacting the ability to restore more current backups</li>
</ol>
<p>Things I don&#8217;t like about it:</p>
<ol>
<li>Speed.  It can be really slow.  Deleting 3 months&#8217; worth of old history takes hours.  It has to unlink vast numbers of files &#8212; and that&#8217;s pretty much it, but it does it really slowly.  Restores, backups, etc. are all slow as well.  Even just getting a list of your increment sizes so you&#8217;d know how much space would be saved can take a very long time.</li>
<li>The current backup copy is stored without any kind of compression, which is not at all space-efficient</li>
<li>It creates vast numbers of little files that take forever to delete or summarize</li>
</ol>
<p>So I thought I would examine how efficient ZFS would be.  I wrote a script that would replay the rdiff-backup history &#8212; first it would rsync the current copy onto the ZFS filesystem and make a ZFS snapshot.  Then each previous version was processed by my script (rdiff-backup&#8217;s files are sufficiently standard that a shell script can process them), and a ZFS snapshot created after each.  This lets me directly compare the space used by rdiff-backup to that used by ZFS using actual history.</p>
<p>I enabled gzip-3 compression and block dedup in ZFS.</p>
<p>My backups were nearly 1TB in size and the amount of space I had available for ZFS was roughly 600GB, so I couldn&#8217;t test all of them.  As it happened, I tested the ones that were the worst-case scenario for ZFS: my photos, music collection, etc.  These files had very little duplication and very little compressibility.  Plus a backup of my regular server that was reasonably compressible.</p>
<p>The total size of the data backed up with rdiff-backup was 583 GB.  With ZFS, this came to 498GB.  My dedup ratio on this was only 1.05 (meaning 5% or 25GB saved).  The compression ratio was 1.12 (60GB saved).  The combined ratio was 1.17 (85GB saved).  Interestingly 498 + 85 = 583.</p>
<p>Remember that the data under test here was mostly a worst-case scenario for ZFS.  It would probably have done better had I had the time to throw the rest of my dataset at it (such as the 60GB backup of my iPod, which would have mostly deduplicated with the backup of my music server).</p>
<p>One problem with ZFS is that dedup is very memory-hungry.  This is common knowledge and it is advertised that you need to use roughly 2GB of RAM per TB of disk when using dedup.  I don&#8217;t have quite that much to dedicate to it, so ZFS got VERY slow and thrashed the disk a lot after the ARC grew to about 300MB.  I found some tweakables in zfsrc and the zfs command that let me tweak the ARC cache to grow bigger.  But the machine in question only has 2GB RAM, and is doing lots of other things as well, so this barely improved anything.  Note that this dedup RAM requirement is not out of line with what is expected from these sorts of solutions.</p>
<p>Even if I got absolutely  stellar dedup ratio of 2:1, that would get me at most 1TB.  The cost of buying a 1TB disk is less than the cost of upgrading my system to 4GB RAM, so dedup isn&#8217;t worth it here.</p>
<p>I think the lesson is: think carefully about where dedup makes sense.  If you&#8217;re storing a bunch of nearly-identical virtual machine images &#8212; the sort of canonical use case for this &#8212; go for it.  A general fileserver &#8212; well, maybe you should just add more disk instead of more RAM.</p>
<p>Then that raises the question: if I don&#8217;t need dedup from ZFS, do I bother with it at all, or just use ext4 and LVM snapshots?  I think ZFS still makes sense, given its built-in support for compression and very fast snapshots &#8212; LVM snapshots are known to cause <a href="http://johnleach.co.uk/words/613/lvm-snapshot-performance">serious degradation to write performance</a> once enabled, which ZFS doesn&#8217;t.</p>
<p>So I plan to switch my backups to use ZFS.  A few observations on this:</p>
<ol>
<li>Some testing suggests that the time to delete a few months of old snapshots will be a minute or two with ZFS compared to hours with rdiff-backup.</li>
<li>ZFS has shown itself to be more space-efficient than rdiff-backup, even without dedup enabled.</li>
<li>There are clear performance and convenience wins with ZFS.</li>
<p><b>Backup Scripts</b></p>
<p>So now comes the question of backup scripts.  rsync is obviously a pretty nice choice here &#8212; and if used with &#8211;inplace perhaps even will play friendly with ZFS snapshots even if dedup is off.  But let&#8217;s say I&#8217;m backing up a few machines at home, or perhaps dozens at work.  There is a need to automate all of this.  Specifically, there&#8217;s a need to:</p>
<ol>
<li>Provide scheduling, making sure that we don&#8217;t hammer the server with 30 clients all at once</li>
<li>Provide for &#8220;run before&#8221; jobs to do things like snapshot databases</li>
<li>Be silent on success and scream loudly via emails to administrators on any kind of error&#8230; and keep backing up other systems when there is an error</li>
<li>Create snapshots and provide an automated way to remove old snapshots (or mount them for reading, as ZFS-fuse doesn&#8217;t support the .zfs snapshot directory yet)</li>
</ol>
<p>To date I haven&#8217;t found anything that looks suitable.  I found a shell script system called <a href="http://forums.freebsd.org/showthread.php?p=71162">rsbackup</a> that does a large part of this, but something about using a script whose homepage is a forum makes me less than 100% confident.</p>
<p>On the securing the backups front, rsync comes with a good-looking rrsync script (inexplicably installed under /usr/share/doc/rsync/scripts instead of /usr/bin on Debian) that can help secure the SSH authorization.  <a href="http://savannah.gnu.org/projects/rush">GNU rush</a> also looks like  a useful restricted shell.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/5572-rdiff-backup-zfs-and-rsync-scripts/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Research on deduplicating disk-based and cloud backups</title>
		<link>http://changelog.complete.org/archives/5547-research-on-deduplicating-disk-based-and-cloud-backups</link>
		<comments>http://changelog.complete.org/archives/5547-research-on-deduplicating-disk-based-and-cloud-backups#comments</comments>
		<pubDate>Thu, 20 Jan 2011 17:16:25 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[cloud]]></category>

		<guid isPermaLink="false">http://changelog.complete.org/?p=5547</guid>
		<description><![CDATA[Yesterday, I wrote about backing up to the cloud. I specifically was looking at cloud backup services. I&#8217;ve been looking into various options there, but also various options for disk-based backups. I&#8217;d like to have both onsite and offsite backups, so both types of backup are needed. Also, it is useful to think about how [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, I wrote about <a href="http://changelog.complete.org/archives/5543-backing-up-to-the-cloud">backing up to the cloud</a>.  I specifically was looking at cloud backup services.  I&#8217;ve been looking into various options there, but also various options for disk-based backups.  I&#8217;d like to have both onsite and offsite backups, so both types of backup are needed.  Also, it is useful to think about how the two types of backups can be combined with minimal overhead.</p>
<p>For the onsite backups, I&#8217;d want to see:</p>
<ol>
<li>Preservation of ownership, permissions, etc.</li>
<li>Preservation of symlinks and hardlinks</li>
<li>Space-efficient representation of changes &#8212; ideally binary deltas or block-level deduplication</li>
<li>Ease of restoring</li>
<li>Support for backing up Linux and Windows machines</li>
</ol>
<p><b>Deduplicating Filesystems for Local Storage</b></p>
<p>Although I initially thought of block-level deduplicating file systems as something to use for offsite backups, they could also make an excellent choice for onsite disk-based backups.</p>
<p><u>rsync-based dedup backups</u></p>
<p>One way to use them would be to simply rsync data to them each night.  Since copies are essentially free, we could do (or use some optimized version of) cp -r current snapshot/2011-01-20 or some such to save off historic backups.  Moreover, we&#8217;d get dedup both across and within machines.  And, many of these can use filesystem-level compression.</p>
<p>The real upshot of this is that the entire history of the backups can be browsed as a mounted filesystem.  It would be fast and easy to find files, especially when users call about that file that they deleted at some point in the past but they don&#8217;t remember when, exactly what it was called, or exactly where it was stored.  We can do a lot more with find and grep to locate these things than we could do with tools in Bacula (or any other backup program) restore console.  Since it is a real mounted filesystem, we could also do fun things like make tarballs of it at will, zip parts up, scp them back to the file server, whatever.  We could potentially even give users direct access to their files to restore things they need for themselves.</p>
<p>The downside of this approach is that rsync can&#8217;t store all the permissions unless it&#8217;s running as root on the system.  Wrappers such as rdup around rsync could help with that.  Another downside is that there isn&#8217;t a central scheduling/statistics service.  We wouldn&#8217;t want the backup system to be hammered by 20 servers trying to send it data at once.  So there&#8217;d be an element of rolling our own scripts, though not too bad.  I&#8217;d have preferred not to authorize a backup server with root-level access to dozens of machines, but may be inescapable in this instance.</p>
<p><u>Bacula and dedup</u></p>
<p>The other alternative I thought of system such as Bacula with disk-based &#8220;volumes&#8221;.  A Bacula volume is normally a tape, but Bacula can just write them to disk files.  This lets us use the powerful Bacula scheduling engine, logging service, pre-backup and post-backup jobs, etc.  Normally this would be an egregious waste of disk space.  Bacula, like most tape-heritage programs, will write out an entire new copy of a file if even one byte changes.  I had thought that I could let block-level dedupe reduce the storage size of Bacula volumes, but after looking at the <a href="http://bacula.org/5.0.x-manuals/en/developers/developers/Definitions.html">Bacula block format spec</a>, this won&#8217;t be possible as each block will have timestamps and such in it.</p>
<p>The good things about this setup revolve around using the central Bacula director.  We need only install bacula-fd on each server to be backed up, and it has a fairly limited set of things it can do.  Bacula already has built-in support for defining simple or complicated retention policies.  Its director will email us if there is a problem with anything.  And its logs and catalog are already extensive and enable us to easily find out things such as how long backups take, how much space they consume, etc.  And it backs up Windows machines intelligently and comprehensively in addition to POSIX ones.</p>
<p>The downsides are, of course, that we don&#8217;t have all the features we&#8217;d get from having the entire history on the filesystem all at once, and far less efficient use of space.  Not only that, but recovering from a disaster would require a more extensive bootstrapping process.</p>
<p>A hybrid option may be possible: automatically unpacking bacula backups after they&#8217;ve run onto the local filesystem.  Dedupe should ensure this doesn&#8217;t take additional space &#8212; if the Bacula blocksize aligns with the filesystem blocksize.  This is certainly not a given however.  It may also make sense to use Bacula for Windows and rsync/rdup for Linux systems.</p>
<p>This seems, however, rather wasteful and useless.</p>
<p><b>Evaluation of deduplicating filesystems</b></p>
<p>I set up and tested three deduplicating filesystems available for Linux: S3QL, SDFS, and zfs-fuse.  I did not examine lessfs.  I ran a similar set of tests for each:</p>
<ol>
<li>Copy /usr/bin into the fs with <code>tar -cpf - /usr/bin | tar -xvpf - -C /mnt/testfs</code></li>
<li>Run commands to sync/flush the disk cache.  Evaluate time and disk used at this point.</li>
<li>Rerun the tar command, putting the contents into a slightly different path in the test filesystem.  This should consume very little additional space since the files will have already been there.  This will validate that dedupe works as expected, and provide a hint about its efficiency.</li>
<li>Make a tarball of both directories from the dedup filesystem, writing it to /dev/zero (to test read performance)</li>
</ol>
<p>I did not attempt to flush read caches during this, but I did flush write caches.  The test system has 8GB RAM, 5GB of which was free or in use by a cache.  The CPU is a Core2 6420 at 2.13GHz.  The filesystems which created files atop an existing filesystem had ext4 mounted noatime beneath them.  ZFS was mounted on an LVM LV.  I also benchmarked native performance on ext4 as a baseline.  The data set consists of 3232 files and 516MB.  It contains hardlinks and symlinks.</p>
<p>Here are my results.  Please note the comments below as SDFS could not accurately complete the test.</p>
<table>
<tr>
<th>Test</th>
<th>ext4</th>
<th>S3QL</th>
<th>SDFS</th>
<th>zfs-fuse</th>
</tr>
<tr>
<td>First copy</td>
<td>1.59s</td>
<td>6m20s</td>
<td>2m2s</td>
<td>0m25s</td>
</tr>
<tr>
<td>Sync/Flush</td>
<td>8.0s</td>
<td>1m1s</td>
<td>0s</td>
<td>0s</td>
</tr>
<tr>
<td>Second copy+sync</td>
<td>N/A</td>
<td>0m48s</td>
<td>1m48s</td>
<td>0m24s</td>
</tr>
<tr>
<td>Disk usage after 1st copy</td>
<td>516MB</td>
<td>156MB</td>
<td>791MB</td>
<td>201MB</td>
</tr>
<tr>
<td>Disk usage after 2nd copy</td>
<td>N/A</td>
<td>157MB</td>
<td>823MB</td>
<td>208MB</td>
</tr>
<tr>
<td>Make tarball</td>
<td>0.2s</td>
<td>1m1s</td>
<td>2m22s</td>
<td>0m54s</td>
</tr>
<tr>
<td>Max RAM usage</td>
<td>N/A</td>
<td>150MB</td>
<td>350MB</td>
<td>153MB</td>
</tr>
<tr>
<td>Compression</td>
<td>none</td>
<td>lzma</td>
<td>none</td>
<td>gzip-2</td>
</tr>
</table>
<p>It should be mentioned that these tests pretty much ruled out SDFS.  SDFS doesn&#8217;t appear to support local compression, and it severely bloated the data store, which was much larger than the original data.  Moreover, it permitted any user to create and modify files, even if the permissions bits said that the user couldn&#8217;t.  tar gave many errors unpacking symlinks onto the SDFS filesystem, and du -s on the result threw up errors as well.  Besides that, I noted that <a href="https://groups.google.com/group/dedupfilesystem-sdfs-user-discuss/browse_thread/thread/77a0fe63eb0a5d50">find found 10 fewer files than in my source data</a>.  Between the huge memory consumption, the data integrity concerns, and inefficient disk storage, SDFS is out of the running for this project.</p>
<p>S3QL is optimized for storage to S3, though it can also store its files locally or on an sftp server &#8212; a nice touch.  I suspect part of its performance problem stems from being designed for network backends, and using slow compression algorithms.  S3QL worked fine, however, and produced no problems.  Creating a checkpoint using s3qlcp (faster than cp since it doesn&#8217;t have to read the data from the store) took 16s.</p>
<p>zfs-fuse appears to be the most-used ZFS implementation on Linux at the moment.  I set up a 2GB ZFS pool for this test, and set dedupe=on and compress=gzip-2.  When I <a href="http://changelog.complete.org/archives/931-how-to-think-about-compression-part-2">evaluated compression</a> in the past, I hadn&#8217;t looked at lzjb.  I found a blog post <a href="http://don.blogs.smugmug.com/2008/10/13/zfs-mysqlinnodb-compression-update/">comparing lzjb to the gzip options supported by zfs</a> and wound up using gzip-2 for this test.</p>
<p>ZFS really shone here.  Compared to S3QL, it took 25s instead of over 6 minutes to copy the data over &#8212; and took only 28% more space.  I suspect that if I selected gzip -9 compression it would have been closer both in time and space to S3QL.  But creating a ZFS snapshot was nearly instantaneous.  Although ZFS-fuse probably doesn&#8217;t have as many users as ZFS on Solaris, still it is available in Debian, and has a good backing behind it.  I feel safer using it than I do using S3QL.  So I think ZFS wins this comparison.</p>
<p>I spent quite some time testing ZFS snapshots, which are instantaneous.  (Incidentally, ZFS-fuse can&#8217;t mount them directly as documented, so you create a clone of the snapshot and mount that.)  They worked out as well as could be hoped.  Due to dedupe, even deleting and recreating the entire content of the original filesystem resulted in less than 1MB additional storage used.  I also tested creating multiple filesystems in the zpool, and confirmed that dedupe even works between filesystems.</p>
<p>Incidentally &#8212; wow, ZFS has a ton of awesome features.  I see why you OpenSolaris people kept looking at us Linux folks with a sneer now.  Only our project hasn&#8217;t been killed by a new corporate overlord, so guess that maybe didn&#8217;t work out so well for you&#8230; &lt;grin&gt;.</p>
<p><b>The Cloud Tie-In</b></p>
<p>This discussion leaves another discussion: what to do about offsite backups?  Assuming for the moment that I want to back them up over the Internet to some sort of cloud storage facility, there are about 3 options:</p>
<ol>
<li>Get an Amazon EC2 instance with EBS storage and rsync files to it.  Perhaps run ZFS on that thing.</li>
<li>Use a filesystem that can efficiently store data in S3 or Cloud Files (S3QL is the only contender here)</li>
<li>Use a third-party backup product (JungleDisk appears to be the leading option)</li>
</ol>
<p>There is something to be said for using a different tool for offsite backups &#8212; if there is some tool-level issue, that could be helpful.</p>
<p>One of the nice things about JungleDisk is that bandwidth is free, and disk is the same $0.15/GB-mo that RackSpace normally charges.  JungleDisk also does block-level dedup, and has a central management interface.  This all spells &#8220;nice&#8221; for us.</p>
<p>The only remaining question would be whether to just use JungleDisk to back up the backup server, or to put it on each individual machine as well.  If it just backs up the backup server, then administrative burdens are lower; we can back everything there up by default and just not worry about it.  On the other hand, if there is a problem with our main backups, we could be really stuck.  So I&#8217;d say I&#8217;m leaning towards ZFS plus some sort of rsync solution and JungleDisk for offsite.</p>
<p>I had two people suggest CrashPlan Pro on my blog.  It looks interesting, but is a very closed product which makes me nervous.  I like using standard tools and formats &#8212; gives me more peace of mind, control, and recovery options.  CrashPlan Pro supports multiple destinations and says that they do cloud hosting, but don&#8217;t list pricing anywhere.  So I&#8217;ll probably not mess with it.</p>
<p>I&#8217;m still very interested in what comments people may have on all this.  Let me know!</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/5547-research-on-deduplicating-disk-based-and-cloud-backups/feed</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Wikis, Amateur Radio, and Debian</title>
		<link>http://changelog.complete.org/archives/5496-wikis-amateur-radio-and-debian</link>
		<comments>http://changelog.complete.org/archives/5496-wikis-amateur-radio-and-debian#comments</comments>
		<pubDate>Mon, 03 Jan 2011 23:43:51 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>

		<guid isPermaLink="false">http://changelog.complete.org/?p=5496</guid>
		<description><![CDATA[As I have been getting involved with amateur radio this year, I&#8217;ve been taking notes on what I&#8217;m learning about certain things: tips from people on rigging up a bicycle antenna to achieve a 40-mile range, setting up packet radio in Linux, etc. I have long run a personal, private wiki where I put such [...]]]></description>
			<content:encoded><![CDATA[<p>As I have been getting involved with amateur radio this year, I&#8217;ve been taking notes on what I&#8217;m learning about certain things: tips from people on rigging up a bicycle antenna to achieve a 40-mile range, setting up packet radio in Linux, etc.  I have long run a <a href="http://changelog.complete.org/archives/1182-moinmoin-as-a-personal-wiki-zen-to-done-and-a-bit-of-ikiwiki">personal, private wiki</a> where I put such things.</p>
<p>But I really wanted a convenient place to put this stuff in public.  There was no reason to keep it private.  In fact, I wanted to share with others what I&#8217;ve learned.  And, as I wanted to let others add their tips if they wish, I set up a public MoinMoin instance on <a href="http://wiki.complete.org/"wiki.complete.org</a>.  So far, most of my attention has focused on the <a href="http://wiki.complete.org/AmateurRadio">amateur radio</a> section of it</p>
<p>This has worked out pretty well for me.  Sometimes I will cut and paste tips from emails into there, and then after trying them out, edit them into a more coherent summary based on my experiences.</p>
<p>Now then, on to packet radio and Debian.  <a href="http://wiki.complete.org/PacketRadio">Packet radio</a> is a digital communications mode that runs on the amateur radio bands.  It is a routable, networking protocol that typically runs at 300bps, 1200bps, and 9600bps.  My <a href="http://wiki.complete.org/PacketRadio">packet radio</a> page gives a better background on it, but essentially AX.25 &#8212; the packet protocol &#8212; is similar to a scaled-down TCP/IP.  One interesting thing about packet is that, since it can use the HF bands, can have direct transcontinental wireless links.  More common are links spanning 30-50 miles on VHF and UHF, as well as those going across a continent on HF.</p>
<p>Linux is the only operating system I know of that has AX.25 integrated as a first-class protocol in the kernel.  You can create AX.25 sockets and use them with the APIs you&#8217;re familiar with already.  Not only that, but the Linux AX.25 stack is probably the best there is, and it interfaces easily with TCP/IP &#8212; there are global standards for encapsulating TCP/IP within AX.25 and AX.25 within UDP, and both are supported on Linux.  Yes, I have telnetted to a machine to work on it over VHF.  Of Linux distributions, Debian appears to have the best AX.25 stack built-in.</p>
<p>The AX.25 support in Linux is great, but it&#8217;s rather under-documented.  So I set up a page for <a href="http://wiki.complete.org/LinuxPacketRadio">packet radio on Linux</a>.  I&#8217;ve had a great deal of fun with this.  It&#8217;s amazing what you can do running a real networking protocol at 300bps over long-distance radio.  I&#8217;ve had real-time conversations with people, connected to their personal BBS and sent them mail, and even use AX.25 &#8220;nodes&#8221; (think of them as a kind of router or bridge; you can connect in to them and the connect back out on the same or different frequencies to extend your reach) to connect out to systems that I can&#8217;t reach directly.</p>
<p>MoinMoin has worked out well for this.  It has an inviting theme and newbie-friendly interface (I want to encourage drive-by contributions).</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/5496-wikis-amateur-radio-and-debian/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Jacob: 4 Years Old, and Troubleshooting PCs</title>
		<link>http://changelog.complete.org/archives/5451-jacob-4-years-old-and-troubleshooting-pcs</link>
		<comments>http://changelog.complete.org/archives/5451-jacob-4-years-old-and-troubleshooting-pcs#comments</comments>
		<pubDate>Mon, 13 Dec 2010 03:56:34 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Family]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://changelog.complete.org/?p=5451</guid>
		<description><![CDATA[Back in April, I wrote about Jacob and I building his first computer together and how it&#8217;s running just the Linux command-line interface &#8212; no graphics at all. And he loves it. Well, as is often the case with him, his interest in various things waxes and wanes over time. He hadn&#8217;t spent much time [...]]]></description>
			<content:encoded><![CDATA[<p>Back in April, I wrote about <a href="http://changelog.complete.org/archives/1448-introducing-the-command-line-at-3-years">Jacob and I building his first computer together</a> and how it&#8217;s running just the Linux command-line interface &#8212; no graphics at all.  And he <a href="http://changelog.complete.org/archives/1451-jacob-has-a-new-computer-and-a-favorite-shell">loves it</a>.</p>
<p>Well, as is often the case with him, his interest in various things waxes and wanes over time.  He hadn&#8217;t spent much time with his computer lately, until I suggested he try it one day.  He did, and rediscovered sl (a simple program that draws an animated steam locomotive using ASCII characters) again.  I showed him how to string sl commands together with the semicolon to get lots of trains, and he loved that.</p>
<p>Since then, he&#8217;s discovered that the up arrow accesses bash history and saves him typing.</p>
<p>But more impressive, the other day while I was at work, he was playing with his computer and it looked to him like it had locked up.  (I believe he had hit Scroll Lock from talking with Terah.)  He was fussy and bothered by that, but then decided he could fix it.  He pushed to power button to turn it off, waited for it to shut down, then turned it back on.  And logged himself back in.  And got right back to his steam locomotives.  I run Linux, so he had never been exposed to a power cycle as a troubleshooting mechanism.</p>
<p>You&#8217;re looking at one very impressed dad.  And perhaps another future Debian developer?</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/5451-jacob-4-years-old-and-troubleshooting-pcs/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Debconf10</title>
		<link>http://changelog.complete.org/archives/1887-debconf10</link>
		<comments>http://changelog.complete.org/archives/1887-debconf10#comments</comments>
		<pubDate>Mon, 16 Aug 2010 16:38:31 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[debconf10]]></category>

		<guid isPermaLink="false">http://changelog.complete.org/?p=1887</guid>
		<description><![CDATA[Debconf10 ended a week ago, and I&#8217;m only now finding some time to write about it. Funny how it works that way sometimes. Anyhow, the summary of Debconf has to be: this is one amazing conference. Despite being involved with Debian for years, this was my first Debconf. I often go to one conference a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://debconf10.debconf.org/">Debconf10</a> ended a week ago, and I&#8217;m only now finding some time to write about it.  Funny how it works that way sometimes.</p>
<p>Anyhow, the summary of Debconf has to be: this is one amazing conference.  Despite being involved with Debian for years, this was my first Debconf.  I often go to one conference a year that my employer sends me to.  In the past, it&#8217;s often been OSCon, which was very good, but Debconf was much better than that even.  For those of you considering Debconf11 next year, perhaps this post will help you make your decision.</p>
<p>First of all, as might be expected from a technical conference, Debconf was of course informative.  I particularly appreciated the enterprise track, which was very relevant to me.  Unlike many other conferences, Debconf has some rooms specifically set aside for BoFs.  With a day or two warning, you can get your event in one of those rooms on the official schedule.  That exact thing happened with a virtualization BoF &#8212; I thought the topic was interesting, given the recent shifts in various virtualization options.  So I emailed the conference mailing list, and we got an event on the schedule a short while later &#8212; and had a fairly large group turn out to discuss it.</p>
<p>The &#8220;hallway track&#8221; &#8212; conversations struck up with others in hallways or hacklabs &#8212; also was better at Debconf than other conferences.  Partly that may be because, although there were fewer people at Debconf, they very much tended to be technical people whose interests aligned with my own.  Partly it&#8217;s probably also because the keysigning party, which went throughout the conference, encouraged meeting random people.  That was a great success, by the way.</p>
<p>So Debconf succeeded at informing, which is perhaps why many people go to these things.  But it also inspired, especially Eben Moglen&#8217;s lecture.  Who would have thought I&#8217;d come away from a conference enthused about the very real potential we have to alter the dynamics of some of the largest companies in the world today by using Free Software to it&#8217;s greatest potential?</p>
<p>And, of course, I had fun at Debconf.  Meeting new people &#8212; or, more commonly, finally meeting in person people I&#8217;d known for years &#8212; was great.  I got a real sense of the tremendously positive aspect of Debian&#8217;s community, which I must admit I have sometimes overlooked during certain mailing list discussions.  This was a community of people, not just a bunch of folks attending a random conference for a week, and that point underlined a lot of things that happened.</p>
<p>Of course, it wasn&#8217;t 100% perfect, and it won&#8217;t ever be.  But still, my thanks to everyone that organized, volunteered, and attended Debconf.  I&#8217;m now wishing I&#8217;d been to more of them, and hope to attend next year&#8217;s.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/1887-debconf10/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Debconf Thanks</title>
		<link>http://changelog.complete.org/archives/1543-a-debconf-thanks</link>
		<comments>http://changelog.complete.org/archives/1543-a-debconf-thanks#comments</comments>
		<pubDate>Thu, 12 Aug 2010 03:20:18 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Family]]></category>
		<category><![CDATA[debconf10]]></category>
		<category><![CDATA[nyc]]></category>

		<guid isPermaLink="false">http://changelog.complete.org/?p=1543</guid>
		<description><![CDATA[There was something at Debconf10 in NYC that I owe a huge thank-you to the entire community for. I was completely surprised at how many people made a point to say hi to me, comment that they liked reading about my blog, and encouraged me to keep posting. It was dozens for sure. I had [...]]]></description>
			<content:encoded><![CDATA[<p>There was something at Debconf10 in NYC that I owe a huge thank-you to the entire community for.</p>
<p>I was completely surprised at how many people made a point to say hi to me, comment that they liked reading about my blog, and encouraged me to keep posting.  It was dozens for sure.</p>
<p>I had never really thought that many people took much of an interest in what was, to me, some sort of cross between a journal and a way for family to stay in touch.  I deeply appreciate all the encouragement, and the welcome that was extended to Terah, Jacob, and Oliver when they were present at Debconf events a few times.</p>
<p>Thank you so much to all my Debian friends I got to talk to at Debconf.  It was a wonderful week and I hope to see you all again before too long.  I am happy to be a part of this community.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/1543-a-debconf-thanks/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Best Place of Ever</title>
		<link>http://changelog.complete.org/archives/1525-the-best-place-of-ever</link>
		<comments>http://changelog.complete.org/archives/1525-the-best-place-of-ever#comments</comments>
		<pubDate>Mon, 02 Aug 2010 03:29:41 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Family]]></category>
		<category><![CDATA[debconf10]]></category>
		<category><![CDATA[jacob]]></category>
		<category><![CDATA[train]]></category>

		<guid isPermaLink="false">http://changelog.complete.org/?p=1525</guid>
		<description><![CDATA[Jacob and Oliver have enjoyed our recent train trip, and our stay, from Kansas to New York City for Debconf. All told, that&#8217;s a 40-hour trip, including the layover in Chicago. When we got on the train, in the middle of the night as usual, Jacob couldn&#8217;t stop chattering about how &#8220;great&#8221;, &#8220;fun&#8221;, and &#8220;exciting&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>Jacob and Oliver have enjoyed our recent train trip, and our stay, from Kansas to New York City for Debconf.  All told, that&#8217;s a 40-hour trip, including the layover in Chicago.</p>
<p>When we got on the train, in the middle of the night as usual, Jacob couldn&#8217;t stop chattering about how &#8220;great&#8221;, &#8220;fun&#8221;, and &#8220;exciting&#8221; it is.  He told us about all the lots of great things on the train, the fact that we were on a &#8220;night train&#8221;, and generally couldn&#8217;t stop chattering.  For an hour.  At 3:30AM.</p>
<p>This was a typical sight from Jacob:</p>
<p><a href="http://www.flickr.com/photos/jgoerzen/4852010074/" title="IMG_4284 by prairiecode, on Flickr"><img src="http://farm5.static.flickr.com/4073/4852010074_cc049d7515.jpg" width="333" height="500" alt="IMG_4284" /></a></p>
<p>It wasn&#8217;t as relaxing as usual for Terah and me.  Oliver is at the &#8220;grabbing everything in sight&#8221; stage.  Which worked fine when Jacob was at the age, but with Jacob also along it was a bit more difficult to manage.  I suspect that our next trip, when Oliver is a few months older, will go easier.</p>
<p>A highlight for both boys, as usual, is the dining car.  Oliver loves anything related to eating solid food &#8212; it&#8217;s still novel to him &#8212; and Jacob loves anything relating to trains.  What could go wrong?  (Parents will probably identify the capability for two hyper-excited young boys to have plenty of things go wrong at a table in a restaurant here&#8230;  fortunately we didn&#8217;t have anything go terribly wrong.)</p>
<p>Oliver turned out to find the things outside the window to require intense concentration &#8212; intense enough to stick out his tongue while he worked it all out.</p>
<p><a href="http://www.flickr.com/photos/jgoerzen/4852005252/" title="IMG_4296 by prairiecode, on Flickr"><img src="http://farm5.static.flickr.com/4119/4852005252_31dde57bb5.jpg" width="500" height="333" alt="IMG_4296" /></a></p>
<p>And Jacob, of course, wanted to get the wrapper off his straw by himself.  Which he can do, but takes a minute.</p>
<p><a href="http://www.flickr.com/photos/jgoerzen/4852000226/" title="IMG_4305 by prairiecode, on Flickr"><img src="http://farm5.static.flickr.com/4135/4852000226_1c0b5f7f17.jpg" width="500" height="333" alt="IMG_4305" /></a></p>
<p>They also enjoyed the lounge car.</p>
<p><a href="http://www.flickr.com/photos/jgoerzen/4852006752/" title="IMG_4292 by prairiecode, on Flickr"><img src="http://farm5.static.flickr.com/4097/4852006752_9edde5eac0.jpg" width="500" height="333" alt="IMG_4292" /></a></p>
<p>We were in a sleeper room on both trains.  That was nice, and when we needed to go &#8220;explore&#8221;, we could.  Jacob&#8217;s favorite part of the trip was when I folded down the upper bunk during the day for him to play.  I pointed out that it was like a &#8220;train treehouse.&#8221;  His face sure lit up.  He loved that he had his own window up there to look out of.  He climbed up the ladder, and after awhile of playing, said, &#8220;Dad, would you like to play with me up here?&#8221;  Of course I would &#8212; it always makes me happy when he asks if I want to play with him.</p>
<p>As I was playing with him, I asked him if he was having fun in his train treehouse.  He gave me a sweet smile, and said, &#8220;Dad, this is the best place of ever!&#8221;</p>
<p><a href="http://www.flickr.com/photos/jgoerzen/4851377271/" title="IMG_4321 by prairiecode, on Flickr"><img src="http://farm5.static.flickr.com/4073/4851377271_747be7bb09.jpg" width="500" height="333" alt="IMG_4321" /></a></p>
<p>In Chicago, Jacob and I went outside and walked around.  He enjoyed walking across the bridges over the canal by Union Station.  I checked some work email when we got back, tried but failed to reach some local hams with my handheld, and then we got on the train for New York.</p>
<p>The boys loved it too, and Jacob was very ready to be in New York when we got there.  We got out at Penn Station &#8212; which was, I think, pretty much what my mind had imagined of an underground station robbed of its former glory (especially having been in that part of Chicago Union Station).  We found the connection to the 2 train uptown, bought some MetroCards for the subway, and got on.  Jacob was very interested in the subway.  He sat very, very still &#8212; I thought he was scared &#8212; but on asking him some questions, realized that he was just very interested and engrossed in it all.</p>
<p>I had been trying out my HF antenna for my amateur radio setup a few days ago, and by some coincidence, kept making contact with people that grew up in New York.  A guy from Fargo, ND &#8212; a native of Brooklyn &#8212; told me to make sure to get pretzels from a hot sauce vendor, Pastrami on rye or corned beef on rye from a Jewish deli (because they have the best meat), pizza from guys wearing red and white shirts, and don&#8217;t be afraid of rats on the subway tracks, and that our boys will love to feed leftover bits of pretzels to pigeons and squirrels.  He got so excited about NYC that he went on and on, saying, &#8220;Man, you&#8217;re making me hungry now.&#8221;</p>
<p>During times I&#8217;m not at sessions at Debconf, we&#8217;ve found some time to do some things as a family.  We went to Grand Central Terminal, just to see it &#8212; it is indeed still Grand.  I knew there was a Jewish deli there, so I thought &#8212; hey &#8212; try out his advice.  It was closed, and when I realized it was Saturday, I realized why.  Oops.  We hopped on another train to Brooklyn and checked out the <a href="http://www.mta.info/mta/museum/">New York Transit Museum</a>, which is great and has a lot of exhibits about the history of the city&#8217;s subway and bus systems.  It&#8217;s housed in a former subway station, and they have a lot of old subway cars down there dating back to 1905 &#8212; most of which are open to go inside of.</p>
<p>It&#8217;s been nice to meet people at Debconf that I have only known via email or IRC.  The organizers of this conference have done a fabulous job.  I have every expectation that this will turn out to be the best conference I&#8217;ve been to in at least 12 years &#8212; this is my first Debconf.  It doesn&#8217;t skimp on the technical details, people are friendly, and there is a sense of common purpose.  But just as important, while there is a set schedule, there is an easy way to add other ad-hoc sessions to the conference schedule.  People can get together a group interested in a topic, and schedule an event about it for the next day very easily.  I&#8217;m quite impressed by that, and am looking forward to the virtualization discussion that grew out of a question to the mailing list.</p>
<p>It was also neat to meet people that sort of knew our family from my blog posts.  I had no idea that there were all that many people that actually read these things ;-)</p>
<p>The Debconf kick-off was great.  As I was walking across the campus of Columbia towards it, it was a nice temperature, with some light rain, and I heard bagpipes in the distance.  Beautiful.  And when I left after the evening sessions, I still heard bagpipes.  So I went to check it out, and ran into <a href="http://www.gabriellacoleman.org/blog/">Gabriella Coleman</a>, one of the Debconf organizers &#8212; and the person that gave the talk I just left &#8212; on the way, with the same idea.  The Columbia campus is beautiful and historic, and it is an excellent venue for the conference.</p>
<p>New York is a great city and I&#8217;m sure we&#8217;ll be back.  It is great to walk out of the hotel in the morning, buy a fresh peach or two from the street vendor 20 feet away, and then go buy a roll or two ($0.75 each) from the bakery down the street.  I have been so missing rolls like that since we got back from Germany in March.  These weren&#8217;t quite like the German bakeries, but the closest I&#8217;ve had to it.</p>
<p>It is interesting to note how differently people from different places look at things.  Terah has told several people how we live 6 miles from a town with 500 people in it, and people that stop to think about it realize how different it is from New York.  It was a surprise to me to hear that some New Yorkers think of Columbia as &#8220;country&#8221;.  It is beautifully landscaped, and feels different than the rest of the city.</p>
<p>The numbers I&#8217;ve seen suggest that a typical fall weekday has more people on the Columbia campus than in the entire county where we live.  And that county is twice the size of New York City.</p>
<p>That&#8217;s not to say that there&#8217;s anything wrong with New Yorkers thinking of it as country, any more than there is of me thinking of a town with 15,000 people as a pretty big town.  It&#8217;s a different perspective, and I enjoy different perspectives &#8212; which is another thing I like about Debconf.  There are so many people from all over the world there that different perspectives are inevitable.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/1525-the-best-place-of-ever/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Jacob has a new computer &#8212; and a favorite shell</title>
		<link>http://changelog.complete.org/archives/1451-jacob-has-a-new-computer-and-a-favorite-shell</link>
		<comments>http://changelog.complete.org/archives/1451-jacob-has-a-new-computer-and-a-favorite-shell#comments</comments>
		<pubDate>Sat, 10 Apr 2010 02:17:33 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Family]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[jacob]]></category>

		<guid isPermaLink="false">http://changelog.complete.org/?p=1451</guid>
		<description><![CDATA[Earlier today, I wrote about building a computer with Jacob, our 3.5-year-old, and setting him up with a Linux shell. We did that this evening, and wow &#8212; he loves it. While the Debian Installer was running, he kept begging to type, so I taught him how to hit Alt-F2 and fired up cat for [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier today, I <a href="http://changelog.complete.org/archives/1448-introducing-the-command-line-at-3-years">wrote about building a computer with Jacob</a>, our 3.5-year-old, and setting him up with a Linux shell.</p>
<p>We did that this evening, and wow &#8212; he loves it.  While the Debian Installer was running, he kept begging to type, so I taught him how to hit Alt-F2 and fired up cat for him.  That was a lot of fun.  But even more fun was had once the system was set up.  I installed bsdgames and taught him how to use worm.  worm is a simple snake-like game where you use the arrow keys to &#8220;eat&#8221; the numbers.  That was a big hit, as Jacob likes numbers right now.  He watched me play it a time or two, then tried it himself.  Of course he crashed into the wall pretty quickly, which exits the game.</p>
<p>I taught him how to type &#8220;worm&#8221; at the computer, then press Enter to start it again.  Suffice it to say he now knows how to spell worm very well.  Yes, that&#8217;s right: Jacob&#8217;s first ever Unix command was&#8230;. worm.</p>
<p>He&#8217;d play the game, and cackle if he managed to eat a number.  If he crashed into a wall, he&#8217;d laugh much harder and run over to the other side of the room.</p>
<p>Much as worm was a hit, the Linux shell was even more fun.  He sometimes has a problem with the keyboard repeat, and one time typed &#8220;worrrrrrrrrrrrrrrrrrm&#8221;.  I tried to pronounce that for him, which he thought was hilarious.  He was about to backspace to fix it, when I asked, &#8220;Jacob, what will happen if you press Enter without fixing it?&#8221;  He looked at me with this look of wonder and excitement, as if to say, &#8220;Hey, I never thought of that.  Let&#8217;s see!&#8221;  And a second later, he pressed Enter.</p>
<p>The result, of course, was:</p>
<p>-bash: worrrrrrrrrrrrrrrrrrm: command not found</p>
<p>&#8220;Dad, what did it do?&#8221;</p>
<p>I read the text back, and told him it means that the computer doesn&#8217;t know what worrrrrrrrrrrrrrrrrrm means.  Much laughter.  At that point, it became a game.  He&#8217;d bang at random letters, and finally press Enter.  I&#8217;d read what it said.  Pretty soon he was recognizing the word &#8220;bash&#8221;, and I heard one time, &#8220;Dad, it said BASH again!!!&#8221;  Sometimes if he&#8217;d get semicolons at the right place, he&#8217;d get two or three &#8220;bashes&#8221;.  That was always an exciting surprise.  He had more fun at the command line than he did with worm, and I think at least half of it was because the shell was called bash.</p>
<p>He took somewhat of an interest in the hardware part earlier in the evening, though not quite as much.  He was interested in opening up other computers to take parts out of them, but bored quickly.  The fact that Terah was cooking supper probably had something to do with that.  He really enjoyed the motherboard (and learned that word), and especially the CPU fan.  He loved to spin it with his finger.  He thought it interesting that there would be a fan inside his computer.</p>
<p>When it came time to assign a hostname, I told Jacob he could name his computer.  Initially he was confused.  Terah suggested he could name it &#8220;kitty&#8221;, but he didn&#8217;t go for it.  After a minute&#8217;s thought, he said, &#8220;I will name it &#8216;Grandma Marla.&#8217;&#8221;  Confusion from us &#8212; did he really understand what he was saying?  &#8220;You want to name your computer &#8216;Grandma Marla?&#8217;&#8221;  &#8220;Yep.  That will be silly!&#8221;  &#8220;Sure you don&#8217;t want to name it Thomas?&#8221;  &#8220;That would be silly!  No.  I will name my computer &#8216;Grandma Marla.&#8221;"  OK then.  My DNS now has an entry for grandma-marla.  I had wondered what he would come up with.  You never know with a 3-year-old!</p>
<p>It was a lot of fun to see that sense of wonder and experimentation at work.  I remember it from the TRS-80 and DOS machine, when I would just try random things to see what they would do.  It is lots of fun to watch it in Jacob too, and hear the laughter as he discovers something amusing.</p>
<p>We let Jacob stay up 2 hours past his bedtime to enjoy all the excitement.  Tomorrow the computer moves to his room.  Should be loads of excitement then too.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/1451-jacob-has-a-new-computer-and-a-favorite-shell/feed</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>Introducing the Command Line at 3 years</title>
		<link>http://changelog.complete.org/archives/1448-introducing-the-command-line-at-3-years</link>
		<comments>http://changelog.complete.org/archives/1448-introducing-the-command-line-at-3-years#comments</comments>
		<pubDate>Fri, 09 Apr 2010 16:58:26 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Family]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[jacob]]></category>

		<guid isPermaLink="false">http://changelog.complete.org/?p=1448</guid>
		<description><![CDATA[Jacob is very interested in how things work. He&#8217;s 3.5 years old, and into everything. He loves to look at propane tanks, as the pressure meter, and open the lids on top to see the vent underneath. Last night, I showed him our electric meter and the spinning disc inside it. And, more importantly, last [...]]]></description>
			<content:encoded><![CDATA[<p>Jacob is very interested in how things work.  He&#8217;s 3.5 years old, and into everything.  He loves to look at propane tanks, as the pressure meter, and open the lids on top to see the vent underneath.  Last night, I showed him our electric meter and the spinning disc inside it.</p>
<p>And, more importantly, last night I introduced him to the Linux command line interface, which I called the &#8220;black screen.&#8221;  Now, Jacob can&#8217;t read yet, though he does know his letters.  He had a lot of fun sort of exploring the system.</p>
<p>I ran &#8220;cat&#8221;, which will simply let him bash on the keyboard, and whenever he presses Enter, will echo what he typed back at him.  I taught him how to hold Shift and press a number key to get a fun symbol.  His favorite is the &#8220;hat&#8221; above the 6.</p>
<p>Then I ran tr a-z A-Z for him, and he got to watch the computer convert every lowercase letter into an uppercase letter.</p>
<p>Despite the fact that Jacob enjoys watching Youtube videos of trains and even a bit of Railroad Tycoon 3 with me, this was some pure exploration that he loves.  Sometimes he&#8217;d say, &#8220;Dad, what will this key do?&#8221;  Sometimes I didn&#8217;t know; some media keys did nothing, and some other keys caused weird things to appear.  My keyboard has back and forward buttons designed to use with a web browser.  He almost squealed with delight when he pressed the forward button and noticed it printed lots of ^@^@^@ characters on the screen when he held it down.  &#8220;DAD!  It makes LOTS of little hats!  And what is that other thing?&#8221;  (The at-sign).</p>
<p>I&#8217;ve decided it&#8217;s time to build a computer for Jacob.  I have an old Sempron motherboard lying around, and an old 9&#8243; black-and-white VGA CRT that&#8217;s pretty much indestructible, plus an old case or two.  So it will cost nothing.  This evening, Jacob will help me find the parts, and then he can help me assemble them all.  (This should be interesting.)</p>
<p>Then I&#8217;ll install Debian while he sleeps, and by tomorrow he should be able to run cat all by himself.  I think that, within a few days, he can probably remember how to log himself in and fire up a program or two without help.</p>
<p>I&#8217;m looking for suggestions for text-mode games appropriate to a 3-year-old.  So far, I&#8217;ve found worm from bsdgames that looks good.  It doesn&#8217;t require him to have quick reflexes or to read anything, and I think he&#8217;ll pick up using the arrow keys to move it just fine.  I think that tetris is probably still a bit much, but maybe after he&#8217;s had enough of worm he would enjoy trying it.</p>
<p>I was asked on Twitter why I&#8217;ll be using the command line for him.  There are a few reasons.  One is that it will actually be usable on the 9&#8243; screen, but another one is that it will expose the computer at a different level than a GUI would.  He will inevitably learn about GUIs, but learning about a CLI isn&#8217;t inevitable.  He won&#8217;t have to master coordination with a mouse right away, and there&#8217;s pretty much no way he can screw it up.  (No, I won&#8217;t be giving him root yet!)  Finally, it&#8217;s new and different to him, so he&#8217;s interested in it right now.</p>
<p>My first computer was a TRS-80 Color Computer (CoCo) II.  Its primary interface, a BASIC interpreter, I guess counts as a command-line interface.  I remember learning how to use that, and later DOS on a PC.  Some of the games and software back then had no documentation and crashed often.  Part of the fun, the challenge, and sometimes the frustration, was figuring out just what a program was supposed to do and how to use it.  It will be fun to see what Jacob figures out.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/1448-introducing-the-command-line-at-3-years/feed</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>Server upgraded to Debian lenny</title>
		<link>http://changelog.complete.org/archives/858-server-upgraded-to-debian-lenny</link>
		<comments>http://changelog.complete.org/archives/858-server-upgraded-to-debian-lenny#comments</comments>
		<pubDate>Thu, 25 Dec 2008 02:38:01 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>

		<guid isPermaLink="false">http://changelog.complete.org/?p=858</guid>
		<description><![CDATA[This afternoon, I finally decided to upgrade my main server from Debian etch to lenny. Lenny is still testing, but is nearing release. This server is colocated with Core Networks, and I have no physical or console access to it. (Well, I can request the IP KVM if needed.) It also hadn&#8217;t been rebooted in [...]]]></description>
			<content:encoded><![CDATA[<p>This afternoon, I finally decided to upgrade my main server from Debian etch to lenny.  Lenny is still testing, but is nearing release.  This server is colocated with <a href="http://www.corenetworks.net/">Core Networks</a>, and I have no physical or console access to it.  (Well, I can request the IP KVM if needed.)  It also hadn&#8217;t been rebooted in over 200 days.</p>
<p>The actual upgrade itself was incredibly smooth.  For those of you that don&#8217;t use Debian, you might be interested to know that you can upgrade a running system in-place.  A reboot is not even strictly necessary, though you won&#8217;t get kernel updates without it.</p>
<p>There was a bit of config file tweaking for Exim and Apache, a small bit for PHP, and that was it for the entire thing.</p>
<p>EXCEPT for the two things that always really bug me: Horde/IMP and Ruby/Rails.  Horde has the most annoying upgrade process of any web app I&#8217;ve used lately.  You first go through reading two different upgrade docs.  To upgrade imp, you pipe some SQL commands into a PostgreSQL psql process (only they only document the mysql command line).  Ditto for horde.  But for Turba, the address book, you have to run a PHP program from the command line.  Only it doesn&#8217;t work from any place in your PATH, so you have to divine a location to copy it to, run it from there, hack up the database stuff in it, then remember to delete it.</p>
<p>And that concludes the documented upgrade process.  Only &#8212; surprise &#8212; it&#8217;s not done.  At this point, you&#8217;ll get weird PHP warnings all over your screen.  Then you google them, and find you have to log in to the web app as an administrator, and run three different upgrade procedures from within it, each of which requires you to copy and paste a config file to disk.</p>
<p>A far cry from the WordPress single-click upgrade.  And this is <b>easier</b> than Horde/IMP upgrades I&#8217;ve done in the past.</p>
<p>The other annoying thing is Ruby on Rails.  I run one Rails app, Redmine, and it&#8217;s always annoying.  You&#8217;ve got to get all sorts of these gems just right.  Today they decided they didn&#8217;t like my new PostgreSQL driver for Ruby, but they weren&#8217;t exactly obvious about it.  Try upgrading the Gems, and &#8212; surprise &#8212; AFTER they are upgraded, they say that I need a newer rubygems than&#8217;s in Debian.  Oooookaaayy&#8230;. restore gems from backup, google some more, find a patch, apply it, hack for awhile, and finally it works.  But I have no idea why.</p>
<p>So, overall, kudos to all the Debian developers for a smooth upgrade process.  I hope I can say that about Horde and Rails in the future.</p>
<p>Oh, and by the way, I did reboot the server.  It came right up with the new kernel an OS, no problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/858-server-upgraded-to-debian-lenny/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Administering Dozens of Debian Servers</title>
		<link>http://changelog.complete.org/archives/845-administering-dozens-of-debian-servers</link>
		<comments>http://changelog.complete.org/archives/845-administering-dozens-of-debian-servers#comments</comments>
		<pubDate>Tue, 16 Dec 2008 14:34:44 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[systemadmin]]></category>

		<guid isPermaLink="false">http://changelog.complete.org/?p=845</guid>
		<description><![CDATA[At work, we have quite a few Debian servers. We have a few physical machines, then a number of virtual machines running under Xen. These servers are split up mainly along task-oriented lines: DNS server, LDAP server, file server, print server, mail server, several web app servers, ERP system, and the like. In the past, [...]]]></description>
			<content:encoded><![CDATA[<p>At work, we have quite a few Debian servers.  We have a few physical machines, then a number of virtual machines running under Xen.  These servers are split up mainly along task-oriented lines: DNS server, LDAP server, file server, print server, mail server, several web app servers, ERP system, and the like.</p>
<p>In the past, we had fewer virtual instances and combined more services into a single OS install.  This led to some difficulties, especially with upgrades.  If we wanted to upgrade the OS for, say, the file server, we&#8217;d have to upgrade the web apps and test them along with it at the same time.  This was not a terribly sustainable approach, hence the heavier reliance on smaller virtual environments.</p>
<p>All these virtual environments have led to their own issues.  One of them is getting security patches installed.  At present, that&#8217;s a mainly manual task.  In the past, I used cron-apt a bit, but it seemed to be rather fragile.  I&#8217;m wondering what people are using to get security updates onto servers in an automated fashion these days.</p>
<p>The other issue is managing the configuration of these things.  We have some bits of configuration that are pretty similar between servers &#8212; the mail system setup, for instance.  Most of them are just simple SMTP clients that need to be able to send out cron reports and the like.  We had tried using cfengine2 for this, but it didn&#8217;t work out well.  I don&#8217;t know if it was our approach or not, but we found that hacking cfengine2 after making changes on systems was too time-consuming, and so that task slipped and eventually cfengine2 wasn&#8217;t doing what it should anymore.  And that even with taking advantage of it being able to do things like put the local hostname in the right places.</p>
<p>I&#8217;ve thought a bit about perhaps providing some locally-built packages that establish these config files, or load them up with our defaults.  That approach has worked out well for me before, though it also means that pushing out changes isn&#8217;t a simple hack of a config file somewhere anymore.</p>
<p>It seems like a lot of the cfengine2/bcfg tools are designed for environments where servers are more  homogenous than ours.  bcfg2, in particular, goes down that road; it makes it difficult to be able to log on to a web server, apt-get install a few PHP modules that we need for a random app, and just proceed.</p>
<p>Any suggestions?</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/845-administering-dozens-of-debian-servers/feed</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Crazy Cursor Conspiracy Finally Fully Fixed</title>
		<link>http://changelog.complete.org/archives/767-crazy-cursor-conspiracy-finally-fully-fixed</link>
		<comments>http://changelog.complete.org/archives/767-crazy-cursor-conspiracy-finally-fully-fixed#comments</comments>
		<pubDate>Sat, 25 Oct 2008 09:07:51 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[gnome]]></category>

		<guid isPermaLink="false">http://changelog2.complete.org/archives/767-crazy-cursor-conspiracy-finally-fully-fixed.html</guid>
		<description><![CDATA[So lately I had the bad fortune to type in apt-get install gnome-control-center on my workstation. It pulled in probably a hundred dependencies, but I confirmed installing it, never really looking at that list. The next day, I had a reason to reboot. When I logged back in, I noticed that my beloved standard X11 [...]]]></description>
			<content:encoded><![CDATA[<p>So lately I had the bad fortune to type in <b>apt-get install gnome-control-center</b> on my workstation.  It pulled in probably a hundred dependencies, but I confirmed installing it, never really looking at that list.</p>
<p>The next day, I had a reason to reboot.  When I logged back in, I noticed that my beloved standard X11 cursors had been replaced by some ugly antialiased white cursor theme.  I felt as if XP had inched closer to taking over my machine.</p>
<p>I grepped all over $HOME for some indication of what happened.  I played with the cursor settings in gnome-control-center&#8217;s appearance thing, which didn&#8217;t appear to have any effect.  When I logged out, I noticed that the cursor was messed up in kdm of all things, and no amount of restarting it could fix it.</p>
<p>After some grepping in /etc, I realized that I could fix it with this command:</p>
<p><b>update-alternatives &#8211;config x-cursor-theme</b></p>
<p>And I set it back to /etc/X11/cursors/core.theme.  Ahh, happiness restored.</p>
<p>I guess that&#8217;ll teach me to install bits of gnome on my box.  Maybe.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/767-crazy-cursor-conspiracy-finally-fully-fixed/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Thoughtfulness on the OpenSSL bug</title>
		<link>http://changelog.complete.org/archives/714-thoughtfulness-on-the-openssl-bug</link>
		<comments>http://changelog.complete.org/archives/714-thoughtfulness-on-the-openssl-bug#comments</comments>
		<pubDate>Wed, 14 May 2008 05:48:00 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://changelog2.complete.org/archives/714-thoughtfulness-on-the-openssl-bug.html</guid>
		<description><![CDATA[By now, I&#8217;m sure you all have read about the OpenSSL bug discovered in Debian. There&#8217;s a lot being written about it. There&#8217;s a lot of misinformation floating about, too. First thing to do is read this post, which should clear up some of that. Now then, I&#8217;d like to think a little about a [...]]]></description>
			<content:encoded><![CDATA[<p>By now, I&#8217;m sure you all have read about the <a href="http://lists.debian.org/debian-security-announce/2008/msg00152.html">OpenSSL</a> bug discovered in Debian.</p>
<p>There&#8217;s a lot being written about it.  There&#8217;s a lot of misinformation floating about, too.  First thing to do is <a href="http://www.aigarius.com/blog/2008/05/14/too-similar-to-be-different/">read this post</a>, which should clear up some of that.</p>
<p>Now then, I&#8217;d like to think a little about a few things people have been saying.</p>
<p><b>People shouldn&#8217;t try to fix bugs they don&#8217;t understand.</b></p>
<p>At first, that sounds like a fine guideline.  But when I thought about it a bit, I think it&#8217;s actually more along the lines of useless.</p>
<p>First of all, there is this problem: how do you know whether or not you understand it?  Obviously, sometimes you know you don&#8217;t understand code well.  But there are times when you think you do, but don&#8217;t.  Especially when we&#8217;re talking about C and its associated manual memory management and manual error handling.  I&#8217;d say that, for a C program of any given size, very few people really understand it.  Especially since you may be dealing with functions that call other functions 5 deep, and one of those functions modifies what you thought was an input-only parameter in certain rare cases.  Maybe it&#8217;s documented to do that, maybe not, but of course documentation cannot always be trusted either.</p>
<p>I&#8217;d say it&#8217;s more useful to say that people should get peer review of code whenever possible.  Which, by the way, did occur here.</p>
<p><b>The Debian maintainer of this package {is an idiot, should be fired, should be banned}</b></p>
<p>I happen to know that the Debian programmer that made this patch is a very sharp individual.  I have worked with him on several occasions and I would say that kicking him out of maintaining OpenSSL would be a quite stupid thing to do.</p>
<p>He is, like the rest of us, human.  We might find that other people are considerably less perfect than he.</p>
<p><b>Nobody that isn&#8217;t running Debian or Ubuntu has any need to worry.  This is all Debian&#8217;s fault.</b></p>
<p>I guess you missed the part of the advisory that mentioned that it also fixed an OpenSSL upstream bug (that *everyone* is vulnerable to) that permitted arbitrary code execution in a certain little-used protocol?  OpenSSL has a history of security bugs over the years.</p>
<p>Of course, the big keygen bug is a Debian-specific thing.</p>
<p><b>Debian should send patches upstream</b></p>
<p>This is general practice in Debian.  It happens so often, in fact, that the Debian bug-tracking system has had &#8212; for probably more than a decade &#8212; a feature that lets a Debian developer record that a bug reported to Debian has been forwarded to an upstream developer or bug-tracking system.</p>
<p>It is routine to send both bug reports and patches upstream.  Some Debian developers are more closely aligned with upstream than others.  In some cases, Debian developers are part of the upstream team.  In others, upstream may be friendly and responsive enough that Debian developers run any potential patches to upstream code by them before committing them to Debian.  (I tend to do this for Bacula).  In some cases, upstream is busy and doesn&#8217;t respond fast or reliably or helpfully enough to permit Debian to make security updates or other important fixes in a timely manner.  And sometimes, upstream is plain AWOL.</p>
<p>Of course, it benefits Debian developers to send patches upstream, because then they have a smaller diff to maintain when each new version comes out.</p>
<p>In this particular case, communication with upstream happened, but the end result just fell through the cracks.</p>
<p><b>Debian shouldn&#8217;t patch security-related stuff itself, ever</b></p>
<p>Well, that&#8217;s not a very realistic viewpoint.  Every Linux distribution does this, for several reasons.  First, a given stable release of a distribution may be older than the current state of the art upstream software, and some upstreams are not interested in patching old versions, while the new upstream versions introduce changes too significant to go into a security update.  Secondly, some upstreams do not respond in a timely manner, and Debian wants to protect its users ASAP.  Finally, some upstreams are simply bad at security, and having smart folks from Debian &#8212; and other distributions &#8212; write security patches is a benefit to the community.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/714-thoughtfulness-on-the-openssl-bug/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>LinuxCertified Laptop LC2100S</title>
		<link>http://changelog.complete.org/archives/680-linuxcertified-laptop-lc2100s</link>
		<comments>http://changelog.complete.org/archives/680-linuxcertified-laptop-lc2100s#comments</comments>
		<pubDate>Tue, 22 Jan 2008 05:21:00 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Reviews]]></category>

		<guid isPermaLink="false">http://changelog2.complete.org/archives/680-linuxcertified-laptop-lc2100s.html</guid>
		<description><![CDATA[As you might know from reading my blog, at my workplace, we have largely standardized on Linux on the desktop and laptop. We use systemimager to maintain a standard desktop image and a separate standard laptop image. These images differ because there are different assumptions. The desktop machines mount /home over NFS, authenticate to LDAP, [...]]]></description>
			<content:encoded><![CDATA[<p>As you might know from reading my blog, at my workplace, we have largely standardized on Linux on the desktop and laptop.</p>
<p>We use systemimager to maintain a standard desktop image and a separate standard laptop image.  These images differ because there are different assumptions.  The desktop machines mount /home over NFS, authenticate to LDAP, etc.  This doesn&#8217;t work on laptops.  Moreover, desktops don&#8217;t use network-manager or wifi, but laptops do.</p>
<p>Our desktop image uses Debian&#8217;s hardware autodetection &#8212; plus a little hacking in /etc/init.d/gdm &#8212; to automatically adjust to a wide range of hardware.  So far this has worked well.</p>
<p>Laptops are much more picky.  Our standard laptop model had been the HP nc4400 &#8212; a small and light 12&#8243; model that people here loved.  HP discontinued that model.  Their replacement was the 2510p.  We ordered one in here for evaluation.  Try as we might, we couldn&#8217;t get it to suspend and resume properly in Linux.</p>
<p>So I went out scouring the field of Linux laptops.  Companies such as Emperor Linux buy retail laptops from people like Lenovo, test them for Linux, and sell them &#8212; at a premium.  These were too expensive to justify at the quantities we need them.</p>
<p>Then I stumbled across <a href="http://www.linuxcertified.com/">Linux Certified</a>.  I&#8217;d never heard of them before.  I called them up and asked a few questions.  They don&#8217;t buy retail laptops, but instead have OEMs in Taiwan build laptops to their spec.  They happen to use the same OEM that Fujitsu does, I believe.  (No big company builds laptops in the USA these days).  I asked them about wifi chipsets, video chipsets, whether they use stock kernels.  I got clueful answers to all of these.</p>
<p>So we ordered one of their <a href="http://www.linuxcertified.com/linux-laptop-lc2100s.html">LC2100s</a> models.  They didn&#8217;t offer Debian preinstalled, but did offer Ubuntu, so I selected that.  The laptop arrived a couple of days (!!) later, configured with the particular CPU, etc. that I selected.</p>
<p>I was surprised at the thrill I felt at taking a brand new laptop out of its box, turning it on, and watching Grub appear before my eyes.  Ubuntu proceeded to boot.  I then of course installed our regular Debian image on the thing to check it out.</p>
<p>It needed a kernel and xserver-xorg-video-intel from lenny, as well as the ipw3945 driver for wifi, but otherwise worked with the exact same software as our HP nc4400 image.  (In fact, it wasn&#8217;t hard to support both laptops with that image, since both use a lot of Intel hardware.)  The one trick was making hibernate call /etc/init.d/ipw3945d stop so that the ipw3945 module could be unloaded before suspend.  (Why this particular chipset needs a daemon is beyond me, but oh well.)</p>
<p>The hardware is great.  As far as I know, the ipw3945 was the only component that wasn&#8217;t directly and automatically supported by DFSG-free software in lenny main.  The screen is sharp and high-contrast (it&#8217;s glossy, which I personally don&#8217;t like, but I bet our users will).  The device itself feels sturdy.  It&#8217;s small and dense.  I haven&#8217;t opened it up, but it looks like all you need is a screwdriver to do so.</p>
<p>The only downside is that they don&#8217;t sell docking stations for it.  Their standard answer on that is to buy a USB docking station.  That&#8217;s a partial answer, but can&#8217;t handle power or video like a standard docking station will.</p>
<p>Also, the LC2100s is much cheaper than the HP laptop, even when configured when nicer specs in every way.  That is no doubt partially due to the lack of the Windows tax.</p>
<p>I&#8217;m sending off an order for 4 more today, I believe.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/680-linuxcertified-laptop-lc2100s/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Linux Hardware Support Better Than Windows</title>
		<link>http://changelog.complete.org/archives/644-linux-hardware-support-better-than-windows</link>
		<comments>http://changelog.complete.org/archives/644-linux-hardware-support-better-than-windows#comments</comments>
		<pubDate>Fri, 17 Aug 2007 06:07:00 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Desktop Linux]]></category>

		<guid isPermaLink="false">http://changelog2.complete.org/archives/644-linux-hardware-support-better-than-windows.html</guid>
		<description><![CDATA[Something I often hear from people that talk about Linux on the desktop is this: people want to be able to go to the store, buy hardware, and be confident that it will Just Work. I would like to point out that things are rarely this simple on Windows. And, in fact, things are often [...]]]></description>
			<content:encoded><![CDATA[<p>Something I often hear from people that talk about Linux on the desktop is this: people want to be able to go to the store, buy hardware, and be confident that it will Just Work.</p>
<p>I would like to point out that things are rarely this simple on Windows.  And, in fact, things are often simpler on Linux these days.</p>
<p>Here&#8217;s the example that prompted this post.</p>
<p>I have a computer that&#8217;s about 4 years old.  It&#8217;s my main desktop machine at home.  It was still fast enough for me, but has been developing all sorts of weird behaviors.  Certain USB ports stopped working altogether a few months ago.  Then it started hanging during POST whenever I&#8217;d try to reboot &#8212; but would still boot OK about 80% of the time after a power cycle.  Then it started randomly losing contact with my USB mouse until a reboot.  And the last straw was when the display started randomly going out.  I&#8217;ve told everyone that my machine has cancer and is slowly dying.</p>
<p>The case is a pretty nice full tower &#8212; solid and sturdy.  I have an 160GB IDE drive in it.  So I figured I will upgrade the motherboard, CPU, RAM, and add a 500GB SATA drive since they&#8217;re so cheap these days and I&#8217;m running out of space.  I&#8217;d also have to buy a new video card since my old one was AGP and the new motherboard only has PCI Express  for video.  So about $700 later from Newegg (I got a Core 2 Duo E6750), the parts arrived.</p>
<p>I spent some time installing it all.  The motherboard had only one IDE channel, and I didn&#8217;t have any IDE cable long enough to connect both the IDE hard disk and the optical drive, so I popped in an old Maxtor/Promise PCI Ultra133 controller I had sitting around to use with the DVD burner.</p>
<p>Now, to recap, the hardware that the OS would see as new/different is: CPU, RAM, IDE controller, SATA controller, Promise IDE controller, integrated NIC, sound, video.</p>
<p>Then the magic smoke test.</p>
<p>I turned on the machine.  Grub appeared.  Linux started booting.</p>
<p>Even though I had switched from the default Debian &#8220;supports everything&#8221; kernel to a K7 kernel, it still booted.</p>
<p>And <b>every single piece of hardware was supported immediately.</b>  There was no &#8220;add new hardware&#8221; wizard that popped up, no &#8220;I&#8217;ve found new hardware&#8221; boxes.  It just worked, silently, with no need to tell me anything or have me click on anything.</p>
<p>Only one piece required configuration: the NIC, thanks to some <a href="http://lists.debian.org/debian-devel/2007/03/msg00656.html">udev design flaws</a> (it got renamed from eth0 to eth1 by udev).  That took 20 seconds.  Debian saw the IDE HDD, the SATA drive, the Promise controller, the DVD burner, the video card, the sound, and it all worked automatically.  And Debian is not even a distro that occurs to a lot of people when they think of great hardware support.</p>
<p>Now let&#8217;s turn to Windows.</p>
<p><b>The Windows Nightmare</b></p>
<p>I have a legal copy of Windows XP Home that was preinstalled on the machine when I got it.  I resized its partition down to about 20GB so that I could use 140GB for Linux.  I use it rarely, primarily for gaming, and I&#8217;ve bought about 3 games in the last 4 years.  I usually disconnect the network when I boot to Windows, though I do keep it current with updates.</p>
<p>I did some research on what Windows was going to do when I replace the hardware.  The general consensus from people on the &#8216;net is that you can&#8217;t just replace a motherboard and expect everything to be happy.  There were generally three different approaches suggested: 1) don&#8217;t even try, just reinstall; 2) do a rescue install after you move over; and 3) <a href="http://shsc.info/MovingWindowsToNewHardware">use sysprep</a>.  The rescue install has to be done by booting from an XP install CD, then picking a rescue install option somewhere.  It will overwrite your installed Windows with the version from the CD.  That means that I&#8217;d have to re-apply SP2, though bits of it that didn&#8217;t get overwritten would still be on the hard disk, and who knows what would happen to the registry.</p>
<p>Option #3 was to download sysprep (must have the Genuine Disadvantage ActiveX to get the free download from MS).  Sysprep is designed to be used just prior to taking an image with ghost for replication.  It removes the hardware-specific config (but not the drivers), as well as the product key, from the machine, but otherwise leaves it untouched.  On the next boot, you get the &#8220;Welcome to XP&#8221; wizard.</p>
<p>One other strike against #2 is that Compaq &#8220;helpfully&#8221; didn&#8217;t ship any install CDs with the machine.  Under Windows, they did have a &#8220;create rescue CD&#8221; tool, which burned 7 CDs for me.  But they are full Compaq-specific CDs, not one of them an XP CD, *AND* they check on boot to see if you&#8217;re using the same Compaq motherboard, and exit if not.  Highly useless.</p>
<p>So I went with sysprep.  Before my new hardware even arrived, I downloaded the Windows drivers for all of it.  I burned them to a CD, and installed as many as I could on the system in advance.  About half of them refused to install since the new hardware wasn&#8217;t there yet.  I then took a raw image of the partition with dd, just in case.  Finally, right before I swapped the hardware, I ran sysprep and let it shut down the machine.</p>
<p>So after the new hardware was installed came the adventure.</p>
<p>Windows booted to the &#8220;welcome to XP&#8221; thingy.  The video, keyboard, mouse, and IDE HDD worked.  That&#8217;s about it.</p>
<p>I went through the &#8220;welcome to XP wizard&#8221;.  But the network didn&#8217;t work yet, so I couldn&#8217;t activate it.  So I popped my handy driver CD in the drive.  But what&#8217;s this?  Windows doesn&#8217;t recognize the DVD drive because it doesn&#8217;t have drivers for this Promise controller that came out in, what, 2001?  Sigh.  Downloaded the drivers with the imac, copy them to a CF card, plug the USB CF reader into Windows.</p>
<p>While I was doing that, about 6 &#8220;found new hardware&#8221; dialogs got queued up.  Not one of them could actually find a driver for my hardware, but that didn&#8217;t prevent Windows from making me click through them all.</p>
<p>So, install Promise driver from CF card, reboot.  Click through new hardware dialogs again. Install network driver, reboot, click through dialogs.  Install sound driver.  Install Intel &#8220;chipset&#8221; driver, click through dialogs.  Reboot.  Install SATA driver.  Reboot.</p>
<p>So the hardware appears to all be working by this point, though I have a Creative volume control (from the old hardware) and a Realtek one in the tray.  Minor annoyance to deal with later.</p>
<p>Now I have to re-activate XP.  I dutifully key in the magic string from the sticker on my case.  Surprise surprise, the Internet-based activation fails because my hardware is different.  So I have to call the 800 number.  I have to read in 7 blocks of 6 digits, one block at a time.  Then I answer some questions: have I activated Windows before, have I changed hardware, was the old hardware defective (yes, yes, and yes).  Then I get 7 blocks of 6 digits read to me.  Finally Windows is activated.  PHEW!  Why they couldn&#8217;t ask those questions with the online tool is beyond me.</p>
<p>Anyhow.  Linux took me 20 seconds to get working.  Windows, about 2 hours, plus another 2 hours for prep and research.</p>
<p>I did zero prep for Linux.  I made one config change (GUI users could have just configured their machine to use eth1).</p>
<p><b>Other cool Linux HW features</b></p>
<p>Say you buy a new printer and want to get it set up.  On Windows, you insert the CD, let it install 200MB of print drivers plus ads plus crap plus add something to your taskbar plus who knows what else.  Probably reboot.  Then the printer might actually print.</p>
<p>On Debian, you plug in the printer to the USB port.  You type printconf.  5 seconds later, your printer works.</p>
<p>I have been unpleasantly surprised lately by just how difficult hardware support in Windows really is, especially since everyone keeps saying how good it is.  It&#8217;s not good.  Debian&#8217;s is better, in my opinion.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/644-linux-hardware-support-better-than-windows/feed</wfw:commentRss>
		<slash:comments>57</slash:comments>
		</item>
		<item>
		<title>Debian Developers 7 Years Ago</title>
		<link>http://changelog.complete.org/archives/613-debian-developers-7-years-ago</link>
		<comments>http://changelog.complete.org/archives/613-debian-developers-7-years-ago#comments</comments>
		<pubDate>Wed, 23 May 2007 23:54:19 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>

		<guid isPermaLink="false">http://changelog2.complete.org/archives/613-debian-developers-7-years-ago.html</guid>
		<description><![CDATA[Today while looking for something else, I stumbled across a DVD with the &#8220;last archive&#8221; of my old personal website. On it were a number of photos from the 2000 Annual Linux Conference in Atlanta, and the Debian developers that were there. These were posted in public for several years. I&#8217;ve now posted all of [...]]]></description>
			<content:encoded><![CDATA[<p>Today while looking for something else, I stumbled across a DVD with the &#8220;last archive&#8221; of my old personal website.  On it were a number of photos from the 2000 Annual Linux Conference in Atlanta, and the Debian developers that were there.  These were posted in public for several years.</p>
<p>I&#8217;ve now posted <a href="http://www.flickr.com/photos/jgoerzen/sets/72157600257381620/">all of them</a> on flickr, preserving the original captions.</p>
<p>Here&#8217;s the obligatory sample:</p>
<p><a href="http://www.flickr.com/photos/jgoerzen/511753496/" title="Photo Sharing"><img src="http://farm1.static.flickr.com/205/511753496_2bb0e1896a_o.jpg" width="420" height="630" alt="20001018-01-06.jpg" /></a></p>
<p>That&#8217;s Joey Hess, using what I think was his Vaio.  Most acrobatic keyboardist ever.  Probably the only person that could write Perl with one hand comfortably.</p>
<p>What else can you see?  The <a href="http://www.flickr.com/photos/jgoerzen/511753638/">best of show</a> award that Debian won that is now in my basement due to a complicated series of events, the Debian machines that were being <a href="http://www.flickr.com/photos/jgoerzen/511754548/">shown off</a> at the show, <a href="http://www.flickr.com/photos/jgoerzen/511785145/">Sean Perry and Manoj</a>, the photo with <a href="http://www.flickr.com/photos/jgoerzen/511785653/">long-term corrupted caption</a>, and of course, numerous shots of <a href="http://www.flickr.com/photos/jgoerzen/511753572/">Branden</a>.</p>
<p>I know the size stinks.  It was scanned at a web resolution for 2000.  I do still have the negatives somewhere and will post the rest of them, in higher res, when I find them.</p>
<p><a href="http://www.flickr.com/photos/jgoerzen/sets/72157600257381620/">Click here</a> to view the full set.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/613-debian-developers-7-years-ago/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>And we&#8217;re off!</title>
		<link>http://changelog.complete.org/archives/599-and-were-off-2</link>
		<comments>http://changelog.complete.org/archives/599-and-were-off-2#comments</comments>
		<pubDate>Fri, 13 Apr 2007 05:13:00 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Desktop Linux]]></category>

		<guid isPermaLink="false">http://changelog2.complete.org/archives/599-and-were-off-2.html</guid>
		<description><![CDATA[Yesterday afternoon, we started our information meetings with employees about our Linux on the desktop project. We&#8217;re underway on our migration. But before I talk about that, I need to back up and describe what the project is. We are converting approximately 80% of our 150 or so PC users to Linux desktops. They&#8217;re Debian [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday afternoon, we started our information meetings with employees about our Linux on the desktop project.  We&#8217;re underway on our migration.</p>
<p>But before I talk about that, I need to back up and describe what the project is.</p>
<p>We are converting approximately 80% of our 150 or so PC users to Linux desktops.  They&#8217;re Debian etch (4.0) running Gnome, Firefox (Iceweasel), Evolution, NFSv4, and SystemImager.  Over the coming days and weeks, I&#8217;ll be writing about why we&#8217;re doing this, how we&#8217;re making it happen, things we&#8217;ve run into along the way, and the technology behind it.</p>
<p>Today I&#8217;d like to start with a high-level overview of the reasons we started investigating this option.</p>
<p>It became apparent that Vista was going to be a problem for us.  Most of our desktop PCs are not very old, but Vista meant a significant degradation in performance from the Windows XP Pro that most people were running.  A performance dip so significant, in fact, that it would have created a significant negative impact on employee productivity.</p>
<p>We tend to buy PCs with Windows licenses from the vendor (Windows preinstalled).  As such, we knew it wouldn&#8217;t be long before XP-based machines would be hard to find.  If we stuck with Windows, we&#8217;d be running a mixed-OS network &#8212; which we knew from experience we did NOT want to do.  The other option would be to replace all those old PCs.  The direct costs of doing that, with the associated Vista and Office licenses, would have been more than $200,000.</p>
<p>So we started to look at other options &#8212; changing the way we license Windows, sticking with XP for awhile, or switching away from Windows.  This last option sounded the most promising.</p>
<p>I took a spare desktop-class machine, representative of the hardware most end users would have, and installed etch (then testing) on it.  I spent a bit of time tweaking the desktop settings, making things as transparent to the user as possible.  We liked what we saw and started pursuing it a bit more.  We knew we had some Windows apps we couldn&#8217;t discard, so we tested running them off a Windows terminal server with the Linux rdesktop client.  That worked well &#8212; and the appropriate Server 2003 licenses plus CALs would still be far cheaper than a mass migration to Vista.</p>
<p>To make a long story short, we are getting quite a few benefits out of all this.  One of the most important is a single unified system image.  Excepting a few files like /etc/fstab, every system gets a bit-for-bit identical installation from the server, updated using rsync.  /home is mounted from the network using NFS (v4).  So our users can sit down at any PC, log in, and have all their programs, settings, email, etc. available.  A side benefit is that hardware problems become minor annoyances rather than major inconveniences; if your hard disk dies, we can just bring up a different PC.  We had tried numerous times to make roaming profiles work in Windows, but never really achieved a reliable setup there &#8212; perhaps because it seemed virtually impossible to assure that each Windows PC had the exact same set of software, in the exact same versions, installed.</p>
<p>More to come.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/599-and-were-off-2/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Disk encryption support in Etch</title>
		<link>http://changelog.complete.org/archives/541-disk-encryption-support-in-etch</link>
		<comments>http://changelog.complete.org/archives/541-disk-encryption-support-in-etch#comments</comments>
		<pubDate>Tue, 19 Sep 2006 21:30:30 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[encryption]]></category>

		<guid isPermaLink="false">http://changelog2.complete.org/archives/541-disk-encryption-support-in-etch.html</guid>
		<description><![CDATA[Well, I got my new MacBook Pro 15&#8243; in yesterday. I&#8217;ll write something about that shortly. The main OS for this machine is not Mac OS X, though, but Debian. I decided that, being a laptop, I would like to run dm-crypt on here. Much to my delight, the etch installers support dm-crypt out of [...]]]></description>
			<content:encoded><![CDATA[<p>Well, I got my new MacBook Pro 15&#8243; in yesterday.  I&#8217;ll write something about that shortly.  The main OS for this machine is not Mac OS X, though, but Debian.</p>
<p>I decided that, being a laptop, I would like to run dm-crypt on here.  Much to my delight, the etch installers support dm-crypt out of the box.</p>
<p>Not only that, but they supported this setup out of the box, too:</p>
<ul>
<li>Two partitions for Debian &#8212; one for /boot, everything else on the second one</li>
<li>The second partition is completely encrypted</li>
<li>Inside the encrypted container is an LVM physical volume</li>
<li>Inside the LVM physical volume are logical volumes for /, /home, /usr, /var, and swap</li>
<li>XFS is used for each filesystem</li>
</ul>
<p>Not only that, but it set up proper boot sequence for all of this out of the box, too.</p>
<p>So I turn on the unit, enter the password for the encrypted partition, and then the system continues booting.</p>
<p>Nice.  Very nice.</p>
<p>Kudos to the debian-installer and initramfs teams.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/541-disk-encryption-support-in-etch/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>HP Officially Supports Debian</title>
		<link>http://changelog.complete.org/archives/531-hp-officially-supports-debian</link>
		<comments>http://changelog.complete.org/archives/531-hp-officially-supports-debian#comments</comments>
		<pubDate>Mon, 14 Aug 2006 14:07:59 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[hp]]></category>

		<guid isPermaLink="false">http://changelog2.complete.org/archives/531-hp-officially-supports-debian.html</guid>
		<description><![CDATA[Yes, it&#8217;s true. I have two words for this: Woohoo! Finally.]]></description>
			<content:encoded><![CDATA[<p>Yes, <a href="http://www.pcworld.com/article/id,126717/article.html">it&#8217;s true</a>.</p>
<p>I have two words for this: Woohoo!  Finally.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/531-hp-officially-supports-debian/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The SPI election results are in</title>
		<link>http://changelog.complete.org/archives/521-the-spi-election-results-are-in</link>
		<comments>http://changelog.complete.org/archives/521-the-spi-election-results-are-in#comments</comments>
		<pubDate>Fri, 28 Jul 2006 19:51:48 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>

		<guid isPermaLink="false">http://changelog2.complete.org/archives/521-the-spi-election-results-are-in.html</guid>
		<description><![CDATA[The results are in. Bruce was removed from the board, and Josh Berkus, Neil McGovern, and Michael Schultheiss were added. (Neither Mako nor I sought another term.) Congratulations to the winners &#8212; I&#8217;m sure you will go far. I&#8217;m glad to see enthusiastic people around SPI and I&#8217;m sure you&#8217;ll do a great job.]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.spi-inc.org/secretary/votes/vote5/results.html">results</a> are in.  Bruce was removed from the board, and Josh Berkus, Neil McGovern, and Michael Schultheiss were added.  (Neither Mako nor I sought another term.)</p>
<p>Congratulations to the winners &#8212; I&#8217;m sure you will go far.  I&#8217;m glad to see enthusiastic people around SPI and I&#8217;m sure you&#8217;ll do a great job.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/521-the-spi-election-results-are-in/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>An additional RedHat Gripe</title>
		<link>http://changelog.complete.org/archives/516-an-additional-redhat-gripe</link>
		<comments>http://changelog.complete.org/archives/516-an-additional-redhat-gripe#comments</comments>
		<pubDate>Fri, 21 Jul 2006 08:56:40 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>

		<guid isPermaLink="false">http://changelog2.complete.org/archives/516-an-additional-redhat-gripe.html</guid>
		<description><![CDATA[Debian base install: about 150MB RHEL base install: about 1GB df showing 1% of disk used: priceless]]></description>
			<content:encoded><![CDATA[<p>Debian base install: about 150MB</p>
<p>RHEL base install: about 1GB</p>
<p>df showing 1% of disk used: priceless</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/516-an-additional-redhat-gripe/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to solve &#8220;The following packages cannot be authenticated&#8221;</title>
		<link>http://changelog.complete.org/archives/496-how-to-solve-the-following-packages-cannot-be-authenticated</link>
		<comments>http://changelog.complete.org/archives/496-how-to-solve-the-following-packages-cannot-be-authenticated#comments</comments>
		<pubDate>Thu, 15 Jun 2006 11:47:00 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[apt]]></category>
		<category><![CDATA[gnupg]]></category>
		<category><![CDATA[gpg]]></category>

		<guid isPermaLink="false">http://changelog2.complete.org/archives/496-how-to-solve-the-following-packages-cannot-be-authenticated.html</guid>
		<description><![CDATA[Users of Debian&#8217;s testing or unstable distributions may be noticing messages from apt saying things like: WARNING: The following packages cannot be authenticated! foo bar baz Install these packages without verification [y/N]? I noticed today that google doesn&#8217;t turn up good hits for the fix. The fix is really simple: apt-get install debian-archive-keyring apt-get update [...]]]></description>
			<content:encoded><![CDATA[<p>Users of Debian&#8217;s testing or unstable distributions may be noticing messages from apt saying things like:</p>
<pre>WARNING: The following packages cannot be authenticated!
  foo bar baz
Install these packages without verification [y/N]?</pre>
<p>I noticed today that google doesn&#8217;t turn up good hits for the fix.  The fix is really simple:</p>
<pre>apt-get install debian-archive-keyring
apt-get update</pre>
<p>That&#8217;s it.  You now have secure packages from Debian.  Nice, eh?</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/496-how-to-solve-the-following-packages-cannot-be-authenticated/feed</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>Debian From Scratch 0.99.0 Is Out</title>
		<link>http://changelog.complete.org/archives/482-debian-from-scratch-0990-is-out</link>
		<comments>http://changelog.complete.org/archives/482-debian-from-scratch-0990-is-out#comments</comments>
		<pubDate>Thu, 20 Apr 2006 07:34:00 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>

		<guid isPermaLink="false">http://changelog2.complete.org/archives/482-debian-from-scratch-0990-is-out.html</guid>
		<description><![CDATA[At long last, I&#8217;ve finally updated Debian From Scratch (DFS). For those of you not familiar with DFS, it&#8217;s a single, full rescue CD capable of working with all major filesystems, LVM, software RAID, and even compiling a new kernel. The DFS ISO images also contain a small Debian mirror subset that lets you use [...]]]></description>
			<content:encoded><![CDATA[<p>At long last, I&#8217;ve finally updated Debian From Scratch (DFS).  For those of you not familiar with DFS, it&#8217;s a single, full rescue CD capable of working with all major filesystems, LVM, software RAID, and even compiling a new kernel.  The DFS ISO images also contain a small Debian mirror subset that lets you use cdebootstrap, along with the other utilities on the CD, to perform a manual, &#8220;Gentoo-like&#8221; installation.  It also serves as an excellent rescue CD, with a full compliment of filesystem tools, backup/restore software, and a development environment complete enough to build your own kernels.</p>
<p>DFS also refers to dfsbuild, the tool that generates DFS images. dfsbuild is available as a Debian package.  dfsbuild is designed to make it trivial to build your own custom DFS images.  You can have your own set of Debian packages on your images, your own kernels, etc.  Unlike many other systems, you can go from the example dfs.cfg to a customized DFS build in just a few minutes, even if you&#8217;ve never used dfsbuild before.</p>
<p>Version 0.99.0 is a from-scratch rewrite and port to Haskell.  You can read the full list of new features in <a href="http://lists.debian.org/debian-devel/2006/04/msg00633.html">the announcement</a>, but the biggest is that it now supports standard Debian initramfs kernels in addition to ones that have enough drivers statically linked to be able to read the CD-ROM.</p>
<p>You can also download <a href="http://people.debian.org/~jgoerzen/dfs/">my DFS images</a> or <a href="http://people.debian.org/~jgoerzen/dfs/html/">browse the docs</a> online.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/482-debian-from-scratch-0990-is-out/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Rats, I finally had to make an upload.</title>
		<link>http://changelog.complete.org/archives/382-rats-i-finally-had-to-make-an-upload</link>
		<comments>http://changelog.complete.org/archives/382-rats-i-finally-had-to-make-an-upload#comments</comments>
		<pubDate>Sat, 03 Sep 2005 08:44:54 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>

		<guid isPermaLink="false">http://changelog2.complete.org/archives/382-rats-i-finally-had-to-make-an-upload.html</guid>
		<description><![CDATA[From the netmaze package tracking page:]]></description>
			<content:encoded><![CDATA[<p>From the <a href="http://packages.debian.org/netmaze">netmaze package tracking page</a>:</p>
<p><img src="http://changelog.complete.org/files_changelog/netmaze.png" width="494" height="418"></p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/382-rats-i-finally-had-to-make-an-upload/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DFS Installation Tutorial</title>
		<link>http://changelog.complete.org/archives/316-dfs-installation-tutorial</link>
		<comments>http://changelog.complete.org/archives/316-dfs-installation-tutorial#comments</comments>
		<pubDate>Fri, 27 May 2005 07:01:29 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>

		<guid isPermaLink="false">http://changelog2.complete.org/archives/316-dfs-installation-tutorial.html</guid>
		<description><![CDATA[Suramya Tomar has written a very nice tutorial on installing Debian from my Debian From Scratch images (or from DFS images you build yourself). Nice and thorough work.]]></description>
			<content:encoded><![CDATA[<p>Suramya Tomar has written a <a href="http://linux.suramya.com/tutorials/Install_DFS/">very nice tutorial</a> on installing Debian from my <a href="http://people.debian.org/~jgoerzen/dfs/">Debian From Scratch</a> images (or from DFS images you build yourself).  Nice and thorough work.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/316-dfs-installation-tutorial/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian From Scratch</title>
		<link>http://changelog.complete.org/archives/213-debian-from-scratch</link>
		<comments>http://changelog.complete.org/archives/213-debian-from-scratch#comments</comments>
		<pubDate>Mon, 17 Jan 2005 12:58:14 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>

		<guid isPermaLink="false">http://changelog2.complete.org/archives/213-debian-from-scratch.html</guid>
		<description><![CDATA[Newsforge has a nice article about Debian From Scratch, my Debian install-it-yourself CD, rescue CD, and CD builder package. I must say, Bruce Byfield&#8217;s instructions are more complete than my own documentation for it. I now use DFS for most of my new Debian installations. Best of all, porting it to new archs is trivial.]]></description>
			<content:encoded><![CDATA[<p>Newsforge has a <a href="http://www.newsforge.com/article.pl?sid=05/01/10/1727246">nice article</a> about <a href="http://people.debian.org/~jgoerzen/dfs/">Debian From Scratch</a>, my Debian install-it-yourself CD, rescue CD, and CD builder package.  I must say, Bruce Byfield&#8217;s instructions are more complete than my own documentation for it.</p>
<p>I now use DFS for most of my new Debian installations.  Best of all, porting it to new archs is trivial.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/213-debian-from-scratch/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ghc6 Hits Testing Today</title>
		<link>http://changelog.complete.org/archives/207-ghc6-hits-testing-today</link>
		<comments>http://changelog.complete.org/archives/207-ghc6-hits-testing-today#comments</comments>
		<pubDate>Wed, 12 Jan 2005 06:34:57 +0000</pubDate>
		<dc:creator>John Goerzen</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://changelog2.complete.org/archives/207-ghc6-hits-testing-today.html</guid>
		<description><![CDATA[Debian&#8217;s Haskell packages have been stuck out of testing for some time. I learned that they&#8217;re going in today, though, finally! There are also several other packages that this will push into testing, including my own MissingH.]]></description>
			<content:encoded><![CDATA[<p>Debian&#8217;s Haskell packages have been stuck out of testing for some time.  I <a href="http://bjorn.haxx.se/debian/testing.pl?package=ghc6">learned</a> that they&#8217;re going in today, though, finally!  There are also <a href="http://bjorn.haxx.se/debian/testing.pl?waiting=ghc6">several other packages</a> that this will push into testing, including my own <a href="http://quux.org/devel/missingh">MissingH</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://changelog.complete.org/archives/207-ghc6-hits-testing-today/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

