Life and Times of a Geek - part 1


I really liked David Whitman's idea of doing a show on his birthday, so I'm borrowing the idea.

This show is being released on my 65th birthday, and I decided to use this opportunity to tell you about my long experience with computational devices as part of the series "How I Found Linux". Thinking about what I want to cover, I realise that it might be quite a lot, so I'm organising the shows into a collection of short episodes.

I have been thinking about doing this for a while. Up until now I was concerned that it would be a bit self-indulgent, but I have been advised to just go ahead and do it. I hope you find the shows interesting.

Early Days

I was born in the UK, in Uxbridge in the county of Middlesex in 1949. This is now part of Greater London, not very far from Heathrow Airport. The air in this part of the world was heavily polluted in those days and we experienced the Great London Smog of 1952 and some of the heavy smogs thereafter. Because of the pollution my family decided to move away from the area in 1955 to the city of Norwich, in the county of Norfolk, where the air was a good bit cleaner.

I enjoyed school in my younger years, but didn't take to Secondary School after the age of 11. This was the era of the Tripartite System of education where children were sent to different types of school according to a test taken at age 11. I passed this and obtained a place at a local Grammar School. I was not much good at learning at that school because I didn't like the place and all of its rules. It took me longer than it should to get a set of GCE 'O' Level passes.

There were no direct encounters with computational devices in these days. It was expected that Secondary School pupils would be able to deal with tables of logarithms for more complex arithmetic, and everyone was expected to own a slide rule.

Picture: My old slide rule looking very much worse for wear
My old slide rule

As a kid, I enjoyed making things and taking stuff apart to see how they worked. I was fascinated with Science and particularly liked Biology. I was something of a Biology geek at this time, always watching animals or collecting animals, plants, fungi, anything Biological - much to my parents' disgust sometimes I'm sure.

I left school in 1967 and went to Norwich City College, a local Technical College, to take GCE 'A' Levels. This was much better than being at school: no uniform or stupid rules, and I really enjoyed this environment. I studied Botany, Chemistry and Zoology and during this time it finally dawned on me that I could continue studying Biology at university, so I took the necessary steps to apply.

As it happened I got quite good marks and was offered places at two universities. I decided on Aberystwyth in mid-Wales to study Zoology, because I liked the look of the University and the locality.

Undergraduate Days

I headed off to the tiny seaside town of Aberystwyth in September 1969. Known at that time as University College of Wales, Aberystwyth, a part of the federal University of Wales, it was a great place to study.

While at school I had realised that I had no great aptitude for mathematics, so I was pleased to move towards Biology where I thought I could leave the subject behind. It was a shock therefore to find that we were to be taught Statistics as part of the course.

Mechanical Computation?

We had lab sessions where we tediously worked our way through such statistics as the Chi-Square test and the Student's t-test. The thing that made these so laborious was that we had to use mechanical calculators.

We started with hand-cranked calculators similar in style to the Triumphator shown on Wikipedia. This required a number to be entered by moving the sliders on the front, and multiplication was performed by successive additions made by turning the crank. I forget the details now, and can't remember how divisions were performed.

Later we had access to electromechanical calculators, which was a slight improvement, but not much. I found this extremely frustrating!

My First Programming Language

I think it was in my year two, 1970, that we were introduced to the concept of computers and programming. There was a short series of lectures and a book which taught the rudiments of ALGOL 60. Interestingly, the book was a programmed text where a small piece of information is presented at a time, a question is asked and positive or negative feedback is given. Depending on your answer you either move on to the next item or go back to re-learn the part you got wrong. This style of teaching is now out of favour, but I rather liked it.

I found the whole idea of programming computers very interesting, even exciting. I guess this was the time at which it started to eclipse my interest in Biology.

In our course, we submitted programs to the university computer, an Elliott 4130. I later discovered that the Elliott company was something of a pioneer in producing a commercial Algol 60 compiler, but knew nothing of this at the time.

I found that there were very few books available on the subject of programming and Algol 60 at this time. Later I had access to one of the few books on the subject entitled A Course on Programming in ALGOL 60 by C.M.Reeves and M.Wells. I still own this book:

