Damion Yates


I've not had a website for some time now, at least nothing that had any useful information for anyone else. I'll start with a very brief history of my websites and reasons for not bothering, then reasons for this one. Don't know if you'll find it useful but it should explain some things.
(update 20030525 - too busy to finish, will continue later)
(update 20050524 - okay, apparently not)

Okay it's now 2006-05-08, I'll try and put /some/ history here :) This is basically the computing side of my life summarised in a few short paragraphs. It is not a complete auto-biography, although it does look like one when you see the length!
1975 (aged 0)
     Born in Salisbury (Wiltshire), England.  There are computers in the world
     but normal people can't afford them.

     My dad tries to convince my mum that getting a "Big Track" for me (aged
     about 2 I think) is a good idea, obviously it was for him to play.  Not
     exactly a computer but getting there.

     Before computers I was well in to Lego (Technic) and inventing things,
     I built a 1/10th sized cardboard car and installed an ejector seat for
     teddy and realistic gear-stick.  I was very young remember :)

     (non computing paragraph)
     I get in to athletics, make loads of friends, all the normal things.
     Although, my dad is in the Army so we tend to move around to different
     parts of Germany or England every 3-4 years, this means I haven't kept
     in contact with anyone further back than about 1985.

1981 (aged 6)
     Dad gets a Sinclair ZX81, I get in to the use of the computer, loading
     games and watching dad as he gets in to more complex projects on it.
     Probably his most advanced was hi-res gfx, which is hard on the ZX81.
     He also "chipped" his ZX81 so it had inverted display output (white on
     black).  I start to play with BASIC as he's moved to assembly language.

     I get myself a ZX81 short while later, 2nd hand - 20quid I think.
     Initially adapting other games, later writing BASIC programs from

     Dad and I build a "Big Track"-a-like out of Lego using racks and cogs
     interspersed on boards you fed in to the vehicle like a punchcard.

     As the years go by I find I need to use Z80 assembly language for
     speed.  Also by this time I have upgraded a few times from Spectrum+
     to Spectrum+3.

     I also find that as my friends have other architectures and my brother
     has an Atari ST, that learning loads of assembly languages is both fun
     and useful.

     These include but are not limited to 6502, ARM, 68000, 8086.
     For the most part, I stick to 8086 and Z80, coding a Z80 emulator in
     8086 at about age 15, before my GCSEs.

     (non computing paragraph)
     I take Maths, CDT: Design Technology, Computer Studies, Geography,
     Double Science (Physics+Chemistry+Biology, as two GCSEs), English,
     German, English Literature.
     (AAABBBCCC in that order).

