The Boston Diaries

The on going saga of a programmer who doesn't live in Boston, nor does he even like Boston, but yet named his weblog/journal ``The Boston Diaries.''

Go figure.

Current Week's Entries

Thursday the 8th

Tuesday the 6th

Monday the 5th

Sunday the 4th

Saturday the 3rd

Friday the 2nd

Thursday the 1st

Tuesday, February 29, 2000

Life in Unixland
Life before noon does not exist
Computer Art anyone?
Conslutting as a way of life
Patent yourself for fun and profit

ytalk doesn't work on linus (my home system). Nor does talk. Strange, I have it enabled, but it just isn't working and it seems to be horribly damaged.

This is Unix. So what else is new?

Seriously. There are at least two different talk protocols, neither one documented (unless you count source code to be usuable documentation, much like uuencode when you get down to it) and both incompatible with each other. Which is why ytalk is nice---it preportedly talks both so it doesn't matter.

Only it's not working.

Over the years I've found it harder and harder to find working implementations of *talk on any system but I did have a working version I could use to talk to a few friends with before the install of RedHat 5.2 on linus (it was running RedHat 5.0 before).

Now it's general braindamage all over the place.

In trying to debug the problem, I found that /etc/inetd.conf had a bogus entry for dtalk (whatever that is) so I commented it out. Still didn't work. Uncomment telnet on the advice of Mark to see if inetd is okay.

telnet isn't working. What the ... ? I try killing off inetd and restarting it. Same deal.

Is it possible for a newer release to exhibit so much lossage? That isn't a Microsoft product?

Try re-enabling FTP. Same lossage.

Turns out I had neglected to install TCP-wrappers. Nice that the RedHat install program neglected to make a dependancy on that. But it includes Perl. Goes out of its way to include Perl.

Such is life in Unixland.

I should note that I get easily upset when stuff that should work doesn't. Computers don't have to be this difficult. There shouldn't be this much lossage and braindeath in dealing with computers. But I suspect that most programmers can't cope with such ideas. Programmers give programming a bad name.

* * * * *


Ring. Eh? I thought.

Ring. Is it already time to get up? Wait a second ... that doesn't sound like the alarm clock.

Ring. Crap! The phone! I hoped I wasn't too late---it'll be really annoying if the answering machine picks up. ``Hello?''

``Hi. You've reached area code three zero five ...'' Great. Answering machine got it. Now I have to make the 30 second commute to the Computer Room and stop it. And what bloody time is it anyway? It had better be the A/C guys---I called yesturday and left a message with them. I stumbled around, turned off the machine. ``Hello?''

``Hey guy! It's 9:30! We need you here!''

It was C. S., a salesdroid from Atlantic Internet. I've been helping him with some projects lately and he needed help. Good thing he was 15 miles away or he would have needed some help. ``When can you come in?''

``After two,'' I said. I think. I don't fully remember the conversation. Life doesn't begin before noon.



``Okay, see you then.'' He sounded entirely too chippy. What is it with people being up at these ungodly hours?

* * * * *



``Salvation Army, can you hold?'' I don't have enough time to answer before I'm put on hold. Several minutes go by. ``Salvation Army, may I help you?''

``Yes, I'd like to donate some old computer equipment,'' I said. I have a ton of old computer equipment I'd like to get rid of. About a dozen monitors (mostly monochrome or CGA), a dozen or so PCs (of XT or 286-AT class) and some other miscellaneous equipment I've accumulated over the years.

``Is this an office?''

``No, it's a private house.'' I swear I could hear the person on the other end blinking in disbelief. ``I have some older equipment I want to get rid of.'' More blinking. ``Can you pick it up?''

``Are they usable as home computers? If not, then we'll just throw them away and that actually costs us money.''

Interesting question. The monitors work. Most of the PCs work but are large and bulky. About the only thing you can run on them is MS-DOS, maybe up to version 3.3 or so. Throw Procomm or Qmodem and they'll make decent, if bulky, terminals. But who ya gonna call, eh?

