Jim becomes Pythonic for Jan. 4, 2009
As part of working at Amazon, you are expected as a developer to set yearly goals, both for work-related tasks and personal development. One of the personal goals I chose to set this cycle is to learn Python. As an experienced Perl and Java developer, it was a pretty smooth ride, though I'll have to say that the Python culture (with an emphasis on the 'cult' part) is not my cup of tea. I mean, any language that throws an exception for a dictionary lookup of a non-existing key is just too damn whiny. Still, at its roots it's a very solid and performant language, and worth knowing about by any serious programmer.
As part of learning this, I wrote a Python script that basically replaces Dreamweaver for templated site generation. Though some people hate it, I rather like the way that Dreamweaver handles editable regions for managing large static sites, and the mix of source and graphical previews. However, I don't like it to the tune of $400. Since I have more time than money these days, I now have a Python script that does basically the same thing, recursively generating a website from a template and any collection of files, configurable via XML. This site is now entirely generated by it.
Python is now officially my fifth favorite language (behind Java, Perl, Lisp, and Javascript). I may yet write more, though.
New Aricle: Devs and Docs for Dec. 10, 2008
It's taken a while to get the new site spun up, but I think we're starting to roll now. I have a new article up on Why Developers Don't Write Documentation, which has long been a gripe of mine.
My grad adviser said it best: "If you don't write it down, it didn't happen". True for logbooks: true for life.
To Template, or not to Template for Nov. 12, 2008
I know that these days blog engines are a dime a dozen. Tempting as they may be, I find that for a developer they don't offer enough control over the layout that I want (i.e. unfettered, total control). And besides, for the most part, blog engines are not especially sophisticated code. As a developer, it's almost a rite of passage to create your own with your favorite server-side language. I'm no different, and have written this site in both Perl and PHP, with a database backend for the blog entries.
Over time, I've begun to see that static content is optimally served as static files. If your webserver is doing anything more per request than finding the file and pumping it to the client, you're wasting CPU that you'll want when you get slashdotted. Let's be honest: the most frequently this site is going to update is once a week tops. In that vain, the only thing that makes sense is to manage the site as a set of static files. I've found that there's not much in the way of good open source tools for that, much to the dismay of my wallet. As reluctant as I am to buy something as big as Dreamweaver, as far as I can tell it is hands-down the absolute best software for managing large, static sites. I toyed with Screem on Ubuntu, but it crashes so often and is so poorly documented that I don't feel comfortable investing time rebuilding the site with it.
I may yet do some server-side code for things, but I have yet to see the need. And with S3 in town and dirt cheap, there's no good reason to host images or static support files (CSS, JS) from your main hosting account, burning up you monthly bandwidth allowance. And when I can think of a nice way to host the whole site there, I'll totally do it.
Welcome to the redesign for Nov. 9, 2008
It took a rather long time to get this redesigned site up. I think this is because I do it for a living, and wanted a bit of a break from it. However, I've decided that my personal site can be more of a testing ground for some of the edgier tech I see out there. I also wanted to incorporate some of the useful practical tricks I've learned about content hosting and performance that I've learned at work. Gone now are the days where I make a database query for every incoming request. And if doing that doesn't bother you, keep studying until it does.
I also can't hide the fact that coding up HTML markup, JS, and CSS these days mostly makes me mad. It's mostly from the damned-if-you-do, damned-if-you-don't set of "web standards" that make every site a compromise in some regard. Most people who code or write markup WANT to do the right thing, be it in design, accessibility, maintainability, extensibility, and the like. Anyone who does this for a living learns to accept this broken state of affairs and still get things done. But it's the "standardistas" that continue to bother me, who seemingly only find fault with basically every site in existence (except theirs, or course). So if you site does finally manage to validate XHTML 1.0 Strict, they'll no doubt point out that large parts of your site contain "non-semantic markup", as if that ship had not already sailed and sunk. And the fits they throw should you use tables...
Ok, venting over. One of the upcoming articles will cover tables, and I'll feel much better when I get it off my chest. I also have some ideas in the works about Software Engineering methodologies, especially in regard to marked deficiencies of Agile. By all means, stay tuned.