My Next Excuse for Riding Trains

I won’t be blogging about riding trains until November when I’ll be traveling to Wrocław, Poland to attend a meeting of the ISO C++ standards committee, but I’m starting to think about it, and I’ve worked up a possible itinerary that includes a three-day conference in Berlin the week before and a one-day conference in Wrocław afterwards.

As I’ve said before, I like to fly Icelandair across the Pond because I like to get off the plane and stretch my legs in Keflavík.  Also, because travel to these meetings is the only thing I spend my fun money on, I’m fortunate to be able to afford Icelandair’s Saga class if I don’t try to afford other stuff that I don’t really want that much anyway.  (Business class on other airlines would probably be out of my price range; and besides, I wouldn’t want to sit in an airplane long enough to get all the way to Europe in one fell swoop.)

Unfortunately, Icelandair serves Berlin only five days per week, so the eastbound trip doesn’t work well.  I’m currently thinking about going a day late and missing almost all of the first day of Meeting C++.  I could fly into Frankfurt instead and take an ICE directly from the airport to Berlin; but then I’d have to return from Frankfurt to get the round-trip air fare; and getting from Wrocław to Frankfurt by train doesn’t look easy.

Update 2024-04-20:  I think I’ve found a way to get from Wrocław to the Frankfurt airport by train, and I like that better.  The link above is to the new version.  The version flying into and out of Berlin is still available here.

Nokia will be sponsoring a one-day conference called code:dive that’s still not officially announced, so I don’t know when or where it’ll be.  My rough itinerary assumes that it’ll be in the same hotel the Monday after the ISO meeting, which could be wrong; so the westbound trip is still subject to change.

Update, 2024-04-17:  I’ve added another option for the first leg that saves a long layover in Chicago.  That train originates in Kansas City and is often delayed on the former MoPac west of St. Louis, so I’m a bit leery about counting on it:  missing the very first connection would likely destroy the whole trip.

I checked out train 318’s arrival times in Chicago and the likelihood of making my connection back to the 1st of October, and it doesn’t look too dangerous; but I’m still not sure I’d want to chance it.  (If I look only at Mondays, which is the weekday I’ll be traveling, I never miss the connection on any of the 29 days; but it’s not clear whether the weekday actually has any effect.)  I probably won’t be making any reservations until the end of July or so, so I’ll check again then.  I’ll probably just stick with the Texas Eagle in any event since that will allow checking a bag all the way to New York.  (The Missouri-Illinois corridor trains don’t have checked baggage service.)

I’ve also been told that Nokia’s code:dive conference will definitely be on Monday, November 25th, but not at the Double Tree where the WG21 meeting will be.

The Amtrak-Related Code

Here’s the post about the three programs I mentioned the other day about Amtrak timetables and on-time performance.  They’re programs I wrote mostly for myself to use, not to create pretty output, but to be quick and dirty ways to get me information for planning trips.

All are pretty clunky.  You first have to load raw data from the Web into your browser, then save the data in a file on your machine, then use that file as the input to a program that you run from a command line.

Most folks reading this blog probably aren’t programmers; so if they’re interested in this at all, they probably don’t want to have to compile the code for themselves.  I’ve compiled them for both Linux and Windows; the Linux version should run on a Mac.

The timetable generator

Before you worry about my code at all, check out Christopher Juckins’ timetables.  He has both current and historical timetables that are pretty PDF files of the sort that Amtrak used to publish and might be much more to your liking.

My code generates timetables that look like (but bigger):

29-30 timetable


2150 timetable

One advantage is that you can create timetables with different trains for each leg of a round trip:

321-302 timetable

but that takes a bit more work on your part.  Also with a bit more work, you can create timetables for trains 421 & 422, the Texas Eagle through cars to Los Angeles, and for the Portland section of the Empire Builder or the Boston section of the Lake Shore Limited, where Dixieland Software doesn’t provide the raw data in a single file.

The documentation is here; the open-source code, if you want to play with it, is here.

