Surviving in the Hi-Tech World
By Ernie Dainow
()
About this ebook
"Surviving in the Hi-Tech World" follows the many ups and downs of my years as a software developer in the high-tech industry, starting in the mainframe era. It provides a window into what it is like to work in the computer field. I worked for many different organizations, from academia and large companies to medium sized companies and several startups. The stories weave my work experience with explanations of the technology of the period. In the process it follows the revolutionary changes in computer hardware and software from large mainframes to personal microcomputers and the evolution of early networks into the global Internet.
When I was a psychology student in university, I became interested in the possibilities of using computers to model and understand human thinking. I completed a Master's degree in Artificial Intelligence in Computer Science in 1970, but my interest in doing academic research shifted to an interest in building real world systems.
My first job in computers was with Univac, the company that had built one of the first general purpose commercial computers. I switched jobs for many different reasons – sometimes because of interest and at other times because of necessity. Each chapter in the book covers the different jobs and places that I worked. My journey took me from Montreal to London, Glasgow, Wisconsin, Vancouver and Toronto. Each job has its own story as I progressed through a series of adventures. There are stories of people who became multi-millionaires and one who went to jail.
Ernie Dainow
Ernie Dainow was fascinated with mathematics at an early age. In university he became more interested in how people think and he began graduate work in psychology. The possibilities of using computers to try to understand the brain by simulating learning and thinking became an exciting idea and he completed a Master's degree in Artificial Intelligence in Computer Science. Ernie's interest in doing research shifted to an interest in building systems. He started working for Univac, the company that had built one of the first general purpose commercial computers. This began a long career in the computer field, working on large mainframe computers and then personal computers, doing software development for academic/scientific research, business and financial applications, data communications, computer hardware products and the Internet. Ernie never lost his fascination with computers. After he retired he began writing to explain many of the interesting things he discovered over the years that are not well known outside of the computer field.
Related to Surviving in the Hi-Tech World
Related ebooks
So, You Want to Be a Coder?: The Ultimate Guide to a Career in Programming, Video Game Creation, Robotics, and More! Rating: 2 out of 5 stars2/5Digital Technology: The World Of Our Own Rating: 0 out of 5 stars0 ratingsAn IT Contractor Life Rating: 0 out of 5 stars0 ratingsThe Tornado Engine + Rating: 0 out of 5 stars0 ratingsBig Dummy's Guide to the Internet Rating: 0 out of 5 stars0 ratingsAtypical Girl Geek: A Memoir Rating: 0 out of 5 stars0 ratingsCuriosities about the Internet Rating: 0 out of 5 stars0 ratingsWow! What a Ride!: A Quick Trip Through Early Semiconductor and Personal Computer Development Rating: 0 out of 5 stars0 ratingsA Brief History of Digital Electronics Rating: 5 out of 5 stars5/5How Do Computers Talk to One Another? Rating: 5 out of 5 stars5/5With a Net: An Internet Memoir Rating: 0 out of 5 stars0 ratingsA Short History of EBooks Rating: 0 out of 5 stars0 ratingsThe History of Computers Rating: 0 out of 5 stars0 ratingsGenerative Art: A practical guide using Processing Rating: 4 out of 5 stars4/5Priming the Pump: How TRS-80 Enthusiasts Helped Spark the PC Revolution Rating: 4 out of 5 stars4/5Inventing the Internet Rating: 0 out of 5 stars0 ratingsClassic Computer Science Problems in Python Rating: 0 out of 5 stars0 ratingsElectronic Dreams: How 1980s Britain Learned to Love the Computer Rating: 5 out of 5 stars5/5The Ultimate Beginners Guide to Cryptocurrencies: An Introduction to Cryptocurrencies and the Technologies that Powers Them Rating: 0 out of 5 stars0 ratingsFrom the Print Media to the Internet Rating: 0 out of 5 stars0 ratingsHow We Got Here: A Slightly Irreverent History of Technology & Markets Rating: 4 out of 5 stars4/5Guesstimation: Solving the World's Problems on the Back of a Cocktail Napkin Rating: 3 out of 5 stars3/5The History of .Net Web Development and the Core That Was No More Rating: 0 out of 5 stars0 ratingsRobotics for Young Children: STEM Activities and Simple Coding Rating: 0 out of 5 stars0 ratingsThe First Days Of The Internet: punk, art and the world wide web Rating: 0 out of 5 stars0 ratingsA Youngsters Guide Rating: 0 out of 5 stars0 ratingsA People’s History of Computing in the United States Rating: 4 out of 5 stars4/5Computer Technology Rating: 0 out of 5 stars0 ratingsClassic Computer Science Problems in Swift: Essential techniques for practicing programmers Rating: 0 out of 5 stars0 ratingsL.A. QUINTET Rating: 0 out of 5 stars0 ratings
Biography & Memoir For You
Jack Reacher Reading Order: The Complete Lee Child’s Reading List Of Jack Reacher Series Rating: 4 out of 5 stars4/5Maybe You Should Talk to Someone: A Therapist, HER Therapist, and Our Lives Revealed Rating: 4 out of 5 stars4/5Becoming Bulletproof: Protect Yourself, Read People, Influence Situations, and Live Fearlessly Rating: 4 out of 5 stars4/5Autism in Heels: The Untold Story of a Female Life on the Spectrum Rating: 4 out of 5 stars4/5Disloyal: A Memoir: The True Story of the Former Personal Attorney to President Donald J. Trump Rating: 4 out of 5 stars4/5All That Remains: A Renowned Forensic Scientist on Death, Mortality, and Solving Crimes Rating: 4 out of 5 stars4/5Maybe You Should Talk to Someone: the heartfelt, funny memoir by a New York Times bestselling therapist Rating: 4 out of 5 stars4/5A Crack In Creation: Gene Editing and the Unthinkable Power to Control Evolution Rating: 4 out of 5 stars4/5Sex Cult Nun: Breaking Away from the Children of God, a Wild, Radical Religious Cult Rating: 4 out of 5 stars4/5The Boy Who Harnessed the Wind: Creating Currents of Electricity and Hope Rating: 4 out of 5 stars4/5A Stolen Life: A Memoir Rating: 4 out of 5 stars4/5Why Fish Don't Exist: A Story of Loss, Love, and the Hidden Order of Life Rating: 4 out of 5 stars4/5Good Girls Don't Rating: 4 out of 5 stars4/5Leonardo da Vinci Rating: 4 out of 5 stars4/5Just Mercy: a story of justice and redemption Rating: 5 out of 5 stars5/5A Cook's Tour: In Search of the Perfect Meal Rating: 4 out of 5 stars4/5The Diary of a Young Girl Rating: 5 out of 5 stars5/5The Ivy League Counterfeiter Rating: 4 out of 5 stars4/5The Simple Faith of Mister Rogers: Spiritual Insights from the World's Most Beloved Neighbor Rating: 5 out of 5 stars5/5Killing the Mob: The Fight Against Organized Crime in America Rating: 4 out of 5 stars4/5Meditations: Complete and Unabridged Rating: 4 out of 5 stars4/5South to America: A Journey Below the Mason-Dixon to Understand the Soul of a Nation Rating: 4 out of 5 stars4/5I'll Be Gone in the Dark: One Woman's Obsessive Search for the Golden State Killer Rating: 4 out of 5 stars4/5Wiseguy: The 25th Anniversary Edition Rating: 4 out of 5 stars4/5Taste: My Life Through Food Rating: 4 out of 5 stars4/5The Art of Eating Rating: 4 out of 5 stars4/5Mommie Dearest Rating: 3 out of 5 stars3/5Things My Son Needs to Know about the World Rating: 4 out of 5 stars4/5The Indifferent Stars Above: The Harrowing Saga of the Donner Party Rating: 4 out of 5 stars4/5
Related categories
Reviews for Surviving in the Hi-Tech World
0 ratings0 reviews
Book preview
Surviving in the Hi-Tech World - Ernie Dainow
Also by Ernie Dainow
Understanding Computers, Smartphones and the Internet
A Concise History of Computers, Smartphones and the Internet
Surviving in the Hi-Tech World
Surviving in the Hi-Tech World
Memoirs of a life in computers
By Ernie Dainow
© 2024
Foreword
Surviving in the Hi-Tech World
follows the many ups and downs of my years as a software developer in the high-tech industry, starting in the mainframe era. It provides a window into what it is like to work in the computer field. I worked for many different organizations, from academia and large companies to medium sized companies and several startups. The stories weave my work experience with explanations of the technology of the period. In the process it follows the revolutionary changes in computer hardware and software from large mainframes to personal microcomputers and the evolution of early networks into the global Internet.
When I was a psychology student in university, I became interested in the possibilities of using computers to model and understand human thinking. I completed a Master's degree in Artificial Intelligence in Computer Science in 1970, but my interest in doing academic research shifted to an interest in building real world systems.
My first job in computers was with Univac, the company that had built one of the first general purpose commercial computers. I switched jobs for many different reasons – sometimes because of interest and at other times because of necessity. Each chapter in the book covers the different jobs and places that I worked. My journey took me from Montreal to London, Glasgow, Wisconsin, Vancouver and Toronto. Each job has its own story as I progressed through a series of adventures. There are stories of people who became multi-millionaires and one who went to jail.
Although this book has a lot of detail down to the code level in some instances, it by no means covers all the projects that I worked on. I only included work that was interesting or was relevant to the evolution of computer technology. For a more complete list of the projects that I worked on there is a comprehensive resume listed in the appendix.
Ernie Dainow
edainow@gmail.com
2024 Toronto, Canada
Contents
1. First Encounter 1958
2. First Program 1966
3. The Mainframe Era 1967
3.1. Univac, UK
3.2. Assembly Line
3.3. Mastering a Monster
3.4. Generating Systems
4. Artificial Intelligence 1969
4.1. Turing Machines
4.2. Checkers Champion
4.3. Principia Mathematica
4.4. Teaching
5. Academic and Scientific Computing 1972
5.1. Systems Programming
5.2. Academic Programming
5.3. The Infamous JCL
5.4. The Rise of the CRT
5.5. Damned Statistics
5.6. The Rise of PL/I
5.7. All That Glitters is Gold
5.8. The Beauty of APL
5.9. The Calcomp Plot
5.10. Minicomputers on the March
5.11. Keeping Up
5.12. The Arrival of Microchips
6. Eastward Ho 1976
6.1. Toronto
7. The Glory Days of Time-Sharing 1976
7.1. Competition in the APL World
7.2. Product Development
7.3. Financial Planning
7.4. The Microcomputers Arrive
8. IBM PC Startup 1983
8.1. Modeling Time
8.3. Publish or Perish
8.4. Sell, Sell
8.5. Contracts
8.6. Las Vegas
8.7. Bike Rides
8.8. Mystery on the Lake
8.9. AI Bounces Back
8.10. The Last Lap
9. IBM Mainframe Land 1985
10. Data Communications and Networking 1986
10.1. The Network Jungle
10.2. Network Programming
10.3. Up, Up, Up
10.4. The GUI Wars
10.5. Down, Down, Down
10.6. The Internet Protocol
10.7. Finding the Route
10.8. How to Manage
10.9. Roll Out
10.10. The Internet Comes of Age
10.11. Filtering the Route for Nortel
10.12. Anatomy of a Bug
10.13. Firewalls
11. The Internet Boom 1996
11.1. Unix Land
11.2. The Bandwidth Revolution
11.3. Sun Also Rises with Java
11.4. Virtual Private Networks
11.5. Bombshell 1
11.6. Back to the Drawing Board
11.7. Bombshell 2
11.8. Bombshell 3
12. IT Security 1998
12.1. Windows NT
12.2. Firewalls and VPNs
12.3. Vulnerability Assessments
12.4. Antivirus
12.5. Investigation Reports
12.6. Intrusion Detection Systems
12.7. Public Key Infrastructure (PKI)
12.8. Security Policy
13. Storage Area Networks (SAN) 2001
13.1. Infiniband
13.2. IP Storage
13.3. Switch Chip East
13.4. Security
13.5. Switch Chip West
13.6. Startup Buy Up
13.7. Shutdown
13.8. Storage Wrap Up
14. Secure Storage Startup 2004
14.1. Crypto Code
14.2. The Split
15. Interlude 2006
16. DNS and Internet Standards 2007
16.1. Email Address Internationalization
16.2. The New Whois
16.3. End of the Road
17. Retirement 2015
18. AHA Moments
19. Resume
1. First Encounter 1958
The first time I heard about computers was in 1958 when I was 13 years old and just about to enter high school. We were on a family summer motor trip. I was squashed in a car with my parents, older sister and two younger brothers on a drive from our home in Montreal to Nova Scotia. My mother had been born in Nova Scotia and lived there until her family moved to Montreal when she was in high school. This was her first trip back and she wanted to show her children her ancestral roots. Except that her real roots were in Eastern Europe. Both her mother and father had emigrated from small towns in what was then Poland and now is Belarus.
The Atlantic Ocean off Nova Scotia was the first time I ever saw the ocean. I only knew the lakes in the Laurentians north of Montreal. I think I had been to Lake Ontario once which looked like the ocean, but the water was not salty. I loved swimming and was a good swimmer, but I didn't get very far in the Atlantic. By the time I walked into the water up to my waist, my feet were numb from the cold. I may have dunked into the water once but after that I was running out to warm up.
One of the most exciting things I remember from that trip was going deep sea fishing. We went pretty far out in a fishing boat until we could no longer see the shore. In no time we were all pulling up what I thought were pretty big fish, about 2 feet long or more. I thought that this was amazing, I had spent many hours fishing in small lakes in the summer and if I was lucky I caught an 8 inch long perch. The fish that we were catching were called pollock. It was kind of like cod but neither my parents nor I had ever heard of it. And I never heard about pollock again until many years later when I noticed that it was one of the fish that was often an ingredient in imitation crab meat.
From Nova Scotia we took the ferry to Bar Harbor, Maine. For someone who had never been in a boat larger than a rowboat, this was an exciting trip. I was amazed to see that the seagulls followed the boat all the way across the water on the four hour trip.
From Maine we drove to Boston. The main reason we were going to Boston was that my father wanted to speak to someone at IBM. My father was a partner in a small accounting firm and he was interested in using a bookkeeping service that IBM provided called Mail-Me-Monday. The service had actually been started many years earlier, before the computer age. By 1958 IBM had bought the business and computerized it so that the service could be expanded. My father used this service for many years. He could mail in accounting information for his clients that IBM would process and then mail back the bookkeeping records.
My father was very forward looking for an accountant with a small business. He believed computers had great potential and he had a lot of confidence in IBM. He bought stock in IBM throughout the 1950s which continued to appreciate. He held the IBM stock for many years until he retired and it was an important part of his retirement portfolio.
2. First Program 1966
In my first year of high school, advancing from simple grade school arithmetic to algebra was like a doorway opening to the incredible world of mathematics and logic. To me using algebraic techniques to solve problems was like being a great detective. We had a textbook that was used for the first two years of high school. I found it very exciting to learn what was next and worked ahead in the book with my friend Steve. By the end of the year, we had finished the two years of high school algebra.
I still remember being amazed at how easily you could derive the Quadratic Formula which gave the solution of the unknown value x in any quadratic equation.
ax2 + bx + c = 0
General quadratic equation
x2 + bx/a + c/a = 0
Divide both sides of the equation by a
x2 + bx/a = −c/a
Subtract c/a from both sides of the equation
x2 + bx/a + b2/4a2 = b2/4a2 − c/a
Add b2/4a2 to both sides of the equation
(x + b/2a)2 = (b2 − 4ac)/4a2
Factor the left and combine terms on the right
x + b/2a = ±√(b2 − 4ac)/2a
Take the square root of each side of the equation
Subtract b/2a to get the Quadratic Formula
Even though I took a lot of math courses in high school – algebra, intermediate algebra, geometry, trigonometry – and also attended the math club, where we had an introduction to calculus and other topics, I don’t remember any mention of computers.
It wasn't until I started my first year at McGill in 1962 that I had my first real encounter with computers. While some universities were starting computer science departments, McGill did not have any kind of computer program and there were no courses in computing in any department. However there was a Computing Center. You could see the IBM mainframe computer through a glass window.
IBM 704
When the Computing Center ran a lunch time introductory course on Fortran programming, I leaped at that opportunity.
Fortran (Formula translation) was the first widely used general purpose programming language. It was developed at IBM in 1957. A program called a compiler had to be written to translate the Fortran program instructions into machine code instructions. Fortran was especially well suited for numerical calculations used in scientific and engineering programming. Compared to assembly language (machine code), Fortran reduced the number of statements in a typical program by a factor of 20 and so it quickly gained acceptance. The popularity of Fortran spurred other computer vendors to provide Fortran on their machines.
In spite of many newer and more modern
computer languages appearing over the years, Fortran continued to be widely used. It was influenced by new ideas of programming in other languages and a succession of new Fortran standards and versions continued to update the language.
Here is a Fortran program similar to my first program. It reads in the two sides of a right angled triangle and prints out the hypotenuse, using the Pythagorean theorem A2 + B2 = C2
C PROGRAM TO CALCULATE THE HYPOTENUSE OF A RIGHT ANGLED TRIANGLE
REAL A,B,C
10 READ(5,501) A,B
501 FORMAT(2F8.2)
C = SQRT(A*A + B*B)
WRITE(6,601) A,B,C
601 FORMAT(3HA =,F8.2,3HB =,F8.2,3HC =,F8.2)
STOP
END
I couldn't believe how many mistakes I made and how many times I had to punch a new card to correct small errors. When the program finally worked, it was a thrill and a real sense of triumph. I was hooked.
I had found it easy to learn basic Fortran programming but I wanted to learn more. In the absence of any educational courses for computer training, it seemed to me that the best way to learn more about programming would be to get a job in the industry.
I graduated from university in 1967 with a major in Psychology and a minor in Mathematics. My primary interest at the time was Experimental Psychology and I applied to several graduate schools. However, I wanted to first take a year off and travel around Europe. My plan was to hitchhike around Europe until fall and then try to see if I could get a computer job in London.
This was the summer of Expo 67 in Montreal. Expo was a very large world’s fair and over 60 countries had pavilions. I spent the first part of the summer going to Expo before departing on a one way flight to Brussels.
From Brussels I hitchhiked to Amsterdam with a fellow I had met overnight at the youth hostel. Amsterdam was and still is one of the most popular cities to visit in Europe. One of the highlights was a morning tour of the Amstel Brewery that ended in a tasting room. So who wants to drink beer in the morning? Apparently everyone, if it's free Amster-dam good beer.
After several days of sightseeing, I bought a second-hand bicycle to tour around Holland. I headed north up the west side of the Zuiderzee. It's one of the most glorious bike rides I've ever taken. The bike path was not just a reserved lane on a roadway, it was actually a completely separate tree lined path just for bikes that wound its way between beautiful farms. You could not hear the sound of traffic from any nearby road, all you could hear were birds singing and the occasional bell from an oncoming bike.
But I soon got tired of peddling. After all, throughout college I had had my own wheels
that were motorized. So I traded in my bicycle for a second hand moped at a bike shop in a small town. Mopeds were never popular in North America but quite common in Europe. I would generally only peddle to get started and then rely on the motor. A moped doesn't go nearly as fast as a motorcycle but on the small roads on which I was driving, it was a wonderful way to travel.
Off to the North Sea coast on my moped, Holland 1967
After moping
through Belgium and northern France, I arrived in Normandy and drove along the coast. Along the way I was overwhelmed by the number of German bunkers dug into the embankments. The French government had left them there as a reminder of World War II.
I took the ferry across the North Sea from Calais and arrived at the white cliffs of Dover. From there it was a short ride to London. There were so many interesting things to do and see in London that it was about a month before I got serious about looking for a job in computers.
3. The Mainframe Era 1967
In 1967 computers were already in their Third Generation. The First Generation had been the very first machines that were built during and after World War II using vacuum tubes. In the mid 1950s, the transistor which had been invented in 1949, replaced vacuum tubes and computers entered the Second Generation. The Third Generation of computers began after the 1959 invention of the integrated circuit which combined many transistors on a single silicon chip. The inventors of the transistor won the Nobel Prize in physics in 1956; the inventor of the integrated circuit had to wait until 200 to win the Nobel.
I didn't know a lot about what companies or organizations might need computer programmers so I concentrated on contacting companies that were in the computer business. I was able to get phone numbers for several of them from the phone book.
The leading computer manufacturer was IBM due to the success of the 1401 but there were seven other large players, known as the Seven Dwarfs
. After RCA and General Electric left the computer business in 1970-71, the remaining five companies were known as the BUNCH.
Burroughs
Univac
NCR
Control Data Corporation
Honeywell
First commercial computers
My first interview was at Control Data Corporation. CDC made very large mainframe computers, usually the fastest machines in the world. The CDC 6600, released in 1964, is generally considered to be the first supercomputer.
The interviewer was very impressed with my new college degree from McGill University. He seemed to think that McGill was the Oxford of Canada. But reputations lag behind reality and McGill had fallen behind the University of Toronto as the premier university in Canada. The fact that I didn't have any real computer programming training or experience didn't count against me. Hardly anybody had computer experience in those days.
The interviewer asked me to write a small segment of a Fortran program to sum the elements of an array. Even though I had only had a basic introduction to Fortran, it was an easy quiz. Here is the answer I wrote that adds up all the elements of an array X containing M rows and N columns:
SUM = 0
DO I = 1, M
DO J = 1, N
SUM = SUM + X(I,J)
END DO
END DO
I had a second interview with Univac. The interviewer explained that they were hiring a group of new university graduates for a training program after which the new hires would be assigned to different technical support roles in the company.
I ended up getting job offers from both companies. It was easy to decide which one to accept. The training program at Univac was just what I was looking for. Univac was the company that had built the first commercial computer back in 1951. That was only 16 years earlier. In 1967 and for many years thereafter, Univac was the second largest computer company in the world, after IBM.
3.1. Univac, UK
To me programming is more than an important practical art. It is also a gigantic undertaking in the foundations of knowledge.
Grace Murray Hopper
I worked at the Univac office in Remington House which was in central London, near St. Paul's Cathedral and the financial district. At the time, Univac was owned by Sperry/Remington Rand, who also made typewriters and electric razors. When the razor division was sold in later years, the new CEO did not like any of the ads, so he produced his own that ran on TV with the famous line,
I liked the shaver so much I bought the company
Even though the CEO appeared on TV, he was not widely known as the face of the company. The face of Univac more than anyone else was Grace Murray Hopper. She joined the naval Reserve during World War II and after the war became part of the team that developed the first Univac computer. She was one of the first to develop a theory of machine independent programming languages. The language she created was oriented towards business data processing and became the basis for COBOL which became one of the most widely used programming languages for many years.
Grace Murray Hopper 1984
I never met or saw any of the people in the other divisions of Univac. Our computer training group was all recent university graduates: an Irishman from Belfast, a Welshman, two English blokes and myself, a Canadian. In those days this was workplace diversity.
This was a pretty exciting time for all of us. We developed a real sense of camaraderie and enjoyed working together. We often went out to the pub for lunch or after work. There were plenty within just a few blocks.
We had a large room with our own small computer, a desktop machine that was used for training purposes. It had a total of 5 KB memory. The smallest memory you can get on an iPhone 13 in 2022 is 128 GB. This is 25 million times as much memory as what we had.
Univac training computer, 1967
In those early days there was no such thing as a computer terminal. Instead, typewriters or the teletype machines that were used for sending and receiving telegraphs were hooked up to a computer.
To run a program you had to first use the toggle switches on the console to enter in a sequence of binary numbers that were machine instructions. This was a bootstrap
program that would initialize the paper tape reader and then read in the instructions of the program that were punched on a paper tape.
I learned that all computations done by a computer can only be done on data that is in a register
in the Central Processing Unit, the CPU. These registers are very expensive to build so even large computers do not have very many.
There are Input devices to read information into the computer and Output devices to display the results.
To run a program, the CPU executes the instructions from the program that has been read and stored in Memory. Programs typically read data from Storage into memory and then copy data from memory into the CPU in order to process it. Data that needs to be saved permanently must be written to Storage such as a paper tape or magnetic tape because the contents of Memory are not saved when the program ends.
I only learned years later that this basic computer architecture was described by the brilliant mathematician John von Neumann in a paper in 1945 and a machine with this design is called a "von Neumann machine".
3.2. Assembly Line
When I had learned Fortran it was a simple programming course. There was no explanation of how the computer actually worked. I thought that the computer executed the Fortran instructions as written. A programmer that I worked with a few years later told me that when he was learning Fortran he wondered if the memory location for X would get worn out since so many programs used X to store a number. But now I learned that a computer could only execute machine instructions which were much more primitive than Fortran and that Fortran needed another program called a compiler to translate the Fortran instructions into machine instructions.
Our little training machine did not have a higher level language like Fortran. It only had a simple assembler that allowed you to enter names for the machine instructions which were then translated into octal numbers that were the machine instructions that the computer needed in order to run.
Below is an example of some assembly code. It calculates the income tax depending on the U.S. income tax bracket (in 2022).
Tax rate Taxable income Tax
10% $0 to $9,950 10%
12% $9,951 to $40,525 $995 plus 12% of income over $9,950
On the left is the program code shown as a generic high level language. Fortran was the first high level language that was widely used but many different computer languages were developed afterwards to try and make programming easy. This sample code is generic and does not conform exactly to a particular language, but it is very similar to many computer languages in wide use today such as C, Java, PHP, Python and others.
On the right is the assembler code that represents the machine code generated by the program language compiler. Assembler code is specific to the hardware. The assembler code here is for an Intel processor. The instruction names and register names are different on other processors but quite similar in function.
This assembler/machine code demonstrates that a computer has instructions that can do only four basic things.
1. Move/Copy
The arrows in the basic computer model show a number of the different move instructions. In many computer programs a large number of the instructions just copy data (MOV) typically from memory into a register and then back from a register into memory after some calculation has been done.
2. Calculate
There were machine instructions for basic arithmetic (MUL, DIV), logical operations (and, or, not, etc.) and a few mathematical operations such as square root. More advanced mathematical computations were done with software that was compiled into machine code instructions.
3. Jump
Computers process instructions in the order in which they occur in the program. A few instructions can change this and allow a program to jump to another part of the program or to another program (JMP in the example). One type of Jump instruction compares (CMP) two numbers and then jumps to a different line in the program depending on the result, such as Jump if Greater (JG in the example). Compare and jump instructions can also be used with text, since text is coded and stored as numbers.
4. Special Instructions
There were a number of special instructions that are needed by the Operating System to control the operation of the computer. But most of them were privileged instructions and could not be used by an application program.
I found it rather amazing that all programs and software written for the computer got compiled down to only four types of machine instructions. Over the years, in spite of rapid advances in electronics and computer hardware, it continued to amaze me that these same basic instructions did not change very much. I worked with many different computers and microchips. I wrote assembler code for the Univac 1108, IBM/360, National Semiconductor 32000, Motorola 6800 and Intel processors. This fundamental machine instruction set has not changed significantly from the earliest computers to the latest CPU chips today.
It was even more amazing that all the so-called intelligence of a computer, its ability to make any decision at all, was based on the rather simple Jump instructions. This is true for all computers, from the early mainframes to the microchips that power personal computers and smartphones and the many specialty computers that have been built to control automation and industrial processes and to go into space.
3.3. Mastering a Monster
After about six weeks in the training lab, I got an assignment to operate Univac’s large mainframe computer. Shell Petroleum and British Petroleum had a joint data center in Vauxhall Grove. This was on the south side of the Thames River, not far upriver from Big Ben. Univac had a support team on site, and at midnight they got the use of the computer for maintenance and their own software testing and development.
I was on the night shift from midnight to 8 a.m. I didn't want to drive my moped at night so I generally took the bus. I loved sitting on the upper deck as the bus careened around the narrow London streets. Sometimes it felt like the bus would tip over, but of course it never did.
London double decker bus
The Univac operator spent about a week training me. Then he left for another assignment and I was in charge of this monster machine. It was a Univac 1108, Univac’s largest computer and one of the largest in the world. It had 265k words of memory. Each word had one parity bit. The remaining 35 bits could hold five 7 bit characters or an integer or real number. The machine also supported double precision with 70 bits. The word size on IBM machines was 4 bytes or 32 bits. This gave Univac an advantage over IBM for scientific work because of the greater precision in mathematical calculations.
Univac 1108 mainframe computer 1965
Each night there would be a box of computer jobs sent down from Rem House
to run. I would read the punched cards through the card reader, mount the magnetic tapes for the job and tear off the output from the printer when the job was completed.
There were also a number of contract programmers working on large projects who came in at night. A lot of them were pretty odd characters, kind of a cross between British eccentrics and geeks.
Ian came in almost every night. He was working on a fairly important project. Univac was in competition with IBM for many customers. But even if you could show that your computer was bigger, faster and more cost-effective, you would have difficulty getting a company to switch over. The programs that they had developed on their IBM computers wouldn’t run on other computers and it was a huge cost to reprogram them. In fact this was a major problem for all computer manufacturers. Even new computers from the same vendor were generally incompatible with their older machines.
In 1964 IBM bet the company
with the largest computer development they had ever undertaken. They announced System/360, a whole new family of computers with a common operating system and compatible peripheral components. This allowed customers to start with a small machine and upgrade to a larger machine when their needs expanded. This was a revolutionary design. It was very successful and established IBM as the dominant force in the computer industry for the next 30 years, until personal computers became dominant and supplanted mainframe computers.
Ian was working on a 1401 Simulator that would allow programs written for the very successful IBM 1401 computer to run on the Univac 1108. After he read his program into the computer, there would generally be some delay while it was processing. Ian would pace nervously back and forth in front of the computer and sometimes stop and glare at it fiercely, as if he could will it to work instead of terminating with an error. Which is what it usually did, after which he would stamp his feet.
For most of my shift, other people were using the computer and I did not have a lot to do. I talked to the systems engineer quite a bit and learned a lot about the hardware as I watched him run through the hardware maintenance tests.
There was also a security guard on duty. He was a rather large, burly, retired army guy. I don’t remember him actually doing anything except sitting in his chair and making critical comments about everything that was wrong with the British government and society. He was pretty prejudiced and had a derogatory label for everybody who wasn’t English: wog, frog, whop, spic, paki, kike. I don't remember him using the N-word because I think there was a more common British word, darkies. He didn’t much like the Scots or the Irish either, but that was not unusual – it was the prevailing view of most of the English. I got off pretty easy; as a Canadian, I was just a colonial
.
I was learning a lot about computers and it was very stimulating. But there wasn't that much to learn about operating a computer. After a couple months, I was hoping to move on to another assignment and some real computer programming. I spoke to my manager at Remington House, and he said that they would first have to find someone to replace me as computer operator. I didn't hear back from him for a while.
One night someone from Univac who I didn’t know came in to use the computer. It turned out he was the manager of the Univac support team at the National Engineering Labs (NEL) near Glasgow. Clive was in London for some meetings and had come in to get some computer time to do some work. I got to talking to him for a bit and it sounded like his team was doing some interesting work. I asked him if he might need another programmer. He said he would look into it. But first he wanted to know if I would be ready to leave London. Not many people from London were interested in moving to Glasgow. To me this was just another opportunity to see more of Britain and I indicated so.
A few weeks later I heard from my manager that I was being assigned to the NEL support team, and I had two weeks to move up there.
3.4. Generating Systems
I had accumulated a few things during my time in London that I wanted to keep. I was able to find a small steamer trunk that would just slide into the back seat of my Austin Mini. Along with my old travel suitcase, it was enough to pack up all my things. I don't think it took me more than an hour to pack up and move out.
I headed north to Scotland, but first I made a stop in Nottingham. The attraction was not Robin Hood and his band of merry men (probably fictional) nor the Sheriff of Nottingham (actually real). The attraction was math.
In my last year at McGill, I had taken a statistics course with an English prof. When I went to see him about getting a recommendation for my graduate school applications, he mentioned that he really hated the Montreal winters and he was moving back to England to take a post at the University of Nottingham.
Nottingham was right on the way to Scotland, so I took a chance and stopped by the university. I did find him in his office. He was surprised to see me. Who goes to Nottingham?
During the course of the visit, he mentioned that it was extremely difficult for him to get enough computer time to run the programs for his research. I told him that I was going to be working at an installation with a very large computer, and there might be some spare time when I could run his programs. He was very excited about this prospect and gave me several boxes of cards with some instructions. His programs were in Fortran which was pretty standard at that time and would only need minor changes to run on the Univac. I was in fact able to run most of his programs over the next few months, and I sent him back the cards and the printouts. I lost touch with him after I left England, so I don't know if he ever published a research paper or if I got a footnote.
The National Engineering Labs were located in East Kilbride, just south of Glasgow. It was Scotland's first New Town. These were planned towns that were built to relocate people from poor or bombed out housing after World War II. East Kilbride had just been started in 1947, so when I was there it was pretty new. It was very atypical for a British town, but somewhat similar to subdivisions in North America, with curved residential streets and a Town Center.
The Univac team at NEL was a small group. One fellow had been a policeman in Glasgow. I don't remember the story about how he ended up in computers. Another fellow was a posh Londoner. He wore nice clothes and finely pressed shirts even though nobody else did. There was the manager Clive, an Englishman, but he was not in the office very often. And then there was Rod. He was from Leeds and had a heavy Yorkshire accent, but I didn’t find it too difficult to understand him. He was quite a character and quite a funny bloke, sometimes unintentionally.
The role of the Univac team at NEL was not to provide programming help for the engineers who worked there. It was an arrangement whereby Univac could get computer time for its own use. The Univac 1108 was a very expensive machine. Univac UK was not large enough to afford its own data center or lab with its own computers.
At the time, most computers were batch processing machines. They would process only one computer job at a time. However, computers by this time had become big enough and fast enough to do multiprocessing and run more than one job simultaneously.
Some organizations found the batch processing operating systems very limited. In particular, universities wanted a computer that many students and faculty could use at the same time from a terminal. There were numerous efforts to develop what became known as time-sharing
systems. The operating system would divide each second up into small time slices. Each terminal connection and batch job program would get a limited number of time slices to run before the operating system would suspend the program and switch to another program. This occurred so quickly that a user typing on a terminal would not notice any interruption; the computer could read each character typed on the keyboard faster than anyone could type.
Time-sharing also supported interactive computing. Interactive computing allowed users to type in a command and have the computer run it right away. This provided the ability to test things very quickly and provide feedback on errors that could be immediately corrected.
The first successful time-sharing systems were developed in the early 1960s at MIT, the University of Illinois and Dartmouth College. Following the success of these time-sharing systems and others, demand for them grew and the computer vendors started to add time-sharing to their batch processing systems.
The Univac head office in the U.S. had developed a time-sharing operating system, Exec 8. But there were a lot of bugs in this system. Clive was quite ambitious and wanted to be one of the first Univac installations to get teletype terminals working with the Univac 1108. I worked with the team testing and debugging the operating system. We had a deck of cards that contained instructions to add, delete and insert lines of code in the Exec 8 code base. We would run our mods against the Exec 8 source code to generate a new operating system image. Then we would start the 1108 with our version of the operating system and work from different teletype terminals to run through various tests. Exec 8 was a lot more complicated than the operating system on the training machine on which I had started, so progress was slow. NEL was a government site, so people didn't work much past 5 pm. We were able to get time on the computer during the day and in the early evening, so we didn’t have to work night shifts.
In the spring, I started to hear back from the graduate schools to which I had applied. I was accepted at several universities and selected the University of Wisconsin as the best offer. When I spoke to Clive about my decision and mentioned that the research assistantship that I was being offered by the university for half-time work was as much money as I was making working full time at Univac, his eyes bulged out of his head as if to say You're crazy if you don't take this opportunity.
I was being paid a good salary for a starting position by British standards. However, there was a pretty big difference in the standard of living between the UK and the U.S. which accounted for this big difference in remuneration.
I sent in my notice to the Univac head office, leaving myself enough time for a trip to Paris and the French Riviera before boarding a student ship bound for New York City. From New York I made my way to Montreal and saw some friends and family until my Austin Mini which I had shipped from London arrived by ship at the port of Montreal. Then it was off to graduate school and another stage of life.
4. Artificial Intelligence 1969
I arrived in Madison, Wisconsin in September 1968. The department of Psychology was well known and highly regarded, largely due to the work of Harry Harlow. Anybody who took an introductory course in psychology in those days probably read the Scientific American offprint about Harry Harlow's work with monkeys. His experiments showed that infant monkeys preferred the comfort of a cloth-covered, wireframe surrogate mother to a bare wireframe mother with a feeding bottle. This was contrary to a long held belief that affection in infants was generated by the satisfaction experienced while feeding.
I had been given a research assistantship which paid my tuition and my room and board. In fact, because I lived in a co-operative house, the International Co-op, my living expenses were pretty low and I was actually able to save money in graduate school.
I conducted a research study in conditioning for W. J. Brogden, a senior member of the faculty in the Psychology Department. Brogden’s work was covered in most introductory