proudlyserve.txt

  1. Directory
  2. History
  3. proudlyserve.txt
EXCERPT FROM: "Proudly Serving My Corporate Masters: What I Learned in Ten Years as a 
               Microsoft Programmer" by Adam David Barr

Special Permission given to TEXTFILES.COM to reprint Chapter 14
Visit the Official "Proudly Serving" website: http://www.proudlyserving.com
(c) 2000 Adam David Barr

In the fall of 1981 my father brought home a line terminal and a modem. The modem was an
acoustic coupler, meaning that after dialing the phone by hand, you would insert the
handset into two padded collars on the modem. The collars would seal around the mouthpiece
and speaker, more or less, insulating enough outside noise that communication could happen
over the phone line. The modem would transmit tones out the collar that the mouthpiece was
in, which would be picked up and transmitted over the phone line. Sounds coming in from the
phone line would be transmitted out the speaker, and picked up by a microphone in the other
collar of the modem. The contraption had a Rube Goldberg feel to it-in particular, if you
put the handset in reversed 180 degrees, it wouldn't work. It also assumed that your phone
was a standard-order Bell one with big round mouthpiece and speaker parts connected by a
thin handle; otherwise it would not fit into the collars correctly. Luckily that was all
most people had back then.

You would dial in to another computer using the modem, much like the way you connect to an
ISP today. At first we dialed in only to the main computer at McGill University. Instead of
all the capabilities of a Web browser, all you had was text on the line terminal. Each
connection would start with the computer prompting you for a command, which you would then
enter. The computer would then print the results of that command, and then prompt you
again, and so on. The acoustic coupler modem we had ran at 300 baud, which was standard at
the time. That is nearly 200 times slower than today's 56K modems. 300 baud translates to
about 30 characters a second, which means that a single line of 80 characters would take
almost 3 agonizing seconds to print out. Some more advanced systems supported 1200 baud,
considered quite speedy, but at that point you had to be concerned about whether your phone
handset fit snugly enough into the modem.

In the fall of 1983, a year and a half after my family got our computer, I found something
new to dial in to-an online community that was thriving in Montreal. This was a group of
computer bulletin board systems, or BBSs. They were way, way, primitive combinations of
today's Internet email and newsgroups, with the emphasis on "way, way, primitive."

You connected to a BBS using a modem, much as home Internet users connect to their service
provider with a modem. However, most BBS systems had only one phone line; if someone else
was connected, you got a busy signal. And people tended to stay connected for a while,
because of the difficulty of getting in. This could be quite frustrating, especially since
the first acoustic coupler modem we had did not dial the phone itself; you had to dial the
phone by hand (and our home phones were rotary dial, not touch-tone), then when you heard
the phone ringing, you would stick the phone into the acoustic coupler and wait for it to
be picked up by the computer on the other end. We soon got a modem that could dial itself,
but you still had to repeatedly tell it to dial, then wait to hear if the phone was
ringing, and if not, tell the modem to hang up and start over. There did exist hardware
that would redial automatically (known among other things as "demon dialers") which other
BBS callers owned-which made it even harder for us poor normal dialers to get in.

But we did keep trying, and eventually would get connected. What awaited us then? Not much
that would keep a current World Wide Web user awake. You were connected only to the
specific BBS you had dialed in to; to get to any other, you would have to disconnect and
start repeatedly dialing the number of the other BBS. The BBSs were designed to work on
line terminals, so they had no graphics, just text scrolling upwards. The system was built
around "bulletins," which were like messages on Internet newsgroups (bulletins were
referred to, apparently with no trace of irony, as "bulls"). After entering your logon id
and password, you would be prompted with a main menu, each item identified by a single
letter. So you might choose "S" to scan the existing bulletins, "P" to post a new one, and
"E" for electronic mail. Each bulletin was identified by a number; you read one by entering
the number in response to a prompt from the BBS.

Email was similar to bulletins, except it was visible only to you. If you selected the "E"
option from the main menu, a list of the emails in your inbox would be shown, and you could
view or delete them by number. You could also post bulletins, or send email to other users.

