I have been tweaking this site recently. I think it’s time I engaged in a lot of boasting about what’s better and some contrition about what’s not. Because of the changes, I have also added complete source for this blog and Open Office conversion.
For a start, I have implemented a proper archive of old articles. I suspect most readers really don’t care when old articles were written and are unlikely to go trolling through them all, so I’ve pushed the complete listing off to the side in favour of blurbs for the better articles. Ideally this would take also take into account article popularity, but for now it’s just my opinion.
Another big change is printing, which I have implemented for articles (I don’t quite see the point of printing the index pages). I especially like the Link Summary with URLs at the bottom of each article, although this doesn’t work in Internet Explorer.
Open Office export is much improved. To publish an article, all I need to do is drop it somewhere below my Articles directory, run ant, and upload the result. OO provides a Subject field for grouping similar articles, and I’m using that to link together the Better Email series. Unfortunately, that means when I add a new one I have to update all the old ones too. This same limitation has stopped me from categorizing articles by topic and from adding next and previous links.
My pregeneration isn’t terribly clever and rebuilds most of the site every time. For now that only takes about 10 seconds. This will get worse for a while, but I expect Moore’s Law will overtake me around the 60 second mark. In the mean time I might engage in a bit of optimization.
I considered rewriting the system as an exercise in Python until I realized that contravenes Worse is Better. Even though optimizing ant is a pain, it’s surely easier than doing everything from scratch. Perhaps I should implement the relevant bits of ant in Python, then using Python scripting where XSLT is weak (currently, all logic is in stylesheets). What I’d really like is to only regenerate the pages that need it when I do a build, and then automatically FTP the results.
An intriguing alternative might be to produce XHTML, but allow browsers with XSL support to transform it on the client. The XSL could pull in nice-to-have extras like next and previous links and links to related articles. I would only need to regenerate a few XML index files when I build the site, and for browsers without XSL support the site would still work – it would simply lack that content. But I’m not sure this is practical, and without some fancy footwork on the webserver Internet Explorer would cause trouble.
Now for the admission of sin: my RSS feed is being served as text/html. I realize this is a big no-no, but until I switch hosting providers I’m stuck with it. I’m looking for something with Apache and Python. Meanwhile I may look at add a full text RSS feed, though it’s aesthetically painful to escape the XHTML tags in XSL. Actually, I find the whole concept of escaped tags offensive – that’s what namespaces are for! Hush Geof, remember: worse is better.