If you want to just run the program, the two executables are here.  The file without any extension on the filename is for Linux; the one that ends in “.exe” is for Windows.  Just unzip the one that you want and stick it in some directory on your hard drive that’s in your PATH environment variable; then in the documentation, click on “Instructions for use” in the table of contents.

The raw data for this comes from Dixieland Software.  If you’re only creating one or two timetables, it’s probably easier to just type the URL in your browser; if you might want to generate timetables for lots of trains, I’ve put my little HTML form at so that you can just load that once into your browser and bookmark it.  (Dixieland Software uses just HTTP, not HTTPS, but you’re not transmitting any secrets, so I wouldn’t worry about it.)

Two on-time performance analyzers

This is actually a library that generates an HTML table showing minimum, maximum, median, mean and standard deviation of late times for particular trains at particular stations, or the likelihood of making connections between two trains.  (This is what finally goosed me to write the trivial statistics library that I mentioned in the previous post.)  The two programs I’m talking about here are extra added attractions.

The documentation is here.  If you’re a programmer who wants to play with the open-source code, there’s a link to a zip archive in the introduction.

Most of the documentation is geeky programming stuff; so if you just want to run the programs, go straight to “Two Programs that Use the Library” in the table of contents.  You’ll find links to the executables there.

A simple SQL database

Here are some musings about a possible design for an Amtrak-related database.  Although this is intended for testing the database access library that I’m working on, I’ll include it here because it’s about Amtrak.

My current design is here.

If anybody can think of anything else I should add to it, I’d love to hear about it; although it’s not about making reservations and shouldn’t have any PII in it.

Also, I currently have no clue where to get the data to load the consists table.  If anybody knows where I might find that on the Web, please let me know.  If it’s a secret that you don’t want to disclose in a comment, you can contact me privately at

Kona Trip Report day 14

[day −1]
[days 0-2]
[day 3]
[day 4]
[day 5]
[days 6-9]
[day 10]
[days 11-12]
[day 13]

2023-11-15 05:00−6:

As is often the case these days, I woke up well before the sun showed its face.  After the breakfast buffet, which was mediocre, I wrote most of the day 13 report.


I checked out of the hotel and got a taxi to Union Station.  I gave the driver a twenty in the hope that that would make up for the short fare.  He seemed pleased with that and understood my mobility issues.  Canal Street was blocked off, so we stopped at the corner of Canal and Jackson, and the driver was happy to take my bags to the elevator down to the concourse.

I checked one bag on the Texas Eagle to St. Louis, then checked in at the Met. Lounge where I put the final touches on the day 13 report and published it.


We started boarding train 21.  A redcap showed up right away and drove me and another couple to the gate where we had to wait about ten minutes, I guess because the crew weren’t really ready for us yet.

I had room 2 in the sleeper, a “roomette”, a pair of facing seats that convert to upper and lower berths at night.  It’s not like the roomettes of old, but more like the old ”open sections” except with walls and a door instead of curtains.

It was a pretty sorry excuse for a long distance train:  one engine unit, a sleeper, a diner/lounge, a coach-baggage, and an accessible coach.  Some of us train-riding geeks are worried that Amtrak is actually trying to discourage overnight travel so that they can discontinue the long distance trains.


We pulled from Union Station right on time and, as expected, had some slow going on the Canadian National tracks to Joliet where it seemed to me we had a rather long dwell time; but we departed Joliet only six minutes late.


The LSA called for passengers in the sleeper to head to the diner/lounge.  She had taken our orders for dinner earlier; and when we got to the not-a-diner, we found all the food already set out for us (and getting cold).  The food offered on the “flexible dining menu” isn’t worth talking about.

ca. 18:55:

Aside for some pretty rough track between Springfield and Carlinville, the trip from Chicago to St. Louis was largely uneventful.  We were never more than ten minutes late departing any station along the way; and thanks to schedule padding, we arrived in St. Louis early only to stop for a while just short of the station.  The conductor announced on the PA that we had to “disconnect the cars” — I guess we droped off a third coach that I hadn’t noticed and that would be added to train 22 in the morning.  They do that sometimes when they have lots of coach passengers between Chicago and St. Louis.  We made our final stop at 18:59, twelve minutes early.  We had shoved back onto the usual track, but at the far end of the platform, so passengers had quite a hike to the station.

