On the surface, it's not that different. The design is basically the same, just a little more polished and flexible. I think it fits browser widths from 640 pixels to 1280 quite well. And as far as I have checked, it's now valid XHTML 1.0 Strict.

Functionality improvements

I had more reasons for building the CMS than becoming Python Powered. The old solution was very simple and didn't do much more than fetching an article from a text file and apply a template to it. So I wanted a more advanced and user friendly solution.

RSS improvements

There used to be only one RSS feed (for the blog) and now there is one RSS feed for every category and one combined feed for all categories. The format is also upgraded from RSS 1.0 to RSS 2.0 and I use a stylesheet with the feed so it's readable in a web browser to.

One problem occured with this upgrade. I redirect the old rss feed to the feed for the blog section. The Bloglines and Newsgator robots visited after the redirect was in place and before I had built the new feed. Bloglines displayed an error notice but it is ok now.

Most people will want to subscribe to the main feed or the blog feed but the options are there to subscribe to any single category if you like. Links to the RSS feeds are automatically found by your browser (at least for Opera8 and Firefox users) and highly visible on the right side with easy-subscribe buttons for some online RSS aggregators. The RSS link goes to the category you are visiting.

Article dates

Another improvement is publication/modification dates for the articles. I don't have the exact dates for most of the articles so they are mostly not accurate for the old articles. Last updated is set to yesterday for all articles. That's not accurate either but I have updated most of the articles so it's the simplest acceptable solution.

The dates also implies that it's time for me to write som new articles. The site looks a little outdated as it is. If there is something you would like to read about here, just use the new contact form and I will see if I can write about something that you want/need to learn more about.

Web based interface

I can now write/edit/delete categories and articles within a web-based interface. Easier and quicker than having to ftp everything to the server. The only downside is that I don't have a complete copy available offline at all times so I must remember backups.


Since I prefer Python over PHP it was about time that this website became Python Powered. The only things left running on PHP is the link management script and the 404/500 error pages. I'm using CGI for this, although I think CherryPy is nicer. But hosting for CGI scripts is just more available so a CGI based solution is convenient.

Site5's Python support is a little outdated (version 2.2.2) like with most budget hosts and this created a few problems since I am running 2.4 at home. But I fixed the few issues and now have a running CMS using the Cheetah (not installed on the server, just put the source files in my home directory) and MySQLdb modules + my own not released hbform module for form handling.

The CMS is a little hard on the server because it's CGI and Cheetah is quite heavy (module loading and template parsing). The only efficient way to fix this was to implement page caching. Real simple and a cached page is delivered in ~0.01 second compared to ~0.5 seconds for building a page from scratch. So Site5 shouldn't be complaining.

Did I do that?

I had a few problems with setting up the .htaccess redirects for redirecting everything to the corresponding new url. And when I finally got it right the Adsense ads disappeared. Strange. But it wasn't my fault. Google had some serious DNS problems (got hacked?) last night and most of their services were down for a few minutes.