What I want out of backups for my home machine (in the abstract)

Over time I've come to realize that part of my home backup issuesis that I have somewhat contradictory desires for my backups athome. Today I feel like writing them down, partly to get everythingstraight in my own head.

What I want is all of:

  • multiple backups going back in time, not just one backup that is'the current state'. Being able to go back in time is often handy(and it's reassuring).

    (This can be done just by having several independent


Your system's performance is generally built up in layers

There are many facets and many approaches to troubleshootingperformance issues, but there are also some basic principles thatcan really help to guide your efforts. One of them, one so fundamentalthat it often doesn't get mentioned, is that your system and itsperformance is built up of layers and thus to troubleshoot systemperformance you want to test and measure each layer, working upwardsfrom the base layers (whatever they are).

(A similar 'working upwards' process can be used to estimatethe best performance possible


The benefits of flexible space usage in filesystems

My home and work Linux machines are very similar. They have aboutthe same collection of filesystems, and they both have significantamounts of free disk space (my home machine more than my workmachine, because I've got much bigger disks there). But despitethis, the filesystems on my work machine have lots of free spacewhile the filesystems on my home machine tend to run perpetuallyrelatively close to being out of space.

At one level, the difference is in how the disk space is managed.At


The drawback of setting an explicit mount point for ZFS filesystems

ZFS has three ways of getting filesystems mounted and deciding wherethey go in the filesystem hierarchy. As covered in the zfs manpage,you have a choice of automatically putting the filesystem below thepool (so that tank/example is mounted as /tank/example ), settingan explicit mount point with mountpoint=/some/where , or marking thefilesystem as 'legacy' so that you mount it yourself through whatevermeans you want (usually /etc/vfstab , the legacy approach to filesystemmounts). With


Updating software to IPv6 is often harder than you might think

A while back D.J. Bernstein wrote was is now a famous rant about IPv6 . Due to various things ,this DJB article is on my mind and today I want to talk about one partof it that DJB casually handwaves, which is updating all software tosupport IPv6.

The obvious problem with software is that most of the traditionalsystem APIs have specified IP addresses in fixed-size objects andwith explicit, fixed types. Very little software has been writtenusing generic APIs and variable-sized addresses


The convenience of having keyboard controls for sound volume

For a long time now, many keyboards have come with various additionalkeys over and above the traditional set. First it was Windows keys,and then people started adding various 'multimedia' keys and buttonsfor things. For an equally long time I used a very minimal keyboard without such keys, so I rolled my eyes alittle bit at the indulgence (and the wasted space) and otherwiseignored the issue of keyboard 'multimedia' control. Even when Irecently got a keyboard that sort of had these keys ,


Getting to watch a significant spam campaign recently

One of the interesting side effects of running a sinkhole SMTPserver and occasionallylooking at the SMTP command logs is that every so often I get tosee the signs of what is clearly a significant spam campaign.Recently, for example, I noticed a whole pile of delivery attemptsthat all had a distinct signature, sufficiently distinct that I'mpretty sure they must have been from the same software and party.

The primary signature was an unusual MAIL FROM , where it wasthe same as the RCPT TO . A typical


The format of strings in early (pre-C) Unix

The very earliest version of Unix was written before C was createdand even after C's creation the whole system wasn't rewritten init immediately. Courtesy of the Unix Heritage Society , much of the surviving source code from thisera is available online. It doesn't make up a complete source treefor any of the early Research Unixes, but it does let us peek backin time to read code and documentation that was written in thatpre-C era.

In light of a recent entry on C


A fun Bash buffering bug (apparently on Linux only)

I'll present this in the traditional illustrated form:

$ cat repro#!/bin/bashfunction cleanup() {   r1=$(/bin/echo one)   r2=$(echo two)   #echo $r1 '!' $r2 >>/tmp/logfile   echo $r1 '!' $r2 1>&2}trap cleanup EXITsleep 1echo final$ ./repro | falsefinalone final ! final two$

Wait, what?


Illumos's problem with its VCS commit messages

Quite a number of years ago I wrote an entry on the problem withthe OpenSolaris source repository , whereI called out Sun for terrible commit practices. At the time I thoughtthat the public OS source repository had to be just a series ofcode snapshots turned into an external repository, but someone fromSun showed up in the comments to assure me that no, the terriblecommit practices really were how they worked. I am glad to say thatIllumos has fixed this problem in the Illumos master repository .

Well, mostly