From WikiDelia
(Redirected from Martinwguy)
Jump to navigationJump to search
Martin W. Guy

Martin W. Guy (April 27, 1964 – ) is an English computer programmer.


1975-1982: School

Martin first met computers at the age of 13, punching BASIC programs on paper tape on the school's ASR-33 teletype and connecting to mainframes in Chelsea and at Imperial College in London via an coupler to run them.

With the advent of the first "home micros" in the late 1970s, he used machine code and BASICs on the Commodore PET, Research Machines 380Z and Acorn Atom, to which he added a handmade DAC, an ADC chip and a MIDI serial interface to make a monophonic wavetable synthesizer and crude real-time harmoniser[1].

1982-1985: University student

He studied Computer Science at the University of Kent at Canterbury and was employed as a programmer at the University's Computing Laboratory between the second and third years of the degree course and graduated in 1985, obtaining an honours degree largely thanks to his final year's project[2], which was put into service by the laboratory to centralise the university's computer-typesetting service, thereby saving tens of thousands of pounds in licence fees.

Some personal programming projects from this period:

  • solution of an arbitrary number of simultaneous equations by matrix inversion;
  • a data compression program based on character-wise Huffman coding. It beat the Unix tool "compact" but was beaten by the later "compress";

1985-1989: University lecturer

He was immediately employed as a Tutorial Fellow in Computer Science at the Computing Laboratory, a role that comprised:


He gave lecture courses on C Programming for postgraduates, Introduction to Unix for undergraduates with Chris Downey, and Unix System Administration with Chris Downey and Alan Ibbetson, a three-day course for professionals, as well as assisting with other lecturers' classes and courses in Pascal, Occam and assembly languages and giving seminars on functional programming in Miranda, on proof of program correctness by loop invariant and on the applications of computers to music.

Unix system administration

Jointly with Chris Downey he was the system administrator for the Unix machines used for teaching 300 computing specialist undergraduates and 700 social scientists, both on 24-hour callout and as the first point of contact for many users.

Unix system programming

As part of the computing laboratory's Unix Support Group he helped maintain the campus-wide Unix service, modifying, optimizing, bug-fixing and contributing to the development and deployment of Berkeley Unix 4.3BSD.

Some of his programming projects from this period include:

  • a fast algorithm for computing anagrams of a word or phrase[3], published on USENET in 1985 as free software;
  • digital typography: maintaining troff and writing backends to drive a range of previewers and printers;
  • devising a raster file format with converters to and from dozens of other incompatible formats, to display them on different devices and a set of tools to resize, rotate, dither them and so on;
  • implementing algorithms for Mandelbrot's fractal in C and a variety of assembly languages with Chris and David C. Wood and implementing a parallel distributed computation system by using the spare capacity of all the university's main computers;
  • implementing Leen Ammeraal's algorithm for hidden line removal[4] in 3D vector graphics so as to enable a colleague and amateur radio enthusiast to calculate and visualise the sensitivity of new designs for aerials in all directions instead of just the usual horizontal and vertical planar sections.

While working here, he was a consultant at the Silica Shop in Sidcup, writing a Xenix kernel resource monitoring tool to keep their business' PDP-11 running and in summer 1988 he took three months' Leave of Absence to work for Ian Smart at Instrumental Colour Systems of Newbury to repair the broken Unix layer of their new software product. The working replacement that he wrote had one sixth of the code size and was ten times as fast.

1989: IRCAM

IRCAM's machine room in 1989

He resigned from the University at the end of the 1989 academic year, as did most of the rest of the Unix Support Group[5], and transferred to IRCAM, Pierre Boulez' music research centre in Paris, as a Systems Support Programmer to contemporary composers, but quit after three weeks and left after five.

1989-1990: Music research

Back at the University in Canterbury he did self-directed research into the application of computers to music for a year. For this the Director of the Computing Laboratory proposed an Honorary Research Fellowship, which was rejected by the University's senate.

1990-1992: Rimini

In summer 1990 he left England, computing and academia and transferred with his Italian girlfriend to her home in Rimini, gave English lessons and ended up working at ESA Software successfully implementing an in-house bug-tracking system in Informix 4GL with Pier-Paolo "Pillo" Masini under Claudio DeAngelis.

1992-1995: Catania

After two years in Rimini he moved to Catania in Sicily, teaching English, doing translations and interpreting, and repairing keyboard instruments. Sporadic computing included a rescue operation for a doctor whose software, specially commissioned to run his practice, had been programmed to include a time bomb (in Italian in English).