``Probably not,'' I answer.

``Okay. Thanks for calling.'' We hung up.

Maybe painting the whole lot gold and selling it as art on eBay is the way to go.

* * * * *

Conslutted with Atlantic Internet. Easy few hundred dollars for a couple of hours work. This, and investing should make it easy for me to avoid real work. Can't complain.

But I can complain that I still haven't been able to get a hold of the A/C guys. Voice mail. Answer it. Sheesh.

* * * * *

LONDON (Reuters) - A British woman has become the first person to attempt to patent herself, the national patent office said Tuesday.

Woman Files Patent Application on Herself via Flutterby

Interesting concept, but does that mean after the patent expires, people can use her without paying?

Monday, February 28, 2000

just a typical monday

The world runs on a different, and worse, an alien clock, to me. I called the A/C repair people because the A/C that was just installed seems to be freezing up. I called around 3:30 pm (I got up around 2 pm) and I got voice mail. Does that mean I'm going to have to get up at some ungodly hour like 10 am or so just to make sure I get actual human beings at the A/C repair company?

It also makes it rather ... interesting playing the stock market, seeing how it closes down at 4 pm EST. Supposedly there are ``after market'' hours but I haven't seen much evidance of that.

It's not that I'm lazy mind you---it's just that I might have a condition known as DSPS, Delayed Sleep Phase Syndrome. Don't laugh, it does exist but there are very few doctors that have heard about it. Sigh.

I also spent the day looking for a stock to invest in as well as updating the journal entry here.

Sunday, February 27, 2000


Spent the day staying up way too late this morning, getting too little sleep and then helping my friends Paul and Lorie move from their two story townhome to a second story appartment all day, then staying up way too late hanging out with other friends.

I arrived at Paul and Lorie's a bit past 10 am. I was running a bit late, but then again, I don't understand how anyone can function before noon on a daily basis.

Jeff and Sarah were already there, helping Paul and Lorie load the truck with boxes. When I arrived, the loading of furniture commensed, along with the majority of remaining boxes.

Getting the furniture downstairs was fun---having to navigate turn halfway down made it all the more fun. Paul wasn't sure what to do with the large entertainment center in the living room---it was huge and there was concern about moving it into the new apartment (remember, it's on the second floor). After a small attempt to move it and have one section separate from another (think of three shelve units bolted together and you get an idea of what this thing was like) I suggested that the unit be taken apart---just remove the top and the sides would just pop off.

No tools, so Jeff and I went to Jeff's house to pick up his tool box. Came back and spent maybe half an hour taking the thing apart. Had to remove the back (well, part of the back) as well as the top but it made it more manageable, but the truck by that point was nearly full so it was left behind (along with some other bulky furniture) for a second trip.

At the new place, the stairs leading to the second floor of the apartment went up half a flight, landing, then continued up the other direction to a walkway, where it was several hundred feet to the apartment door (around three turns no less---large apartment building). Kurt had arrived by this time so an assembly line formed---Jeff in the truck bringing boxes to the loading door, Paul carrying the boxes and lifting them to me, standing on the lower stair landing where I would walk up two or three steps and toss them on the second floor landing, where Kurt, Sarah and Lorie would then pick the a box (or two) up and carry it (or cart it) to the apartment.

After the boxes, any long item would be handed directly up to someone leaning over the second floor railing who would catch and bring it up over the railing and place it for someone to come by and cart it off to the apartment.

Lunch. Then the second trip, much like the first. Then dinner.

By that time everyone was exhausted.

So of course I hung out with Mark and Jeff (a different Jeff) that night.

Saturday, February 26, 2000

Tumblers tumbling
Files filing

I'm updating my code on tumblers. Tumblers is a crucial portion of Xanadu, the hypertext system designed by Ted Nelson and still being worked on (only 40 years later).

