Add to Blogroll

We just added a new feature to the admin bar, the blue thing you see at the top of when you’re logged in.

“Add to Blogroll” does pretty much what you’d expect, it adds the blog you’re currently looking at to your blogroll. It’ll redirect you back to where you were and the link will then say “Remove from Blogroll” in case you ever change your mind.

As always, your links are available as an OPML file if you’re into that sort of thing.

Scoble Sucks (and WordPress RSS)

Not really, but I’m just trying to get in Memeorandum. ๐Ÿ˜‰ (Fortunately the trick only seems to work on Sunday nights.)

It’s never good to wake up in the morning, fire up your aggregator, and see “” and “sucks” in the same headline, but Robert Scoble has declared that our RSS feeds suck. There are a bunch of different things being talked about both in the entry and the comments, so I’ll try to address each one in order.

First Scoble comments on our use of CDATA, which is a more readable way of escaping things in XML. I actually didn’t realize what he was talking about at first, as when you load up the feed in Firefox it doesn’t even show CDATA anywhere, it hides it as any XML processor should, but when you load the feed in Internet Explorer it does indeed format the CDATA sections differently, though I don’t know why. I’m going to have to pass on this one, because CDATA has been a part of XML since I was in middle school and no one should see that anyway. If anything it’s an argument for getting a nice XSL stylesheet for our feeds like Feedburner does.

He then says something about validation, but everything seems to validate and the entry was updated to reflect that, so I guess everything is green on that front.

There seems to be some confusion about Scoble’s default RSS being full-text, which of course it is because I read it full-text inside of Bloglines. (Along with 1,000+ other subscribers to the new feed.) Where is the confusion? Probably related to the fact that WordPress puts a summary in the element and the full content into a element, and has done this for over 2 years. (That means there are hundreds of thousands if not millions of feeds that work like this.) I asked Dave if this was valid back when the whole “funky RSS” thing was going around, and his email said it was a perfectly valid use of RSS 2.0. (This also allows aggregators to show excerpts which may be hand-crafted where appropiate, for instance on a mobile phone.)

Scoble then claims we prefer Atom over RSS, which is silly because RSS 2.0 is the default in every WordPress installation in the world. If we were biased toward Atom then it would show Atom when you type in /feed/. Actually we’re probably behind on Atom because we haven’t upgrade to Atom 1.0 yet.

Before we go any further, I would like to point out that WordPress has the most comprehensive RSS support of any product I’ve seen: we produce a regular site feed, a site comments feed, a feed for every category, a comments feed for every post, a feed for every search, a feed for every month, and you can even combine and exclude categories to create a very customized category feed. All in 4+ flavors of RSS and Atom, with RSS 2.0 being the default. WordPress has Burger King feeds, you can have it your way. ๐Ÿ™‚

I suspect that two things happened, one might have been a server glitch related to the datacenter move on Friday/Saturday that caused errors in the way headers were sent. In that case I apologize and the problem has been fixed. The other confusion is probably related to aggregators that read the description element but ignore content:encoded. Now I must admit here I can’t find an aggregator that does that, and if you read the comments on Scoble’s entry it’s a bunch of people saying it works fine for them. In every aggregator I have access to — Bloglines, FeedDemon, NetNewsWire, Newsgator, Onfolio, Rojo, FeedLounge — everything works fine, but we can’t test everything so if anyone finds an aggregator it doesn’t work please let me know and I’ll look into it. Though I can fix immediately, there are still 700,000+ copies of WordPress somewhere that the aggregator developer will probably want to be compatible with.

A few people in the comments seem to be worried about Scoble being on a subdomain of, we have an FAQ about domain mapping, as soon as the feature is done it’ll be made available to Scoble and everybody. (Yes it will even redirect off of entirely.)

Finally, since we’re blogging at each other instead of talking: Scoble, I had already replied to your email on this from Saturday, don’t ambush us on a Sunday night!

I think that’s everything to do with RSS on WordPress that I can think of at the moment, but feel free to ask questions in the comments if you have any more.

Back to the Future

There was a catastrophic hard drive failure on the central database server very early this morning, Donncha was on the ball and switched all the traffic to a recent backup so most things would work while we investigated the hardware failure. This means that an old version of your site was shown for a few hours.

A few minutes ago we restored the up-to-date database and we’re currently syncing it to the backup to get back any posts you might have made during the semi-downtime. Even though we were able to recover everything, we’re looking at ways to make things even more redundant, so if this ever happens again the problems will be measure in seconds or minutes. Like I said in the last post, all of the new hardware hasn’t been brought fully online yet.

Technical details: The ext3 filesystem was badly corrupted but thanks to journalling there was no lost data.

Update: All posts have now been restored.

New Datacenter and Caching

As we announced on the dashboard, on Friday around 1 AM we moved to a new datacenter and a new set of servers. A month or so ago a similar transition didn’t go so well so we tested things very heavily before the change and thanks to the hard work of Donncha and Ryan the move went without a hitch with only a few minutes of downtime.

Since the move we’ve been watching things very closely and there have been a few hiccups with the new database machine which may have manifested itself in strange redirects every now and then, however you shouldn’t see these any more.

We’ve also been using the LiteSpeed web server with a lot of success but there was a hidden bug with the way PHP interacts with the headers that was causing problems for some user agents, we’ve put in a temporary workaround and we’re in touch with the LiteSpeed developers about a more permanent fix.

For server geeks following along at home, we’ve tripled the number of processors serving and we’ve only lit up a quarter of the hardware that’s been set up in the new datacenter, so capacity is not going to be a problem for a long time. I’ve also been coding up caching for some of the most common functions so you should notice things getting faster and faster this week.

Announcing Akismet

So for all of you who were wondering what the API keys are for, go check out Akismet, a new solution to comment spam. Of course this is just the first of several things in the oven. ๐Ÿ™‚

Of course on we’re already handling all your spam problems for you, so no need to install Akismet or similar.

To clarify, you use your API key to run Akismet on your own blog.ย 

API Keys

Savvy users of will notice something new on your profile page.

What’s it for? Time will tell. Let’s just say is going to become a lot more useful for people who already have WordPress blogs.

Cheers to Donncha for rolling this out, as I’m still mostly incapacitated right now.ย