POST 01.06

Back to the data packets I needed to gather. Since the data files were rather large (even when they were compressed), it was a bit dangerous to send the files directly to my computer. So I used the remailer to send them to a Yahoo account, and I left them there until I could collect them while I was on site at one of my client sites.

I did have some files on my portable computer that I used with the sniffer. When I went to a customer's site, I sometimes had to determine why data wasn't being delivered efficiently. I used the sniffer to capture a bunch of data packets, and stored those data packets into a file. I could then use some custom-made programs to analyze the data packets, to see why they were being delayed. Sometimes I'd find out that the file contained multiple copies of the same data, or maybe the data got garbled a bit because of a flaky cable. There are lots of reasons for duplicate data; some reasons were valid.

But I was finding that some data packets were just delayed for no apparent reason. It was like the packets had a time-delay fuse in them - the packet data would 'sit' at the router for a few computer beats, then they would proceed on their merry way. The number of affected packets was minor compared to the total packets, so I just figured it was a somewhat normal occurrence, not anything to cause alarm bells to go off.

In any event, I had saved lots of files containing packets on my laptop computer for later analysis, or sometimes just because I forgot they were there. I used these files to test my router emulator program. Data packets would go into the router emulator program, the router would process the packets, and then send it 'out' of the emulator.

My router emulator worked a lot like the routers at customer sites. The emulator had it's own little microcode routines to process the data. It didn't take much time to take the microcode from one of the weird routers, and modify it slightly so that it worked with my router emulator.

I set up a test computer network at my house. One computer was the data packet source, and another was a data packet destination. A computer in the middle of the network contained my router emulator. I set up the programs on each computer to work one step at a time. The first computer would set up a packet of data, and send it to the router emulator. The router emulator would go through the microcode one step at a time, eventually spitting out the packet to the destination computer.

I tested my little packet routing network with some very simple data. Each data packet was properly encoded, and I could watch the data pass through the router emulator instruction by instruction. It was a bit tedious, and the programs took a bit of tweaking to get everything right, but I ended up with a pretty efficient process. Data goes into the router, and comes out the other side. Data in, data out. Worked just fine with normal data. I even had a time-tracker routine that kept track of the high/low/average time it took the data to get from one computer to the other.

Once I got the whole process debugged, I gathered up some normal data packets, and set them up to be sent from one computer to the other through the router. I had a good pile of data to send, so set it up to automatically send a large amount of normal data. The time tracker routine kept statistics on the time it took the data to be routed.

I set up some large hunks of data to be routed, using a simple routine that would continually send the data from one computer to the other. It had a loop in it so the process would be continuous until I stopped it. That way, I could get some really good statistics on how long it took data to get from one computer to another.

It had taken me about 18 hours to get everything working right. It was time to take a break and let the whole process run overnight while I got some sleep. I did some final checks on the whole process by using a short file that looped for five minutes. Great, it worked just fine. I started the looping routine with the various data packet files I had. It would continue until I stopped it, using the same data packet files over and over again, gathering time statistics as it ran.

I went into the kitchen to grab a cold glass of milk. I'm not really a soda drinker, contrary to the popular image of the computer hacker with his cans of high-caffeine Jolt and packages of Twinkies. I did grab a couple of oatmeal-raisin cookies (with double the amount of raisins). There was a bakery in downtown Auburn called "Hilda's" that makes the best oatmeal raisin cookies, and I usually pick up a couple of dozen a week.

I took my cookies and milk out to the Adirondack chair on the front porch. By this time it was 2:30am, so there wasn't much activity outside. The occasional dog barking, or maybe a cat meowing off in the distance. My neighborhood had lots of mature trees, and you could occasionally hear the hoot of an owl as they looked for their dinner.

So I sat on the porch, eating my cookies and milk, and let my mind wander. OK, not the exciting life you might think of - cookies and milk, for crying out loud! But I found that routine to be quite relaxing. Sitting out on a darkened front porch, the only light from a streetlight and the moon (third phase, if you want to know). It was a clear night, and there were lots of stars out. I stared up into the sky, looking at the various constellations. There's the Big Dipper, pointing at the North Star. Over there, the big "W" of Cassiopeia, and that bright one over there looks a bit like Venus.

It was a nice summer evening. One of the great things about the weather in Auburn is that it might get hot during the day - maybe in the mid to high 90's, but there wasn't much humidity. And in the evenings, we'd usually get a cool breeze from the river delta near Fairfield (down towards San Francisco). The 'delta breeze' is the Sacramento valley's air conditioner. Nightly lows would be in the 60's, so it was quite pleasant in the summer. At least it is on most days. Sometimes, the wind would come from the North, heating up the valley to the 100's F, with overnight lows in the 70's. But it wasn't as bad as other places, where the overnight low would be 85, and the humidity was the same. Winters weren't too bad: when it was cold, it could get down to 35 at night, and maybe in the 50-60's during the day. Just rain, no snow in Auburn, although you might see lots of it higher up the mountain towards Reno.

So I was sitting on the porch, eating my oatmeal raisin cookies, sometimes dipping them in the cold milk. It was very relaxing. And it was very conducive to thinking about Problems, computer or otherwise. I'd always get some good ideas popping into my head at times like this. I called them "Oatmeal-Raisin Epiphanies": Knowledge processed, absorbed and gained.

Tonight, though, it was mostly relaxing. Just a winding down of the days' activities, working on the router emulator and testing program. Sometimes, I'd spend several hours on the front porch. Tonight, though, I was beat. I only got three cookies into my six-cookie allotment. They were so good, I could usually eat a dozen at a time. Luckily, my metabolism burned off the calories quite quickly, or I would have really ballooned up my weight. Three cookies, a half a glass of milk, a quiet night, a gentle, cooling breeze, and my head was soon nodding. Time to hit the sack. I didn't have any appointments until the next afternoon.

I pushed myself up out of the chair, and shuffled into the house, locking the front door and setting the alarm system. I put the extra three cookies back into the fridge (they are best when chilled), emptied out my glass, rinsed it out, and put the glass with the others in the dishwasher. I guess that's another atypical part of me. Even though I was living alone, I kept the kitchen and the rest of the house pretty neat. No stacks of dirty dishes, trash neatly in the trash can, clothes in the hamper.

I usually kept the whole house pretty neat. Well, except for the computer room. That had a tendency to get a bit messy, what with computers in various stages of disassembly, and piles of computer paper with the printouts of programs or other stuff. That room was my one weak spot, and I had to make a conscious effort to keep the computer room neat. The paper shredder (cross-cut, of course) helped keep the paper trash to a minimum. (That shredder really came in handy later.)

Anyhow, my dirty dishes were in the dishwasher. I checked the back door, made sure it was locked, although the alarm system would have alerted me to an unlocked door. I took a quick peek into the computer room (yeah, I'd need to straighten it up a bit tomorrow) to make sure the program was still going. It was, and I successfully resisted the temptation to actually go into the computer room to check things out. I knew if I went in there, I wouldn't be coming out for a couple of hours. So I turned off the light in the computer room shut the door, and went off to the bedroom. I got undressed, hit the can, brushed my teeth, pulled back the bed covers, and then dropped (well, collapsed might be more accurate) into bed. I set the alarm, and went to sleep. No dreams, just deep, restful sleep.