Correspondence with Ben

 

The History of Programming in the Life of Russ Lewis

 

My full name is Russell Benjamin Buller Lewis. I’m the fourth of the Russell Lewises. I’m the first son of the first son of the first son, and we’re all named Russell Lewis. Russell II, Russell III and I are all computer programmers. A couple of days ago I asked my grandpa about the early days, and here’s what he sent me. I think it’s a fascinating history of computers told from one man’s perspective, so I thought I would share it.

I highly recommend checking out the links. If you’re interested in old computers, check out the Obsolete Technology Website, and definitely click on “view all 100 old computers”. Also, I just had had to share this photo of the SAGE console. It had a light gun (think Nintendo NES Zapper), cigarette lighter, and ashtray!

::::::::

Hi Ben,

I’m glad you’re enjoying your programming. I’ve always found it fascinating. You come from a long line of programmers, so I’m not surprised you’re having fun. To answer your question: we’ll talk more about this when you’re here, but I need to think for a while to remember what all happened, so I’ll try to refresh my own memory:

When I was a first lieutenant, and operations officer at the radar site at Rapid City, SD, in 1955, I was sent to RAND Corporation at Santa Monica for a couple weeks to be the boss of a control team that was a guinea pig team for the people who were developing the Semi-Automatic Ground Environment System (SAGE). SAGE used huge first-generation computers to gather data from all the radar sites in a NORAD region and display the results in a single place. RAND was building a system to simulate bomber raids for SAGE training. I became very interested in computers during that couple of weeks. The place was fascinating. John von Neuman was hanging out at RAND, and in the RAND bookstore you could buy a copy of his book on game theory for peanuts.

I didn’t get back into computers until 1965, after I came back from Vietnam and went to NORAD headquarters. I was in Operations Plans, and we were dealing with the specifications for the second generation of computers for Cheyenne Mountain. I had a lot of years experience with radar operations by then, and I’d spent a lot of time reading about computers. I ended up being the guy who could interpret between the operations staff and the data processing staff. Along the way, I, and a close Canadian friend got sent to IBM at San Jose to learn about the IBM 360, which was the first computer that could multi-task. I got introduced to IBM’s PL/1, a programming language that was about halfway between FORTRAN and COBOL, and learned to do a little programming in it.

One of the problems NORAD had was the survivability of reports on operational status during a nuclear attack. They were depending on telephone calls and teletype messages through communications that might cease to exist at the very start of an attack. I suggested we try to build a system that could store and forward reports from the field, so that if one communications node found that the node it was trying to reach was out, it could send the report through a different route. Sound like the internet? Exactly. But that was long before anybody had thought of an internet.

So I came up with a way to encode status reports in a very abbreviated code that could be interfaced with the Cheyenne Mountain computer system. We still depended on 100 baud teletypes, paper tape punches and readers, and punch cards, so I learned to work a keypunch – got damn good at it too. I had a room with a keypunch, card to tape converters and tape to card converters we rented from IBM. I don’t remember exactly what the problem was, but I wanted to program a card to tape converter to do something that the IBM salesman researched for me and reported was impossible. I figured out a way to do it, and not long after that I got a job offer from IBM. But after two wars I didn’t want to give up my retirement, so I turned them down.

While all this was going on, a couple of us were traveling to various companies that were developing small computers for the government, looking for the kind of computers we could use as nodes in a survivable store-and-forward system. We finally found a small computer that a company had developed for the marines. It didn’t quite fit the job the marines wanted it to do, so they’d turned it down, but it fit our needs quite well. With that system we could convert data from the SAGE computers to tones with a modulator, and convert it back to digital pulses at the NORAD end with a demodulator. Sound familiar? That idea is where the word “modem” came from. When people first started working with the internet, they used to have a modem plugged into their phones. When you wanted to get on line you first dialed your service’s modem. When you heard modem tones you put your handset into your modem and got back on your computer. Modems are long gone. What you hook your computer up to nowadays doesn’t modulate or demodulate. That box is a digital bridge. But we still call it a modem.

Anyhow, I finally wrote up the whole proposal. It went up the chain of command and got sent to some civilian contractors for evaluation. It came back approved, but it never got funded. That was in the middle sixties. Not long after that ARPANET appeared, and I’ll always wonder if my OPSTAR (operational status and reporting system) gave the guys at Lincoln Labs some of their ideas. Packet switching is the heart of ARPANET and the internet, and my system didn’t include packet switching. It depended on short bursts of encoded data. But the idea of nodal networking is the same.

I didn’t start writing code for real until after I retired in 1977. A couple months after I got home, Radio Shack came out with the TRS-80 Model 1. I bought one that had 16k of 8-bit memory, and, a couple months later upgraded it to 32k. I learned BASIC, which was interpreted, and pretty slow. TRSDOS, which was Radio Shack’s operating system was really crappy, but an outfit outside Denver called Apparat came up with NEWDOS/80, which was a lot better. But even on NEWDOS/80, interpreted BASIC was too slow for some things, so I learned Z80 assembly language. That was a toughie because there weren’t any books on the subject. All I had was a set of specifications that more or less told what various commands did. The biggest thing I built in BASIC was a system for a local business broker that handled businesses for sale all over the country. The system I built for them would compare prospective buyers with available businesses once a month. For each match it would print out a letter to the business telling them about the buyer, and a letter to the buyer, which would be attached to a brochure on the business. Much later on I converted this system to C, and then, when Windows came out, to VB. In the end I even set up the buyer side so the system spit out a .PDF brochure on the business and saved Andy, the owner of the company, the price of printing all those brochures. He was able to sell the printing shop he’d bought to print them.