After claiming my check bag, I still had one concern:  the credit card I had lost in Hawaiʻi was the one that I had used to get into the long term parking lot two weeks ago.  The station agent assured me that all I had to do was push the intercom button at the lot exit and somebody would “work with me” to get me out.  I was expecting to give my name and the last four digits of the card number or something like that; but as soon as I said that the card had been lost, they opened the gate and I was on my way.

As usual after returning on Amtrak after not driving for a couple of weeks or more, I drove home on city streets instead of blasting down I-55 and got home safe and sound around 20:30 or thereabouts.

Actually, “sound” might be something of an overstatement because it was a bit of a struggle to lug my luggage up from the basement (where my garage is) to my second floor apartment.  I even had to stop about half way and sit on the steps for a bit to catch my breath.  That was new to me and makes me worry about how my lungs are doing.  I’ll ask the oncologist about that on Wednesday when I finish my last chemotherapy session.  I might have to rethink my travel to Wroclaw, Poland next October or November.  We’ll see …

Follow-up, Thursday the 16th:

I went to the bank to report the lost credit card.  The agent printed out the last few weeks of transactions, and there were no bogus charges, so that’s a relief.  She cancelled that card and ordered me a new one which I should get in the mail some day between now and December 4th, at which time I’ll need to change the card I use for all of my automatic bill payments.  That’ll be a hassle; but it’s only a storage space, Verizon, and three utilities; and I have no one but myself to blame for that.

Kona Trip Report day 13

[day −1]
[days 0-2]
[day 3]
[day 4]
[day 5]
[days 6-9]
[day 10]
[days 11-12]

2023-11-14 05:00−6:

I woke up for Omaha and had the usual breakfast at 06:30.

We were right on time until Burlington, IA where we had to wait for a while.  I gathered that the station track wouldn’t be available, so we had to wait for a westbound freight to get out of the way and a switch to get lined for an adjacent track.  IIRC, the train had to make some fairly precise spots to allow passengers to get to and from the station.  I didn’t record when we finally departed Burlington because I was in the diner for an early lunch, but we were out of the next stop at Galesburg, IL four minutes early.  (The eastbound Zephyr is discharge-only from Galesburg to Chicago and so doesn’t have to wait for advertised departure times.)

There are some pictures of my room on the train below the fold if anybody is interested.


We arrived in Chicago 25 minutes early.  One couple and I had to wait a while for a redcap to show up, but we were eventually taken to the taxi stand.

I had made a reservation at the Hilton Garden Inn that’s just across the river and a couple of blocks further from Union Station.  I had expected to be able to walk to it, but I’ve become less mobile since then and so decided to take a taxi.

The driver didn’t know the address of the hotel and had to look it up on his cell phone.  We wound up going to a different Hilton Garden Inn that was a couple of miles away, which I knew was wrong almost as soon as we left the Union Station area; but the driver insisted.  It turns out that I should have asked for the “Hilton Garden Inn Chicago Central Loop”.  Oh, well.  I’m going to have to remember to write down hotel addresses for taxi drivers in the future.  This was the second time in a single trip that a taxi driver didn’t know how to get to a hotel from its name.  (The first was from SFO to the Hyatt House Emeryville.)

We finally got to the right place.  I had planned on giving the driver a twenty dollar bill to make up for the short fare; and so that’s what he got.  He seemed satisfied with that.

After checking in, I wrote the last three blog posts; and that was it for the day.

[Read more…]

Kona Trip Report days 11-12

[day −1]
[days 0-2]
[day 3]
[day 4]
[day 5]
[days 6-9]
[day 10]

Today begins my trip home on Amtrak’s California Zephyr to Chicago, then the Texas Eagle to St. Louis.

2023-11-12 06:00−8:

