News about Dyalog

Jan 31, 2017

Geoff Streeter – 40 Years with Dyalog

A personal account by John Scholes

As a relatively new arrival to Dyalog, I have been working with Geoff for only 35 of his 40 years in the company, although we met earlier when we both worked for Atkins Computing in the early 1970s. Our in-depth collaboration started in the autumn of 1981, when we got together to plan the implementation of an APL interpreter for the Zilog 16-bit minicomputer.

For the first, and formative, year of the project, Geoff and I sat side by side in the corner of an office in Zilog's UK headquarters in Maidenhead, Berkshire. With David Crossley as part-time project leader, we made design decisions as we went along. As anyone who has been involved in a non-trivial engineering project knows, good and careful design brings tensions, and Geoff and I were no exception. Geoff is a careful and thorough engineer and will fight passionately for what he believes to be the correct way forward – and this trait continues unabated to this day. I sometimes see Geoff and myself as two tired, old boxers, barely standing but still slugging it out after umpteen rounds. Of course, Dyalog APL is better for this and wouldn't be the product it is today without such passions.

Within Dyalog, there are differences of opinion, which have raged for decades. We say "there is much blood on the carpet regarding this question". One of the more long-running and famous issues is "whether functions should know their own names" [ed: they shouldn't :-)]. When Geoff feels he's right, he is tenacious and not above appealing to the scriptures.

Geoff is a stickler for detail and always takes the long view. He thinks about the edge conditions and won't let us get away with fuzzy solutions that ignore them. When we worked on our first 32-bit ports, it was inconceivable (to me) that there would one day be workspaces of even a hundred megabytes in size, and so I didn't pay too much attention to the distinction between signed and unsigned integers in C. Guess which of us got bitten in the ass when Dyalog workspaces started to exceed two gigabytes?

If it's too difficult, give it to Geoff. When J introduced mapped files (the ability to view a file on disk as a variable in the workspace) the commercial department of Dyalog was keen to follow. However, this was not possible because an early design decision was to place the header information for an array in the same block as the ravel of its data items in memory. Raw data on disk could not be mapped as a regular array in memory because it lacked a header to its left. The commercial department did not accept this. I felt obliged to write a formal management-level report detailing why mapped files in Dyalog were not possible. During the time it took me to write the report, Geoff quietly implemented mapped files. [The trick is to allocate an extra page of memory; map the file starting at the second page; and build the array header adjacent to it at the top of the first page].

Geoff doesn't get stressed; he's undaunted by new technology; and he deals systematically with complexity. He is famous for proposing the unexpected solution, even after everyone else has agreed on the obvious one. To coin a phrase: "Everyone agrees", where it is understood that "everyone" is a category that excludes Geoff. And, darn-it, he's often right.

Geoff has a life outside work. For many years he did evening shifts couriering urgent medical supplies on his motorbike and is still active in that organisation. He takes turns at church, cooking meals for the homeless.

Still working five full days a week, Geoff's generosity of spirit is undiminished. He quietly does what needs to be done around the office and outside. For last year's Dyalog user meeting, Geoff packed, transported and displayed the relics from our "museum" and then, without fuss, returned them to base. One of our regular visitors finds it difficult to walk to the bakery at lunchtime, Geoff takes it upon himself to bring him a sandwich every day. When a light tube blows in the office, Geoff fixes it. Geoff fixes things...

Long may he continue.