Tuesday, September 21, 2004

Why code here?

A big part of what I wanted to do with this site from the beginning is captured in the web calendar articles. It's not about putting code out there so much as allowing you to follow my thought processes as I put some of my ideas together. I am not a particularly brilliant coder, although I do score the occasional three-pointer. Heck, I'm just now getting to a level that lets me see the humour on The Daily WTF. If I have one indispensable quality, it's that I refuse to be locked into the obvious. I am willing to explore a few of my wilder ideas, even if some of them lead to dead ends. They're not all winners. Not by a long shot. With the calendar, I went through a number of decreasingly-poor implementations before polishing this version publicly. I would not have used the calendar here at all except for the recent rash of requests I've received, precisely because it was pretty much a done deal already.

I'm not trying to create any how-tos. There are a lot of people who would be better hosts of "This Old Database" (or is that "The New Yankee NSF"?). I want to try to explore the creative process. If you were to ask me which of the calendar articles I thought was the most important, it would have to be The Principles (Part I). As I said, any idjit can code the thing once he (or she) knows where he (or she) is going. It may take some longer than others to put the code together, but all it takes is a bit of Formula Language, a bit of basic HTML, and an even littler bit of JavaScript and CSS to make it work. None of this really requires grokking Notes or the web; the "aha!" for me was simply realizing that when a view is set to "Treat view contents as HTML", the actual output from the view didn't necessarily have to be HTML.

The hard part of a development project is rarely the actual coding (assuming a basic knowledge of the language and environment), it's in evaluating the starting point, determining the destination, and developing the roadmap between those points. The rest is really just filling in the blanks. Yes, there are good ways and bad ways to fill in those blanks, but in the end it's a mechanical process. When the destination doesn't appear to be something that came on the CD, you need to let your imagination loose. (Outline views won't create displays for dates that don't have an entry, and Calendar views don't let you categorize. Now what, smart guy?)

The next time you see code here, I hope that it is a fresh problem for me as well as for you, and that it is once again something that Notes "doesn't do".

No comments: