Oh Yeah, This

In case anyone thinks that this site has gone dormant, I want to quickly mention a few changes that I’ve been making behind the scenes at incrementalism.net.

Over the summer I finally got around to updating WordPress to 2.5, and later to 2.6.3, as well as updating to the latest release candidate of K2, the theme I use for this site. These changes should result in a few subtle improvments — my corners are much rounder now, and things like commenting and searching are all ajazzy. More importantly, it should keep me safe from any known security exploits in the wild.

I dressed up the site a bit further with a little favicon I made using the handy pixel editor at favicon.cc. I made a custom style for K2 with a few tweaks to the default look, and patched a couple of bugs in the theme that were preventing the markup from validating properly. I started promoting the site in a few more places, and notably added it to Planet Atlassian, which I imagine is how most of you are seeing this now.

Stats

I also got a couple of statistics tracking services up and running on the site. On the one hand, DreamHost (my hosting provider) offers analog out of the box. It’s not too pretty, but it gives me some interesting information about low-level requests, browser usage, detailed referrer information, and other nerdery. On the other hand, I’ve installed the WordPress.com Stats plugin (should I be admitting that? I hope there aren’t any known security holes…) to give me a higher-level view on popular posts and some pretty graphs of hits over time.

Unsurprisingly, my most popular post recently has been the one where I voice my support for Obama. It turns out that he’s got quite the following. What is unexpected, though, is the close second. “10 Reasons Why Being 30 is Better Than Being 20” has gotten a lot more traffic than I could ever imagine, mostly from people searching on Google for things such as “being 30″ or “good things about being thirty” or even “reasons to be 30″. It seems that I was not the only one suffering from a little bit of age-related anxiety this year. None of my other posts were even within the same order of magnitude of traffic as those two.

But, as analog revealed, most of the traffic hasn’t even been coming to blog posts at all. I first noticed something strange when I saw that my top referrers listed in analog are all myspace profiles of random teenage strangers. Then I discovered what they were all linking to:

Shepard Fairey's image of Obama

It turns out that dozens of Obama supporters across the internet have been hot-linking to my copy of Shepard Fairey’s famous image of Obama — the one that I considerately copied from the site where I originally found it instead of stealing bandwidth.

My first reaction, “I’ll show those little brats,” had me searching for instructions on how to block hot-links, or maybe even substitute a replacement image to help teach them a lesson in manners. I quickly reconsidered. I’m only using a tiny fraction of the bandwidth allowed by my hosting plan, and, besides, why should I punish a bunch of young people — who probably don’t know any better — for displaying their enthusiasm for a presidential candidate that I strongly support? So, for now, I’ve left it as is, though I’ll be keeping an eye on it, since I’m practically begging for abuse by announcing it here.

Speed

Despite the relative lack of popularity of the actual writing on the site, I did make a few performance improvements, so I should be able to handle the surge of traffic from Digg or Slashdot that is surely just around the corner.

First, I installed the wp-cache plugin. For those who haven’t heard of it, wp-cache saves WordPress the trouble of recreating pages from scratch every time someone visits one, and therefore speeds up load times significantly. It’s not the most sophisticated caching plugin available, but it is super simple and seems to work pretty well.

Next, I stripped out the Amazon Associates widget JavaScript. When I wrote an article about Nine Inch Nails late last year, I made a cheap attempt to defray my hosting costs a little bit by adding links to Amazon.com whenever I mentioned an album. As you may know, website owners can get a small kickback on purchases made by their readers by including a special identifying tag in links from their site back to items on Amazon. There are a couple of ways to generate those links. One is to go through a tedious search form on their affiliate program website. The other is to use one of a variety of JavaScript widgets, which can do everything from recommending products based on keywords in your page to displaying a gaudy spinning 3-D carousel with pictures of popular products. I didn’t want anything that intrusive, so I just used a simple widget that automatically generated the correct links for text labelled with the ASIN of an item on Amazon.com. All I had to do is include a special script tag somewhere in the post.

For this I got a result that had all of the functionality of an unadorned text link, but was much, much slower. The site that serves Amazon’s affiliate widget JavaScript files performs pathetically poorly, and it drags down any site that uses widgets with it. Even worse, the post in question was included on the front page of the site, as well as several other index pages, so it was causing nearly the whole site to load slowly. So I bucked up and went through the process of converting all of the links in that post so that I could remove the widget script. It turns out that exactly zero people have bought anything through those links anyway.

After these two changes, the load time for the home page went from six or seven seconds down to under two seconds with a completely empty cache on both the client and server, and less than half a second with a warm cache (usually around 300–400 milliseconds in my unscientific tests).

I also added “more” tags to all of my old posts, so that it only displays an excerpt on the home page and index pages, with a link to continue to the rest of the article. This was less for performance — it probably doesn’t change load times significantly — and more to make the site easier to scan. I hope this will make it more readable for people, but if not please let me know and I can change things back. One thing I worry about especially is that I think WordPress will also truncate items in the RSS feed. I generally prefer full-text feeds myself, so I’ll understand if this irks people, but then again maybe nobody will care. Let me know in the comments and if it bugs enough people I’ll try to find a workaround.

OpenID

Another change is completely invisible to most readers, but helpful for me, so I’ll share in the hope that someone else finds it useful. I set up incrementalism.net as an OpenID delegator. This means that I can log in to sites that accept OpenID using my own URL instead of my actual identity provider URL, which I always seem to forget for some reason (am I “tmoore” or “timmoore” or “timothy.moore” on that site?) I did find a WordPress plugin to do this automatically, but I found it to be clunky, a little outdated (no OpenID 2.0 support) and apparently no longer maintained. The K2 WordPress theme supports custom user functions to allow you to easily add in plugin-like functionality, so I wrote one that looks like this:

<?php
/*
    Add OpenID Delegation
    Inspired by WP-Yadis http://wordpress.org/extend/plugins/yadis/
 */
add_action('wp_head', 'insert_delegation_tags');

define('MYOPENID_USERNAME', 'tmoore');

function insert_delegation_tags() {
    if (is_home()) {
?>

    <!-- OpenID Delegation -->
    <link rel="openid.server" href="http://www.myopenid.com/server" />
    <link rel="openid.delegate" href="http://<?=MYOPENID_USERNAME?>.myopenid.com/" />
    <link rel="openid2.local_id" href="http://<?=MYOPENID_USERNAME?>.myopenid.com" />
    <link rel="openid2.provider" href="http://www.myopenid.com/server" />
    <meta http-equiv="X-XRDS-Location" content="http://www.myopenid.com/xrds?username=<?=MYOPENID_USERNAME?>.myopenid.com" />

<?php       
    }
}
?>

If you use myOpenID or another OpenID provider, feel free to adapt that for your own site. It looks like there’s now a new, more flexible plugin that has replaced WP-Yadis, but for now this does exactly what I need with no fuss.

So, What’s Missing?

One thing I haven’t been doing a lot of is writing. After my insistence that starting was the hard part, it turns out that I all too easily fell into that nerdy cliché of fiddling with the technology on the site instead of producing useful or interesting content. While I hope that this post has something of interest to readers who run their own weblogs, I’m writing it more to get back in the habit of posting. I intend to keep up a more regular schedule going forward — I won’t try to post every day, but surely I can think of something interesting to post at least once a week. Not everything will always be relevant to everyone that reads the site, since I don’t think there’s that much overlap between what my co-workers, my old DJ friends and my Mom are into, but I hope that everything will be interesting to someone, or at least fun to write.

In the past, I’ve sometimes shied away from writing personal things about my own life, but I think I’ll loosen up on that, since I think most of my readers know me personally, and it could help my writing voice sound a little less stilted. On the other hand, I’ll continue to write about technical things here, especially now that I’m becoming more visible as an Atlassian employee. So I apologize in advance if you’re bored out of your skull by half of what I write — you can use the category links on the right to focus in on the parts that you are interested in, and you can tack “/feed” onto the end of a category index URL to get a customized RSS feed.

This came out longer than I planned, but if you’re still reading, thanks and welcome to the relaunched incrementalism.net. I hope you’ll stick around!

4 comments

  1. Jess

    Howdy Tim.

    Hooray, posting! Grats on all the wordpress related things. I set up a domain for the purpose of hosting a blog w/wordpress, but realized I really don’t have allll that much to write about. So, I believe I’m going to cancel my hosting plan and instead point my domain to my tumblr.com address (which currently only really has content from my ping.fm updates, http://jofo.tumblr.com/). Simple and free, and I don’t have to worry about security updates :D.

    Second, Hooray Obama but boo for hotlinking. Joey did a neat colorization of the picture: http://flickr.com/photos/irrezolut/2901060170/ .

    That is all!

  2. Tim Moore

    Hey, Jess.

    I’ve got a Tumblr account too, at http://tmoore.tumblr.com. I use that mostly for collecting photos, videos and quotes that I find around the interwebs, and this more for long-form posts. Eventually I hope to get the Tumblr feed integrated into the sidebar of this site.

    I could probably use a hosted blog for this, but I enjoy going through the practice of running my own site, and DreamHost makes it pretty easy to install security updates.

    But I’m subscribed to your tumblr site! So you’ll have to stop talking shit about me there now. :-)

Post a comment

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>