jamesc.net

[home] [about] [trinity] [software] [lighting] [mountains]
[CERN] [harlequin] [escape velocity] [CERN again] [others...]

the heady .com days

Escape Velocity was a start-up software company formed by Inma Martinez and Tom Donaldson. We developed a wireless publication framework, and behavioural personalisation software that was used in Sessami, one of the first peer2peer wireless digital communities. It was based in the Truman Brewery in Brick Lane, London, the "digital hub" of London

I worked as part of a four man development team writing the core framework. We created a Java based application server framework (EVE) for multi-channel content delivery. This allowed service developers in web shops to write lightweight services, that would both be automatically personalised for the end user, and rendered to multiple devices. In fact in the mobile, low-bandwidth world, this are inextricably linked - the best way to provide a usable experience is to provide exactly the right information for the user, first time.

While there, I was responsible for the creation of Escape Velocity Markup Language(EVML). EVML was an abstract markup language that could be translated to WAP, SMS and web-based output. This was done by heavy use of XSLT inside the server framework to convert fragments of content into device specific markup. The strength of EVML was that is specified what was to be rendered in terms of the relationship and relevance to other items to be rendered, allowing the personalisation engine to make strategic decisions about what content to render at what time.

I spent most of my time on the server framework, interfacing it to different protocols (HTTP, Web Services, EJB), and making it more performant. Using our framework, we wrote many other applications, including

  • A news feed service which did automatic text summarisation and catagorization
  • A streaming mp3 server which served up "similar" music based on both audio analysis of the tracks as well as the user's "preferred" music.
  • A SMS-based friend location system, which allowed communities to publish their location, and help groups get together
  • A personalized wireless portal application, which suggested links due to their relevance and popularity
  • Image manipulation libraries, include "intelligent" rescaling, resizing and cropping

from services to libraries

After our experiences with Sessami and the other applications, we re-wrote the personalisation from the group up. We extended it's realm out of pure behavioural personalisation, and created a library for allowing developers to write their own feature-based personalised applications. This included some very innovative convergence algorithms for the behavioural models which allowed very accurate predictions on very little evidential support. I was the developer for the Java version, which was written in gj, due to it's use of very complicated parameterized data structures.

test, test, test

A few months into the development of the EVE framework, we made a big push to start to use more tooling to support our "agile" development methods. We introduced Apache Ant as our build system with a home made continuous integration system (the CruiseControl project was only starting up), and JUnit as our test framework. This worked well in practice, but as most people experience, retrofitting test frameworks onto existing code is Hard!.

With the opportunity to write, from scratch, the new version of the personalisation framework, we also took the opportunity to test from the start. All development was done properly - test first, code after. This led to really quick development timescales, and code that worked first time ! The conversion was finished - I actually find it harder and slower to write code without tests than with them, since I worry so much about what the code is actually doing!

Overall, workingat Escape Velocity was a turning point for me as a developer, and for this I have to credit the best development team I ever worked with: Phil Radden, James Dennett, Mark Reilly and Matt Denner. And of course, our development manager who both kept us sane, and kept us on target, Ian Carman - the man responsible for "off-site friday afternoon development meetings" !