Train Engine


Aboard the Empire Builder from Seattle to Chicago

Thursday, December 14, 2006

12:13, Mountain Standard Time

They just announced a waiting list for lunch. We’re not hungry yet anyway, so we’ll wait a bit longer before heading back to the dining car. Our sleeperette (Cabin 8, Car 830, north/left side, second level) is cozy as rooms go, and luxuriously spacious as travelling space goes. We’re right next to the dining car, so we’ll probably come back to our room after lunch to hang out until 3, when there’s a wine and cheese tasting for sleeper-car passengers.

The trip didn’t start out quite so luxuriously. I’ve been trying to get all my major outstanding tasks wrapped up before this trip; since I’ll be gone four weeks. One of the items was to make sure all the servers were as stable as possible, and to enhance my ability to work on them remotely.

As it was, I’m lucky they’re running at all. Two weeks ago, our internet connection suddenly went dead. I called tech support at our ISP (Northwest Nexus, whom I recommend without reservation. They have the best tech support of any company I’ve ever worked with), who found out that Qwest had disconnected our link because we hadn’t paid our bill. Er, come again? Well, we’d made some changes to our DSL connection last July, and they’d changed our account number. We hadn’t noticed this, so our payments had been piling up in the wrong account.

When I called Qwest Billing to find out what was up, the first thing they did was issue the reconnect order. Then they worked with me to figure out why the bill hadn’t been paid, and when we found the money in the other account, they just transferred it over.

“How long will it take to get reconnected?”

“Twenty-four hours, although usually it’s done in one or two.”

If that had, in fact, been the case, I would have called this a minor nuisance and not thought much of it. But the next morning it still wasn’t up, and Northwest Nexus couldn’t tell why. I had to work that day, so I couldn’t look into it further until the evening. To skip much of the rest of the drama, it turned out that they had, in fact, connected me back up Thursday the wrong ISP. It wasn’t fixed until Saturday morning, and cost me hours of time to get straightened out.

One week later, we lost our internet connection again. This time it had nothing to do with Qwest; my router had simply failed. After some frantic head scratching, I managed to get our main server back on line by basically piping the DSL connection directly to it; this setup does not allow any other computers to share, so it wasn’t a viable long-term solution. Saturday, I ran to Best Buy and picked up a new Linksys router, and spent two hours trying to get it to work. After the second time it crashed (!!?!), I threw it back in the box (after throwing it across the room), and exchanged it for a D-Link more like my old router.

On top of all this was the problem of the server’s backup drives being full. I run software on the server that backs up everything in the house, twice, so that we always have two backups. This has been invaluable on two different occasions when a laptop or its hard drive has suddenly died, and saved hours of time on other occasions, so keeping the backup system happy is important.

Two new computers recently joined the main XServe server in the rack; Mneme and Clio, after years of hanging out in fancy co-location digs with hundreds of other computers, have come home to me. These two machines create the website, the recommending system, and the original RosettaMachine conversion engine. The last time I saw them was when we all had to vacate our rockin’ little room in the Columbia Tower downtown, back in 2001. (For you geeks out there, Mneme is still running Windows NT 4 Service Pack 2 today.)

But adding them to the backups means the backup files are bigger; big enough that the current drives aren’t quite big enough. So I had to add another hard drive to the system. This is complicated by the fact that a drive “sled” to add a drive to the XServe costs $200, without a drive. Yikes! So I had to add the drive externally. More time configuring the external box, rebuilding some of the backup scripts to use the new drive, and so on.

And then there was Wednesday (yesterday), the day we left. I wake up hoping to get my packing done and finish up some work on our Christmas gift for Eric’s parents, as well as clear up some pending Alexlit work. Instead, I find that the storm that arrived during the night, or rather the wind that came with, had cut our electricity.

Desperately hoping the power’s back before we have to leave, I start the day by getting my master packing list out of mothballs. When I did a lot more travelling, I kept a travel packing list on my Newton. Whenever I’d forget something, or wish I had it, I’d add it to to the list. I quit using the Newton when I quit travelling so much, because I was spending so much time at home that I didn’t really need a PDA, and most of my recent travel had been much more casual, so I hadn’t bothered using it, but for an extended trip, it made sense to use the list.

