I enjoy Tim Bray’s writing at his weblog, titled Ongoing. I began reading in late 2001, and I was hooked by his digital photography, his excellent writing, and his deep analysis of technical and cultural trends. His series on multi-core, multi-threaded, parallelism is required reading for any self-respecting 21st century enterprise-level software architect, which I am. (OK, OK, I admit I’m also quite the geek, having learned Intel 8008 machine language at the age of 7. As of February 2006, I’m 35, and I still luuuv this kind of deep hardware detail.)
And Tim’s weblog platform fascinates me. Instead of using Movable Type, or WordPress, or Bloxsom, etc., he has implemented his own weblog engine, using what he claims is a 2200-line Perl script, a MySQL metadata back end, and a little XML.
His weblog engine features a webpage template with a rotating image header, and a sidebar with a rotating random image from his substantial digital photography collection. This past week, he says he fixed a problem he had with the sidebar image, adding
a bit of AJAXy goodness or other to his sidebar. Not the least bit surprisingly from Tim, the entry goes into more than a bit of detail about how his weblog engine is put together, and what he has done to fix the sidebar image issue. And it is awesome! Tim is definitely an über-h4x0r.
You see, the weblog runtime is entirely filesystem-based! Unlike WordPress, Typo, Bloxsom, and other weblog engines, he doesn’t use a runtime database and templating engine, and does not bother with much dynamic HTML generation for each weblog entry requested by a visitor. His weblog platform is automated, in the sense that he doesn’t write the pages from scratch all in HTML, natch. He has a Perl-script generate the website content from XML-based templates, and the entries are written with pseudo-HTML style tags.
Having the content be generated and stored on the filesystem means two things:
- His weblog is very robust under stress, since there are no, um, “moving,” software parts besides the OS, a filesystem, and Apache.
- Even on a modest server, it should withstand a whole lot of slashdotting (or is it diggs that we have to worry about now?).
I have to admit, I am more than a little bit jealous. Being a hopeless geek myself since an early age, I’ve always been fascinated with the inner workings of computers and software. And my mind wants to grok how things work, and I enjoy making my own things.
Now I too want a filesystem-based weblog engine to call my own! I too want a weblog with spiffy graphical headers, and AJAX goodness, and metadata. Really, what geek doesn’t enjoy goofing around with a little metadata? It will all be put together and crafted by my own mental powers and some clever typing in some clever little language.
So starting this week, using my copious free time, I am going to write my own simple filesystem-based weblog engine. Details to come as I get my butt in gear.
weblog engines, web architecture, tim bray
“Blog engines have been done to death.”
Quotes from those who’ve never done one.
Rock on, PJ!