I woke up after a really good sleep and had plenty of time to repack from flying to riding on a train:  basically just moving all the stuff that might have frightened the TSA folks — my scanner, a couple of power strips, various cables — from my checked bag to my carryon.


After breakfast, I checked out of the hotel and walked the roughly two city blocks, mostly through a parking lot, to the pedestrian walkway over the tracks at the Amtrak station.  The elevators on both sides worked. ๐Ÿ˜Ž

When I got to the station, I found out that a BNSF train had several tank cars on the ground at Pinecliffe, CO blocking the Moffat Tunnel, and so my train would be bustituted* from Grand Junction to Denver.  That’s the really scenic part of the trip where I might have taken some pretty pictures.  The trip over the Sierra Nevada is scenic, too; but there are no stops where one can get off the train for a bit; and I couldn’t get any decent shots from the window of a moving train.


We departed Emeryville about a quarter of an hour late but had picked up about half of that time by Roseville where I went to lunch in the diner.

They’re now letting coach passengers in the diner.  For a while after returning to “traditional dining”** on several of the western long-distance trains, the diner was for passengers in the sleepers only.  Passengers with coach tickets had to subsist with stuff from the snack bar on the lower level of the lounge car.

Shortly after Roseville, we stopped for quite a while.  I have no clue why, and there was no announcement on the PA explaining what the delay was all about.  We were about three quarters of an hour late out of Colfax.

I had dinner in the diner shortly after Reno and had the steak.  I had ordered it medium but got it rare.

We picked up a bit of time and were only about twenty minutes late out of Winnemucca where I went to bed.

2023-11-13 04:45−7:

I woke up in time for arrival in Salt Lake City which we departed just after 05:00, an hour and a half late.

The diner opened for breakfast at 06:30.  I had the french toast and pork sausage which was quite good.

We arrived in Grand Junction about 1:45 late, but ran right through it.  The plan was to wye the train east of the station to turn it to be train 5, the westbound Zephyr, and let the passengers off after that.  While wyeing the train, we had to stop and wait a while for each switch to be lined properly, as if nobody could anticipate that lining the switches would be required.  Go figure.  (That was Union Pacific’s silliness, not Amtrak’s.)

The diner had an early lunch for sleeper passengers only.  The coach passengers got box lunches that they could eat on the bus to Denver.

There were three busses, at least two of which went straight to Denver.  I guess one of them was for passengers bound for Glenwood Springs, Granby, and Fraser.

The bus ride on Interstate 70 was tedious but only lasted for about four and a half hours.  I did get a nice view in Glenwood Canyon of the track on the other bank of the Colorado River where I would have preferred to be. ๐Ÿ˜Ž

On arrival in Denver, a redcap drove me and some others straight to our sleeper cars and handled all the baggage for us.

This train, which had turned from train 5 earlier in the day, had the same crew that I’d had on my westbound trip a week earlier.  My TA, O. C. Smith, was very friendly and helpful; but he was looking forward to calling it quits.  This would be his antepenultimate trip before retiring.

The diner was open and serving dinner when we got to the train.  I had the pasta with the “plant-based meat sauce”, which was actually quite good; but I wasn’t really hungry and couldn’t finish it.

We departed Denver right on time; and I went to bed shortly after the first stop at Fort Morgan about quarter to nine.

*“Bustituted” is a term that some of us regular Amtrak riders use to mean that a bus is being used as a substitute for a train.  In my roughly three decades of riding Amtrak trains, I’ve been bustituted only twice before:  once from Seattle to Spokane where train 7 had turned to train 8 because 7 had gotten caught in a blizzard; and once from Pittsburgh to D.C. on what should have been the Capitol Limited, I don’t remember why.

**What Amtrak is advertising as “traditional dining” is nothing of the sort.  I can remember when at least four service attendants (SAs) would be waiting the tables along with the dining car steward, and there’d be a cook or two and a dishwasher downstairs (on double-decker Superliner diners) preparing freshly cooked food served on real, if thin, china.  These days, it’s a lead service attendant (LSA) and one SA waiting tables, and one cook preparing what, at least, isn’t the prepackaged, microwaved stuff that you still get on all the eastern trains, the Texas Eagle, and AFAIK the City of New Orleans.

