Lee Goddard .net — another boring personal homepage

Homepages are boring ...

...but as my work has been programming internet applications since 1999, it would be hard to survive without one.

I work remotely or in the UK, and live in Gödöllő, Hungary, with my wife Paula (who made this background image), my children, seven-year old Ilona (in this photograph) and three-year old Jacob.

Anyway, this my homepage and not my CV, and as such here I define myself by more than my work — nothing is more boring than a computer programmer who only programs computers, and nothing is less effective in programming computers.

Interests outside of work include Zen, flamenco, modern jazz, Gong, Hillage, Hawkwind, Cézanne, Klee, Kandinsky, Japanese gardens, mountains, forests, lakes, mushrooms, wild grasses, and Indian food.

Generative Sounds With L-Systems

L-system Tree
Lindenmayer tree,
A → AB, B → A.

Computer-generated music has been an interest since dissing it whilst at university in 1999. Despite the clever psuedo-music and clichés of Garage Band and Baysian networks, I find the attempt at human-sounding music to be depressingly emotionless, their lack of lyrics and lyricism removing them far even from the song machines of Orwell's 1984.

But I have always been fascinated by the idea that paintings and images could be rendered as music, so when I cam across the extremely simple Lindenmayer Systems, the music application was irresistible, and the first prototype created within a day.

The appeal of the equation, used to model plant growth, is its simplicity, as this rough graphing demo illustrates. Without simulating varying soil, light, and weather conditions, growth is unnaturally regular, but the instantly familiar shapes produced by equations only four bytes encourages me to think Lindenmayer and co were closer to discovering some secrets of creation as anyone has got.

L-system Tree
Sierpinski Median Curve, twice L → R-F-R+, R → -L+F+L-

As for the 'musical' output, it depends on your taste, and how you imagine a plant might sound. To my ear, it is reminiscent of Terry Riley's dervish music, and thus The Who's tribute to Terry Riley (and Meher Baba), Baba O'Riley, and thus Talking Heads' Once In A Lifetime.

The two above sounds combined:

Zen and the art of ....

Some of my work

All the work on these sites is mine, apart from the BBC Wildlife site, where I did everything apart from the graphic design and PHP. Most of my work tends to involve GUI but hides behind authentication or on intranets.

Currently...

I am looking for three- to twleve-month contract, anywhere a British citizen can work — I frequently work in my native London (freeloading on my kind family), but would welcome the change to work anywhere else at all. I am happy to work with Perl in any form, or Java (though I have yet to take a Sun/Oracle certification), but I am especially interested in HTML5 and advanced JavaScript, preferably using MooTools (jQuery is okay), Backbone, Node.js, and real-time work with HTML5 audio, Web Audio API, SVG and canvas manipulation.

Current personal projects, other than Freedharma, include Plonk, my just-completed rip-off of Plink, a collaborative music doodling tool, a bit like the silly brush toy which you can see in the Zen section above. From the server's point of view, it's just a chat server, for the client is a kind of musical etchasketch. It does demonstrate the power of WebSockets and weaknesses of the HTML5 canvas element. Perhaps I'll write an article. I'd let you see it, but what ISP supports WebSockets?

Now that Mozilla have (almost completely) fixed their HTML5 audio looping bug, I am continuing development of a simple HTML5 multitrack that allows the mixing and looping, cutting and pasting, of SoundCloud and other online audio files.

Latest Scribblings

Blah blah balh, Home-life: On ‘Han-shan, Nanzen-ji’

From a lofty summit The panorama extends forever I sit alone unknown The lone moon lights Cold Spring The moon isn’t in the Spring The moon is in the sky I sing this solitary song But the song isn’t zen. Han-shan, Nanzen-ji Can I ask about this? Or rather, can I ask about it and [...]

More

JavaScript, Work: JavaScript and Perl Object-orientation: a small comparison

I began programming Perl in 1997, as my university did not run Netscape Live Server – the original server-side JavaScript – and I wanted to access to a database. So many years later, it looks as if JavaScript is back in a serious way: despite limitations in the implimentations of ECMA Script, the standard of [...]

More

Home-life: Rotary Control for MooTools

Knob control for MooTools

Yesterday I wrote, and today extended, a rotary control for MooTools, with WIA-ARIA compliance and keyboard controls to augment the mouse ragging of Logic-type controls. It’s on GitHub  

More

JavaScript, Work: The Problem with MooTools…

MooTools is without doubt the best JavaScript extension around, providing clean and simple object orientation features such as classes, inheritance, pseudo-events, and more. Yet advertised JS programming roles rarely require this skill, whereas the much more limited, and much less clear, jQuery is almost always required. jQuery’s primacy is not because it is a ‘better’ [...]

More

JavaScript, Work: JavaScript Scrolling Game

The JavaScript ‘Defender’ game proved too complicated for the kids, so a simplified version is the Illy Game. Seems too simple to me, but three- to seven-year olds seem to enjoy it – and I’ve seen versions, with bigger and friendlier graphics – used on the BBC’s childrens’ site, CBeebies.

More

JavaScript: Diary of a JavaScript Pacman

pacman

In about 1998, I wrote a version of Pacman, called Paxman, for Netscape JavaScript. After recently spent a few days writing a simple Defender game with the MooTools JavaScript extension, I thought it would be interesting to see how long Pacman would take. Step-by-step 09:00 As in 1998, use a 2d array to hold the [...]

More