A New Face and Personality (Hello Ruby)

So, you will notice there have been some changes around here. Firstly the site is fairly un-styled right now. The more important change is more hidden. If you glance up at the location bar, you’ll note the extension of the page is now html. That’s correct, old school, non-dynamic hypertext markup language.

You see, I’ve changed how I generate the pages on the site. I now statically generate them on my local computer and upload them. The articles are stored locally in text files which are processed by a ruby script into a publishable set of html files. The script also generates the home page, RSS feed and the archive page (a new feature!). The system isn’t complete or pretty, but I thought I’d get it live sooner rather than later.

I decided to change the site’s backend and chose this particular method for a few reasons.

Firstly, I haven’t been able to develop locally for years. I haven’t run Windows for three or four years now, and so haven’t been able to run the code locally as the site was coded in ASP-original. My development cycle has been, edit locally then upload and test. It wasn’t ideal. Now I can write and test locally.

Secondly, all my posts were stored in one of the most opaque formats known to man: an Access database. The only way I could access them was to write ASP pages to manipulate my live database on the server. This is what I did to get the old articles out of the database and into the new system: I wrote a small ASP script to go through the database and pull out each article, which was then imported into the new system. This was a mostly automated solution — beyond writing the script in the first place and using ftp to get the exported files down to my local machine — but brings home how held hostage my data was.

Now my work is nice and free in plain text files. I didn’t want to imprison it in another database, part of my reason for going the way I have gone. It feels much safer, somehow, though does come with the disadvantage that I have to edit on my local machine. I’m sure this limitation can be removed, given some ingenuity, if I find it limiting.

Further, I picked local files because I had solved the database driven weblog problem already, simply re-writing in ruby wouldn’t be a challenge. Doing things locally with text file munging and file-system navigation makes some things easier, and some things more challenging. It’s certainly more interesting to write than yet another database driven system.

I’ve also had the opportunity to move posts in to a nice year/month/day folder structure. Much nicer than the meaningless ID numbers I used to use. I have implemented a stand-in index.asp page which takes in the old URLs and redirects to new page locations. This should mean old links don’t break, though you may want to update your links.

The new static locations mean that it should be far easier for search engines to index my content — a distinct advantage. Implementing an archive means that all my content is indexable, perhaps there is even something useful in there!

One thing missing is comments. This site seemed to attract a huge amount of fairly nasty comment spam, which I had to clear out every few days. The number of people commenting on posts didn’t seem to justify this expense of my time, never mind the fact I had to wade through numerous adverts I’d rather never have to see. I don’t know if I will add comments, I have no plans to. If this is bothersome, write me an email; if lots of people email, I shall re-consider.

Finally, the dx13 name runs out soon, and my registration agent seems to have disappeared. The site may therefore disappear. If I can’t get the domain back again, I shall at least ensure the new site contains some easily google-able phrase like “The new home of dx13” so you can find your way to wherever the site ends up.