Moreover, it made sense to transfer it from the Newton to my laptop. I have some software for “docking” a Newton with a Mac, but I hadn’t ever tried it, and this didn’t seem like the best day to experiment. So I hooked up a phone line to it, and emailed the list to myself. I had to get Earthlink to share the secret of local dial-up numbers with me, since the old one didn’t work and their web site claimed that Earthlink had zero dial-ups in Washington (yea, right), but other than that, it went rather smoothly, and was a reminder of just how incredible the Newton is/was. Still a pleasure to use, still getting the job done. I haven’t seen any significant improvement in PDAs in years, and if I were going to start using one again, I’d still go with my Newton over anything else I’ve seen to date.

Thankfully, after I’d spent an hour or so packing, the power came back up; then I got to run around to all the servers to get them back up and running. One of the Alexlit servers didn’t turn itself back on when the power came back, nor did the external drive box. The computer that answers our phone didn’t come back at all; Borogove, the old blue-and-white G3 tower would not turn on, no matter how hard or long I held down the power button. After trying to resuscitate it, I got back to frantically packing.

An hour later, the power cut out again. I started hyperventilating.

This time, it popped back up after only 15 minutes.

Oops! Lunchtime. More later...

13:29, Mountain Standard Time


Had a ham and swiss sandwich for lunch. Meals are included in sleeper-car fares, so we just have to take care of the tip. Eric’s reading next to me as we sit in the observation car, watching Montana roll past. Gently rolling sere hills dotted with snow for mile after mile after mile after mile after mile after mile . . . I can’t recall ever wanting to describe something as “boringly beautiful” before.

Back to the story. Power is restored, and I restart the non-starting boxes again. Mysteriously, Borogove the G3 is now powered up. However, the lights are on but nobody’s home. When I restart it, it doesn’t even go “chonnnng” as Macs do when booting. Since the boot chime is a firmware function, and comes before it would even flash the folder-with-question-mark or other “something is wrong” symbol, it is definitely, unquestionably brain-dead. Fortunately, the silver G4 tower isn’t currently doing anything, so I pop the hard drive out of Borogove and into Mandrake. We should (cross fingers) have the answering machine working while we’re gone, so we can pick up messages through email.


I finish gathering together the stuff on my list, and test my VPN connection. Virtual Private Networking was the number one reason I bought a copy of the Server version of OSX to run on the XServe, instead of continuing to get by with just “normal” OSX. Presumably everybody reading this has at least heard of a “firewall,” which is basically a network barrier that prevents most flavors of network traffic from crossing. Our home firewall, for example, allows through network traffic for email, web pages, and a few other things. It does not allow traffic for Apple file sharing, Windows file sharing, databases, iTunes, telnet, file transfer (FTP), or myriad other flavors. This prevents a hacker from taking advantage of some possible flaw in one of those programs.

One of the systems I frequently use when I’m home is called VNC. I forget what that stands for, but I can open a window on my laptop that contains the screen of the server, or of the phone answering computer, or whichever computer I need to work on. That’s often much more convenient than running downstairs (or upstairs) to use a keyboard and monitor that’s actually connected to that computer.

Obviously, that’s an extremely bad thing for a hacker to access, so I really don’t want the firewall to let VNC packets through. But it’s a great way to restart something that isn’t working right on a machine, or otherwise make changes.

Enter VPN. All I need is a good internet connection (it can be done over dial-up, but would be dreadfully slow), and I can set up a special connection to the server that makes it seem to all the computers at home as if I’m hooked up somewhere in the house. Basically, it lets my laptop bypass the firewall entirely, and become “local.”  Since this would also be a very bad thing for a hacker to access, VPN (unlike VNC, telnet, or most other network traffic) was designed to be very secure.

Part of the security is setting up an encrypted communication channel. This involves IPSec and L2TP. I know what those acronyms stand for, but other than that, they’re just shamanistic incantations to me. Well, I know one other thing. It won’t work until I tell the firewall to accept IPSec and L2TP packets, and to forward them to the XServe.

This was all working perfectly on the old router, but it took me some time to figure out exactly how to get it working. Now I’ve got to figure it out all over again, and I’ve got less than an hour in which to do it. I look up the port numbers (4500 and 1701, respectively), I open the holes, I configure the port forwarding, I get . . . nothing. I fiddle some more. Still doesn’t work. I Google for answers and get pages of dismayingly cryptic jargon. I jiggle. I poke. I waggle my fingers and wiggle my nose.

Nothing. I say “blah! screw this!” and put my server in the DMZ.

Recall that the firewall will simply throw away any net traffic that isn’t on the VIP guest list. “Putting my server in the DMZ” means that, instead of throwing that traffic away, any traffic not on the guest list is sent to that server. Since I haven’t been able to figure out exactly what kind of traffic I have to put on the list in order to get VPN to work, I’m just going to let all of it through.