1991 (aged 16)
     I finish my GCSE qualifications, my Computer Studies coursework was a
     Z80 disassembler written in Spectrum BASIC.  It worked well, but was
     _WAY_ over the top for what was needed for the GCSE :)
     Likewise another techie friend of mine wrote a printed circuit board (PCB)
     designing application, cursor/mouse driven, entirely in 6502 assembly.

     (non computing paragraph)
     Don't worry I was still in to normal activities too, having run for Avon
     County and often over the years getting my name in the paper for doing
     well for Frome Athletics Club.  My dad has left the Army and I can make
     close friends who I keep in touch with to this day.
     I do Maths, Further Maths and Physics (ACC).

     My dad gets a compuserve account.

     During my A-Levels I played with the the school network, writing a small
     .com program in debug which replaces occurances of your username with any
     alternative.  This was an RM Nimbus based system (not quite DOS), but I
     suspect the same technique would work on a dos client on NFS even to this
     day.  I also played with basic TSR code and drew the semi graphical
     RM Nimbus login screen in Nimbus BASIC which people would happily take as
     the real login screen.

     My Spectrum +3 was getting a little old by this time and my Multiface3
     was getting a tad flakey.  So I wrote some code to load Multiface3 saved
     snapshots without requiring the Multiface3, using screen memory for the
     executable assembly code variable store and stack.

     I also toyed with interupt handlers on my brothers 68000 based ST, hacking
     out some in-game music played on a 50interupts/sec trap (in the ST/TOS
     world they say trap when you'd normally say interupt) and reusing the
     code as TOS based TSR-a-like trap handler.

     Getting interupt handling working on the Spectrum was much harder, but
     obviously that was all the more fun, I worked on getting charactors
     on the border by waiting for an interupt then alternating the border
     colour via the OUT instruction as fast as the Z80 could do it using
     some self generating and self adjusting code.

     My dad gets a demon internet account and lets me receive email at

     Already advanced at software hacking, disassembly of z80 and 8086
     to aid my knowledge of computer systems, good BASIC coding skill,
     dos commandline and batchfile experience... I assumed a University degree
     in Computer Science would be easier than my A-Level in Further Maths
     (normally agreed to be the hardest a-level).

1993 (aged 18)
     (non computing paragraph)
     I start a Computer Science degree at the University of Sheffield
     The first year doesn't count to the degree, you just have to get a pass
     to get to the 2nd year (40% or more), I get this with ease, especially
     as a core module was basically a repeat of A-Level maths, which I was
     strong at.  I don't know why they bothered asking for A-C at Maths if
     they are just going to go over basic complex numbers and calculus again.
     The predicate logic was new, but lets face it, that's piss easy for a
     techie who's been using computers since age 6.  This was the first time
     I'd lived away from home and I feel my time at University was incredibly
     valuable for my learning to be self sufficient.  I found that drinking
     can be great fun, I also found that I liked curry and staying up late
     wondering the streets of Sheffield with my mates.
     This left loads of spare time which was extremely useful as the computer
     systems were SunOS and I quickly start to learn everything about UNIX.
     I basically fell in love with UNIX and the first signs of the Internet
     IRC, Usenet, archie+ftp (early warez).  The University had 24x7 access
     and I'd spend many a night after getting slaughtered in the pub learning
     how to hack in the UNIX ways.  I also kept up my DOS/x86 coding skills
     learning the 386 enhancements Intel had made (32bit), coded some comedy
     TSRs and learned a good deal about Novell Netware3, which was used on the
     main academic computers.  I typically started X sessions and connected to
     UNIX hosts for the most spodding, learning, hacking and spodding on
     talkers and bbs.

     When I'd started I was given access to what was essentially free
     broadband on the University network.  They obviously spent money
     linking Uni to Uni, and *.*.uk was predominantly *.ac.uk at this time.
     Modems were 14,400 (and that was considered super fast), but this was
     pitiful compared to JANET.  I've never really used a modem then,
     or to this day, I find it offensive for the term Broadband to be used
     indicating anything new, it's modems that were new, ruining a fast
     interconnected UK for about a decade.

     I used firc53%teach@dcs.shef.ac.uk and D.M.Yates@uk.ac.sheffield (this
     isn't a typo).
     This was then used as D.M.Yates@shef.ac.uk once Sheffield stopped using
     PAD and Joined SuperJANET.

     During the summer holidays I asked Bath University (the nearest to where
     my Parents live in Frome), if I could have access.  They were shockingly
     accommodating, providing me with exxdmy@bath.ac.uk, an account on a
     near supercomputer Sun with loads of CPUs (30 I think).  The most
     important thing of course was webspace, anything content under
     ~/public_html/ went live as http://www.bath.ac.uk/~exxdmy/

     This was my 1st website.  It looked like every other personal website for
     anyone who had a website in 1993.  This was early days, Xmosaic was
     the main browser, with the exciting Netscape releases slow to take over
     all of the Xmosaic users.  I believe it may even have been possible to
     view the WWW from Windows by this time.

     I can't really mock up what it looked like, but it'll have had a picture
     of me, a HR tag and some blurb and maybe links to my favourite sites.
     No tables, or frames, I'm not sure they even existed?

     There were VERY few sites at all, so most peoples links were all the
     same.  Archie and ftp to document repositories were still much more
     popular than search engines and of course Usenet Internet News.  I became
     almost addicted to Usenet, comp.sys.sinclair, rec.sport.unicycling,
     comp.editors were a few of my haunts.

     CuSeeMe for live action free porn, I mean video conferencing ;)
     Jpeg files were only just starting to be used, forget about MP3s!
     Porn was free, available on fsp and hidden directories on ftp servers,
     IRC was used to trade.  Builtin Boards were popular, but I only ever
     used ISCA and Mono (and CASS/USIT/??? that existed only at sheffield
     for DOS).  I still use Mono, I think ISCA died.  Basically the Internet
     would have been quite bleak for anyone used to the browser oriented
     and frankly, MS focused easy access it has today.  You basically had to
     be quite UNIX able and probably connect via a UNIX system to use the
     Internet.  This included the WWW.

     I also used Egham Hills 90210 a technical talker where I learnt many a
     useful thing.  I also used talk and ytalk, finger and write along with
     email these things which many who read this don't recognise will know
     as something like AIM.  There has of course been a slow and steady switch
     on the Internet to a very Windows biased environment, VOIP clients only
     available for Windows, IM clients the same, websites designed for IE.
     Considering the roots it's very annoying seeing it go this way.  I
     remember downloading .wav files to my local /dev/audio device file and
     implementing what you could call, streaming media using UNIX cmdline ftp.
     I also remember when the latest Netscape browser was released on SunOS
     then Linux and if you were lucky, Windows a few weeks later.  IE hardly

     Having got 3 email addresses, I decided to focus on the one main address
     D.M.Yates@sheffield.ac.uk was forwarded to UNIX accounts (it was Netware)
     and I only used the department of CS addresses (which for some bonkers
     reason changed each year), internally if I could.

     seca52%teach@dcs.shef.ac.uk for the second year and
     thdb86%teach@dcs.shef.ac.uk for my final year.  You can find Usenet posts
     with these addresses.

     When the Shuttle docced with Mir I hosted a copy of the webcam
     slideshow that NASA were putting on with the (new hah!) META refresh
     capability some browsers had.  This was hugely popular and quite a moment
     of history.  Bath let me have a website and email for many years, I could
     even use their 24x7 computer room during my holidays at home.  I also had
     dial in, it didn't end until about 1997!

     (non computing paragraph)
     I met my ex Andrea at the very end of my 2nd year I think, she helped
     me get on with my degree, revising and working on my thesis.  We went out
     for about 5 years.  I got a 2:ii from Sheffield (close to a 2:i from
     what I can remember from the results board in 1996) which I really need
     to thank her for.

     My thesis was part of the larger kroc project (kent retargetable occam
     compiler).  Occam is a good language for dealing with parallel processing
     problems.  spoc (I think it was called) parsed the occam in to C and
     then used an optimised C compiler, which was sensible as multiple
     platforms had very good optimised C compilers.  However Occam and
     Transputer assembly language go hand in hand, it's almost possible to just
     sed/awk occam in to assembly!  So kroc was about converting transputer
     assembly language in to alternative platforms.  Mine was the MCS-96
     Intel Microcontroller.  I scored quite highly on this, but then again
     it was clear from my viva that my lecturers knew I'd learnt the subject
     very well and I guess trusted me, it didn't see they'd read my whole
     thesis ;)  It was 86 pages of possibly dry, dull waffle about transputer
     assembly, so to somebody uninterested in that area it would have been a
     hard read.  The Transputer actually implemented a stack for general
     arithmetic calculations, where you might implement this by hand (well,
     typically library routines) for most CPUs to do any maths sensibly with
     reverse polish notation as it's the obvious thing to do, the transputer
     did it anyway, you had a 3 word stack (that's all) which were all CPU
     registers, not a real memory based stack (which it had too), and you'd
     do something like "ADD" which would leave you with one less size of stack
     and the result in register A.  See!  Some of you found that okay, others
     are probably trying to kill themselves now after just 100 words on the

     I /upgraded/ my Spectrum +3 to an 80186 diskless grayscale RM nimbus
     PC.  Okay it was hardly an upgrade, but it was ample.  Before long I
     spent a few hundred quid on a 386dx40 with 5meg, this was ample for
     minilinux and slackware on a 250M PIO IDE disk.

     I upgraded the m/board+cpu and added disks ending with it being a
     486DX66 with 12M ram and about 4G disk storage, and DOUBLE speed cdrom
     wow, I also got a 16bit soundcard, upgrading the one I'd got with the
     m/board from my mate Andrew.  This I kept for years, but eventually left
     it with my ex c2001.

1996 (aged 21)
     (non computing paragraph)
     I start work on about 16k for ICL, that seemed like loads considering I'd
     been living on 3k a year.  I continued to live like a student and cleared
     any debts I had, in a very short space of time.  I was supporting a
     DOS/Netware installation of the DSS (Department of Social Security).  It
     was a recently outsourced department of public servants who thought they
     had a job for life with nice final salary pension etc, there was some
     decreased morale but on the whole it was a very positive experience.

     I did most of the work via a Linux box and played with the netware support
     I also spent loads of time learning more and more about Linux after I'd
     opened a hole in the networks to be able to browse.  I provided a proxy
     to my colleagues, using a beta apache with proxy support and re-read
     config on SIGUSR1 support (useful as I had a few users towards the end).

     I tried out new X window managers and the latest Linux webbrowsers on
     the machines available there, which were reasonably new Pentiums compared
     to my 486 (which I still had with me at this time).  I set up an isdn
     routed mini-home lan (I refused to downgrade to modem after uni) with
     ip masqurading support, which was new to me at the time in Linux.

     I soon grew tired of the Windows/DOS nature of the support role, I felt
     my coding skills decreasing by the minute, despite oodles of spare time
     (I couldn't believe the difference between uni and a civil service job, no
     homework, no coursework, nothing!) after work ended at ~6pm.  I'd written
     a few gems of C code at uni, like an audio biff equivalent to mimic
     the openlook mailtool beeping when mail arrives, when you're at a console
     and a few DOS TSRs for implementing improved ANSI support for dos full
     screen colour terminal sessions (rather than load the netware windows 3.11
     and then wait for hummingbird X to start, which I'd only then do if I
     knew I was spodding for hours).  I started to code more shell code
     and got back to DOS batch files for the job, but it was obviously time
     to move after just 1.5 years.

     I got a transfer to another part of ICL based in Manchester (I was in
     Lytham St-Annes near Blackpool) to work on the PLI assembly language
     emulation project using jit based techniques to breath some more life in
     to the ICL mainframe market, ICLs cash cow.  It was obvious by now that
     the x86 and compatible CPUs was vastly cheaper and faster than the
     mainframes.  I was rather excited by this, it was right in my area of
     expertise and could have been fantastic, however I had also applied to
     work with a friend at the BBC that I'd met online on Egham Hills 90210
     and Mono and whom I'd been to see a few times in "gatherings" over the
     last few years.  I got the job at the BBC offering 25k and it was Internet
     focused rather than assembly language focused, so I thought I'd enjoy it
     more.  I turned up for the 1st week, as there was an overlap of start
     dates and I had nothing better to do.  They told me not to bother on the
     1st day there, which was a pity as I'd just sorted free accommodation
     with one of my best mates and was looking forward to it.  I had also
     left (and obviously lost for good) my wallet on the train that morning
     so it was all a big arse.

1998 (late January after my 24th Birthday on the 7th)
     I started working at the BBC
   [ TODO ]

     They moved us from BBC to BBC Technology (who are unpopular as they also
     do the noddy windows desktop support).

     We're migrated to a trading near Slough from the lovely mansion in the
     Surrey countryside where we used to love working.

     Siemens purchase BBC Technology.

     I'm married expecting our first child soon, so obviously I spent a few
     nights coding using the Perl FUSE bindings :)  I've made a filesystem
     for gphoto2.  It's nothing special, but it's been a while since I've
     been in to development rather than UNIX system engineering/admin/support.

     Oh actually I did code a Bluetooth basic dumb terminal by hacking around
     with the p3nfs Symbian client and crosscompiling on Linux to get
     a way to spod for free on my wifes nokia 9300 (for text at least).
     But that was last year.

     I'm now pursuing a job at Google, so as they're likely to come across
     my website I decided to update a few of the pages and projects.
     Gawds knows why I felt I should update the history pages rather than
     the actual project pages.  But anyway here you go.  It's now 20060509-00:07

     It's now 20060805, the Google recruitment went right up to my waiting for
     an offer.  They then made me wait 2 months and said the job was now to
     be in Dublin!  When I phoned the main recruiter they sounded as annoyed
     as I was, by efforts they had gone to and the pack they had spent time
     preparing to sent to the board..  It was a new strategy apparently, and
     she did ask if I would consider relocating.

     I'm now working at Positive Internet.

     I'm now working at Google.

     I'm still working at Google, I _REALLY_ should update this page!