Today I read of the passing of Larry Tesler, a computer scientist with a long and storied career, spanning Xerox PARC, Apple, Amazon, Yahoo, and others. He's considered the father of the modeless interaction model (think Cut/Copy/Paste on the Mac).
I met Larry in the late 1980s, when I was at NCSA and he was visiting there on sabbatical from Apple, with his wife (a geophysicist with a time grant on our supercomputer). As the head Mac enthusiast at the facility (ok, maybe Brand Fortner had that title at the time, but I was Mac developer and he was more management), one might think that Larry and I would hit it off. And, perhaps we would have, if it hadn't been for the Mac II Ethernet Card.
Back in those days, NCSA had a great relationship with Apple. We had a lab full of Macs to go with our Cray, and we liked to talk about them. In 1986, we'd released NCSA Telnet, my first serious professional software and a key communications package for the Mac in those days. Also, we'd been part of the educational beta test for the Macintosh II1.
When Larry arrived with his wife to begin their work at NCSA, he brought with him a brand new Mac II with an even newer Ethernet card. This card was so new, they were not available to the general public, or even most of folks who were part of the beta test, instead we were still using LocalTalk2 for our networking.
Larry comes in and assembles his Mac II, complete with test Ethernet card and I'm brought in to hook up the network connection at his desk. Introductions are made, although I had no idea who he was, and he certainly didn't know me from Adam. I hooked up the thin-net connection to the back of the Mac II, pulled out a trusty floppy to load the latest NCSA Telnet onto the machine, and sat down to get things working.
At the time, I don't recall if we had any other systems that had Ethernet adapters, but there were some units available for the Mac SE with the Processor Direct Slot, and I believe I'd already gotten the Ethernet drivers working there. Regardless of the timeline, we did manage to get the networking working quickly, and NCSA Telnet was humming along... for a few minutes and then everything came to a halt. The Mac II had crashed and there was no clear cause.
Being two software guys, Larry and I both assumed that there was something wrong with NCSA Telnet and its interaction with the Ethernet driver. I came back in and sat down to take a further look at what was going on. Debugging tools on the Mac weren't great in those days, but there was always Macsbug, and if time was right, maybe TMON.
After trying to figure it out for a while, we pulled the plug on the Ethernet card and tried NCSA Telnet over LocalTalk. That worked fine, and would allow him to get to work if he wanted to. Meanwhile, I had access to the machine in off-hours to try and figure the problem out. I came back to the office later in the day and tried again. It took much longer to reproduce the problem, but it eventually came back. I restarted again and let the system just sit while I went to talk to Tim or Tom, or one of the other folks on the team to see if they had any bright ideas. Nothing new from them, but when we came back, the system had crashed. The odd part was that NCSA Telnet wasn't loaded and, in those days, you only had one application running at a time. Further, NCSA Telnet didn't use any resident drivers as it had full access to the hardware when it was running. Curious...
The next day, I got a frantic call that the machine was acting up, even on LocalTalk. As far as Larry was concerned, this was proof positive that the problem was with NCSA Telnet and not with the Ethernet card. I went over to check out the problem and noticed that, unlike the previous day, we'd left the Ethernet card plugged in. I unplugged it and we tried to reproduce the problem, and could not. The problem was now coming into focus.
A few days later, some of these cards had made it to other universities in the test program and I was getting email telling me that they were experiencing crashing problem. Of course, it looked like NCSA Telnet might be involved, since it was one of the communications programs that would use Ethernet. However, in these cases as well, the problems also seemed to occasionally manifest when NCSA Telnet wasn't running.
Eventually (not sure if this was with a week or two), we were able to put the pieces together and realize that high traffic on the network caused the Ethernet hardware to freeze up, causing the Mac to follow suit. Apparently, Apple's test labs were much more orderly and had a lot fewer collisions, whereas our crowded educational networks were collision-fests and this was directly related to the problems on the card. A re-spin of the hardware was in order and it wasn't too long before we had working Ethernet cards in the Mac II that could handle a network with real activity on it.
Unfortunately, I never really got to know Larry, although we exchanged pleasantries while he was visiting, he was thoroughly involved in the work on geophysics at the time. Plus, I don't think that the Ethernet card situation resulted in a lot of good will...
Interestingly, while doing some searching for this piece, I ran across Kent Beck's Piece on Larry Tesler and if you notice about half-way down the page, you'll get to an anecdote about a geological core sample browser, that was what he was working on.
As an aside, we had to keep the Mac II in a locked room, and agree to a number of limitations on use, including a specific prohibition on taking off the cover. A bit disappointing, since it had 6 NuBus slots. However, when it arrived, it had no cover. Technically, we were never in violation. ↩
I'm not sure if this was before or after they renamed AppleTalk to LocalTalk, but since AppleTalk eventually became the name of the protocol stack and LocalTalk the name of the medium, I have disambiguated the two here. ↩