Because you were the only one logged on to the BBS at this point, nobody else was going to
post or email until you disconnected and hung up the phone. Thus, bulletin conversations or
email exchanges could take a while, since one person would post or email, then would have
to check back at some point in the future, and hope that the other person had been able to
log on and respond in the interim. To keep things fair, the systems would usually have a
time limit for a single user to stay logged on, after which they would throw you off (30
minutes was typical). There were also limits on how much email you could have in your
mailbox (something really low, like 5) and how many bulletins you could post in a single
session (again, a really low number like 2).

Despite all these restrictions, the result was incredibly compelling. What would the
bulletins be about? Basically the same things people talk about today on the Internet,
except that back then there was a significant computery tilt to everything, since few
non-techies were active on the BBSs. A lot of the talk involved computer games, and trading
pirated games for other pirated games. Discussions about programming and computers for sale
would be mixed in with arguments about politics and sports. People would post intentionally
annoying nonsense. Flames would be sent, in public and in email. The current online culture
and the "netiquette" that governs it have their roots in these primitive systems. We even
had in-person get-togethers of BBS users (which I went off to-tra-la-la-without even
thinking of the ominous possibilities involved).

Today people flit through the Internet and email, and this archaic stuff sounds dull. But
the key is the ability to interact with people with similar interests whom you never would
have met otherwise. This exists even if you are calling in at 300 baud on a line terminal
and the people you talk to all live in the same city (there were bigger BBSs with multiple
lines in other cities, but since it took a long-distance call to reach them, the people who
did tended to be those who knew how to illegally make long-distance calls for free-which
was one of the main subjects discussed on those BBSs). Later on, I remember reading Wired
magazine back in 1994 and it would sometimes print a URL and would have to emphasize that
you needed a Web browser to view it-something that would be completely unnecessary today.
But Wired was already in its second year of publishing back then, because the essential
coolness of all this predates the Web browser.

If you go into an Internet chat group today, you get a fairly standard cast of characters-a
few people having a serious conversation, a few people asking where everyone else is from,
someone who ritually greets every new entrant to the chat room, and someone who is typing
in the lyrics to a song by some obscure rock group. If you imagine this same chatter
stretched way out across the time it takes every participant to get through to the BBS, you
have a pretty accurate idea of what the environment was like back in 1983.

There were a series of these BBSs in Montreal, with names like Micro-Dial, Omega Online,
and SABATION (let history record that SABATION was an acronym for System Accessible
Bulletin and Telephone Input Output Network, except that both "accessible" and "bulletin"
were misspelled in the introductory message that announced this). The various BBSs were
silently ranked by participants in terms of how cool they were, which meant how interesting
the other users were, and the quality of the pirated games discussed on them; being cool
also meant that the phone was busy more. But it was hard for a user to keep current on more
than a few BBSs, since it could take an hour or more to get through to any given one. I had
a list of three or four that I would connect to regularly; I would start out dialing each
of them in a round-robin way, until I got through to one. Once I had reviewed any new
bulletins, posted any I felt like, and handled my email, I would hang up and start dialing
the remaining ones in my list, until I had hit them all, or my parents threw me out of
their bedroom (where our computer was set up). This attribute of a BBS-that I would go to
the effort to try to keep current with the bulletins and email-is today referred to as
"stickiness."

Because this was Montreal, there were some primarily French-language BBSs also, although
there was opposite-language posting on both the English and French systems. And it should
come as no surprise that there was a BBS called Compu-Sexe, although if I ever managed to
get on to that system, I cannot recall the shocking depravities that were visited upon me.
I was probably too chicken to call, since I was under 18 at the time and never knew when my
parents would walk in.

There was also a service available in Montreal called Datapac, which allowed users to dial
in to a single local number and then be routed over a network to other computers that were
also connected to Datapac, or to Tymnet, the U.S. equivalent. This was similar to calling
an ISP today (Datapac was a commercial service and had multiple phone lines coming in).
However, there was no equivalent to Web pages; you would use Datapac to connect to a given
computer that you had an account on, or perhaps, to connect to a computer that you were
trying to break into. The computers were identified by numeric sequences, similar to phone
numbers, which were assigned by Datapac. Almost all computers that you would connect to
required accounts because they would charge people for time connected; Datapac also charged
people for the time they were connected over Datapac.

