It's my birthday today, but you, dear readers, get the presents. Or, at least, one present: a shiny new version of The Null Device.
Whilst the site looks the same on the surface, it has a few immediately visible enhancements. The first one is tags; that's right, The Null Device has marched boldly into 2003. Blog posts are now tagged (well, the more recent ones are), and can be viewed by tags. (Currently about 15% of posts are tagged; this number will expand in the future. There are more than 8,000 posts in the database, and I don't have a week to spend on tagging them all in one go.) The user comments page is also updated, with new AJAXilicious posting action. There will be more visible improvements later, made possible by the new blog code. Not to mention more stability (the database shouldn't fall over as often as it did with the old code; well, let's hope).
That's right; this familiar-looking blog now runs on new software. As of a few minutes ago, the old system (a bunch of Python Server Pages scripts) was retired, and replaced by the new system (a WSGI web application written in Python, for what it's worth). The data storage system has changed as well; up until now, blog posts were stored as text files in directories, as they had been ever since this was a CGI script written in Perl, in the late 1990s (has it really been that long?). From now on, everything is stored in a SQL database, using a fairly sophisticated data structure. (In short: all items — posts, comments, even the blog itself (and there is provision for multiple blogs) — are nodes in a tree, with other tables linked to them by their IDs, as well as auxilliary data such as tags.) Using a SQL database enables things like tags (which would be a lot more work if posts were stored in a directory tree), as well as other things.
This has been the culmination of over a year's work. Or, to be more precise, over a year's coding, putting the code aside due to lack of time, picking it up again, shelving it and writing a new version after having a better idea, and so on. (Which is why all posts from 2006 or so onward have tags; I started giving them tags before there was code to do anything with them.) The pace picked up over Christmas, with the code being brought up to scratch, and the process was completed this weekend. Anyway, enjoy.
Happy Birthday acb! Your post made me realise that I must have been reading for over 5 years now. The irregular updates were always an asset - only writing when there was something genuinely interesting rather than to fill copy, and with a level of analysis so sadly missing from most blogs. Unmissable as a Londoner. I look forward to the next five years!
Happy Birthday, and nice work!
Thanks for that; I'll look into it. Though my choice of tags is perhaps a little idiosyncratic.
Another option I thought of (and dismissed) was one of those "offshore personal assistant" services in India, which are meant to be very useful for anything that doesn't require physical presence.
I'm interested to know more about your tags. You're doing it "manually" ja? Is there a finite number of tags, or do you make it up as you go along? The tag list on the front page where some have a bigger font - is the font size automatic? Are they better than just letting Google search all the words? Sorry if these are dumb questions - it's late here. I've not really looked into tags, or even used them on Flickr.
I'm tagging things manually. Tags are freeform text, and I make them up as I go along. They're quicker than searching, and allow, for example, you to see all the recent articles about, say, psychology or Japan or indiepop or what have you in one page. The font size and darkness in the tag view are proportional to the frequency of the tag in the database ("culture" is the most common one).
I should add that, while I make up tags as I go along, I try to maintain consistency, i.e., to use the same tag for the same category/concept. So far I do this by running SQL queries in a shell and seeing what's already there. Were this a polished product, it'd probably have a suggestion/autocompletion interface, like del.icio.us.
Minor complaint that probably only affects me: http://dev.null.org/blog no longer re-directs to http://dev.null.org/blog/ I just get a "Sorry, but we were unable to find the page in question." message.
threeze: the issue is fixed now.
Btw, the issue of the CAPTCHAs not appearing properly should be fixed now. (It had to do with mod_wsgi and subprocesses, for what it's worth.) If this comment appears, that means that it works correctly.
HB dude. Be good now. Have a g+t for us.
Congrats on the new blog software! Looking good. And... HAPPY BIRTHDAY!
Happy birthday! This is the best blog going.
Nice work, Andrew, and happy birthday! Did the same thing myself a little while ago but in PHP, cos I always like to back a dying horse, but couldn't resist a complete redesign. Mine still needs more work, though, but yours looks pretty much settled.
Like snufkin, I'm trying to work out how long I've been reading this 'blog now. It must be at least five years, too (found through Graham). Crikey.
Good to see you're trying new things!