Tales from the history of Canadian technology

Thursday, March 29, 2007

The Galt Gas Electric

There was an interesting profile of the Galt Gas Electric car in the Globe and Mail automotive section today. As one of the first 'hybrid' cars -- powered by both an electric motor and a small internal combustion engine -- it was built in 1914, a time when gasoline automobiles were still competing with electric and steam powered cousins. Only one Galt was ever built (it was named for its hometown, now known as Cambridge, Ontario), but the article repeats the claims that it could run at 4L per 100km, an astounding figure, even today. The company owners were unable to interest any investors, but the fact that it was driven to Chicago and New York suggests it was a successful design. The original and only Galt was given a new body in the 1940s, and it now rests in the Canadian Automotive Museum in Oshawa, Ontario.

Labels:

Monday, March 26, 2007

Backus and his influence in Canada

The American computer scientist John Backus died recently, and obituaries followed in major newspapers, on the radio and television, and online. Such an honour is rare for computer scientists, but there is little doubt that his contributions to modern computing were significant and deserving of such recognition.

As an employee of IBM, Backus was responsible between 1954 and 1957 for the development of FORTRAN, a high level programming language for the IBM 704. FORTRAN was one of the worlds' first programming languages. Though it was not the first, it was the first widely popular language, and one of the first to be made available on different computers (not long after the IBM 704 version was completed IBM began writing a dialect for the IBM 650 known as FORTRANSIT and other computer manufacturers soon began developing their own implementations). Among computer scientists and linguists, Backus was also famous for his contributions in the late 1950s to the Backus-Naur form (BNF), now a near-universal technique used to describe a language grammar, though fewer obits mentioned this.

There are two Canadian connections to Backus that I feel compelled to mention. Although there were other computer languages to choose from by the mid 1960s -- COBOL, ALGOL, LISP -- most universities had little choice but to teach FORTRAN, given its astounding popularity. In 1965 the University of Waterloo produced WATFOR, a student-oriented compiler intended for the IBM 7040 mainframe. The standard IBM FORTRAN compilers were considered too slow and inconvenient for use in a student environment so over the summer of 1965 Waterloo hired four undergraduates to implement a quicker version that also provided useful diagnostics to beginner programmers (see Shantz, P. W., German, R. A., Mitchell, J. G., Shirley, R. S., and Zarnke, C. R. 1967. WATFOR—The University of Waterloo FORTRAN IV compiler. Commun. ACM 10, 1 (Jan. 1967), 41-44.). Though not original -- it was based on other student-oriented FORTRAN compilers which existed for the IBM 1620 -- Waterloo was the first to create one for the 7040, and more importantly, the only organization to tackle a student-oriented FORTRAN compiler for the IBM System/360, which it completed in 1968. Both these and many other versions to come were made widely available and eventually millions of students world-wide learned to program with a WATFOR compiler. Obviously, Backus' influence was indirect, but WATFOR was one of the great Canadian accomplishments in early days of computer science.

The second connection is rather more direct, and far less well-known. Prior to his work on FORTRAN, Backus supervised the creation of an automatic coding system, or autocode (and similar to an assembler in today's parlance) for the IBM 701 known as Speedcoding (see Backus, John, "The IBM 701 Speedcoding System", Journal of the ACM (JACM), Volume 1, Issue 1 (January 1954), pp. 4-6,). The Speedcoding system simplified programming for the IBM 701 considerably and after Backus described it in a talk in the fall of 1953 at a conference at MIT, programmers from the University of Toronto borrowed the concepts to craft an autocode for Ferut, their Ferranti Mark I. Known as TRANSCODE, it was a godsend to beginner programmers, reducing the time it took to learn basic programming skills from months down to hours. It was so simple that amateurs could read the TRANSCODE manual and submit their own programs via mail. It was crucial in making Ferut available to the entire country at a time when there were less than half a dozen computers in Canada (see Hume, J. N. and Worsley, B. H. 1955. Transcode, A System of Automatic Coding for FERUT. J. ACM 2, 4 (Oct. 1955), 243-252. Alternatively, read my dissertation!)

So a toast to John Backus, one of the fathers of modern computing.

Labels: ,

Tuesday, March 20, 2007

A two-bit archive?

The CBC recently posted an article concerning the stability of digital archives, and in particular, difficulties that the New Brunswick provincial archives were having with digital storage formats and media:

"One of the problems is that [digital is] so susceptible, so vulnerable to damage," Noel said. "I've had audio tape come into the archives, for example, that had been submerged in water in floods and the tape was so swollen it went off the reel, and yet we were able to recover that. We were able to take that off and dry it out and play it back.

"If a CD had one-tenth of one per cent of the damage on one of those reels, it wouldn't play, period. The whole thing would be corrupted."


This is an oversimplification. Analog and digital storage have different characteristics which come into play. As the Slashdot crowd pointed out, the recovered tapes could not be perfect copies of the original, simply because of the nature of analog storage. Each new generation -- particularly one derived from a soaking, swollen tape -- will introduce new variations and noise. A digital copy will always be identical to the source, and error correcting codes can do quite a bit to guarantee bit-for-bit survival in the case of partial media failure.

However, the greater problem, not addressed in the CBC article, is what to do when the stored data becomes inaccessible because the data-reader has fallen into obsolescence. Certain word processors are famous for their inability to open documents created with earlier versions of the software. Magnify this over decades, even centuries, rather than years and consider if a essay written in 1995 saved on floppy disk will still be readable in 20 years, versus a book printed 500 years ago. What can be done with an unmarked punched card from the first half of the 20th century, other than begin a new life as a bookmark? A famous example of this sort of bit-rot is the 1986 Domesday laserdisc project, which was rendered useless when the technology became obsolete; there is a particular irony that original 1086 Domesday book is now online.

On an individual level, it is not difficult to make a go of it every few years and update every important electronic document to a readable format. Some formats, like email, are relatively simple and unlikely to change. Others, like MP3, are well documented. But on a grand scale, say that of a province or a nation, digital archival work must be a sheer nightmare of logistics. I'm not an archivist or curator, but one solution I heard was to print every digital artifact to paper for permanent storage.

Labels: ,