The local BBSs were small operations run out of homes, using a single phone line and
computer. Not much of a computer either; a typical system was an Apple II (or clone) with
64K and two floppy disk drives. Although BBS operators (who were known as "sysops," for
"system operators") would occasionally ask for donations, BBSs were basically free, the
main benefit of running one being that it made you a hep cat in the local BBS scene. Some
of the BBSs were not even available 24 hours a day. Some were only available during
non-work hours, presumably because they were being run on someone's desk at work. Some were
unavailable during the evenings, when the owner of the phone line was using it to connect
to other BBSs; and some were unavailable during the night, when the other inhabitants of
the house didn't want the phone to ring.

One way that BBSs tried to distinguish themselves and attract more users was by putting up
their own content. So in addition to the universal S, P, and E choices, the sysop might add
J for jokes, or K for his analysis of Kierkegaard. One of the more impressive examples was
a game called Genocide II. Since anyone could play fairly slick games on their home
computer, the challenge for a BBS game was to take advantage of the multi-user aspect of
the BBS, without being hampered by the fact that only one person was connected at a time
and the entire interface was line-terminal based.

Genocide II consisted of a world where every player had a spaceship, which was at a certain
location in a galaxy. Each day, every player could enter four moves, where a move was a
single operation such as changing course, changing speed, firing torpedoes at other ships,
or reallocating energy to shields (the terminology for the game was based on "Star
Trek"-there has always been significant overlay between the worlds of computer mavens and
serious Star Trek fans). At a specified time of day, let's say midnight, all the moves that
all the players had entered that day would be processed simultaneously by the computer the
BBS was running on. Any time in the next 24 hours, you could connect to the BBS, see the
results of the previous day's moves, and enter your four new moves. If you could not sign
on in a given 24-hour period, you would effectively forfeit your move, giving the other
players an advantage. The object, as you would expect, was to be the last ship left, at
which point the game would start over.

There were also games played among users via email; an occasional game of (very slow) chess
would break out, and I recall an attempt to organize a game of the strategy board game
Diplomacy on a BBS, although I don't think it ever worked out.

I turned my friends Avi Belinsky and Val Bercovici on to these bulletin boards. Val had an
Apple II clone in his room, something called a Golden II+, which was so junky we had to
insert Lego pieces under the keyboard to make the keys function-but it worked. By the
summer of 1984, right after we all graduated from high school, Val's father had gotten
tired of us monopolizing the phone, and had a second phone line installed for Val's
personal use. The three of us decided to run our own BBS on Val's computer. The only
hardware change we had to make was to have a chip on his modem updated so it would support
answering the phone (most modems at the time only supported calling out). We got this done
through someone a year ahead of us in high school, who was a known figure in the Montreal
BBS scene. The rest of Val's hardware, although basic, was adequate for the task-in the
world of Apple II computers, the gap between a low-end system and a souped-up one wasn't
that great. In any case, the fact that conversations would be limited to 300 baud would
hide the limitations of the hardware.

We needed BBS software also, but that was easy to get. The source code to a standard BBS
program called "Networks II" was floating around; most of the BBSs in Montreal were based
on it (it originated the well-known choices of S for scan, P for post, and E for email).

