exclusively in that layer
Tuesday, March 2 2010
I spent all day working on an impromptu pro-bono web development gig. The job was a poorly-defined celebration of years of volunteer work by my in-laws, so I agreed to do it even though it came at a busy time for me. As always for such projects from people who don't know much about either me or the web,
it arrived unplanned and incompletely imagined. At first it wasn't even clear that what was wanted was to be on the web. My contacts were writing in their emails about PowerPoint, assuming me to be a PowerPoint expert because, you know, I'm a computer whiz. So I told them that I know nothing about PowerPoint, that I've never actually created anything with it in my life (though I've been underwhelmed many times by the PowerPoint productions of others). I told them that I am a web developer and that I would cheerfully make them some sort of web thing for displaying their data. Sure, they responded, that sounded great. They'd sent me a spreadsheet of "data," so I naturally assumed the project to be a database project. When you wield a hammer for a living, things in your world starts looking like nails. So
today I built them a web application that displays the various aspects of their poorly-defined celebration in random DHTML rectangles arranged into a dense array. When refreshed, the page showed a new set of rectangles drawn randomly from the database. Some of these rectangles were bigger than others, so to densely-tile a page proved to be something of a programming challenge. It's solving problems like this that make me love what I do; it's both how and why I transitioned from a simple HTML skillset to proficiency with scripting languages over eleven years ago. If a job feels like data entry, I will work very hard to make sure that I do not have to enter that data. (This is why I find all the spam from the Data Entry Institute particularly depressing.)
Now I suspect that what was wanted from me was for me to markup some HTML pages and hardcode the rectangles into a page used straight up HTML, but I just can't work that way any more, and (despite a multitude of projects that could have been solved this way) I haven't manually created such an HTML page in over ten years. The problem with creating a page like that is that I then own everything about that page. Anything that has to be altered in it has to be done by me. And that can become a serious mess when it involves fundamental rearrangements of the layout. In a project like this one, there are always typos that need to be fixed and bad data that needs to be cleaned-up. As I've come to define it, that's not my job; so I've always got a tool available that someone, even a McDonalds employee, could use to fix the things that are broken. My job, then, is a meta-job: the understanding of the mechanisms of display, the algorithms that ensure that every rectangle gets displayed and that all the places that could be tiled with content end up tiled with content. It's a much more productive and fun job to have, and I'll put twice as much work into a project if it means working exclusively in that layer.
For linking purposes this article's URL is:feedback
previous | next