Kona Trip Report days 0-2

[day −1]


Everything started well.  I had packed everything except my computer and toiletries the night before, and I arrived at the St. Louis Amtrak station in plenty of time to catch my first train to Chicago.

We departed St. Louis right on time; but as soon as I started getting my usual computer setup in order, I discovered, as I reported earlier, that I had stupidly failed to pack my laptop’s power cord (*sheesh*).  I still had a few hours of battery power available, but that clearly wasn’t going to get me to California.  I was off-line all the way to Emeryville and took no notes, and so I have almost nothing to report until the antepenultimate stop on day 2.

ca. 13:30−5:

We started boarding the California Zephyr and, amazingly, departed Chicago right on time at 14:00.

My sleeping car [train] attendant (TA), O. C. Smith, was very helpful all along the way, the food and the [food] service attendants (SAs), not so much.  The quality of the food service on Amtrak trains has taken a nosedive in the last decade or two.

2023-11-02, ca. 07:00−6:

It’s been at least twenty years since I last rode the Zephyr and, unsurprisingly I guess, the Denver station was all different from what I remembered.  We still had to pull quite a way north of the station and shove back to the stop, but this time there were several more tracks and very attractive platforms, and we were spotted on track 4 or 5 (I don’t remember which).  The last time I rode this train, we were shoved onto track 1 and spotted on a dingy platform near the headhouse.

I would later notice similar improvements at the Salt Lake City and Emeryville stations.

All the way from Denver to Grand Junction, the conductor made frequent announcements on the PA about the various sights along the way; and he was often amusing.  Most of the things to see were on the engineer’s side of the train (off to the right), but my room was on the fireman’s side.  I still appreciated the announcements, though.

2023-11-03, ca. 15:30−7:

Amazingly, we were right on time, even waiting for scheduled departure times at several stations, all the way to arrival in Martinez, CA.

We seemed to be having a really long dwell time in Martinez, surprising because the westbound Zephyr is discharge-only all the way from Sacramento to Emeryville and so doesn’t have to wait for scheduled departure times.  After about fifteen minutes or so, the conductor made an announcement on the PA saying that we had a medical emergency and that the train would be in Martinez for quite a while, but that passengers for Richmond and Emeryville would be handled on a Capitol Corridor train that was about an hour behind us.

I got off the train and followed the conductor to the baggage car where I claimed my one checked bag; and a station agent graciously allowed me to ride along with him with the other checked baggage to the headhouse.  He wouldn’t accept a tip.

I was working up a sweat, though.  I always wear a suit when I travel, principally because I like having all the pockets; and I was also wearing a St. Louis Cardinals baseball cap* and an overcoat on what turned out to be a warm day in the Bay Area.  This was going to be a problem because I’d be wearing the same suit and dress shirt all the way to the hotel on the Big Island.  When we got to the headhouse, I threw the hat and coat into what had been my checked bag, but that didn’t help much.

When the Capitol Corridor train arrived, the same station agent collected me and drove me to trainside where he got me a one-up seat on the lower level with a place to put my bags for the short ride to Emeryville.  My stress level was beginning to subside. ๐Ÿ˜Ž

On arrival in Emeryville, I’d be spending my first night at the Hyatt House just across the tracks; but the station agent couldn’t assure me that the elevators to the pedestrian crosswalk over the tracks would be working and suggested that I take a taxi.  I was reluctant to stick a taxi driver with such a short fare, but fortunately, the one taxi that was still waiting was the Emeryville Taxi Service.  The driver immediately understood my predicament, and I made it worth his while.

After checking in at the hotel, the clerk at the front desk said that there was a Best Buy not far away.  Fortunately, the taxi driver had given me his business card; so I called him back and he graciously drove me to the Best Buy and waited while I bought one of those universal laptop power cords.  On the way back to the hotel, I told him that I’d have a much longer fare for him tomorrow if he wanted it:  the Hyatt House Emeryville to the Grand Hyatt at SFO.  He agreed to pick me up at 13:30 and take me to SFO.