My tumblers work differently than the Xanalogical mode. There they are true numbers on which certain operations like addition and subtraction can be applied to address nodes (and all the nodes contained therein) whereas mine are not numerical at at and the operations that are performed on them do not have mathematical relationships. At least not in the Xanalogical sense.

Both systems (mine and Ted's) do allow ranges to be specified, but the mechanics differ. I'm not going to go into how Xanalogical tumblers work since that's described elsewhere. But I am going to describe what I'm working on.

Basically, my tumblers (for lack of a better term, that's why I'm using it currently) is just a list of node identifiers, with those listed first higher up than those below it, much like USENET groups. You have comp that contain all the computer related discussion groups, and below that you have comp.lang, which contain all the articles pertaining to computer languages to finally having comp.lang.forth, dealing with a particular computer language. And you are not limited to just the period for separating nodes---I also use slash and colon (for several reasons I won't get into right now).

But another aspect is describing ranges. A range specifier consists of left and right sides separated by a dash. The left side specifies the starting node, while the right side specifies the ending node, relative to the starting node. So that:


would specify the nodes A.b.1, A.b.2 and A.b.3. Notice that there are three node segments on the left side and only one on the right. That's important. The missing segments on the right side are inherited from the left. This inheritance only takes place if the right side has fewer segments than the left side. If the right side is longer than the left, it is assumed that the right side is a full specifier, like the left side is.

And so far, the code I have in mod_litbook handles those cases (dealing with the King James Bible for now). What it doesn't handle are separate but related ranges.

For instance,


The interpretation I use would return nodes A.b.1 and A.b.5 but nothing else in between. In this case, the comma is used to specify to independant nodes, but with the same relationship rules used in ranges. So far so good, but I want to be able to handle something like:


Which is a complex specification for:

1.5.3 through 1.5.5
1.3.8 through 1.4.1

I'm close to getting the parsing done.

* * * * *

I was hanging out with Mark and Jeff and one of the topics of conversation was over filesystems.

Okay, I'll admit up front we tend to be a bit geeky.

Anyway, a conversation about filesystems. I don't like the way Unix handles the filesystem, slapping everything under one tree, but I came from a rather heavy MS-DOS, VMS and AmigaOS background where you had volume labels (okay, so the support under MS-DOS was rather weak and ineffectual). Under AmigaDOS (for instance) if I have a floppy with a name of ``StarControl'' (which I actually do) and I insert it, I now have a volume I can look through called ``StarControl:''. And if there is a program on that disk (which there is) it can reference files from the volume ``StarControl:'' such as ``StarControl:config'' or ``StarControl:scenarios/galactic war''. And, copy protection concerns aside, I can copy the files off the floppy disk onto the harddrive (``Captain Napalm:'') into a games directory and then set the volume ``StarControl:'' to be equivalent to ``Captain Napalm:games/star.control'' and have everything work without problem.

``Ahha!'' said Mark. ``That's all great and everything but what if you insert two floppies with the same name?'' Erm ... ah ... <cough> <cough> ``And what if,'' he continued, ``I have a lot of volumes? There could be name clashes. Like both the C compiler and Pascal compiler looking for files from volume Compile?'' Erm ... uh ... look! The Sweedish Bikini team!

``And why have a different syntax for the the volume name and then the rest of the filesystem?'' asks Mark, avoiding my transparent attempt at changing the subject. ``Do you allow slashes in the volume name?''

``Sure,'' I said.

``And do you allow colons in filenames?''

``I'm sadistic enough of a programmer to say yes.''

``AAaaaaaaaaaaaaaaiiiiiiiieeeeeeeeeeeeeeeeeee,'' he said. But point taken.

Mark, on the other hand, like the One Tree, Über Alles approach to a file system. Other machines on the network would appear under, say, /net. But that seems wrong to me. Each local machine is the top of their respective trees when it seems like it should be the other way around.

``But if I'm on a non-networked machine, just where should the root be? Should it be under /net/machinename?'' Mark asked.

``No,'' I repled. ``It should have a volume name.''

Friday, February 25, 2000

Hack the Source, Part II
DNS Woes
Conman Laboratories monitors at Area 51

Mark has written some pages about hacking the Atalk driver in Linux. Another note not noted in the note: he reported that it doesn't work on another of his Linux systems---the major difference being a different network card. Is the Linux kernel that fragile that a difference in network causes a protocol stack to fail?

* * * * *

Mark wrote in today to say that reverse lookups for my domain weren't working properly. And lo, nslookup was having a hard time finding the machine it was running on.

At first I thought maybe it was a problem with what I was trying to do with the latest version of bind. You see, I set things up such that I control the reverse lookup on the 32 IP addresses Atlantic Internet provides me.

This is done via an interesting hack. For the appropriate file, I have:


And so on for the 32 addresses I've been assigned. Then, for the namesever here in the Computer Room, I have:


32	IN	NS
33	IN	NS

253	IN	NS
254	IN	NS
255	IN	NS

I've also set the nameserver to think it's a master for the zone I appear in.

So anyway, I thought the latest version of bind wasn't liking that. And it turned out that was true, to a degree.

There is no such TLD as .apra. Stupid typo.

* * * * *

Not that I'm inviting anyone to try, but good luck trying to break into You won't get very far nor is it a very interesting box. A Compaq 486DX/2 running at 66MHz with 20M of RAM and no harddrive.

Yet it is on the network.

It's running a modifed Tom's Rootboot disk distribution with some network monitoring software I wrote. I just thought the name was cute.

Thursday, February 24, 2000

Back from the Dead
Netscape, version Proxy Authorization Required
If Bill had a dollar for every blue screen ...

So I finally got linus (my main computer) back in operational status after last week's little fit (starting with a dying and now dead mouse). Yea!

* * * * *

Since I installed a later version of RedHat (5.2) on linus that was on there before (5.0) I have a newer version of Netscape. Instead of version 4.04 (the NOTFOUND version) I now have 4.07 (the PROXYAUTHREQ version).

Okay, so you have to be a webgeek to get the joke.

* * * * *

If Bill [Gates] had one dollar for every blue screen ... oh wait. He does.

Mark Grosberg

Wednesday, February 23, 2000

``Uh, my mouth just exploded.''
Those Computer Blues ...
Hack the Source

My roommate Rob came into the Computer Room this morning and asked if I wanted to go to lunch. He was going out with some of the tech crew from Atlantic Internet (who so kindly provide my connectivity) and wanted to know if I wanted to go along. I wasn't all that hungry, having actually had breakfast before 8am (long hacking run last night, more on that later) but since I decided to stay up anyway (cleaning woman---yes I'm that lazy) why not?

We ended up going to Lucille's, a local BBQ place in Boca Raton. I was feeling a bit sluggish by the time the food arrived, and the waitress, at Shane's request, brought over not one, but two of the hottest sauces currently available.

I remember Endorphine Rush from the last time I was there. The other one was a new one they just got: Blair's After Death Sauce. I was the only one there to actual0y try it.

The opening was slightly crusted over with dried sauce so it took some coaxing to get a small dab out, which is all I dared. Then dipped my fork into the dab, then tried it.

``Oh---'' is all I got out before slamming down my iced tea while motioning wildly at the waitress for more. She quickly returned with a glass of milk, which I slammed down, and by that time she had a refill on the iced tea, which I nearly slammed down. And when I say ``slammed down,'' I mean chug. Big time. Like I've never chugged before.

I was no longer tired. I was wide awake after that.

And checking the bottle after a few minutes showed the sauce had eaten away at the drived sauce crust over the end of the bottle. Yikes!

Endorphine Rush wasn't that bad. No effect for a few seconds then WHAM! It hits. Pretty hard. Blair's After Death Sauce hits fast and hard. Liquid fire this was. Ouch. Wasabi doesn't hit this hard with so little.

* * * * *

I haven't updated in the past few days. That's okay, because I have an excuse: my computer was dying.

Well, it wasn't exactly dying, but X Windows---sorry, A Windowing System Called X, was dying. It happened last week when the mouse suddenly went spastic then died. Then shortly thereafter A Windowing System Called X died too. Most horrible. Even worse, I didn't have the CD I installed Linux from (nor a CD-ROM but that's beside the point). Even worse, it was the Metrolink X Server that died.

The system was a RedHat 5.0 system. I did not want to upgrade or install RedHat 6.0 or 6.1. I wanted 5.2. Mark found his copy of RedHat 5.2.

So, I decided it was probably time to do a fresh install. I slapped a 1G drive, backed up what needed to be backed up (and missed /root and /tmp in the process---oh well, probably didn't need those files anyway) and then proceeded to the installation.

I've found out that trying to install RedHat 5.2 across the network from a RedHat 6.1 box is a futile exercise. NFS or FTP the network performance was so poor that doing a disk install of Slackware would be faster.

Then it hit me---I was reinstalling my primary nameserver. This is also the nameserver that resolves reverse lookups. Even my roommate's computer would eventually contact my machine for reverse lookups on the IP addresses.


Quickly fix that, but still find that installing RedHat 5.2 from a RedHat 6.1 box is a futile exercise.

I tried three CD-ROM drives in the computer and not once was it recognized. Of course I was putting the CD-ROM in the second IDE controller on the motherboard but I think the second IDE controller doesn't work. Disconnect the 1G drive and put the CD-ROM in there, and it worked (of course at first I thought it didn't since the BIOS wouldn't recognize it. Mark was like ``Duh! It's not IDE! It's ATAPI. The linux kernel will find it.''

The install went smoothly. I repartitioned the drives the way I like (4M /boot, twice the RAM for swap, and the rest for /) and installed RedHat 5.2. I was expecting the Metrolink X server to install, but it didn't.

Twice more and it still didn't. Guess Metrolink stopped shipping their server with RedHat. And XFree86 doesn't support my card (or at least it didn't when RedHat 5.2 came out and like I said, I'm not going RedHat 6.x nor spending hours downloading the current XFree86 and configuring it).

I finally got X working though, and restored from the backup IDE drive.

Oh, and there was that extended hacking session last night.

* * * * *

So I wound up at Mark's house last night. He wanted to get AppleTalk running so he could mount his Linux drives on his Macs.

He was going to do this on his primary development machine kwalitee, but was relunctant to loose the uptime on it. I suggested ortho, his primary file server.

He was overwhelmed by the sheer obviousness of the suggestion.

Compile kernel. Download userland code. Install. Reboot. Select ``Chooser'' on the Mac. And there is ortho, ready to serve up files. We were both amazed at how easy it was---especially given the difficulty of Samba, or the insanity that are the automounter documentation (the man pages, how-to's and other documentation for the automounter bear no relationship to the actual program that he used. It's like learning Unix from MS-DOS manuals).

Until he had to make a slight configuration change. The AppleTalk server wasn't returning the correct type or application for MP3s (I'll save the discussion of finding and uncompressing an MP3 player for the Mac for later). Okay, tweak a configuration file and restart the AppleTalk daemon.

Only it won't restart.

Nothing we do will restart it short of a reboot. So we reboot.

And reboot and reboot and reboot and reboot. Any change we make to the AppleTalk configuration file requires a reboot of Linux. Had Mark made the driver a module and unloaded it, then we wouldn't have to reboot. But having a modular kernel as a server is a potential security hole and Mark doesn't want that risk.

So it's reboot reboot reboot.

We then scour the net for updated anything.

It seems it's a known problem that you have to reboot if you change any configuration for AppleTalk.

Linux is Open Source, right?

Mark wants to reconfigure AppleTalk and not have to reboot. He's got this itch, right?

So, he hacks the kernel.