
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" !
|