Finally, once the IBM PC came out, Microsoft got rolling and came up with a good FORTRAN. So I learned that and did some pretty extensive programming in it. A little later Microsoft came out with COBOL. I got that and learned it. I don’t remember how I came into contact with the guy – don’t remember his name – who owned the school that later became Colorado Tech. He asked me to write a billing system for the school, and asked if Dr. John Zingg, the guy in charge of the computer science department could help out. Turns out John was a retired lieutenant colonel who’d set up the computer science department at the AF Academy. I built the billing system in COBOL, and got conned by John into going back to school for a while. I had to take beginning computer science, which was a bit ridiculous since the instructor would ask me questions instead of the other way around. They had a programming language called Karl the Robot. You had to make Karl move around in a maze and pick up things, and Karl could only turn left. The language was a variant of Pascal, which I’d had some experience with, so one day I wrote a universal solution. With my solution I could just turn Karl loose and he’d sweep the maze and find anything. I found out later that a couple instructors had secretly broken into my account to find out how I did that. Actually, it was pretty simple.

A little before I got involved in the school thing I bought a copy of The C Programming Language by Brian Kernighan and Dennis Ritchie. Richie had been the inventor of C, and Kernighan was a very fine computer scientist and tech writer who’d been in on the development of Unix and C along with Richie and Ken Thompson, who was the real inventor of Unix (Ben’s Comment - He also co-invented Go!). All three were at Bell Labs, which, in those days was a powerhouse in computer science. I was fascinated by C. You could build a library of functions and link them. An incredible time saver. Also, it was elegant: Since in C, strings always ended with a zero, which could be interpreted as a null, you could copy one string to another with two pointers. Where the pointer p points to the string to be copied and q points to the string to be filled: (while p) q++ = *p++;

I got a C compiler and started doing serious work in C. After I’d been at it a while, John asked me if I’d teach a class in C at the school, so I did. But I was working on a revision for my business broker at the same time and taking a course in advanced calculus. I had to drop the calculus class because I was completely out of time. After I’d finished the C class the dean asked me to come on full-time, but since the pay was peanuts I was losing too much money for each hour I put into the course instead of into commercial work. I declined reluctantly because I’ve always loved teaching.

The next big thing was the “Tunes” project. Back in the seventies two doctors and one accountant started an HMO named Peak Health. Each of them put in $10,000 and hoped to multiply their investment by 100 in ten years. Eight years later they sold the company for, if I remember correctly, 80 million. A guy named Steve Hyde was the accountant. Steve decided to start a company that would let you order a music tape with the music you wanted on it. So in the early eighties Steve hired Bill Witt, a close friend of mine and a superb computer hardware engineer to put together a room full of disk recorders, run their output through a unique analog switch designed and built by another brilliant hardware guy whose name I’ve forgotten, and send the output to a bank of tape recorders. I was hired to build all the software. Our main machine ran Unix, and my main project was a scheduler that would take an order in digital format, pick out the tunes from the disks and send them to the appropriate recorder. I built it on the same principle the Unix scheduler is built on, though I’ve now forgotten the details. Technically, the whole thing was a huge success, but the marketing was a fiasco, so it went under.

Toward the end of the Tunes thing I got really interested in C++ and learned it. Object-oriented programming was a revelation, and, obviously the only way programming was going to be able to keep up with future developments. After Tunes crumped, Bill Witt got a job at Cirrus Logic’s R&D branch, which, in those days, was in Broomfield. Cirrus was building a new disk drive that could be programmed in firmware by the vendor. They needed a graphical interface for the programming steps – this was still in DOS days – shortly before Windows came out. Bill suggested they hire me to do the interface. I did it in C++. That was a lot of fun and turned out to be quite successful. Then they decided their own programmers needed to learn C++, so they hired me to teach a class in it. I drove up there twice a week for about four weeks and taught the class – about two hours for each session.

While that was still going on, Windows was becoming the new big thing. So I switched to Visual Basic, since it was the only reasonable way to program Windows. I re-built the business broker’s stuff in it, and wrote a lot of shareware in between that and other little jobs I took on – like one for the guy who had a plan for handicapping horses and wanted it automated. Some of the shareware is still being used, and I get emails from people using my general ledger when they change computers.

Finally, your uncle Tom was going to have to hire a new person just to do the paperwork for new reporting requirements the state came up with in connection with contamination remediation. He told me about it and I suggested we automate the reporting. That’s a long story, but I built a system that saved him from hiring the extra person. I sold a few copies to other engineers in the state doing the same kind of work, but finally the state got interested in the software and I sold the whole package to them.

That’d be the end of the story except that recently I decided I wanted to rebuild a web site analyzer I’d built for one of my webs in VB6. You can’t run VB6 on Windows 7, though I could have run it on the XP emulator on Windows 7 Ultimate, which is what I have. So I downloaded Microsoft’s free Visual Studio Express 2012 and learned C#. I’d tried C# five years ago but never got serious about it. Now I’m serious about it. It’s really just C++ on steroids, so it’s not hard for me to learn. So I now have a new web analyzer that’s much more flexible and infinitely faster than the VB version.

Sorry to go on and on, but I realized I needed to get all this straight in my own head before I could talk about it.

Love you,

Grandpa.

 

Posted by Ben Lewis