This page was originally static content on my website. I have incorporated it into my blog, entry dated the last time I believe it was edited, as a more appropriate place to archive old things like this.

This page is out-of-date. My site is currently (late 2015) on version 8.

This is version seven of this site which is a loose count of both the site design and my choices of software to run it with. In the not-so-distant past I used a custom script called to serve static pages which generated a nice navigation tree and table of contents, and then I had two WordPress installations for my blog and tumblelog. Now I use Org-mode to publish static content and to format the posts to my blog which runs PyBlosxom to serve them up.

Org-mode for static content

The code that sets all this up may be found here. I have a screen something like this when editing pages:


and then C-c C-e P updates any pages on the site that I’ve edited since I last published. All the Org-mode source for the website is kept in a git repository.

This setup is made unnecessarily complicated by publishing to two locations: my usual web server, and the web space my university provides me with, which has slightly different settings so that an extra message appears indicating that the page is a mirror.

I have to say, all this effort feels pretty pointless at the moment when I realise just how little content I actually have on my main site.

Org-mode for blog posts

The same setup file also sets up export for blog posts. When editing them I get something like this:

#+INCLUDE: /home/swhitton/doc/www/blog/tech/gnu+linux/

and C-c C-e F makes it into a post. The date line in there is actually ignored by PyBlosxom, which looks at OS file modified times to decide on post dates, and I am required to run a script called to resync them from date lines like that shown above to bring them back in sync.

I really like PyBlosxom’s approach to blogging, but am really looking forward to a stable 1.5 release due to a number of problems. All the Org sources for my posts are kept in git, of course. Comments are checked into a different (non-public) git repository

CRUX ports

My ports for CRUX are published using a system very similar to that described here. They’re all kept in a git repository.

Older version of this page

I started messing around with webdesign back in year five of primary school and at that point my knowledge was extremely limited, and I used a severely limited free hosting service that is still around today. I moved to a place called InitialHost when I wanted to get something going but left there and my site began to stagnate again - I’d never been any good at actual content.

I then got involved in 3rror, which has now changed hands, and helped to admin that site. Shortly after, SilentFlame was started on a reseller account from the commercial side of 3rror, Xen Hosting. We moved from this due to poor service and then moved around several different places until settling on our VPS we have right now. Xen Hosting closed down at some point during this.

I bought in 2005 and originally put the basis for my website onto it after making purely focussed on web hosting. It started off on a silvery design borrowed with permission from someone else, and this went rather well. I wish I could publish a screenshot to look back to but unfortunately I no longer have those archives.

I moved on to a grey design dubbed v2, and then simply made the site a blog with a standard Blogger template. I then had another blue design for a short period and then a nice grey one, both called v3. A this point I switched over to using my real name online and thus was born, with a blog under a blogger template and some pages stored over on this server with the same template stripped down to size. The content pages were very similar to those present now.


The site uses nice, reasonably compliant XHTML and CSS and in most browsers the navigation will follow you as you scroll. I used to use Apache Server Side Includes extensively to keep my files in order and also generate things like the last modified date at the bottom of every page, but on my recent switch to lighttpd I was forced to abandon this method and am now using some simple PHP to include the headers and footers on all pages. The design was inspired by <a duplicity, but I did code it entirely from scratch. Xyzu helped with some issues over browser compatibility.


The big change with this version of the site is that it uses markdown for all the pages, and a python script I wrote converts these to pages on demand. The design was put together using this tutorial. My blog and tumblelog still operate on WordPress but I hope to switch them to PyBlosxom soon.