Wednesday, September 3, 2008

Computers I Programmed

Cornbread recently posted about his first computer. That made me think about my own computing experience and I was inspired to blog about the ones I've programmed and owned.

First "computer" I programmed was an HP 9100B with printer. In fact it is the first computer I actually saw and touched.

The first program I wrote was a least mean squares program that received data points from an experiment and then applied the least mean squares method to them. I've written about Carl Friedrich Gauss before and he is credited with developing the basics of the method when he was 18.

I think this happened in 1969 (my program, not Gauss). But it might have been in early 1970 or even in 1968. I no longer recall exactly. What I do recall though is how much I loved writing that program and how much I enjoyed watching other people use the program I had created.

I had a similar feeling in college when I was chosen to teach a physics class for a few sessions. It was a lot of fun for me and I think I managed to make it interesting for the students. That was when I seriously thought about teaching as a career.

The next opportunity I had to program was when my dad bought an Olivetti A6 electronic posting machine for his companies in 1976. As I remember this thing cost about $12,000. The image is not precisely the machine we had but is as close as I could find.

Ours also had an electro-mechanical ledger feed.

My dad just could not get his mind around the idea of giving up hard copy ledgers for our accounting work.

He also purchased complete accounting software for this machine for more money although I've forgotten how much. The problem was that the software did not work. It was "under development" and stayed "under development" and never came out of "development."

The seller had a lady who knew how to program the machines and she struggled rather valiantly to solve the problems but with no usable success. So finally the decision was made that I would take on the project and she would teach me what I needed to know to write the programs. She did teach me, too.

The programming language was IBM Basic Assembly language (handy of WIKI to have an article). I had these pads of special coding form on which I would write the program. One program would take reams of this paper which was 8-1/2 by 11. After I had written the coding sheets by hand then I typed the program on the keyboard of the A6 and then stored it on magnetic cards. Each mag card stored 256 bytes as I recall.

Once I had the program transferred to the mag cards then I would add some additional cards that provided my interface to the operating system and I was ready to assemble and link the program.

Debugging was a bear, too. The program wouldn't run at all usually if there was a serious error and that meant pouring over the coding sheets trying to find the error. It was a slow process.

The image doesn't show it but our machine had two floppy disk drives. Each floppy held 128,000 bytes. Once I had an executing program I could store it on a floppy. My program size was limited to 4K bytes of user memory so I had to heavily overlay everything.

I know it must sound so crude and cumbersome now. But honestly it was quite advanced for the time. I wrote an entire accounting package for that thing including general ledger, accounts payable, accounts receivable, billing, inventory control, job cost, and payroll. I spent more than one year writing all that code. Eventually we had 2 machines and a separate "fast" printer. We used my software for nearly 5 years. At the peak we were putting out 150 invoices per day for one company with several thousand customers and doing payroll for maybe 200 employees for other companies.

In 1979 we bought a Texas Instruments TI 990 DX-10 mini-computer. The image at the left is of the control panel. Ours also had two disk drives each containing a 5 Mb removable platter and a 5 Mb fixed platter. So things had really progressed in the small computer world. This was also the first computer I had that used a CRT and that had a full screen text editor.

I cannot begin to explain how much more productive I was as a programmer using a full screen text editor. It was amazing. That first 990 computer and printer and 4 CRT's and operating system software cost a whopping $37,500.

I rewrote all of the software we had running on the Olivetti to run on the TI 990. It took a total of about 2 years but was fully implemented by 1981. We used this software until 1995. I wrote it in COBOL by the way. Also, by the way, I designed my records so I had no problem with the "Y2K Bug."

Not too long after we bought the 990 I attended a TI conference in Dallas where I saw and listened to Rear Admiral Grace Murray Hopper. She was a Captain when I met her and had already retired twice but had been asked to return. She invented COBOL among other things and was an advocate for distributed computing. I was in awe of meeting her.

People often erroneously attribute to her the idea of the first computer bug which was actually a moth found trapped and fried in an early main frame. She told the story and relished it in the telling but she made it clear it was someone else who found it and not her.

In her speech she talked about "nanoseconds" and at the end of her speech she held up a bunch of short wires that she said were cut to the length of what electricity could travel in one nanosecond. She invited anyone who wanted one to come up and get them. It was amazing.