And voilá! VPN is now working. Of course, my server no longer has the protection of the firewall, either. If a hacker finds the server, and knows how to corrupt or compromise it, maybe via the “finger” daemon or some bug in the “whois” system or the like, they’ll be able to do, well, whatever nefarious scheme they have in mind.

I’ll try to get VPN working through the firewall next month, when I get back, and just hope that nobody hacks my server in the meantime, which is a pretty safe gamble, really.

The timing is perfect; the gracious Janna has arrived to take us to the station, and patiently waits while the last-minute flurry of packing (“Do you have your iPod?” “Yikes!” “Go get it...”) occurs. We bundle into her cheery red car, and head south.

It’s rush hour, so we aren’t exactly flying, but we arrive at King St. Station 15 minutes before scheduled departure. We were shooting for 30, but this should be plenty of time. It’s raining in ernest at this point, so good-bye hugs are brief.


As it happens, we needn’t have fretted over our delay. The train is delayed more. The scheduled departure of 4:45 p.m. has been delayed until 6, with boarding at 5:45. I haven’t eaten all day, so I get out my hat and wander out for a bite to eat, returning with a sub sandwich. At 5:30, I’m sitting next to Eric in the station, my sandwich half-eaten, when I see some of the rail station staff push a dolly with some twenty flat white boxes over to the baggage conveyor, and start to set them down. They look like pizza boxes.

And so they are. “Ladies and gentlemen, if you’re waiting for Train 8, the Empire Builder, we apologize for the delay. We’re now serving pizza by the baggage carousel.”

On the one hand, what a charming and civilized gesture. On the other . . . uh oh. That doesn’t seem like a particularly auspicious sign if we’re supposed to be embarking in ten minutes.


We aren’t. The train is apparently just a few hundred yards away in the switchyard, but is undergoing a mechanical inspection or some such thing, and should be ready at seven. So we’ve got another hour or so to wait.

Lacking for reading material, I head back out, this time to Elliott Bay Bookstore. I return by seven. Lo and behold, there’s actually a train parked outside. We’re invited to board at 7:15, and are on our way by 7:30. At last! We’re off! Whew!

14:44, Mountain Standard Time

I’m back in our compartment; Eric’s napping in the upper berth. I have decided to forego the wine and cheese tasting. The lure of cheese is insufficient to overcome my lethargy; between lunch and my breakfast (eggs, sausage, potatoes, pancakes, juice), I’m full. We selected the later 6:45 seating for dinner in order to have more time to digest lunch. (Dinner is by reservation, unlike breakfast and lunch, which were first come, first served.)

It’s really pleasant in the cabin. There’s very little traffic in the hallway, and there’s a curtain that Velcros shut for privacy. It’s not especially noisy, and even quieter when the door is slid shut. The seats are even wider than first-class airline seating, and are far enough apart that, even though they face each other, Eric and I aren’t bumping knees. There’s a closet (about six inches wide, but still, a closet), and a lot of storage room beneath the seats. We can also lower the upper berth half-way and store things overhead. Even fully lowered, I can still sit upright in the seats below. There’s also a fold-out table, should we want to dine in-cabin. Or play with a coloring book, I suppose.

At night, the seats slide together and tip back to become the lower berth. The Amtrak web site said that bunks were longest in the sleeperettes, with one at 6’ 6”, and one at 6’ 2”. I took the lower berth last night, and it had to be at least 6’ 8”, maybe longer, and reasonably comfortable. It’s narrower than, say, a twin bed; about the same as a typical sleeping bag. I can’t say I slept especially well, though; I woke up frequently during the night. Probably when we’d cross over some lumpy portion of the track.

Along with the cabin lights, which can be set to “on,” “off,” or a dim blue “night” mode, there are reading lights for each chair. There’s also a “Call” button, a thermostat, and some music controls (“channel” and “volume”) that appear to be unused.

They’ve announced our arrival at Havra, Montana. It’s a service stop, so there’s time to get out and walk around. More later.

16:50, Mountain Standard Time

I may end up spending the entire afternoon just writing up this journal. Hee hee! Sleeper Car, Top Floor

As I mentioned earlier, we’re installed in Cabin #8, on the second floor. The spiral-y staircase to downstairs is in the middle, by the bathroom and the coffee/water/juice counter. (Cartons of apple and orange juice, with cups. No ice, though.) When we boarded in Seattle, we didn’t have any neighbors. Cabins 6, 7, and 10 were empty. We added a passenger to 6 in Havre, but we can still sneak across the hall to 7 if we want to look out that side of the train.