Networks II was written in Apple Basic. It was a fairly trivial matter to modify the
program so it welcomed callers with whatever name you chose to give your BBS. We called
ours Transylvania, because Val was Romanian. We decided to go a bit further and add on some
features not included in the basic Networks II code we received. These "features" were
things that today it would seem laughable not to support: being able to email the author of
a bulletin you had just read with one command (as opposed to remembering who wrote it,
exiting the scan mode, and going into email mode), or remembering which bulletins each
caller had read, so the next time they could be given the option to scan only unread
bulletins (without this, they would have to remember on their own). In fact those features
were then in vogue among Montreal BBSs, and most sysops had added them already, each
presumably making his own separate modifications to the source code. In retrospect this
situation was crying out for something like the open source community of today. The
Networks II source code was freely available. I have no idea who originally wrote it, or
what the royalty arrangements, if any, were supposed to be, but back then nobody worried
too much about things like that. Everyone was busy hacking it up to improve it-what was
missing was some way to fold those changes back into a common source code base that could
then be redistributed. This wasn't due to any sense of intellectual property or not wanting
to share your work, the idea simply never occurred to people, probably because there was no
easy way to manage such a project and transfer the code around. With no Web pages and
everything happening at 300 baud, it would have been too difficult to stay up to date.

Eventually we got all our improvements working and fired up Transylvania, but it never got
very popular. We had to limit the hours it was open, to give us some time to call BBSs
ourselves. In any case the BBS market was fairly saturated, given the small number that any
one user could "stick" to, and the cool features we had added only brought us up to par
with the other systems. Our most ardent user was someone who claimed he could crash our BBS
at will. Unfortunately, when we dared him it turned out he was right.

There wasn't a lot a high school student in Montreal in 1984 could do to prepare for a
career as a programmer. Our high school offered one class with the grandiose title of
"Introduction to Computer Science," but it involved writing BASIC programs to do things
like sort numbers-the kind of thing I had taught myself by logging on to the McGill
mainframe. The only computer this class had access to was the central school board
computer, dialed in to with a terminal sitting in the classroom. Each student would enter
his or her program on punch cards, filling in little bubbles like an SAT answer sheet. The
student would hand the cards to the teacher, who would scan them in on a punch card reader
connected to the terminal. The teacher would run the program; if there were any errors, the
student would make note of them, then go off and fix up the punch cards and wait for
another turn to run the improved program. The reason for the punch cards was that the class
was not allowed to use any storage on the school board computer, and the terminal itself
had no storage. So scanning in the punch cards allowed each student to repeatedly simulate
typing in the program really fast; after it was run each time, it was deleted from the
system before the next program was scanned in. Occasionally, if there was only a small
error preventing the program from running, the teacher would make the correction right away
and re-run it, rather than sending the student away to fix the cards and wait for another
cycle through the class.

During the spring of my senior year in high school, we got the chance to go on "work study"
programs to investigate careers. I signed up for one in computers. It turned out to be at a
phone company. I was apprenticed, such as it was, to a tape operator, working in the room
where the mainframe computer's tape drives were-those large reel-to-reel tape machines that
you see whirring in computer rooms shown in any movie made between 1960 and about 1987. The
mainframe did not have much hard drive storage; instead, user data was almost all stored on
tapes, which were stored on reels. Someone logged into the mainframe from a terminal
elsewhere in the building would decide they needed the data that was on a specific tape.
They would send a message that would show up on a display where the tape dudes (and their
apprentice tape dude) were sitting, and we would scurry off, find the tape (they were all
identified by numbers), mount it on one of the tape drives, and hit a key indicating the
tape was ready. It's funny because when Avi and I were about twelve we would tell people
that we wanted to be "computer operators" when we grew up. I think we had something a bit
more glamorous in mind. Luckily, I already knew there was a bit more to a career in
computers than what I had seen there, and I got to escape after a few days when my work
study time was up.

The work we did on Transylvania that summer is a lot closer to what I did at Microsoft than
anything I learned in school, even in college. You have some piece of existing code whose
author is unknown; you and a few other people have to figure out how it works on your own
and add some features on a deadline. The result may not be the most elegant code, but it
works. In the end, you throw it all away after a few months.

If I had decided to punt college, I could likely have gone to Microsoft in 1984, shown my
work on Transylvania and the games I had written for the IBM PC, and gotten a job as a
developer. How many people in 1984 could say they had over two years of programming
experience on an IBM PC?

- Adam Barr
  (c) 2000 Adam David Barr
DOWNLOAD FILE
MD5
2d61095d85b358622fd340d0c350126e

AAAAH! MY EYES! Click here if you prefer a black and white color scheme.