Another thing I remember was her discussion of distributed computing. She said that when our pioneer forebears began clearing land with Oxen and encountered a tree too large for one Ox to move that they did not try to grow a larger Ox but harnessed two or more together. I thought that made so much sense.

She died January 1, 1992 at age 85. I still feel extremely privileged to have been able to actually meet her and see her deliver a speech.

My first "personal" computer was a Mac 128 that I bought in about 1984 or 1985. I am uncertain if we still have it somewhere or not but I bought my dad one identical to it and we do still have that one.

It was kind of a cool little machine although honestly I never found much to do with it that was very useful. I was a little late I guess to the home or personal computer world.

I understood doing things with a computer in business and even in academia but it just didn't really make sense to me that one would be useful for me personally.

But the Mac 128 with its graphical interface and mouse and Excel spreadsheet program definitely showed me the promise that personal computing held.

Just about anyone can find a use for a spreadsheet program at one time or another.

Something I hadn't thought about was how difficult it was to get people accustomed to the mouse at first. I took my Mac to the office one time and people would come and play with it. Everyone had a hard time with the mouse. It didn't last too long though but it was not nearly as natural as I thought it would be. The graphical interface was easier though except for people that already had been working with PC's and for them it took a little getting used to.

My first actual laptop was a ThinkPad circa 1993 I think.

It actually was a pretty good machine for my purposes. I was flying to Kansas City quite a bit then and I recall I could use it on the airplane for nearly the entire trip before the battery would run down. That was about an hour as I recall.

Mainly I used it for word processing and spread sheets and other similar things.

I thought it was really expensive. I think maybe $4,000 to $5,000 back then. But I did use it a lot.

It was a tough machine, too, because I carried it around with me under rather difficult circumstances.

Along the way I programmed in several languages. I've already mentioned BAL and COBOL. But I also programmed in Fortran, Pascal, Basic, and Pick - which later became an operating system.

One interesting programming job I did was for an oil engineering company. This was in the early days of putting together large groups of investors for groups of oil wells. There would be tens of thousands of investors and their individual interests would be fractions out to several places. The task would be to take a certain amount of income in dollars and cents and pay it out to all of the investors based on their percentage of investment. But there was a problem with the round off error which for any individual investor was very small but summed over the entire group was quite large. So we had to come up with a solution to spend all of the money but not pay any one investor too much or too little. I still remember that as being one of my more interesting problems.

When I started web programming I used Perl and JavaScript mainly and usually used VB Script for my ASP page work. That was in 1995 and 1996. There wasn't much Internet then. AOL was the really big thing and my first browser was Mosaic and there was Compuserve and Prodigy and so on.

I've probably told this story before but I will include it again. My son brought me an AOL diskette and told me he thought I might enjoy using it. I used but I couldn't for the life of me figure out why I would ever want to do it again. So I dismissed the whole Internet thing. That must have been in 1994 I think.

Later I was calling on people trying to interest them in a telephone system that installed on their local PC network. Nearly all networks then were Novell. Microsoft had barely begun offering their first networking systems. No one was very interested in my telephone deal but everyone wanted to talk about the Internet and web pages. So finally I gave up and accepted a first project for a bank to build their initial Internet web site.

My current computer is a Dell XPS M1210. I may go a Mac for my next one. But maybe no.

The last program I wrote was some VBScript ASP pages for my wife to use in her orchestra ministry work at church.

I doubt I will write any more programs. It seems strange that something that has been so important to me for 40 years has reached an end so suddenly. Maybe not strange exactly. It is the suddenness that is difficult to understand. The technology has continued to move beyond me, too. That and the suddenness are disconcerting somehow.

Strangely enough I have no great desire to return to programming or to learn the new techniques and new this and that. Just a few years ago I would have been so eager to try everything new. I lived for new in fact. I hated projects that lasted too long and loved to find new problems to solve.

I suppose it is simply a part of aging. I wonder what else I will discover?

1 comment:

Lori1955 said...

Wow, I didn't know you could do all that. I'm impressed. I remember when I used to be fascinated about how computers work (even took a couple apart). Now I only care that it works and leave the how to minds like yours.