Recommendation:  If you ever need a taxi in Emeryville, CA, call the Emeryville Taxi Service, +1 510 612 9000.

The folks at the hotel’s front desk were very nice, the room is comfortable and convenient, and somebody in the housekeeping staff was happy to provide me with a stool to sit on in the shower (this old back complains if I’m vertical for more than a minute or two).  I do have one caveat emptor though:   the Hyatt House Emeryville doesn’t have a proper restaurant where you can get lunch or dinner.  They do offer a complimentary breakfast from 07:00 to 11:00.

My goal of getting caught up with my blog reading wasn’t accomplished.  PZ, Mano and Marcus have some interesting posts with comments that deserve careful reading; but I wasn’t up to that.  I verified that my new power cord worked corrently, played a little solitaire on the computer (as you might imagine, not something I do to improve my mind ๐Ÿ˜Ž ), and crashed about quarter to nine.

*I have a red Cardinals cap.  I’ve been thinking about getting a blue one since folks who see only the red baseball cap might think that I want to Make America Hate Again.  I really like the red one, though.

Kona Trip Oops

Oh, dear!  I stupidly forgot the power cord for my laptop.  I have 90% of my battery; but that won’t get me to California, let alone Hawaiʻi; and I have no clue what I’m going to do during the meetings.  I might have to buy some cheap tablet and figure out how to use it.

I’m going to be silent at least until I get to Emeryville.

Kona Trip Report day minus one

Tomorrow morning I begin my trip to Kailua-Kona, Hawaiʻi for a week of meetings [itinerary].

I’ll start out on one of the Lincoln Service trains from St. Louis to Chicago where I’ll catch Amtrak’s California Zephyr all the way to Emeryville, a suburb of San Francisco.

I’m leaving a day early to give myself a buffer in case the Zephyr has any delays along the way, likely if there’s much snow on the ground.  If all goes as planned, I’ll spend two nights in the Bay Area.  The Hyatt House Emeryville is just across the tracks from the Amtrak station; and the Grand Hyatt at SFO is just a short AirTrain ride from there to the terminal.  I should have a whole day to get from Emeryville to the airport and so not be stressed at all.

The return trip will basically be the reverse of that, except I’ll spend only one night in the Bay Area and a second in Chicago.  The eastbound Zephyr will likely be late, and so the extra night will give me plenty of time to catch my preferred train for the last leg back to St. Louis.

I’ll have a decent camera with me this time, so maybe I’ll take some pretty pictures.  We’ll see whether I’m any good at it. ๐Ÿ˜Ž

[timetables for Chicago-St. Louis and Chicago-Emeryville]

Possible January Trip

I just found out that the ISO C committee will be meeting in Strasbourg, France in January.  I haven’t used good old C in ages, but I’m a member of the committee (actually INCITS PL22, an ANSI committee), and so I could attend; and it would give me an excuse to travel.

I could take Amtrak to Boston, fly Icelandair to Heathrow, then the Piccadilly Line to King’s Cross St. Pancras, Eurostar to Paris Gare du Nord, and a TGV from Gare de l’Est to Strasbourg.  I could mostly handle the 800m walk between the two Paris stations; but I see that there’s a stairway on the route that might be a bit of a challenge with two bags and a walker.  Does anybody know of a good way around that?

New Subject

Katydid commented on my ethics post:

OT: Amtrak in upstate NY halted as tracks were washed out by “once-in-a-thousand-years” flood.

Yes, I’ve been reading about that on an e-mail list,  That’s Metro North’s Hudson Line to Croton-Harmon and Poughkeepsie, so it’s a big problem for commuters; but it also shut down Amtrak’s Empire Service and the Lake Shore Limited which use that track.

I’m not sure exactly where the flooding happened, but I’ve ridden on that line numerous times on the Lake Shore, and there are places where the track runs right along the eastern bank of the Hudson.

Update:  some photos

There’s also flooding on CSX’s River Line on the western bank.