January 2016 - April 2016. Developing
a A new
programming language called Lisp++ and
a new programming language called Java Training
Wheels. As of August 2016 Java Training Wheels has been
accepted by Richard Stallman as part of
the Free Software
Foundation's repository of Free software, so it is now
known by the longer
name GNU Java Training
June 2014 - December 2015. Developing
a C to Java
26 September 2015. Installed
on my laptop.
May 2015. Purchased a $500
Aspire ES1-511 Intel Quad N2930 2.16GHz 4GB 15.6" 1TB
laptop for storing my 579.8 GiB *.flac collection on.
This computer introduced me to the
operating system, but I later installed a dual boot system for
Lubuntu and Windows to exist contemporaneously together. I
spent the month copying files from my tower case to my laptop
with the end result is that all of my computer's functionality
can be accessed via the laptop, which gives the advantage that
I can take the laptop anywhere whilst my tower case is
restricted to its original location. Laptops also benefit
from a battery power supply which means that even if the mains
power is cut, the laptop can continue to operate.
20 February 2013 - 6 May 2015. Working twice a week for
two hours a day at Molten
Media disassembling desktop computers, servers and
routers. Also worked for Molten Media as a
MyS.Q.L./P.H.P. computer programmer by writing 377 lines of
P.H.P. code for querying all invoice items within a certain
given date range. Also added some functionality to an
approximately 80,000 lines of P.H.P. code
free and open
Also added some new install files to an over 25,000 lines of
module called DriverPackSolution.
February - May 2014.
Installed Lubuntu GNU/Linux
on my home computer. Lubuntu is a cut down version
of Ubuntu GNU/Linux which runs
happily under 512 MB of RAM. I did this because Microsoft is
XP, my other operating system.
11 December 2013 - 4 February 2014. Working as a
P.H.P./MyS.Q.L. web coder. Wrote a browser plugin
for Wordpress for querying
a database of clients. Also wrote code
for Creating Reading Updating and
from the clients database through the Wordpress plugin. This
CRUD system works well with arbitrary tables, although some of
the table parameters need to be hard coded into the CRUD files:
uses static page creation (using the
GNU m4 language)
but my new knowledge allows me to write dynamic content
suitable for editing by computer programming novices. This
was the first project for me that involved using
Sheets for all font markup instead of nested tables,
font tags and other messy crud. See the
for more information about the CRUD system.
May 2013 - December 2013. Developing
a C to Java
18 June 2012. Turned down a job offer as a software
engineer for google.com as a
because it would involve me relocating to Sydney, Australia and
I am not currently able to relocate out of Christchurch. The
person who offered me the job was Andy King
(andyking <at> google <dot> com).
1 January 2011 - April 2013. Developed a new programming
language called Lisp++ that combines the best of Lisp with
the best of C++. Tested the Lisp++ code by writing a game
that teaches arithmetic to children in a fun way and a
computerised version of the
game Othello. I am in the
process of publishing a
book about my new programming language.
26 November 2010 - 16 December 2010. Wrote a
Relation Plotter for teaching mathematics to children. The
relation plotter generalises an
Plotter program that I wrote in 2006. Changed my
J.T.W. (Java Training
Wheels) language to use Emacs’ batch mode rather
than m4 for compiling from J.T.W. to Java. Also got the
J.T.W. code parser to work for files that have been edited
outside of Davin’s version of Emacs and therefore have
non-standard indentation. Also removed an Emacs hack and
added calls to the UNIX program sed so that error messages
point from e.g. Foo.java back to the original J.T.W. file
e.g. Foo.jtw. Because of these last two changes it is no
longer essential to use Emacs in coding J.T.W., except for the
benefits of CLSS(syntax) FUNC(highlighting) and automatic
6 July 2010 - 25 November 2010. Spent almost five months
away from my beloved computer and university study to read books
of mostly modern fiction. The books I read were:
A Clockwork Orange
by Anthony Burgess,
On the Road
by Jack Kerouac,
by William Gibson,
by Orson Scott Card,
Sense and Sensibility
by Jane Austen,
Speaker for the Dead
by Orson Scott Card,
by Joseph Heller,
Selected Stories by my namesake
Pride and Prejudice
by Jane Austen,
The Life of Pi
by Yan Martel,
by Orson Scott Card and
by Dan Simmons.
24 February 2010 - July 2010. Studying my last paper
for my second degree, a Graduate Diploma of Science at the
majoring in Computer Science.
20 October 2009 - 3 January 2010. Finished writing my
fifth computer game
called Tritus II which is
a mixture of
This game consists of approximately 24,000 lines of C++ code,
all written by myself. The last task on my game was updating
the code to use smart pointers. The game is the sequel to the
3,000 lines of code game written by myself in 1993
BASIC on the Amiga platform.
20 July 2009 - 19 October 2009. Studying
May 2008 - July 2009. Working one day a week for two
hours as a volunteer at
the St Albans Community
Center helping members of the public to use the Internet and
2 November 2008 - 11 March 2009. Writing tutorials for
my new programming language
called J.T.W. (Java Training
Wheels) which I intend to teach some time in the future.
J.T.W. is more friendly to novices than Java itself and
learning J.T.W. before or while learning Java provides a less
steep learning curve for learning Java.
March 2008 - 1 November 2008. Studying for a Graduate
Diploma of Science.
August 2007 - February 2008. Wrote my sixth computer
game called R4: Rocketman
which is a retro 90’s space arcade adventure game. My
game has been accepted for inclusion in the April edition of
NZ NetGuide magazine in the
Your Comments section. The game consists of
approximately 25,000 lines of C++ code all written by myself.
December 2006 - July 2007. Wrote over 200 questions and
answers for a web
design course that I intend to teach at
March 2004 - November 2006. Studying for a Graduate
Diploma of Science.
March 2003 - March 2004. Worked one day a week as a
volunteer for the Catholic Social Services food-bank. The job required me to
assemble food parcels and drive their staff car to Merivale to
receive bread from Fresh Choice Merivale Supermarket.
February 2001 - 6 March 2002. Worked one day a month as
a volunteer receptionist for the
Mission. This job required me to answer phones, accept
donations of food and other goods and enforce the City
Mission’s policy of not allowing anyone to enter the
facility until after 4:30pm when the Mens’ Night Shelter
opens. Sometimes the job required me to work alone so there
was also an element of responsibility in seeing that the City
Mission’s interests were upheld.
1 March 1998 - 17 July 2001. Employed as a part-time
tutor for the University of Canterbury Department of Computer
Science. In conjunction with others, gave tutorials of
approximately 30 students at a time in
and COSC122 courses teaching the Java language. Also worked
in the area of marking the students’ tutorial work.
During my time as a tutor, the University of Canterbury
Computer Science Department experienced a record pass rate.
During my three and a half years of employment by the Computer
Science Department, I developed a series of tutorials that
teach the Java language as supplementary material to the
COSC121 course. My
tutorials are available for free, complete with full model
1 December 1998 - 20 February 1999. Worked for
Toniq as a
programmer. Developed a program to import a database from a
legacy system into the Toniq system.
December 1998 - June 2001. Lived at my father’s
boarding house in Spreydon. Received a discounted rent in
exchange for helping with the day-to-day running of the
establishment. Duties included cleaning toilets, bathrooms and
kitchens, washing dishes, shifting large appliances, carpentry,
plastering, painting and gardening.
November 1998. Worked for
Genex Technologies in the area
of Internet Commerce. Used an H.T.M.L. extension language called
for working on a Java-based on-line ordering system.
February 1997 - October 1997. Employed as a Research
Assistant to Dr. Michel
de Champlain of the University of Canterbury. The job
involved programming in C/Java and adding functionality to a
6,000 lines of code compiler compiler. Specifically it
involved rewriting a C compiler compiler so that it generated
as output compilers in the Java language rather than compilers
in the C language which was the default. It is also where I
first started to learn the Emacs editor and the Emacs Lisp
customisation language. I have written
that explains most of the customisations I have made to Emacs
in the 20 years (Happy Anniversary Emacs!) since that time.
1996. Taught myself to program in the C and C++
languages by studying the machine code generated by a C/C++
compiler. Luckily for me I was using a
Commodore Amiga, a
machine with a sane Motorola 68000 based instruction set.
Doing the same thing on an Intel x86 instruction set based
machine would be vastly more difficult.
1995. Studied philosophy at university.
October 1993 - December 1993. In conjunction with Bruce
Webster wrote my second computer game, a three player Tetris
clone called Tritus in the language
BASIC on the Amiga platform that sold hundreds of copies
worldwide as a shareware game. The game consists of
approximately 3000 lines of Blitz BASIC code.
1992-1994. Completed a four-year B.Sc. Honours degree in
three years. Majored in pure mathematics. In the final year of
this degree I was employed as a stage 1 mathematics tutor.
1991. Awarded a $1000 National Scholarship from the
New Zealand Education Foundation for achieving an overall top 20 placement
for their New Zealand wide scholarship exams.