From: Martin Frost Howdy, dear family and friends.
I'm proud to say that, after 33 1/3 years from start to finish, I'm
finally graduating from Stanford University with a Master of Science
degree in Computer Science. (I'm one *long* playing record, I
guess. ;-)
If you want to know how my degree came about (and learn a bit of my
history at Stanford), read on. If history is boring to you (as it was
to me when I was young but not so much now hmm, does that mean I'm
no longer young?!), skip to the last seven paragraphs below. Some of
you know parts of the history I relate here, so you can check if my
memory is accurate or if it tends to improve history. (;-)
In 1971 I entered the PhD program in Computer Science at Stanford and
took a student position as a research assistant at the Stanford
Artificial Intelligence Lab (SAIL). I actually started at the AI Lab
in May, shortly after I learned that I had been accepted into the PhD
program. That was more than four months before the beginning of the
school year when most students arrive, but, hey, I wasn't doing
anything in May, and, when I asked, they said I could start right
away. So after five one-way trips between Pasadena and Palo Alto in
six days to find an apartment and drive my stuff up in a trailer, I
started at the Stanford AI Lab on Tuesday, May 11, 1971.
Over the next two years, I took classes, worked on an AI Lab
research project on "higher mental functions" with Dr. Ken Colby
(whose Parry program simulated a paranoid schizophrenic quite well),
played volleyball at the Lab (and intramural sports on campus),
started folkdancing, and got interested in working on the AI Lab's
timesharing system, which was one of a kind and very advanced, with
display terminals (called Data Disc displays) for everyone. Remember,
this was 1971-73.
AI Lab and corner of Felt Lake The SAIL computer even controlled a vending machine so that you could
charge food to your account, which was billed by email at the end of
each month. The vending machine had decent food, including
sandwiches, bagels and milk. It also sold cold cash and, if you were
at least 21, beer.
We played Adventure on the computer, volleyball each afternoon, and
spacewar when the computer wasn't busy. Each year we had an AI
Olympics really a picnic with games and treasure hunts. Ever been
in a 19-legged race? The Lab's rooms were all named for places in
Middle Earth: the computer room was Mordor, and the computer-operated
vending machine became known for the room it was in, the Prancing
Pony. A lot of work got done too, because people liked working there.
Matterhorn Peak on AI Lab backpack trip One of the useful things I did at the Lab was to modify the display
system that worked on the unique local Data Disc display terminals so
that it also worked over dial-in phone lines from Datamedia display
terminals at researchers' homes.
I also completely rewrote one of our two main system manuals, called
the UUO Manual, which documented all the system calls (UUOs). I read
through probably a majority of the entire timesharing system's
assembly language code to document the UUOs accurately. On the cover
of the manual we showed a "UUO", that is, an Unidentified Undersea
Object a Soviet submarine.
In January/February 1977, I spent about three weeks working in Paris
at IRCAM (part of the then-new Centre Pompidou), the French government
computer music research institute. IRCAM was sort of a spin-off from
the AI Lab with a couple of ex-AI Lab people in major roles, including
Brian Harvey, their system programmer. Brian hired me to port the AI
Lab's display system to the DEC TOPS-10 timesharing system, which was
a second cousin of the AI Lab's operating system (we named it WAITS,
which I suggested stood for "Worst Acronym Invented for a Timesharing
System").
It turned out that we had to leave the computer turned off for the
first three days I was in Paris, since the the air conditioning was
broken (and this was Winter!), so the work was delayed and I became a
tourist instead of programmer for those three days. For the rest of
my time there, Brian and I worked very long hours seven days a week,
usually quitting just in time to catch the last bus home at about 1am.
We successfully finished the port of the display system one morning
around 5am, just a few hours before my scheduled return flight to
California.
Around 1978, I became the AI Lab's chief system programmer. Just a
few of the useful things I accomplished then were: adding macros, disk
caching and other nice features to the great, fast display editor we
had, called E; adding terminal macros for system keyboard input; and
adding virtual terminals to the display system so you could use more
than one from your physical display.
I especially worked at fixing a lot of old bugs (e.g., interrupt level
timing races) that would crash the system frequently. In just a
couple of years I vastly reduced the number of system crashes due to
software bugs, as this table of such crashes per year shows (in 1983
we were debugging TCP/IP):
In late 1979, the AI Lab moved onto campus in the Computer Science
Department's newly renovated building, Margaret Jacks Hall (MJH).
Unfortunately I missed the exciting part of the move when they had to
use a crane to lower part of the computer to the basement level where
the computer room was because it wouldn't fit into the elevator.
While in MJH, we connected four TV tuners to the computer's display
system so that people anywhere in the building could watch TV on their
Data Disc displays. With three or four keystrokes, a user could tell
the computer to turn a free TV tuner to a given channel and show that
channel on the user's display, with sound of course. This was
particularly popular during the Olympics, since you could work but
watch the events you wanted to see. Or you could take a break and
watch the news or a baseball game or Johnny Carson's monologue.
Performing with the Zavrti Folkdancers in the mid '80s The AI Lab's DEC PDP-10 computer was finally retired in June 1991, so
we held a wake for SAIL, after it had contributed to computer research
for 25 years. As it turned out, we didn't dare turn off the computer
for a while longer, as it was still controlling the vending machine....
I had started working seriously on Unix computers in 1988 by writing a
backup program called 'mpd' that allowed an operator to backup an
entire system on one or more 9-track tapes. About a year later, we
got a couple of 8mm tape drives that held a lot more data than a
9-track tape, so I automated the backup system by writing a program
called 'pdm' that runs continously and calls mpd to back up any
number of computers automatically every day. That eliminated the
operator except that every few days someone has to change tapes. With
a new tape already loaded in a second tape drive (or an autoloader or
tape library), however, pdm doesn't have to wait for the next tape to
continue its backups when a tape fills up. My pdm backup system has
been used by several departments at Stanford and is still in use
today. Nowadays it is capable of doing backups to disk as well as to
tape.
In late 1995, the Computer Science Department moved again, this time
to the new Gates Computer Science Building. Close to a thousand
computers of varying types were moving to the new building and all
needed to have their IP addresses changed. So I wrote a script that
knew all the old and new IP addresses, netmasks, etc., and how to
update them on a variety of Unix operating systems. This program was
run once on most of the Unix computers just before each was turned off
for the move, so that when they were turned on again in the new
building, they would work immediately on their new subnets. We're
still in that building, with far more computers yet.
But I digress....
Now and then during the 1980s and 1990s I entertained thoughts about
going back into the PhD program to get my degree. But I was having
too much fun (and getting paid for it besides), so I never acted to
get reinstated.
Through most of my time at Stanford, I've also been juggling
regularly, having started in early 1974, I think. As many of you
know, last year two of my juggling partners and I won a silver medal
in the International Jugglers' Association's Teams Championships,
performing as the Stanford Juggling Research Institute (SJRI we
do real juggling research, in a science building no less ;-). Winning
the silver medal was a wonderful surprise, especially considering that
the team that took the gold medal was absolutely the best juggling
team on the planet two Russian teenage siblings aged 16 and 13
(Vova and Olga). We were very happy! (You can now watch
the SJRI silver medal
video.)
One of my SJRI juggling partners, I'll call him Fred, though that is
and isn't his name, was accepted in Spring 2004 to the Masters program
in the Stanford Computer Science (CS) department, to start in the
Fall. (My other partner, Rick, is our SJRI spokesperson.)
(Now we're finally getting back to the point of this missive, so hang
in there. ;-)
Then one morning in June 2004 I woke up thinking without knowing
why about the fact that I had put in two full years as a PhD
student 1971-73. Generally, it takes about two years to get a Masters
in CS at Stanford. So in that sleepy early morning, I thought, hmmm,
maybe I've done enough work to get a Masters in CS. So I met with
department Chair Hector Garcia-Molina (who had become a Stanford PhD
student in CS a few years after I had!) and asked how to find out what
I might need to do to get a Masters. The ball was rolling.
Stanford had to dredge up my student records from microfiche but found
them after a while, and I found out that I had done all the work
needed for a Masters, although two of my courses had "continuing"
grades instead of final grades. Those were reading and research type
classes that continue for multiple school quarters until you're done
and then you get one grade for all the quarters at once. I had
dropped out and not gotten a final grade, so I had to get my PhD
advisor, under whom I was doing those courses in 1973, to sign grade
change forms, in 2004, with a passing grade. That's John McCarthy,
who created the AI Lab and whose computers I've worked on from the AI
Lab to the present. He is officially retired but still at Stanford
and was willing to sign. He offered me an "A" but I took a "Pass"
instead good thing too, as it turns out an "A" would have lowered
my Stanford GPA!
With the grade change recorded, I had finished all the requirements
for a Masters and only had to apply for it. Slight catch there. You
have to be a current student (or a very, very recent one, not 30 years
back) to apply to graduate. So I had to become a student again, which
meant I had to apply to Stanford for reinstatement, with the
application costing a couple hundred dollars, which I paid. With the
CS department supporting my application, Stanford reinstated me as a
grad student.
Then I had to register as a Stanford student for one quarter,
including paying the minimum tuition, which turns out to be $2500 if
you're taking no classes. Wow. Fortunately, I work for this great
company that will pay up to $5250 per year toward tuition for any
full-time staff member going toward a degree, which I was. So
Stanford my employer paid Stanford my grad school the $2500 tuition
for the Fall 2004 quarter. I then applied to graduate and they bought
it, as it were.
The result is that I officially graduated from Stanford's Computer
Science Department with a Master of Science degree on my birthday in
January this year, and this Sunday, June 12, I'll walk through the
commencement ceremony to receive my diploma. Oh, by the way, the
commencement speaker will be Steve Jobs.
From my first quarter taking classes in Sept 1971 to my Jan 2005
graduation, it took 33 1/3 years to get my Masters degree. I think
that that's probably at least a Stanford Computer Science record,
since the CS department only existed for about 6 years before I
joined it.
If I'm still around 66 years from now, for my centennial at Stanford
I think I'll go back and finish my PhD.
Take care, P.S. For more on the history of the Stanford AI Lab, from the
computer's perspective, see:
SAIL
Farewell.
Subject: graduation day at last
Date: Fri, 10 Jun 2005 17:44:21 -0700
I had a lot of fun programming the Stanford timesharing system on
the DEC PDP-10 computer, so much fun, in fact, that I decided in 1973
to keep doing that as a staff system programmer instead of as a
graduate student. The AI Lab was a pretty fun place to work, and it
was located in a beautiful area of the foothills surrounded by Felt
Lake and open space. There were lots of innovations going on there,
and people had fun hacking (in its original computer meaning!)
hardware and software for fun and usability.
In my first year as a system programmer at the Lab, I wrote what could
arguably be called one of the first search engines, called NS (for
News Service). It stored and pre-indexed two weeks worth of AP and NY
Times wire news for instant retrieval by whatever keyword combination
you wanted to Google for, ... uh, I mean search for. NS was a very
popular program at the Lab, especially when there was breaking news.
It could even notify you immediately when some story of interest came
in matching any of the keyword combinations you had previously
specified.
1977 307 1984 17 1978 231 1985 6 1979 37 1986 10 1980 31 1987 1 1981 19 1988 2 1982 22 1989 2 1983 45
The AI Lab system had a lot of memory for its day, 2.5 megawords as I
recall (a word was 36 bits, so that's about 11 MB of core memory).
Memory parity errors were always our nemesis, though, especially when
they would strike the operating system. So I had a little
red/yellow/green signal light for my office that would show green when
the system was working, yellow when it was scanning for parity errors
(which took several seconds), and red when the system went into the
debugger upon detecting an unexpected error (I had to go debug it).
For many years, Don Knuth worked at the AI Lab developing TeX and
Metafont for use in publishing his famous book series "The Art of
Computer Programming." He worked a lot of late hours the computer
was less busy then and I would occasionally get awakened at home in
the middle of the night by a phone call from Don (or others) if the
system crashed. I'd fix it over the phone or have him reload (that
is, reboot) the computer. In 1986 he dedicated to me his book
"Computer Modern Typefaces" (Volume E of his Computers & Typesetting
series): "To Martin E. Frost: Who nurtured the systems." I felt
honored.
Martin
It was a beautiful Commencement Day at Stanford with about 23,000 people in Stanford Stadium as university President John Hennessy presided and Apple CEO Steve Jobs gave the commencement address. See the Stanford Report for more pictures, stories and the text of the commencement address by Steve Jobs.