If you’re thinking the bathroom situation looks rather severe, you needn’t worry. Firstly, the full sleeper cabins, A through E, all have their own bathroom. Secondly, there are three more bathrooms, and the shower, down below on the first level.

Map of sleeper car, bottom floor.

This is also where the handicapped cabin is. I’m guessing cabin F is the “family” class sleeper cabin. Before this trip, I figured that the biggest difference between a sleeperette and a sleeper was the private bathroom. Nope. The biggest difference is, in a sleeper, you’ve got enough room to actually change your clothes before the bunks have been stowed away. This morning, I pretty much had to get dressed in bed, in yesterday’s clothing. With the bunks down, there’s only a one foot by three foot space in which to stand, and you can’t bend over to pull on your socks or anything.

Amtrak Train Cars

I was careful to be quiet, so as not to wake Eric (asleep in the upper berth) up. Pointlessly, as it happens, for when I walked into the dining car, he was already at a table with three other people. He’d obviously just arrived; he didn’t even have juice yet. Nevertheless, I would have to sit elsewhere, since his table was now full. All the dining car tables seat four people. The dining room is on the second level of the dining car, the kitchen on the first.

Dinner last night was particularly fun, because we ended up seated with two women that looked to be (and were) mother and daughter. The daughter was wearing a sweater that said “Ordal Hall PLU.” Even before I saw the third word I already knew that she must be a college student at my alma mater, Pacific Lutheran University. So that was a great conversation opener. (I learned that my old dorm is now an ‘international’ dorm, with each wing dedicated to a different language/culture.) Also, I had the special of the evening, beef pot pie, and it was excellent.

Arrangement of cars on our train.

17:11 Mountain Standard Time

The Empire Builder starts in the West as two trains. One half starts in Seattle, and the other half in Portland. The two halves are joined together in Spokane. The Seattle half is in front, and consisted of two engines, the baggage car, a sleeper car for train staff, two sleepers for passengers, the dining car, and two coach cars. The Portland portion, attached in Spokane while we were asleep, added the cafe/observation car, two more coach cars, and another sleeper. The sleepers are on the ends so that the high-class sleeper car passengers aren’t disturbed by mere coach-class passengers traipsing past their doors. (And they watch the boundaries to make sure only sleeper passengers get in there, too.)

Friday, December 15, 2006

16:45, Central Standard Time

Coal Car, close up

120 miles per hour is really fast. No, we’re not on some prototype Amtrak bullet train. A few hours ago, we passed a freight train going the other direction on the track next to ours. Our window was maybe two or three feet from the other train, and if each of us were going around 60 mph, it was rather like driving past a very tall wall at 120.

Today was very much like yesterday, which is an exceptionally good thing. Our next stop is Glenview, then we reach Chicago, and it’s been a genteel, relaxing trip all the way.

We crossed through North Dakota during the night. Today has been mostly Minnesota and Wisconsin. The boring beauty of Montana has given way to various human cityscapes. Since the train is, by its nature, bound to train tracks, and train tracks rarely pass through the snazzier sections of towns, this has offered a less beautiful view out the window. It has been interestingly ugly, though, and there were certainly some rural areas that were quite picturesque, as well as brief but pretty vistas going through Minneapolis/St. Paul and the Wisconsin Dells.

Partially demolished grain elevator.

Not surprisingly, the train’s been filling up. We gained a neighbor across the hall in cabin 7 late last night, and more curiously, a neighbor in cabin 6 this morning. I’m not sure why one gets a sleeper car for a trip that doesn’t involve travel at night. Maybe he just wanted the peace and quiet.

We met a really charming older gay couple (mid- to late 50s, maybe?) last night at dinner, who live in the neighborhood just east of us in Seattle. I assume they’d guessed about us about the same time we’d come to that conclusion about them (that is, pretty much right away), but we were still sort of dancing around the issue of “who’s how much of a couple” in our conversation. It was, frankly, very annoying to be forced into all this oblique fiddling because of social propriety, and yet I do think it’s more than a little rude to just blurt out a question like “Are you gay?” And “are you a couple?” is also rude, no matter which two people one might be addressing.

So, while we were chatting about trains, and remodeling one’s home, and which member of each pair was more the collector-of-too-much-stuff (for the record, Eric reluctantly agreed that I probably beat him if one measures by volume, but he unquestionably wins if we measure by weight), I was racking my brain for the right way to indicate that we, at least, were perfectly comfortable that they might live in the same house, and that we wouldn’t get upset if one of them started nibbling on leftovers from the other fellow’s plate. Eventually I settled on “How long have you two known each other?” as a perfectly reasonable question to ask any two people travelling together, but still an adequate signal, and so it proved to be.

