Damion Yates
Ramblings
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)
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
scratch.
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
Damion@MYates.demon.co.uk
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
existed.
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
subject.
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 ]
2001
They moved us from BBC to BBC Technology (who are unpopular as they also
do the noddy windows desktop support).
2003
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.
2006
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.
(200607xx)
I'm now working at Positive Internet.
(200707xx)
I'm now working at Google.
(20081017)
I'm still working at Google, I _REALLY_ should update this page!