Comments are back!

Posted on 22 February 2021 in Blogging, Meta, Website design

Comments are now back up and running. They were interesting to put together; as a concept they don't play well with a static site, as they are by their very nature dynamic.

I was considering using Disqus, but I do want to try to keep my data to myself with this blog. I wound up putting together a separate site,, which is non-static, and handles all of the comments -- some simple JavaScript injects them into each post page. It uses Akismet -- the one external dependency I feel I can allow myself -- to filter spam.

Should be interesting to see how it works! I'll give the new system a few days to bed in, and for a spot of code-tidying, then I'll post on the design of the new blog as a whole. I feel that I have Things To Say.

A new beginning

Posted on 16 February 2021 in Blogging, Meta, Website design

If you're reading this, you're seeing my new and shiny blog :-)

Blogging has been quite light here over the last few years; as PythonAnywhere has taken off, life has become ever-busier, so, less time to post.

But I also feel like one of the reasons that I've not been posting has been that I was using a Wordpress blog. Not that there's anything wrong with Wordpress, mind, but every time I logged on to it there were a pile of security updates to download and install, which was very demotivating. So often I'd think, "oh, I should post about that" but just never get round to it.

(There's also the faint embarrassment factor of running one of the most popular Python hosting platforms, and having a blog based on PHP...)

For a long time I'd been vaguely planning to switch over to some kind of static site generator like Hugo or Sphinx. They are both well-regarded, but our experience in porting the PythonAnywhere blog over to the former gave me some pause; while Hugo was really configurable, it always seemed to be really hard to configure it the specific way we wanted.

And then I thought, wait a minute. I'm meant to be a programmer. How hard can it be to write a simple static site generator?

That's the kind of sentence that feels like it should be followed by, "it was actually really hard". But it wasn't, because all of the pieces have been coded by generous people already and it was just a case of plugging them together.

With the help of wpparser to parse an export of my old blog (which I fed into a little script that spat out the articles in a Hugo-like format) and then markdown2 to format markdown-based posts, Pygments to highlight my code blocks, and then Jinja2 to let me bung the results in some templates, and feedgen to write out an RSS file, it was pretty easy to put together something that replicated the URL structure of the old blog.

To be honest, I've spent significantly more time fiddling with the CSS to make it all look pretty. I doubt that bit shows.

Anyway, now I have something where I can knock together a quick post in markdown, run a command, and have it published. Welcome to my new blog!

I'll be scanning through the old posts over the coming days and fixing any formatting issues I find.

The next step will be to work out some way of bringing the comments over, as they (of course) don't really fit in with the whole "static site" side of things. I have some ideas, though... But if you'd like to leave a comment in the meantime, @ me on Twitter.

(Update 2021-02-22: comments are back!)

...and another sidetrack -- a new theme!

Posted on 3 October 2013 in Blogging, Meta, Website design

While I was at it, I figured that this blog was looking ridiculously dated. So I've fixed that with the Iconic One Wordpress theme, with a few tweaks that I think make it look a bit cleaner.

Clicking the tabs from left to right

Posted on 5 August 2009 in Resolver Systems, Website design

It looks like visitors to the Resolver Systems website are predisposed to clicking through the tabs at the top of the page, from left to right. Does anyone else see this kind of thing?

The figures I'm using are from Google Analytics, which is based on JavaScript embedded in the page and run in the browser, so I don't think it's caused by bots/crawlers just clicking each of the tabs in turn because they appear in the page source code in that order -- and in addition, if it were a result of automated systems, you'd expect a consistent bias, whereas it's actually quite variable.

Here's the full dataset. Each line below shows a Google Analytics overlay, which tells you for each selected tab what percentage of people clicked on each of the other tabs during July 2009:

Google Analytics overlay of tabs on home page

Google Analytics overlay of tabs on buy page

Google Analytics overlay of tabs on download page

Google Analytics overlay of tabs on products page

Google Analytics overlay of tabs on share page

Google Analytics overlay of tabs on screencasts page

Google Analytics overlay of tabs on help page

Google Analytics overlay of tabs on about page

It looks like we managed to break tracking of access to our "About us" page for that month, so I put the results for that tab aside and did a bit of simple statistical analysis (in Resolver One, naturally) on the remaining data. The results:

Analysis of the tab clickthrough behaviour

The "from" tab is top to bottom, the "to" tab is left to right -- so, the chance of someone who is currently on the "Buy" tab clicking "Download" is 29%. The average chance of someone clicking on a given tab across all sources, and the standard deviation of those figures, are summarised at the bottom. Each cell is coloured based on how many standard deviations from the average it lies -- if it's more popular than it normally is, it appears red, if it's less popular it's green. The intensity of the red/green is based on how much more/less popular it is.

I think there's a very clear pattern -- the line of red starting at the "Home tab to Buy tab" cell, and going down and to the right to the "Screencasts tab to Get help tab" cell. That indicates that people are significantly more likely to click on a tab when it's the one to the right of the one they're currently looking at.

You can download the analysis spreadsheet from here, and if you don't already have a copy of Resolver One to run it on (shame on you ;-), you can get an eval version here.

This is interesting -- is it just our visitors, or have other people seen similar results?