Came in this morning to find the satellite data pouring in. Closer examination showed that
it was mail from gnu.org. Somehow I had set up a mail loop with them and was in the
process of sending 60,000 odd mail messages round the world and back again.

It's interesting to learn how these things work. Shut down mail and tried to work out how
to remove all the messages without removing those few genuine messages which were still
waiting for delivery. In the meantime, more piled up on echunga; in the end, I had
about 78,000 messages. Just listing them with mailq took 5 minutes. Finally it was
done, though; I wonder what repercussions there will be.

Having zaphod tied up in my main machine configuration has been a real nuisance,
and I didn't have a machine around to test JFS1, so today I finally bit the bullet and
reconfigured the system the way I had originally planned back in October. In preparation, installed a new system and XFree86 4.1.0 on echunga's disk and then moved it
over to wantadilla, taking particular care not to change the fragile display board
configuration. To no avail: on starting X, it froze. Spent a lot of time trying and erroring,
and finally discovered that one of the Millennium boards had a couple of DIP switches, and
one selected “disable VGA”. That was the one that had always come up with the
wrong resolution on old wantadilla. After enabling the card, things came up fine.

Configuring these systems is just too painful. New wantadilla (old
monorchid) has a smaller case, so I had to move one of the disks (/src) to
echunga, requiring changes to /etc/fstab on every system on the network. I need
to find ways of moving things around more easily. Spent the rest of the day doing that.

Woke up in the middle of the night for some reason, and couldn't get back to sleep, so up
at about 5:30 am to finish the work on the changed install, including battunga, which
had lost the X binaries it was sharing with echunga. Somehow I still don't have all
the answers to sharing displays across two systems.

My cousin Mick Lehey and his wife Diane came to lunch today. Much fun was had by all:

Somehow all the grovelling on the floor during the system rebuild didn't do my shoulder
any good, and today I woke up with a very painful shoulder. The doctors were closed, of
course, and I couldn't be bothered to go to the emergency service at the hospital, but it's
surprising how much it can hamper things.

Typing was painful, so I decided I could continue the rebuild of the system. The current
sat-gw machine is running Red Hat 7.0, and it's hardly the ideal machine for the job:
it's noisy, overpowered (Celeron 466 MHz with 128 MB of memory), and for some reason the BIOS
doesn't recover from power failures, so it stays down until somebody powers it on again.
Decided to install Mandrake 8.1 on the old Pentium 133 that I lent Kris
Kennaway last Christmas. Apart from
not being much use for anything else, it also has a passive cooler instead of a CPU fan. The
installation went well, and I felt happy enough to install it in place of the old machine,
where it completely failed to do its job. It was getting late, so I had to go back and
postpone the debugging until tomorrow.
sigh

Still not feeling too good today, and didn't do very much. Finally got the new
sat-gw working. I keep getting surprised about the things the Linux world does. This
Mandrake 8.1 comes with an Emacs with its own colour scheme, which makes it almost impossible
to use without overriding it. Tried rebuilding Emacs to upgrade to 21.1, but for some reason
the X libraries hadn't been installed, or at least configure didn't find them,
although I had specifically chosen the X development package. sigh.

More work on the JFS1 stuff. I'm finally understanding how to add stuff to Linux, and I
now have a source directory and code which I can talk to with make from the top-level
directory. It doesn't compile, of course.

Discovered that my new HP Officejet was not printing properly: about half of the black ink
jets were not firing, even after a couple of cleaning cycles. I hate ink jets. Called up Officeworks, who told me that they would replace
it, but that the model had been discontinued, and that the replacement costs nearly twice as
much. Finally they managed to locate one for me, so we'll have to go and pick that up
tomorrow.

More work on JFS1. I've finally got the infrastructure stuff pretty well sorted out.

It's interesting what the real difficulties are when writing kernel code: it's not so much
understanding the algorithms, which are usually pretty straightforward, but more
understanding the conventions and how to fit it in to the overall framework. In some ways
it's like getting established in a society with complicated customs. Getting to understand
the Linux framework was probably the biggest hurdle I've had in writing this JFS 1 clone.
Hopefully most of them are behind me now, and I'll soon be able to mount a file system.

In the afternoon to the doctor, who confirmed that I had done myself a mischief in the
shoulder last Friday, and that it would take a few weeks to heal. In the meantime, even
typing is a pain.

To Rick Babbidge to talk about failing pumps, and got the bill for the last repair:
$337.15, including $100 for callout on Boxing Day. This really makes me love Robert Young.
For a little over $600 I could have bought a new pump. Looks like we'll do that anyway;
Rick's not too happy with the way I've been treated, and he's going to call the Davey people
out to see what's going on.

More work on JFS, but I didn't make my goal of mounting a file system; instead did some
work trying to find out where the file system statistics are kept.

