Word to the wise: Do not pick up "The Turing Option"
(Harry Harrison and Marvin Minsky, 1992) intending to read
just the first 50 pages or so. I read the entire 500 pages
in a stretch, procastinating the things I'd planned to do
during those seven hours. That's almost a standard workday
(if any such thing exists.)

I've spent the day doing a bunch of 'environment
maintenance' (asking customers to stop having their system
automatically bug me when the customer doesn't handle their
own problems, fixing minor bugs, etc) and working on the
design of two new frameworks: One to do distributed
transaction & message handling, and one to do customizable
user interfaces (including ability to plug new functionality
into a user interface, and having multiple versions of a
user interface that still use the same backend.)

Adding deltas on branches in CVSFile
didn't work after all. I've fixed it, and added code to let
it
manipulate branches and symbols. This is
enough that it should be possible to start doing fun stuff
with it - I'm going to try to produce a merged
FreeBSD/NetBSD/OpenBSD CVS repository the next time I get
some time to hack.

Still no docs beyond the source code, though.

On a more personal level, a new piano miracolously showed up
here
without the need of going through the
go-out-and-blow-a-lot-of-money routine I'd originally
expected to go through to get one (my grandmother suddenly
called and wanted to buy me one.)

This is cool, though the timing is lousy, as I'm moving in a
few days. Can't have it all, I guess.

Finally got around to fixing up my perl module to manipulate
RCS/CVS files enough that it might actually be useful for
manipulation.

It is now able to read and write RCS/CVS files, to retrieve
the text for any version in the file, and to add new
versions on an already existing branch. It is robust enough
on the read/write that I couldn't find any errors in a full
pass through the FreeBSD repository (reading in every single
file, writing it out, and looking through the diffs between
the original and the new copy.)

Forward steps:

Check that adding deltas on a branch work correctly

Extend the Invariant check to be closer to a complete
check of the invariants for the object