Pictures: An Algol 60 book I own, and a sample page
Algol 60 book Inside the Algol 60 book

I also tried to read the language definition in the Revised Report on the Algorithmic Language Algol 60. This is very heavy going as you can see from the links below. However, it does contain the definition of Backaus-Naur Form, a way of defining a computer language, which I found was a good thing to learn.

Although I was fascinated by the process of writing programs, I found that learning Algol 60 had some problems. One problem was that the language was defined in an odd way compared to the way in which things are done nowadays. Firstly, the keywords in the language are marked in bold in the book, and underlined in the report. There is no way in which this can be represented on input media such as punched cards or paper tape. It is my recollection that the version of Elliott Algol I used resorted to the method called stropping - that is, enclosing the key words in quotes. I don't seem to have any examples of this in my collection (a.k.a. junk heap!), but many other versions of Algol I encountered thereafter did this, I know.

The next problem I had difficulty comprehending was that the defined language used symbols that were not available on punched cards. Integer division, for example, used the symbol of a horizontal line with a dot above and below it. Again, this was solved by alternative methods, but the solutions tended to be implementation specific. To me, not having much access to an explanation of this issue, this seemed extremely arcane and caused much head-scratching.

Lastly, the Algol 60 language did not define input and output methods. These were to be provided by the implementors of the language according to the language definition. Needless to say, information about how this was done in Elliott Algol was not very forthcoming - at least for a mere student such as myself.

However, regardless of my problems of comprehension, Algol 60 was quite an advanced language for its time. It introduced many of the high-language concepts that were developed into languages such as C, Modula2 and Pascal. It uses begin and end to enclose blocks of statements which may begin with declarations. Each block has its own scope, making the variables in it private, and destroying them on exit.

My First Computer

As mentioned, the university computer was an Elliott 4130, a fairly advanced mainframe computer for its time. It was housed in an upper floor of a building which I seem to recall was the Mathematics Department. It was in an inner room into which its users were not allowed, and was tended by computer operators.

The Elliott 4130 was a 24-bit computer. I do not recall the memory size of the Aberystwyth system, but this range could accommodate between 32K and 128K of core memory. The government-initiated Flowers Report in 1965 had recommended the funding of Elliott computers for many UK universities, Aberystwyth being one.

The way of interacting with the computer was to plan your program, write it out on a coding sheet and submit it to be punched onto 80-column cards. This was done by data preparation staff who would return the cards in due course, sandwiched between two pieces of cardboard and held together with a rubber band. You could have the program punched onto paper tape, but this was not useful when changes were needed. It was a way to archive a finished program however.

Pictures: 80-column cards and 8-hole paper tape
80-column cards 8-hole paper tape

My memory is hazy about this, but I think the deck had to have a job control card top and bottom to identify this deck as yours and to separate it from the decks before and after it in the hopper of the card reading device. This entire card deck would then be submitted to be run on the computer, and would normally write its results to a line-printer. The deck and its associated printout would then be returned for collection. Very little of this would happen in real time, so there was much trekking backwards and forwards across the campus.

Sometimes the computer would be unavailable for some reason and to signal its state there was a coloured rectangle in an outer window of the building. If it was green, all was well, but a red signal meant the computer was "down", as we learnt to say.

Invariably your program would have errors which you would need to correct before trying again. Aberystwyth Computer Unit had a method of handling this that I never saw anywhere else. Each punched card had a red stripe on the bottom edge, and was printed with a single 80-column form on the front. Inverting a card in the deck made it stand out due to the red edge and the clipping of the left corner of all cards. If the computer operator saw this they would remove each inverted card and read what had been written on the form to punch a new card and replace it in the deck before submitting it to be run. This was editing in those days.

Statistical Programming

After my experience of the mechanical calculators for performing statistical calculations it was inevitable that I would use my newly forming skills in Algol 60 to write statistical programs. As I recall I wrote several of these, building generic card decks to which data cards could be appended and run.

This came to the attention of the staff in my department, and I was asked if I would be prepared to donate these programs to the departmental library. I did this, with documentation, typed up by one of the departmental typists.

So, I can honestly say that I contributed open-source software back in the early 1970's - if not to the world, at least to the Zoology Department of Aberystwyth University!