The Null Device

Posts matching tags 'the null device'


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.

meta tech the null device 19


In recent months, the blog comment spam problem has gotten progressively worse, as more and more parasitic scumbags take to hijacking any sort of comment system to drive up their search engine rankings and/or drive gullible people to malware-installing websites. In the light of this, The Null Device has now installed a CAPTCHA-like system for preventing comment spam on its comment pages.

From now on, whenever you enter a comment, you will need to type several letters, as seen on a graphic image on the page, into a form. With any luck, the images will be legible to humans but not easily decipherable by OCR software, and will keep comment spam out of the site.

meta security the null device 7


I've recently had some time to sit down with an internet connection that didn't involve me buying dubious coffee and listening to samba, Frank Sinatra or other yuppie wallpaper music for the privilege. As such, The Null Device has the beginnings of a photo gallery system.

There are four galleries (i.e., pages of photos) up so far. Two from my travels in Italy (the mediæval town of Paciano, Umbria and a few of the old town of Perugia), one of Oxford, and some studies of a recent afternoon in North London.

The gallery still needs some work: a decent (automatically-generated) front page would be good. Galleries will eventually have date-stamps attached, and will be automatically injected into the blog feed and/or shown on a new, all-automated Null Device frontpage, along with the most recent blog entry and such.

meta the null device 0

This will be the comment popup.
Post a reply
Display name:

Your comment:

Please enter the text in the image above here: