test-driven installation

Although I’ve been administering (to) a Joomla site for a while now, I recently had the opportunity to install Joomla from scratch for the first time. The process was remarkably smooth, and with a little help from friends around the web it was done in no time at all. And surely one of the keys to the simplicity of the installation was this: After untarring the distribution files, the next step is to fire up a browser and load the URL of the installation directory, which shows the first page of the Joomla installation process. The page is essentially a test report; in my case it was mostly green, with a couple of red markers that showed things I needed to fix before installation could proceed.

This is rather cool – test-driven installation – and it’s becoming more common these days (I saw the same thing when I installed MovableType for this blog). The page tells me what the software expects from its environment, and also where I currently fail to meet those expectations. Neat. In the Joomla case I had test failures telling me that some files weren’t writeable, and that I had no MySql support in PHP. I fixed those and refreshed the page – green! Onto the next page in the Joomla installation sequence, and the installation worked fine.

As an aside, this is one case of a genuinely test-driven process. The distributed package is shrink-wrapped, intended to be installed many times under varying conditions, and the tests are a kind of poke-yoke. Their aim is to ensure that the upstream process (preparing your environment) is completed correctly without passing errors on to the later step. (Contrast this with the example-driven processes we use in “test-driven development”. Here we create sample situations in order to assist – and constrain – the design of something new, during a process that essentially occurs only once.)

joomla can be almost a wiki

This summer I spent some time learning about and using Joomla, so that I could maintain AgileNorth‘s new website. I took a long time to get my head around the structure and concepts, and I don’t know whether that’s due to my lack of exposure to content management systems, or to Joomla itself. I think it has mostly clicked for me now, and one little thing has helped more than any other: a “mambot” called rdlc. This little plug-in allows you to type

{rdlc My Page Title}

anywhere in a content item, and it replaces itself with a link to the page with that title. No more fiddling and faffing with cumbersome links; no more trying to remember which item ID refers to which page. I’ve been using rdlc so much, in fact, that it almost feels as if I’m working in a wiki. This little macro has caused my productivity to rocket, because now I’m in familiar territory. I work with wikis every day, and so I no longer feel I’m lost in a strange CMS. rdlc is a must.