Enjoyable Work

23:48 Sun 11 Feb 2007
[, , , , ]

I don’t write about work too often, but I’ve really been enjoying what I’ve been working on for the last few weeks. I’m writing the specification for how our system should handle turning standard HTML files into files that handle the variability delivered by our backend.

The first thing I enjoy is the fact that I can deicde how the HTML should be written. In a general sense, I get to decide on XHTML 1.0 Strict (I chose this rather than HTML 4.01 Strict because it’s likely to be easier for our system to handle an XML-based format). But in a more specific sense, I get to decide on how certain things should be done, such as form inputs.

The specification essentially deals with how to automate the job I used to do when I started at Nimblefish, so I find that appealing as a challenge. Not the actual code for parsing and so on, although that’s interesting too, but using my experience to figure out the best approach.

When I write things like this, I like to do reference implementations also—and here doing so is fun, because it involves working with HTML and with JavaScript, because I’m mocking up what the code transformations would be using JavaScript rather than trying to fit a Java implementation into our somewhat heavyweight system.

I also enjoy writing little pieces of helper JavaScript, small utilities that will aid web developers in trying to ensure that what they produce for import will be successfully imported. Having been on the other side of that divide, the last thing I want is for web developers to have to wait until the import process fails to learn that their code isn’t valid for our system.

There’s also some traditional web application development involved, so I like that too, but most of it is designing the spec and a refernce implementation and the tools to make development for import a pleasant experience. This is tending towards “code that writes code”, since the “dev kit” of XHTML/CSS/JavaScript will contain the JavaScript helper utilities that will be able to transform it into post-import code (or close to it), and will be able to validate itself. There’s something about that I find very appealing, and I suspect it fits together with my reasons for liking web development. The transformability of web pages lends itself to approaches that I enjoy.

Also, of course, in working on the spec and the reference implementations, I’ve been using a bunch of HTML/CSS/JavaScript applications to help me: TiddlyWiki, for example. “Self-transformable documents” is the concept I’m getting at, and that just ties in with my view of the browser as not merely something that delivers content from the web to me, but something that is a true interface to the web, an interface in the way that IDEs, command lines, and programming languages are “interfaces”.

Leave a Reply