[1] On the Environment and Early Days of Usenet News by Ronda Hauben au329@cleveland.freenet.edu [Editor's Note: Following is an edited interview by Ronda Hauben with Tom Truscott, one of the pioneers who created Usenet. It is based on an e-mail exchange.] Ronda: First can you say a little about your background and interests in computer science before you became involved in Usenet? Tom: As an undergraduate I got interested in writing a computer chess program. I don't play chess well but my chemistry lab partner did and so we undertook a multi-year project to write a chess program that could beat Bobby Fisher (my goal) or at least be able to beat a rank amateur (partner Bruce Wright's goal). Ronda: How did you become interested in computer chess? You have said it wasn't that you were interested in chess itself. Tom: Well, I'm not sure. Here is rambling speculation. As a kid I did not read much, but some things caught my imagination. One was a short story, Danny Dunn and the Homework Machine. (I think Danny Dunn was a kid who invented all kinds of fun stuff.) I thought that this would be a neat machine to have. I realize it is a big leap from homework to chess playing, but somehow it makes sense to me . My first chance to use a computer (an interactive BASIC system) was in a summer program between junior and senior years of high school. My first large program played checkers. It didn't play all that well, but it seemed to have potential. As a Duke freshman my chemistry lab partner was Bruce Wright, an excellent chess player. I told him we could write a computer chess program that would beat Bobby Fisher. He didn't think so, but we started writing the program anyway. I was interested because of the computing challenge and no doubt the fame that we would garner by defeating Fisher, and I guess Bruce was interested because he wanted to learn computing. We spent a LOT of time writing it, and we learned a lot about how not to write programs. I guess one thing about computer game programs is that they are like robots a somewhat autonomous thing. At tournaments the program tells me what moves to make for it, asks me how much time it has left on the clock, stuff like that. And writing a software robot is a lot easier than building a real one. Why I (and other people) find robots fascinating is beyond me, but there it is. Ronda: I have read some articles from the 1970s that describe how computer chess was understood as something important. Did you have that sense? Tom: Yes, and we had the incentive to believe that because computer chess was far too expensive to be a mere hobby. From a computational point of view, chess and checkers are remarkably similar problems. And the world's best checkers player is still a human. But just try asking Columbia (i.e. some university -Ed.) for plane tickets to a computer checkers tournament, or asking the Association of Computing Machinery (ACM) to spend thousands of dollars to host one! But enough of this cynicism. When computer chess, and more generally Artificial Intelligence (AI), were just starting out, no one knew what was going to happen. Computer games were (and are) like the drosophila fruit fly of AI because the problems are relatively simple, the rules are clear, there are plenty of human experts for comparison, and there are objective measures of "success." Many felt that break-throughs in general AI would happen first in this simpler arena. People still don't know what is going to happen. I guess there haven't been big breakthroughs, but there are a number of "lessons" from computer chess that are argued and/or used in the general AI context. One (controversial) lesson is that computers should not "think" by mimicking humans. Should planes fly by flapping their wings? If nothing else, computer chess will make a significant dent in the human psyche when a computer decisively defeats the human world chess champion. It is going to happen sure as Silicon Valley makes chips. And it will be like a tiny version of the moon landing. It will be something of a stunt, and not really that important, but it will have a symbolic impact that will change how people think. Ronda: Can you say what you did once you and Bruce Wright decided to write a championship chess program? Tom: I discovered that Claude Shannon had written a very early paper on how to construct a chess playing machine.(1) It was remarkably farsighted given the state of computing then. The next oldest paper I found was from 1957 by someone who implemented a program similar to Shannon's proposal. It played terribly. Our first computer chess tournament was the North American Computer Chess Championships, (CCC) held in November 1974 at the ACM Annual Conference in San Diego. (We competed in a local human tournament earlier that year.) Because ACM was sponsoring it I decided to become an ACM member (in April 1974, I was a junior by then) if only to see the announcements about the upcoming tournament. It was tough reading for an undergraduate but there were some interesting papers. A particularly interesting one appeared that year, about a timesharing system that ran on a PDP-11.(2) It sounded so much more sensible than the IBM MVT/TSO computer system that we were using. Simple things were simple, and yet one could do nifty things as well. Ronda: What was the Duke computer you wrote your first chess program for? Tom: It was an IBM System 370 Model 165, 80 nanosecond cycle time (12.5 MHZ in today's lingo), three megabytes of main memory (later upgraded to four megabytes for a mere $100,000). Pretty much the top of the line at the time. We did our development in batch mode (the source code was on punched cards and the compiled code was stored on disk) and used time sharing option (TSO) when competing in tournaments. Ronda: What happened at the tournament? Tom: Bruce Wright and I called our program "Duchess". It did quite well, and it was there that I met Ken Thompson who also had a good chess program. His machine was running a background task sopping up idle CPU time by solving simple chess end games! (For example King and Rook vs. King). There was no chance we could do something like that on our mainframe which cost 20 cents per second. But on the other hand our three MIP mainframe was about the fastest there was, and could compute rings around a little PDP. There were twelve teams competing in the tournament. We were on a stage in a large room with seating for spectators. Each team had a computer terminal (something like a dot-matrix printer with a keyboard in front and an acoustic modem on the back). And a telephone. Boy were those phone calls expensive. But the ACM was picking up the tab, and Duke was giving us the computer time. At the 1974 tournament, we knocked off MIT's "TECH-II" in the first round. They had come in second the previous year, and we were a newcomer, so that was something of an upset. In the second round we got clobbered by the perennial champ, "CHESS 4.0" from Northwestern University. In the third round we played Bell Labs' "Belle". (I think it was called "Tinker Belle" at one point.) I had met the author earlier, before the second round, when he showed me how good his program was at solving mating problems. I wasn't that interested in chess, but humored him while he pulled a chess position out of a library and had the program find a mate in 5 (or some such). I guess if I actually played chess I would have been impressed. So when the third round began Bruce Wright and I were on one side of a table, and Ken Thompson and someone else from Bell Labs (who years later I realized was Brian Kernighan) were on the other side. I noticed that when Ken Thompson logged on, the Bell Labs computer printed: "Chess tonight, please don't compute." I mentioned that that was really neat to be able to get the computer center to put out a notice like that. He said something noncommital in response. So the game began. A few hours and a few thousand dollars later we really had "Belle" on the ropes. All it had left was a lone king and we were about to queen a pawn! But then our program ABENDed (core dumped) in a way that caused the phone line to drop. We dialed back in and set things up, same thing. Every so often it would actually make a move. But making the phone call was slow (we had to ask for an outside line from the hotel operator) and painful (rotary dial you know) and eventually our program lost on time. Later, after the tournament, we concluded that the problem was not in our program. Rather it was a problem caused by TSO trying to load overlays from a partitioned MVT data set that had become excessively fragmented. Did I mention something earlier about simple things being simple? Thus was our mighty mainframe slain by a minicomputer. But I didn't realize it was UNIX. Ronda: What does 'losing on time' in chess mean? Tom: As is typical in human tournaments, each player has two hours to make their first 40 moves, and get an additional 30 minutes for each 10 moves after that. The games utilize a pair of clocks, one for each player. Whenever it is a given player's turn, their clock is ticking. If they use up two hours before completing 40 moves, they "lose on time". "Duchess" was intending to complete 40 moves in 1:40 (i.e. with 20 minutes to spare), but the program crashed so many times while trying to complete the last few moves that it ran out of time. Ronda: Can you describe what happened after the chess tournament? How did you get to work at Bell Labs in the Summer of 1979? Tom: Duchess competed in every ACM CCC from 1974 to 1980, but the next time I met Ken Thompson was at the 1976 UNIX Users Group meeting at Harvard. That was great fun. There were about 60 attendees. I was a grad student and we had just installed UNIX (Version 6) and somewhere along the way I made the connection between "Belle" and Thompson and UNIX. I was also at the 1978 UNIX Users Group meeting at Columbia University, and I think both Ken Thompson and Dennis Ritchie were there. Thompson also competed in the 1978 ACM CCC. I think he had some special chess hardware but it was no match for the much-improved mainframe programs. Because of our mutual interests Thompson would even call up our computer at Duke from time to time, and "write" me. That was pretty intense, my trying to pick perfect sentences to send along to the genius at the other end. I think it was during one of those "write" sessions in early 1979, that he asked if I would be interested in a summer job. Ronda: What did you work on at Bell Labs when you worked there under Ken Thompson that summer? Tom: I remember making changes to the "ed" text editor command, and working on a global optimizer for C. Ronda: Can you say what it was like working at Bell Labs in the Summer of 1979? Tom: Well, I fell into the following routine: Woke up at 11 a.m. Got to Bell Labs at noon so I could play volleyball out on the front lawn with Mike Lesk and Steven Bourne and other folks. (After a few weeks the security folks told us they couldn't have a regulated monopoly running around loose like that.) Lunch at 1 p.m. in the Bell Labs restaurant. Ken Thompson and Dennis Ritchie and Greg Chesson were regulars. They had lunch at 1 p.m. because sometimes they didn't get to work until then. Sometimes Dennis Ritchie would entertain us with a horror story about a non-UNIX system that he had to deal with recently. I think one day Ken Thompson explained the C-compiler Trojan- Horse hack he did. (It might have been in the lab, but lunch sounds right.) I thought it was cute but didn't recognize the larger implications. He later described it in his "Reflections on Trusting Trust" Turing Award paper (which was nicely written so I think Ritchie helped him with it). I tried to think of clever things to say, which was not an easy thing. At 2 p.m. the day began, which involved doing pretty much whatever we wanted. Ritchie was working on "Streams", I think. Ken Thompson was working on typesetting software but mostly working on a chess machine. (In 1980 he won the Third World Computer Chess Championship, defeating the "Duke" chess program that I co-authored.) Often at 7 p.m. a group would go out for dinner (they liked pizza). Occasionally someone would host dinner at their home. Afterwards I would go back to the labs and work until midnight. And the next day I would get up "at the crack of noon", as Thompson put it. There was a kind of lull that summer because UNIX (Version 7) had just been wrapped up. That was the summer that the Seventh Edition of UNIX was sent out with lots of new software such as "sed", "awk", "uucp", and the Bourne shell. Ritchie did various paperwork and tape-making to get it out the door. Ronda: Was there any special work being done with UUCP during that summer at Bell Labs? Tom: I didn't pay much attention to UUCP that summer, though I did receive e-mail from other Bell Labs locations. Of course no e-mail came from the outside. They didn't have UUCP yet. (I have a curious memory of Mark Horton sending me a letter, but that probably did not happen.) Anyway I was too smug to pay much attention to other Bell Labs sites. After all I was at the very root of UNIX itself, hacking on the machine named "research" and eating pizza with Ken Thompson and Dennis Ritchie! Of course when the summer was over and I was back at Duke, one of the first things I did was arrange a UUCP connection to "research". They called us nightly, which was great. Ronda: What was the origin of Usenet? Was there a Unix News program before you folks at Duke and University of North Carolina developed Netnews? Tom: I think the DEC PDP 11/70 there (at Bell Labs named "research") had a primitive "news" program that printed unread files found in the directory /usr/news. But Duke already had a program (from one of the early user group tapes) that supported multiple "categories" of news. (I don't think the program was called "news" though), so I wasn't impressed. In the UNIX (Version 7) manual set there were two papers on UUCP. One was "A Dial-Up Network of UNIX Systems" by D.A. Nowitz and M.E. Lesk, August 1978. The other was "UUCP Implementation Description" by D.A. Nowitz, October 1978. (UNIX V7 didn't ship until the summer of 1979 though.). So I have always thought of Dan Nowitz as a principal author of UUCP. It is odd that in a recent USENIX ;Login: I think I saw Mike Lesk but NOT Nowitz being given some recognition for UUCP. Ronda: Did you continue to play computer chess after you and the other folks at the University of North Carolina and Duke created Usenet? Tom: In 1980 we competed in the Third World Computer Chess Championship held in Linz, Austria. Ken and Joe Condon (a researcher at Bell Labs) had completed their hardware chess machine and snagged first place. (From then on, hardware chess machines have dominated the championships. The flexibility of software programs has not been enough to overcome the raw speed of chess hardware.) "Duchess" came in second (or maybe third, I forget). Claude Shannon was in attendance, and even handed out the trophies at the awards ceremony. Afterwards we all went over to a TV studio to watch a West German TV special on computer chess and the championship. Claude Shannon and his wife were very engaging people. Someone took a photo of all of us, I have a copy buried somewhere.(3) Ronda: What happened when you got back to Duke in Fall 1979? Did you keep in contact with folks from Bell Labs? Tom: When I got back to Duke I set up UUCP, and Thompson also called in from time to time. We really didn't get much software updating from them. Technically they should not supply it anyway, due to the various rules and regulations involved. Ronda: I wondered if anything happened at Bell Labs over the summer that helped you to propose Usenet... Tom: Not really. Ronda: Can you say what it was that led you or you and Jim Ellis to conceive of Usenet? Tom: Well, here is some text I wrote about that a few months ago: "I think there was a confluence of things in fall 1979 that brought it about. 1. Jim had installed the latest UNIX (Version 7) which broke many old programs including a public domain "news" program that had been sent out on one of the early UNIX User Group tapes. (In summer 1979 the user group was renamed USENIX to avoid trademark problems.) [It was earlier than that, but the first new meeting was summer 1979] I don't think the program was called "news" (perhaps it was called "items"). I think it allowed items to be entered under one of several "categories". It had a number of problems (including a 512 byte limit per item), so we were thinking about writing a completely new program. Then we could contribute it to the next user group tape and hopefully achieve some minor level of fame. 2. I had worked for Ken Thompson at Bell Labs in the summer of 1979 and was in UNIX heaven the whole time. I also attended the summer 1979 USENIX conference in Toronto. Returning to Duke in the fall meant the end of that. Our only connection with the outside UNIX world was the user group newsletter ;Login:, but we had not seen one in a while. It was published on an erratic schedule by a professor [Mel Ferentz] who had a lot of other demands on his time. We were quite nervous that should anything happen to him this tenuous connection would be lost entirely. 3. UNIX (Version 7) came with UUCP. This complex (for its day) program made it easy to send e-mail and files to other UNIX (Version 7) sites over phone lines provided that one end had an auto-dialing telephone and modem and the other an auto-answering telephone and modem. The Duke Computer Science PDP 11/70 had both." (We built the auto-dialers ourselves. An interesting story...) We were using UUCP to contact two other UNIX machines at Duke and also one at U.N.C.-Chapel Hill. So one night Jim and I had a rambling conversation about these things and the idea behind Usenet just popped out. We held a few meetings to figure out the details. Two other local UNIX enthusiasts also attended: Dennis Rockwell from Duke and Steven Bellovin from UNC. We decided on the transfer format (what an article would look like on the wire) and on the basic functionality of the software. Steven Bellovin implemented this stuff with shell scripts as proof of concept. It was impressively slow, but it worked! We also decided on terminology such as "newsgroups". We probably chose that due to the newsletter analogy. This was long before the PC and "bulletin boards". We may have chosen incorrectly but it wasn't due to carelessness. One thing we didn't decide on was the name of the network. I think early on Jim coined "Usenet", but our first announcement did not use that (or any other) name. An energetic new Duke graduate student,Stephen Daniel, also turned out to be a UNIX enthusiast. He created the dotted newsgroup structure that we know and love today, and wrote the first production version of news ("A-news"). Ronda: Fred Brooks, who wrote "The Mythical Man Month" about the problems of creating large software projects was a Professor at the University of North Carolina. Did he do anything to help with Usenet? Tom: He was not involved in the early (or later) Usenet as far as I know. He did pay for a leased line between U.N.C. and Duke that made communication via UUCP a "free good". But we really didn't seek faculty help for Usenet except for clerical issues such as handling long distance bills until we were reimbursed. Ronda: How did you present Usenet to people at USENIX in Winter of 1980? Tom: Jim Ellis presented a talk, but people did not come specifically to hear his talk. There was no preannouncement of Usenet. We didn't even have a name for the thing. There were 400 attendees, no parallel sessions, and pretty much everyone heard everything. Ah, the good old days. Ronda: I have been told that the reason "A-news" was written is that the early shell script version of Usenet was too slow and tied up the computer science departments computer. Is that why the "A-news" version of Usenet was done to replace the shell script version? Tom: We never seriously considered implementing news as a shell script. It did not tie up the Department computer. We did, however, have that problem with regard to UUCP. A grad student, Jothy Rosenburg, had a PDP/11 at Duke Student Health that ran UNIX. He used UUCP to ship files back and forth. The files got larger and larger tying up our phone lines (we only had two) and when he shipped a 500 Kbyte file which at 300 baud took 5 hours to transfer, some people indeed hit the roof....Besides Jothy, people blamed the problem on people playing computer games. But I monitored phone use rather carefully and statistically game playing was a total non-problem. But people had their minds made up. This was in the fall of 1979 before news. News to U.N.C. (and to phs) used fast leased lines which were not a problem. News elsewhere happened in the dead of night which again was not a problem. Usenet was being shipped via e-mail (not gateways of mailing lists) long before 1982. Ronda: Across the ARPANET? Tom: I'm not sure, but it seems likely. Perhaps not across the country, but across the campus would be rather attractive. It ("A-news") had general support for non-uucp transports [like ARPANET] in early 1980. Ronda: Do you have any idea how early in 1980? Tom: Quite early. Well before the Delaware USENIX Conference. The "uprop.n" paper (that was handed out at that conference) has a section on this I will include here: "Remote systems can also subscribe to newsgroups on an individual basis. For each such system a subscription list and a transmission protocol are maintained. Whenever an article should be sent to a remote system, the transmission protocol of that system is executed with a formatted version of the article as input. This program performs the necessary magic to send an article to the news program on the remote system. This might, for example, be done by remote execution or the article could be encapsulated and mailed to the remote system, when another program would recover it and pass it on to the local news program." Ronda: I wondered if there were technical limitations to the number and names of newsgroups under the original "A-news" program and then under the early versions of "B-news". I have been reading the discussion in "A-news" about forming new groups and wondered if there were constraints that had to be taken into account due to the software. Tom: The early documentation said that newsgroup names were restricted to 14 or fewer characters, but that was arbitrarily chosen. ("A-news" did not store articles in a newsgroup tree, so the old UNIX limitation of 14 character filenames did not apply here.) There was no limit on the number of newsgroups. However, rather than have individual .newsrc files, "A-news" stored each user's subscription list as a single line in the file /usr/spool/news/uindex. The maximum line was originally 200 bytes, which limits the number of explicitly requested newsgroups. On the other hand, one could subscribe to "all" to read every thing so this was not that big a deal at first. The "200" was also arbitrarily chosen, and was increased over time. The real problem was the huge number of news articles. The software was very inefficient at processing articles (which would have been okay for three articles per day) and was painfully slow as a result of the traffic. There was also a naive assumption that the news program could allocate an array to hold all the news articles the user wanted to read (or otherwise process). But the PDP 11/70 did not have enough memory for more than about 1000 articles! So we hacked the program to deal with about 1000 articles at a time. Ronda: Do you remember the earliest means of keeping track of what newsgroups there were that people could subscribe to or did people just subscribe to all? I have noticed that someone posted a list of newsgroups in the early 1980s (maybe by 1982) I do not have the earliest posts so I wonder if such lists had been made earlier or if there was only a need for them at a certain point. Tom: Originally people could create a newsgroup just by submitting something to it, and similarly could subscribe to non-existent newsgroups. This got to be a problem because people would misspell newsgroup names. So we added a /usr/spool/news/ngfile which had a list of all the known newsgroups, and if someone submitted or subscribed to an unknown group they were warned and asked if they wanted to add it to ngfile. Newsgroup creation became a bigger deal in "B-news" which created actual directories for the various newsgroups. Ronda: You have said that human-nets was an important newsgroup that was available in the early days of Usenet. Can you say what you felt was important about it and why it was called human-nets? Tom: "human-nets" was a discussion of the implications of world-wide ubiquitous networking. This network of the future was referred to as "Worldnet". It was a very interesting mailing list and possible only due to the ability of the network itself to permit those interested in this obscure subject to communicate. Ronda: What role do you feel Usenet has played in all of this? Tom: Usenet provided a good way to have online discussions, and so I think it (accidentally) played quite a large role in this. I think of personal e-mail, mailing lists, and news articles as differing in their purpose and audience, but not in their content or format. Stretching this further, we might view Web pages simply as "messages" over which unusual care has been lavished. And at the other end we might view "chat" style conversations as sequences of messages over which unusually little care has been lavished. Usenet just happened to find a sweet spot somewhere in the middle. Anyway, it seems reasonable that all these different kinds of messages could be formatted and handled in a more uniform manner. Ronda: Do you think we have succeeded in creating Worldnet? Tom: It is easy to say "no", because less than half the world's population have ever used a telephone, let alone a computer. We don't yet have ubiquitous networking. And yet almost all of the Worldnet vision has been implemented and is in widespread use. The Worldnet discussions were about creating online journals and creating an online storage of the world's knowledge. There were concerns about fairness (would minority viewpoints be suppressed?) and multi-culturalism (would we have a tyranny of the English language, or perhaps instead a Tower of Babel?). Well, the discussions have been overtaken by reality, and the concerns are no longer academic! ------------ Notes (1) The paper was Claude E. Shannon, "A Chess-- Playing Machine", Scientific American, p. 48, February 1950. (2) This was the July 1974 paper by Ritchie and Thompson on the Unix Time Sharing System that was published in the Communications of the ACM Number 17. (The earliest announcement perhaps of Unix to the world.) (3) Reproduced in "Netizens: On the History and Impact of Usenet and the Internet" by Michael Hauben and Ronda Hauben. ------------------------------------------------------------------------------- Reprinted from the Amateur Computerist Vol 8 No 1 Winter/Spring 1998. The whole issue or a subscription are available for free via email. Send a request to jrh@ais.org -------------------------------------------------------------------------------