The Internet, powered by tape

In an effort to remove the amount of work that updating the site requires I’ve had a bit of a spring clean. The support forums have been deprecated, moving them over to the forums, and I’ve removed the bug tracker (which required way more work to maintain than it was worth). Hopefully this will give me more time to update plugins.

Although the site has been running WordPress 3.0 for some time I finally got around to using some of the new features and now several of the custom plugins (read ‘hacks’) that were running have been removed, thanks to the wonderful custom post types.

More dramatically, the site theme has been swapped over to Twenty Ten (or Twenty Ten One as I’ve unimaginatively called my child theme). This includes all the new feature goodness built in and is very slick to use. The galleries and thumbnails are particularly nice. The time cost involved in producing something that looks good is a lot lower, and in general I feel more inclined to post (which can only be a good thing for a blog).

Anyway, I’ll end this with a photo of my internet connection. Due to the layout of my apartment I have a low-profile Ethernet cable running under the carpet and through a door into another room. At some point something slipped in this arrangement and the cable was nipped, breaking the connection. Rather than rewire the whole thing I cut the cable, stripped the ends, and patched it all together with some tape:

Amazingly it’s been working just fine and runs at full gigabit speeds.

Gravatar Widget

If you’re in the market for a quick and simple way to display a Gravatar in a WordPress sidebar then check out the recently released Gravatar Widget plugin, as seen on

Some of the features of the plugin:

  • Email address of Gravatar taken from a user on the blog, or any address
  • Change size of Gravatar
  • Image alignment
  • URL for Gravatar (when someone clicks on the image)
  • Add arbitrary text to your widget
  • Fully localized

A New Kind of WordPress Spam

SpitalfieldsApart from bills the only thing that comes through my post box are flyers for local pizza companies and private hire taxi firms. I wish I could get Akismet for my post box (or maybe this already exists – a big dog).

Anyway, a while back I found an unusual hand-printed business card had been slipped in alongside the junk. I almost threw it away before noticing that it contained the URL for a blog. On closer inspection it turned out to be an advert for a blog about the area in which I am living, and which must have been hand delivered by the author – an unusual way to promote a blog. I can’t imagine that a similar online method of promotion would have made it past spam filters.

The card reads:

Over the coming days, weeks, months and years I am going to write and tell you about my life here in Spitalfields at the heart of London. How can I ever describe the exuberant richness and multiplicity of culture in this place to you? This is both my task and my delight.

The blog itself is an interesting read and I’ve already learned about several places of interest in my local area, as well as reading about some of the more colourful local characters. It seems that sometimes hand delivered spam is ok.


Earlier on this year Matt Mullenweg got in touch to see if I was interested in doing a bit of work for Automattic, with the idea of allowing people to post to their blog using email. I jumped at the chance and after a few months of part-time tinkering and a shock exposure to MIME, out came Post by Email and an introduction to the vagaries of spam.

Today marks my first day working full-time as a ‘code wrangler’ for Automattic. As a prelude to this the past three weeks have been spent manning the support desk at, which has been enormously useful in learning how works.

Suffice to say that I’m very excited about what’s coming up, and I’m looking forward to working with the rest of the team. There’s a whole bunch of good stuff going on and after having spent four years using WordPress, writing about WordPress, and developing more than a few plugins for WordPress, I can’t wait to get stuck in.

Guangzhou Theme – WordPress and bbPress

So finally, after an extended development period and many people asking ‘are you ever releasing it’, I’ve released the theme files for the Guangzhou WordPress and bbPress theme.

As I say elsewhere:

Guangzhou is a two-column fixed width theme for both WordPress and bbPress. It is highly configurable, with two widget areas (sidebar and bottom), as well as customisable skins and many other options. It supports threaded and paged comments, making for very flexible discussion pages, as well as separating pings and trackbacks from comments – essential to keep the flow of conversation consistent.

Guangzhou has been in use on this site for over a year now and drives the appearance of both the main website and support forum. One of the main reasons for selecting bbPress for the forum was it’s integration with WordPress, and this theme brings this even closer.

I even took some extra time to make a short video:

Note that this theme requires WordPress 2.8 or bbPress 1.0

Redirection 2.1.15 – New Ajax and Japanese

Although lacking in new features, this release includes a rewrite of the administration Ajax to use the WordPress provided admin-ajax functions, as well as moving all JavaScript fully into the jQuery world. Hopefully this will solve any issues caused by strange server setups.

In addition, a Japanese translation has been provided by Naoko McCracken.

A Case of a Weak Escape

All of my plugins should now be WordPress 2.8 compatible. For the majority of them the only issues involved were based on the use of the WordPress SQL escaping function. Previously I was calling this statically:


A bad habit I probably picked up from somewhere back in the WordPress 1.5 days that has stuck around. In WordPress 2.8 this function no longer works statically. The simple fix is to change it into:


I’ve mentioned this here in case it’s useful to anyone else experiencing a PHP error along the lines of:

Call to undefined method _weak_escape()

A preferable change will be to make use of the new SQL prepare functions: Data Validation.

In other plugin news I’ve add a Geo IP locator service to this site, which is now used internally in my plugins for mapping an IP address to a location. Quite a fun excerise, and one less reliance on external services (which have a tendency to change without you noticing).

All About Email

I’ve been doing a bit of work recently for Automattic, culminating in Post by Email. If you’ve not seen it yet it’s a nifty way of publishing a post to by sending an email. Text and attachments are all converted into a WordPress post, and everything works just as if you’d typed it into a browser. All told a very quick and simple way of publishing and it’s been a lot of fun (and frustration) to develop.

Talking of which, the pace of development at Automattic is really quite astonishing and there’s a lot of very exciting stuff going on. From a technical point of view I never realised just how deep the rabbit hole goes. From a user’s point of view this is exactly how it should be.

Guangzhou Theme

I’ve had a lot of queries about the theme I’m using on this site and I’ve so far answered that it’s a work-in-development and not quite ready yet. I’ve finally spent some time cleaning it up and before making it publicly available I thought it wise to give it a quick testing cycle. As such, if anyone wants to beta test the Guangzhou theme then drop me a line and I’ll send it on over.

The theme requires WordPress 2.7 or 2.8, and there’s sister theme for bbPress 1.0 (alpha). You will also need a login to this site so I can give you access to the private bug tracker. While the theme has been in use for the better part of year it has been targeted at my own requirements and I’m sure that there will be some changes needed to open it up. Saying that, it is very customisable and allows very tight integration between WordPress and bbPress, as well as Sniplets. It’s fully localised, and if you use a plugin like WP Minify then it will also seamlessly allow you to reduce CSS and JavaScript overheads to a minimum.