Monday, February 12, 2007

Billy Connolly and John Cleese are the same person, finally, it all makes sense!

Thursday, February 08, 2007

CCSTAL - Caching Client-Side Templating Abstraction Layer

CCSTAL = Caching Client-Side Templating Abstraction Layer

Ugh, who thinks this stuff up?

Ok, ok, I've been "doing" web projects for a decade now and have found my least favorite aspect is implementing and/or managing content systems. It seems like there's always something going wrong at a layer I'm either not immediately familiar with, or that I don't have access to for a specific implementation.

Fortunately, there's a nifty way to get much of the functionality of server-side templating systems, without having to be a card caring member of the admins club... or one of their bi-otches.

JavaScript...no I mean, real JavaScript, not the cut/paste scene that many folks have come to call JavaScript offers some really cool implementation features. Combined with DOM techniques, it's downright special. By using JavaScript and DOM, in a technique semi-jokingly termed CCSTAL, you get most of the advantages of overly complicated server-side systems like Template Toolkit or SiteMesh, and some client-side advantages that neither of those can provide directly. And, you get it without having to maintain a Java or Perl friendly environment.

What, you use Dreamweaver?! Well, first, shame on you... and second, CCSTAL can operate like library components as well...and after the learning investment, it's free. To do that with Dreamweaver would be...well, illegal. (Um, technically the learning investment is free too in the sense that it's time, not money. Maybe someday Dreamweaver will be free, no?)

Anyway, as I've created projects using this technique, it's made managing projects which were a fit, much less stress inducing... particularly months later when updates come down the pipe and I haven't had to try to renegotiate sudo access or some other obscure cost-inducing bizarrity.

This site describes the technique.
http://www.thomas.ballard.ws/notes/ccstal-html-templates-described.htm

Monday, February 05, 2007

The dichotomy of language, and some other self-effacing crap...

I find it distasteful when people say "I believe this or that and so I'm going to use that belief to intrude on your personal sovereignty". So of course, I'm going to embrace my own hypocrisy and do exactly that. I'm no teacher of English... hyuck, obviously. Despite it being my native, and to this day, only, language, I am a hack and a pretender and I'm sure true lovers of English both academic and aesthetic, would rail against me if they thought my words were worth dignifying with anything but disapproving clucks. However, if I might be so bold, I believe one word should have one meaning, and one pronunciation. I believe this as an extension of the idea that the ultimate goal of language is communication, and that communication is an inclusive execution not one of exclusivity.

Let me illustrate the problem. I wanted to add the word "putting" into some documentation of an informational architecture project I was working on. (That I didn't know how to spell it -- I thought it was "puting", further illustrates not only that I'm no teacher, but that in fact I'm also illiterate.) However, I realized there was a word spelled "putting". It's what you do in the game of golf when you are on the green and using your putter to get the ball into the cup that had the flag protruding from it before you got onto the green.

So you say to yourself, "well yeah, all you need then are the words to the left or right in the sentence which frame the contextual use of the word". "Bah!", I say. Being a lover of computer science, and a secret (oops no longer) hope-er that someday medical science and computer science will somehow merge to be capable of pasting my engrams (or whatever you might call my memories, experiences, intervalic learnings, and what little personality I have) onto a stick a DRAM (a 256K USB drive should suffice in my case) I am used to looking at language from the perspective of a computer program.

Admittedly my programming skills may not represent the cutting edge in linguistic analysis, but they are-what-they-are, and they are better than most folks I know and interact with. (Perhaps more appropriately said another way, I trust my own approach to creating, analyzing, and maintaining an algorithm than anyone else I know, even the really smart folks, because I can't see into their hearts and know their proportional distribution of self-interested vs. interested-in-the-good-of-the-collective-to-the-exclusion-of-self that make up their motivational dynamics.) From the computer algorithm perspective, I see words representing the English language represented often in list form. This means, words virtually always appear to the exclusion of context when observing from the perspective of a computer. Being that humans can adapt, it seems then that the burden to embrace a discipline in which each word has one meaning and one pronunciation falls to human beings rather than computers... at least until the computers become smarter than humans and grow or are endowed with self-awareness and a sense of place within the unfolding of time and space, an adopting of the ideals of advancement, or any movement between forward/backward, good/bad, up/down, or whichever semantical device of juxtaposition you favor.

In that "context" (blah... what computer would recognize that as a bad pun, or even a pun at all), how is a computer (or indeed a human taking a spelling test) to differentiate the word "putting" (meaning to put, actively) from the word "putting" (the act of using your putter, to put the ball in the hole -- or swinging it about madly while ranting and raving about slippery greens and acts of God in the pairing of your skill and that of suck)?

In this rant it dawns on my small mind that in fact this responsibility perhaps falls to me in the form of choosing language that doesn't raise these issues. If the responsibility of this solution has an equilibrium, perhaps its somewhere between not adding words to the public lexicon that serve to confuse and isolate by requiring contexts, as well as to teach the word smiths (and the rest of us jokers and pretenders to language) to avoid those cases unless it's somehow expedient in conveying meaning in the medium.

Hmmm, perhaps I'll need to rethink my diary of jargon reuse.