To Hahndorf to a physiotherapist in the afternoon, and was slightly surprised to find her
34 weeks pregnant. She took her time trying to find out what was wrong with me, which was
more than Dr. Fanning did, and didn't come to any firm conclusions beyond the fact that she
didn't like my posture. Poked me in some places which hurt, and alleviated a little of the
pain, but neither of us are convinced that she's found the problem.

Yana had been complaining about problems with the gear change on the
CitroÃ«n CX, so out with her to see what was going on. The results were
depressing: the automatic clutch is slipping. I suspect that that might be the end of the
car; I certainly don't want to pay Martin Bray thousands of dollars for fixing it, and we
need a car now anyway. Off with Yana to the car dealers in Main North Road, where we found
a disappointingly small number of cars in the under $5,000 range.

After that, empty handed, to Essey and Mark Deayton's house warming. It's out in the
sticks behind Mylor, but quite a nice old house with a very nicely laid out but somewhat
overrun garden, which gave us some ideas about what we could do at home. Quite a pleasant
atmosphere, but I note that I'm losing the ability to relax.

I had really intended to get my course notes together for the BSDCon, but somehow I didn't get very far.
Spent a fair amount of time looking for used car ads, discovering in the process how
completely broken the web sites are. The Trading
Post web site had a horrible Javascript application that insisted on opening in the same
window, had no restrictions beyond the make, model and price (we were looking for manual
transmission, which would have significantly reduced the mess we had to fight through), and
it reset the form on return. To add insult to injury, it couldn't print; lpr reported
an empty file. The Advertiser had a badly
laid-out page with overlapping selection buttons which looked like it hadn't finished
loading, along with an equally emetic search engine, which for some reason looked completely
different on Yana's screen from on mine. It allowed us to print, but when it did it printed a
different page from the one we were looking at. It was also a Javascript application and
wouldn't let us open new window (“javascript:FasTrakUsed_Submit();”). Toyota had its own site with used
cars; looking for a used Camry in South Australia, it found exactly two, both in Queensland.
Sheesh.

Despite all this, we managed to find three cars which sounded reasonable, so down to see
them. The second one looked good enough that we didn't even bother to go and see the third:
they were both 1992 Mitsubishi Magnas, and the seller dropped the price by $500 to $5,300,
only $800 more than the horrible little Civic we drove yesterday.

Up at the crack of dawn today for Jeff Brooks, the trench digger, who arrived an hour
later than planned. We're having cables laid for the front gate, and Barry Engel, the
electrician, also came along and did his thing.

Not feeling at all well today; my back was hurting quite a bit. One of the main concerns
is just knowing what's wrong. Spent more time on the JFS 1 code, and finally built and booted
a kernel using User Mode
Linux. The kernel worked fine until I tried to run it in the debugger and set a
breakpoint, which caused it to panic. UML sounds like a good idea, but I can write my own
bugs.

More work on the JFS 1 kernel today. Gave up on User Mode Linux and started
trying to retrofit things to the kgdb tree I have, which took far longer than I
thought.

To the physiotherapist and more searching around as to what is causing the problems. The
good news is that it's not Carpal Tunnel Syndrome, and that it's probably nothing else really
serious. Now if it would just stop hurting.

Teleconference in the morning, work on JFS 1 in the afternoon. Finally I got the
superblock read and “mounted”, though further processing was somewhat hampered by
the lack of a root inode. Still, it's a milestone. Was somewhat confused by the fact that the
null pointer dereference didn't stop the system, just made it impossible to shut down.

Mark Whitefield in to look at the concrete footing for the gate this afternoon. He came up
with a price which astounded me, about 20% of what he charged for the foundations of the extension.

Spent most of today catching up on my slides for the BSDCon, which were due yesterday, but Dan
gave me an extension to the weekend. Looks like I'll make that deadline.

Yvonne's going to Peru and the USA in April/May, and spent some
time trying to find a way to get her from San Luis Obispo to deepest Idaho. Discovered some
really bad online booking agencies. Expedia looked OK, but it let me go all the way through
the booking before insisting on a US billing address for my credit card. Looking through my
mail logs, I see that they tried to send me mail, but they don't believe in reverse DNS:

Finally tried
Yahoo!, who came up with exactly two Australian on-line booking shops. Payless Travel didn't cater for multi-leg
journeys and couldn't find any fares anyway, and Airfares.com.au relayed me to an American site and
expected me to enter my credit card number into an http form. Finally found a way to
work around that (dissected the original web page and called the same URL with
https), but at the end I was told that I couldn't book the itinerary that I had been
offered. Grrr. What a waste of time. Web commerce has a long way to go.

Up late today. I seem to be on the mend, but something has really tired me out. Spent most
of the day working on the BSDCon slides, and things are as
good as done now. It's funny how easy it is to write this stuff compared to other things; the
main problem I have is to find a good example dump.

Things are finally looking more normal. Mail is down to a manageable quantity, and I'm
making some progress on the JFS1 inode stuff, though it'll be a while before I have much to
show for it. I'm happy, but it doesn't make for very interesting reporting.

Finally got fed up with the inconsistencies in the menus on my different X window
managers, and tried to write a shell script to do the job, but ran into problems with
environment variable dereferences. Thought of finally learning perl, but then, what's Emacs
for? Ended up writing it in a very short LISP function, which also had the advantage of being
much faster than shell scripts.

Somehow nothing happened today. I suppose that means I've been working. The weekly
teleconference was shorter than usual, and I managed finally to get my mail inbox down below
82 messages, which means they can all display on one page. It's going to be tough to get much
less than that, though.

The big news of the morning was from Caldera:
they've released the old UNIX sources under a BSD-style license. This
means that all BSD versions are now freely distributable. Well, all the CSRG versions, I
suppose. Commercial variants such as BSD/OS won't be, but it might
be time to work on Sun to release the sources of SunOS
4.

When we bought the Magna two weeks ago, the radio was not installed; I was given it
separately. Getting it installed proved to be a pain. They had cut off the power and speaker
connector, and the connector supplied with the radio had neither pins nor any indication of
the correct pinout. Mt. Barker Mitsubishi didn't want to know, and our local car electrical
people could find neither pins nor pinout. I tried measuring resistances at the socket, which
gave me a vague idea of what was going on, but also confused me somewhat: there appeared to
be no direct chassis connection, but a total of 7 wires for a 9-pin connector. Yvonne went to
the local car wreckers, who gave her two connectors with cables, both different and obviously
wrong: they connected to pins which weren't connected to the radio, and had no contacts for a
couple which did. Called up the factory, conveniently also located in Adelaide, but they said
they could only get me a workshop manual for the radio, probably more expensive than a modern
replacement radio. Finally went to the wreckers myself, where they could have sold me a radio
with known pinout for $50, about 8 minutes work at my old contract rate, and not much to
worry about even now. But it annoys me, so I changed my mind after seeing yet another pinout
on the same connector, and went back home. Managed to guess the power connection (not
difficult, since it went open circuit when I removed the fuse), and decided that there was no
direct earth connection, so now I'm left pondering on the purpose of the other cables.
Obviously 4 are for the speakers, though I'm still puzzling about how to pair them, and I
suppose the other two are for battery backup (must be the 9 megohm connection) and
illumination (maybe; the resistance is 17 ohms, which seems low).

This radio has got on my nerves much more than I expected, and I spent some time working
things out. As expected, the high impedance input was for the battery backup, and the four
contacts with approximately 10 kilohm resistance were for the speakers. But how to pair them?
In the end, I connected an oscilloscope and was able to find pairs which died down to nothing
when I turned the balance control all the way in one direction, thus also finding which was
left and which was right. The only thing I couldn't find was which way round they had to be
to be in the same phase, so I guessed that one.

Things still weren't done, though, because I had no instruction manual. Tuning to a
particular frequency doesn't appear to work: it goes off in one direction or the other
looking for a sufficiently strong signal. It doesn't find many, either; none at all on the
first pass, after which it turns on an indicator “DX” and sometimes finds
something. I found it worked better when I had my hand on the (tiny) antenna, so I was able
to get the station I wanted by touching the antenna just before the search got to that
frequency.

Setting the clock seemed to be an afterthought: instead of using some of the other
buttons, it was done entirely with the one “clock” button. Anyway, now I have the
thing working.

Still trying to take things easy today, but I got news of a panic in Vinum, along with an analysis of a fatal double fault,
done by Thomas Moestl. It seems that I had an
additional, unprotected call to setjmp in vinumioctl, and this enabled a
race condition. Spent quite some time checking all that, and came up with a reasonable way to
recover data.

Taking it easy in the afternoon. Reading Nevil Shute's “The far country”. It's
interesting to compare life then to now; at least in those days refugees didn't get treated
like dirt, the way the present government is doing it.

End of the month is almost here, and I still haven't finished my Daemon's Advocate column.
Spent the day doing that, chasing Vinum bugs (and in the process finding bugs in the kernel
debugger; grrr) and catching up on various administrative things.

Somehow I get the feeling that I'm not getting very much work done, though that's not
quite correct. Still, I really wish I had more of this JFS stuff done.

During lunch, I noticed some smoke coming from down where our neighbour Diane Saunders
lives. That's a danger sign, since there's a total fire ban in the district from 1 December
to 30 April. Called up Diane, who hadn't seen anything, but she suspected something down
Master Rd., and called the CFS. We noticed that the
smoke was blowing in our direction, and though there appeared to be little danger, decided it
was high time we got out the fire pump and hoses. A good thing, too. Some idiot had torn
through the supply pipe from the tank, and I had to repair it before we could do anything. In
addition, one of the hoses appeared to be blocked. While we were doing that, a plane flew
over and dumped a load of water on the fire. By the time we had got our act together, the
fire was out, so went over and took some photos.