Bad Server!

I’ll likely be taking my next Amtrak trip starting on Friday; but a few days ago, a server for Amtrak’s Positive Train Control system crashed and stayed down for at least three days requiring that, basically, all trains except on Amtrak’s own Northeast Corridor were cancelled.  Scuttlebutt has it that the server is back up, and it seems that trains are departing from Chicago again.

But what really amazes me is that, apparently, there wasn’t a backup.  The system I worked on before I retired was actually four complete systems, one for development, one for system integration testing, one for customer acceptance testing, and one for production.  Each of those had three servers:  one for the Web component, one for the database, and a third for running background tasks.  Each of those servers had at least one backup.  The DEV and SIT systems had one backup for each server; the CAT and PROD systems had four of each server constantly sharing data back and forth so that they were pretty much exact copies of each other.  That’s the way you do it.  It’s really old news and well understood.

Another possibility, which also wouldn’t surprise me, is that security was so lax that a hacker could have brought the whole thing down for a ransomware attack.  If that’s what happened, they probably won’t admit it.

In any event, Amtrak could have done better by getting a server from the folks who set up my own little website.  They’re much more professional, it would seem.

PLATO and Me

Wow, that was a blast from the past!

Mike the Mad Biologist links to “an excellent article about the PLATO computing system”.

I didn’t know all the early history.  My own involvement with PLATO begain in the ’80s when I was an instructor at Control Data Institute in St. Louis.  The courses were basically all PLATO, although the students had some projects to complete as well:  on the tech. side, it was mostly building circuits; on the programming side, students had some programs to write.  The instructors were there mostly to assist with the projects.

We eventually replaced the stand-alone PLATO terminals with CDC-110s which had a CRT terminal with a built-in keyboard and a separate double-sided, double-density eight inch floppy.  In PLATO mode, a Z80 microprocessor in the terminal was the boss, and another Z80 in the floppy drive just did the disk I/O; but it could also run CP/M in which case the Z80 in the floppy drive was in charge and the Z80 in the terminal ran the CP/M BIOS.

They also had a text editor called MINCE which the programming students used to write their programs instead of punching cards.  One of the languages we taught was RPG II which required codes to be “punched” into particular columns, so I wrote an RPG mode for MINCE that expanded tabs to the appropriate columns.

MINCE was written in BDS C, an early (and incomplete) C compiler for CP/M systems; and it came with source listings for much of the editor.  I didn’t know C at the time, so I went to a bookstore to get a book on C; and as luck would have it, the book I selected was the first edition of K&R, so I got off on the right foot. 😎

My first home computer was a CDC-110 with a dual floppy drive and a modem that ran at the phenomenal speed of 1200 baud!  I got all that for half price (around $5k IIRC) because I was a Control Data employee, and I eventually sold it for about what I’d paid for it. 😎

CDC eventually got rid of all the land lines and rotary switches for communicating with the PLATO mainframe in Minneapolis and switched to something called the “shared network” that used satellites.  This had the unfortunate effect of increasing the turn-around time for each keystroke to a large enough fraction of a second for H. sapiens to notice.

To the tune of Alabama Bound (with apologies to Lead Belly):

I’m input/output bound.
I’m input/output bound.
If them bits don’t stop, Babe, and turn around,
I’m input/output bound.

Hey listen all you hackers,
Now don’tcha be like me:
You gotta stick with that old PLATO rotary
And let that shared net be.

I’m input/output bound.