1995-1997: Ramsgate

After two and a half years in Catania, he returned to England where he lived on the streets until he contracted trench foot and was housed in a bedsit in Ramsgate, paid for by the state. He reordered an entire section of Canterbury University's library, corrected Gutenberg texts, created digital editions of copyright-free books and developed a computer typesetting system and a graphical spectral analysis program[6] for the slow PCs of that era.

1997-2001: Catania

After two years in Ramsgate he woke up one morning after a significant dream, went down to the port holding a sign that said "Italy" and three and a half days later was back in Rimini where he worked for a couple of months with Claudio DeAngelis again, debugging their new software project in Visual Basic D: before proceeding to Catania again.

This time he helped run the "Auro" social centre where he ordered and catalogued its library of newspapers dating from 1930 to 1968, helped run Pippo Mascolino's "Missione" experimental theatre, catalogued a 7500-volume Italian comic book library and created digital editions of rare books and manuscripts in Italian.

At Auro he helped set up Italy's first free-access FOSS computing laboratory, the Freaknet Medialab, reoccupied the abandoned Vulkano social center, indexed its existing collection of anarcho-political journals and created and catalogued a 5,500-volume newspaper library.

In 2000, while researching quadrophonic acoustic holography, he produced his first (and only) studio-quality piece of digitally-synthesized music, Kick Dirt, a musical composition created with CSound.

2002-2004: Canterbury

In 2002 he inherited eleven thousand pounds from an aunt and returned to Canterbury where he studied the foundations of the Internet and principles of Linux Live CD construction.

In August 2003 he was a guest programmer on the Makrolab in Venice lagoon during the biennale.

In Jan 2004 he was a guest Media Artist at the Medien Kunstlabor of the Kunsthaus Graz in Austria where he realised an installation entitled Crash! and again in May/June making sound sculptures, maintaining their network and server farm and creating Delia Derbyshire's Audiological Chronology.

2004-2010: Newcastle

From Jan to Dec 2006 he bootstrapped the Debian ARM EABI port, from Jan to Jun 2007 worked on the Gnash project but left in disgust at the appalling in-group atmosphere, and from Jan to Jun 2008 continued pushing the Debian ARM EABI port towards completion and fixed GCC's code generation for the MaverickCrunch floating-point coprocessor.

Innovations in computing

His original contributions to computer science include:

  • an algorithm for secure authentication over an insecure network, predating public key cryptography, included in the report for the Remote Procedure Call Mechanism[2];
  • a fast algorithm for computing anagrams[3], published on USENET in 1985;
  • the "abacus algorithm" for calculating integer square roots, together with a formal proof of correctness. When first written, it turned out to be six times faster than the hand-crafted VAX assembler Newton-Raphson version in the BSD math library and a variant of it is now used in the GNU math soft-float library (though it may or may not be a direct descendent);
  • variable-precision fixed-point arithmetic: a technique for improving the precision of fixed-point arithmetic by varying the number of fractional bits according to the greatest value that each variable may hold at each point in the calculation, as used in the FFT code of recwav[6];
  • an infinite precision math library for the lazy functional programming languages Miranda and Haskell[7].


Martin plays piano since he was five years old, studied clarinet to grade 4 or 5 (I forget which) and can manage a nylon guitar or a rock drum kit.

His Italian used to be so fluent that Italians would ask him which region of Italy he came from, his French is passable, he can communicate in Spanish and German and understands the Geordie and Sicilian dialects.


Martin has always been affected by myopia, amblyopia and strabismus and does not have depth perception through binocular vision. Instead, the fovea of each eye covers the blind spot of the other to form a single composite image. Depth cues are obtained from relative size and parallax, which makes 3D films pointless but Doom perfect.



  1. 'harmonizer:' A device that changes the pitch of a sound by an arbitrary interval without changing its duration.
  2. 2.0 2.1 A Remote Procedure Call Mechanism for Unix, 1985 (final year student project).
  3. 3.0 3.1 Anagram program at sourceforge
  4. Programming Principles in Computer Graphics by Leen Ammeraal
  5. Peter Collinson, Sean Leviseur, Jim Darby and Chris Downey
  6. 6.0 6.1 Recwav: Fast spectral analyses from slow hardware
  7. Infinite precision math library for Miranda and Haskell at sourceforge

External links