They were definitely more pleasant company than the husband and wife who joined us for breakfast. He practically epitomized taciturn. She carried on the appropriate “polite conversation.” I left breakfast knowing practically nothing about them; mostly the conversation addressed things that could be seen out the window.

I also prefer the gay couple (who we were fortunate to meet again for lunch today) over yesterday’s lunch couple. Between their stories of camping while crossing Canada from one side to the other and back on motorcycles, their notably casual attire, and their general (negative) opinions on things governmental, they were clearly deeply rooted in the 1960s. Nice people, to be sure, but I had the feeling that, were I incautious, our interesting conversation could become too interesting; I didn’t really want to find myself in a conversation about home pharmaceuticals or open relationships, for example.

17:20, Central Standard Time

Successfully contacted my sister-in-law. Since we’re arriving early enough that local mass transit’s still on its prime-time schedule, we’re going to get ourselves from Chicago to Wheaton via “Metra,” the local commuter rail line. Wheaton’s about 30 minutes west of downtown Chicago, so having them come pick us up would involve some inconvenience, and since (so I’m told), the commuter rail station is basically across the street from the Amtrak station, it shouldn’t be much trouble.

“Are you ready to get off the train?” she asked. Certainly I’m ready to see the niece and nephews, et al ., but I’m not in a hurry to abandon the train. I am looking forward to a more restful sleep, though.

One of our fellow passengers hypothesized that the sleeper cabins might be less disturbing, since sleeper bunks run perpendicular to the direction of travel, while sleeperette bunks are parallel. Most of the motion of the train is side-to-side swaying, with occasional smaller up-and-down jumps as we cross a rough rail seam or the like. In a sleeperette, the rocking tends to roll one side to side as well. A sleeper bunk would mean being nudged toward the head or feet, which is more stable. That might help, or it might make little difference. Perhaps one day I’ll find out.

Next time we do this, I’ll know how to pack. I’ll have the socks and other clothing necessary for the train in my smaller pack, which can be stowed beneath the seat, and everything else in the larger back in the luggage rack (or maybe even as checked baggage). Then I wouldn’t have to go downstairs and rummage through the big bag to find new socks.

But who cares!? We got from Seattle to Chicago without dealing with Homeland Security, inadequate leg room, unending crowds, and general freneticism. We enjoyed playing StarCraft on our laptops last night with no concern that the WiFi network used to connect them would mysteriously, inexplicably make the train crash.

Would we do it again?

Oh, yea. In an instant.

The Adventure Continues

Monday, December 25, 2006

Afternoon, Mountain Standard Time

I thought my (train) travel log was done. That was before The Blizzard.

We knew that there was Weather in Denver, so when my brother dropped us off at the airport, we had prepared to entertain ourselves in case of delay. The line at the Frontier Airlines was extensive, so it took us a while to get to the front.

While we were still inching toward the front, we got the word that our flight wasn’t delayed; it was cancelled. “Denver International is closed.” Closed! That was more delayed than we’d expected, to be sure. I set Eric to working on a contingency plan while I waited in line.

“We have no available seats to Denver until next Thursday, December 29. There are no seats on any airline until next Monday, December 25.”

Wow. So we could take our chances next Monday, once again braving what was sure to be the madhouse that is the airport, almost certainly not seated together, possibly not even on the same flight, and maybe get caught behind even more weather, and quite possibly missing our flight out of Denver, or  . . . we could take the train.

Not surprisingly, the next few days were already booked solid. But there were both coach seats and even a sleeperette available December 24. Score!

The tracks between Chicago and Denver are notably rougher than the Seattle to Chicago run, so there was quite a bit more side-to-side motion. Sleep was difficult. Oh, well, we had to be up at 6 in the morning for breakfast so we were ready to “detrain” at 7 when we reached Denver.

Some serious shopping had landed our original one-way tickets at $107 each: $214 for the pair. Frontier assures me that these will be fully refundable in this case. Two coach Amtrak tickets would have been $290; the sleeperette was $408. Since the sleeper fare includes meals, this wasn’t a tough decision.

Dinner for me was an excellent Beef Borgoiugnone. I believe Eric had salmon. I had the chocolate lava cake for dessert. Mmmmm.

And this time, I made sure that everything I’d want to use on the train was in my little bag, so I could leave the big one undisturbed in the luggage rack at the foot of the stairs.