What happened to not being evil…

This content is 17 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

A few weeks back, I saw the number of browser visits to this site drop dramatically overnight whilst RSS subscriptions remained constant. Thankfully, traffic is now back up to the previous levels and there could be many reasons for this but I have to suspect it’s down to Google’s latest round of cat and mouse with the SEOs.

Webstats for the last few weeks, showing a sharp dip and return to normal and last year's numbers for comparison.

markwilson.it is not a big-shot technology website – just the blog of a guy who works in IT, writes down what he learns, and publishes it for others to read. I don’t charge for that content, largely because I don’t think anyone would pay for it but also because I don’t think that to do so would fit with the spirit of the Internet. I like it when I meet people that read my blog. And I like it when I write something and someone gives something back, like a comment that says it helped them, or that they have something to add to the story. I like it when I find myself in conversation with the public relations agencies of some of the world’s largest IT companies. I also like that the advertising revenues, though still small, have been enough to cover my hosting costs and maybe buy me the odd gadget. Or at least they did until Google made its latest round of changes.

Google is trying to penalise paid links and, at the time of writing, I have a few (clearly marked under the heading of sponsors). There’s nothing wrong with what Google is doing (trying to increase the quality of the results in its index) but it’s the way they do it. I sell advertising here because I need to (somehow) monetise this site (although if I convert that into an hourly wage rate, I’m sure it will make me cry). Ironically, it seems to be OK to carry Google’s paid ads but not anybody else’s – even if they are relevant.

Prominent Google blogger, Matt Cutts, said (in 2005) that:

“Reputable sites that sell links won’t have their search engine rankings or PageRank penalized […] However, link-selling sites can lose their ability to give reputation (e.g. PageRank and anchortext).”

That’s fair enough. It seems that I can take some revenue from selling links but it won’t help the sites that I link to gain PageRank; however, if the paid links are relevant, there is a chance that people reading my site will click through to them and everyone’s a winner. Except that now that seems to have changed and selling links can hurt Google rankings. For what it’s worth, I have a disclosure notice and the advertising, sponsorship and other forms of compensation received do not influence the editorial content on this site. I also use rel="nofollow" tags where relevant to ensure that I follow Google’s directions (although I acknowledge the contribution that comments make to the blogosphere by removing the rel="nofollow" as appropriate). And after two months of tweaking links to fit Google’s model, this week my biggest sponsor ended our contract prematurely because they are dropping this form of advertising altogether.

Thanks for nothing Google. Cutts may be right when he asserts that:

“[…] Google has the right to do whatever we think is best (in our index, algorithms, or scoring) to return relevant results.”

but now they are hitting the small guys too. I can’t rely on AdSense alone. It varies too wildly (and has been declining in recent months, suggesting to me that people are spending less on Internet advertising – probably a reflection on the state of various western economies) and now you’ve started to hit the only form of regular income that this site has. What happened to the “don’t be evil” corporate motto?

I will continue to blog about things I find interesting. Maybe some other people will find it interesting too. Perhaps they will link back here and maybe the number of visitors will start to climb again as I gradually increase my placement in the Google index (however I look at things, I’m still 34.95% up on unique visits so far this month, compared to the same period last year, 47.71% up in pageviews with average pageviews and time on site also on the up, and a falling bouncerate – so the metrics all look good, it’s just the financials that are suffering). Until then, I guess I won’t be buying the MacBook Pro that I’ve had my eye on for so long.

Outsourcing syndicated content from WordPress to Feedburner without losing readers

This content is 18 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Earlier, I wrote about some of the measures I’ve taken to reduce the bandwidth usage of this site, one of which is outsourcing the RSS feeds to FeedBurner (i.e. put them on Google’s bandwidth bill!).

The new feed location for syndicated content using either RSS or Atom is http://feeds.markwilson.co.uk/marksweblog/.

Hopefully, I’ve done everything that I need to to make sure that no-one has to make any changes in their feedreader – yesterday’s 176% growth in subscribers (according to the Feedburner stats, which are now picking up the traffic that was previously split across multiple feeds) certainly suggests that it’s all working!

FeedBurner FeedStats showing significant increase after consolidation of feeds

If all you want is the new address then there’s no need to read on; however as this is a technical blog, I thought that some people might be interested in how this all works.

Firstly, the feeds from the old Blogger version of this site (http://www.markwilson.co.uk/blog/atom.xml and http://www.markwilson.co.uk/blog/rss.xml) have permanent redirects (HTTP 301) in my .htaccess file to redirect clients to the equivalent WordPress locations. This has been working since the migration to WordPress back in March.

I’ve had a FeedBurner feed at http://www.feedburner.com/marksweblog/ for a few years now and this remains in place. It’s using FeedBurner’s SmartFeed technology to translates the feed on-the-fly into a format (RSS or Atom) compatible with the visiting client. Since FeedBurner have made their MyBrand service free, I’ve set up feeds.markwilson.co.uk as a DNS CNAME record, pointing to feeds.feedburner.com so basically http://www.feedburner.com/marksweblog/ and http://feeds.markwilson.co.uk/marksweblog/ are interchangeable (although there is no guarantee that I will always use FeedBurner, so the http://feeds.markwilson.co.uk/marksweblog/ address is preferable).

Because I needed to make sure that anyone using the standard WordPress feed locations listed below would be redirected to the new feed, I used the FeedBurner FeedSmith WordPress plugin to redirect readers to http://feeds.markwilson.co.uk/marksweblog/ from any of the following:

http://www.markwilson.co.uk/blog/feed/
http://www.markwilson.co.uk/blog/feed/atom/
http://www.markwilson.co.uk/blog/feed/rdf/
http://www.markwilson.co.uk/blog/feed/rss/
http://www.markwilson.co.uk/blog/feed/rss2/

For the time being, the per-post comment feeds are unchanged (very few people use them anyway).

The really smart thing that FeedSmith does is to redirect most clients to FeedBurner except if the user agent indicates that the request is from FeedBurner, in which case access is provided to the syndicated content from WordPress. This is shown in the extracts below from the logs offered by my hosting provider:

HTTP 307 (temporary redirect)

This request (from an Internet Explorer 7 client) receives a temporary redirect (HTTP 307) as can be seen in the results from the SEO Consultants check server headers tool:

SEO Consultants Directory Check Server Headers – Single URI Results
Current Date and Time: 2007-09-13T15:22:18-0700
User IP Address:
ipaddress

#1 Server Response: http://www.markwilson.co.uk/blog/feed/
HTTP Status Code: HTTP/1.1 307 Temporary Redirect

Date: Thu, 13 Sep 2007 22:22:03 GMT
Server: Apache/1.3.37 (Unix) mod_fastcgi/2.4.2 mod_auth_passthrough/1.8 mod_log_bytes/1.2 mod_bwlimited/1.4 PHP/4.4.7 FrontPage/5.0.2.2635.SR1.2 mod_ssl/2.8.28 OpenSSL/0.9.7e
X-Powered-By: PHP/4.4.7
Set-Cookie: bb2_screener_=1189722124+216.154.235.143; path=/blog/
X-Pingback: http://www.markwilson.co.uk/blog/xmlrpc.php
Last-Modified: Thu, 13 Sep 2007 21:40:23 GMT
ETag: “d7e58019e9dbb9623c54b0721b0e1f3c”
Location: http://feeds.markwilson.co.uk/marksweblog
Connection: close
Content-Type: text/html

HTTP 200 (OK)

Meanwhile FeedBurner receives an OK (HTTP 200) response and is served the full feed. The advantage to me is that each visitor who receives a redirect is served just 38 bytes from this website whereas the full feed (which varies in length according to the blog content) is considerably heavier (over 17KB based on the example above).

So far the most visible advantage to me is that I’ve consolidated all syndication into a single feed, upon which I have a variety of services running (or available). The as yet unseen advantage is the consequential reduction in the bandwidth taken up with syndicated content – with some feedreaders polling the feed several times a day, that should be a considerable saving.

Mark’s (we)Blog 2.0

This content is 18 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Just under six months ago, I changed hosting providers and moved this blog from Blogger to WordPress. Ever since then it’s been tagged as Mark’s (we)Blog [v2.0β] but the time has come to remove the beta tag… after all I’m just one bloke doing this in his (limited) spare time so things are unlikely to ever be “finished” to the standard I would like!

So, after a few months of running the site on WordPress, were my initial impressions valid? Was it all worth it?

Yes, I think. It’s been hard work getting everything working the way I like it – I’ve had to edit every single post, categorising them and correcting markup issues (my own fault for not writing decent XHTML in the first place, although in the case of embedded video clips I’ve actually had to regress to a non-compliant solution).

Then, as I’ve edited every post there have been hundreds of pingback comments to approve (remembering to update the date and time on the comment to match when the post was originally published).

Editing the template to suit my needs has been great fun (and has really helped bring on my CSS skills) – Andreas Viklund (who wrote the original template) was very helpful in providing me with his original photograph so that I could produce a larger version (with help from my friend Alex) after I increased the width of the content. Alex also helped me out with a cell spacing issue on the few occasions where I used tables (in a semantically correct manner) with a little-known piece of CSS (border-collapse: collapse;).

One of the great things about WordPress is the extensibility of the platform – there are hundreds of plugins available and it’s these plugins that have allowed me to extend the functionality of the site, adding features such as external link highlighting, category tagging and control over meta tags (although I have stopped using others, such as Adsense-Deluxe as I found I could achieve the same result by editing my WordPress template) – at the time of writing, this is the list of plugins that I’m using:

There were also some other sites that provided advice/material for the site’s development (but not plugins):

There’s also really good support documentation for implementing code changes such as conditional tags (e.g. to allow sponsors’ advertisements to only appear on certain pages); however getting meaningful responses on the WordPress support forums can be pretty sporadic.

Of course, there is a downside to running on a self-hosted platform (cf. WordPress.com, Blogger, etc.) – I need to patch the software myself. Luckily, my web hosting provider uses the Fantastico system for installing popular applications (including WordPress) and I can use that to apply updates too (although even Fantastico is not immune from some issues… as I found when I upgraded to WordPress 2.2 – more on that in a moment).

I’ve also learnt some tricks along the way and I think it’s only fair that I post them here:

  • Firstly, after importing a large number of posts, I wanted to change the author. I can’t do that in bulk from within WordPress; however I did find a reference to using PHPMyadmin to run a SQL query and change the author for all posts on the database matching certain criteria – the query I ran in the SQL tab was UPDATE wp_posts SET wp_posts.post_author = "2" WHERE (((wp_posts.post_author)="1"));, where “2” is the ID of the new author and “1” is the ID of the current author.
  • Another day, after making a mistake editing the comment submission code, I found that all of the new comments were being attached to one post. I needed to move the comments to the correct posts by browsing the wp_comments table and editing the corresponding comment_post_id.
  • I also wanted to display the allowed (X)HTML for comments and didn’t know the correct function call (it’s <?php echo allowed_tags(); ?>), then, to change the tags that are allowed, I needed to edit the kses.php file (and will need to keep that updated after WordPress upgrades).
  • I’ve also found that, although I had my permalink structure set to /%year%/%monthnum%/%postname%.htm in order to maintain the links from the old (Blogger) site, the postname is defined by the slug and the slug must be unique for the entire site, so some posts have had -2 added to the end of their name (I used .htaccess redirects to manage this but didn’t spot the changes until after Googlebot had reported the links as not found).

It’s not all been plain sailing though.

  • For example, I found that not all of my comments had been transferred from the old site and had to copy and paste the missing ones manually, then go back and edit the author details, date and time. Then, there was a period of about a month when I couldn’t generate pingbacks (nor could certain friends leave a comment) – it turned out to be caused by a single comment which was accidentally dated in the future and once that was changed everything jumped into life.
  • Then, there is the blog spam, thankfully handled pretty well by Akismet although I no longer have time to check for false positives.
  • The built-in WordPress search function does not seem to work as well as the Google Search facility that I provided on the old site. I hoped that adding the full text search for the related posts plugin (ALTER TABLE `wp_posts` ADD FULLTEXT `post_related` (`post_name` ,`post_content`)) would improve this but it doesn’t seem to have helped.
  • Also, after the WordPress 2.2 upgrade, I noticed that characters like the UK currency symbol (£) were appearing as odd characters – a simple edit to the wp-config.php fixed that issue (commenting out define('DB_CHARSET', 'utf8'); and define('DB_COLLATE', '');) – further explanation of this fix can be found at My Digital Life although I haven’t been brave enough to convert the character set and collation yet.

I got there in the end – all the posts have categories assigned and I’m pretty sure that most of the CSS bugs are fixed now so am glad to say that the site is out of beta. Out of beta – but never finished!

So, that’s v2.0 but what next? Well, there are a few bugs that I’ve not yet fixed:

  • The print stylesheet does not work consistently across browsers
  • Some graphics are wider than the main content column and need to be resized.
  • External link identification is not accurate with .co.uk sites (and Internet Explorer places the external link icon in the wrong place)
  • Some graphics used for tracking page impressions (for advertisements) need to be removed.

I may also provide options for alternative themes (I particularly like Dean Robinson’s redoable theme), I’d like to sort out the poor searching, there are some accessibility and user experience enhancements that I’d like to implement and I’m bound to spot more snazzy plug-ins to add to the site. I’d like to use my own photos in the masthead and I also need to do some code optimisation as the page load times are a bit high and my bandwidth usage is rising faster than planned (more visitors are a good thing and ascomi are always happy to help out when I get close to my bandwidth limit but I’d like to bring it back under control).

I always like to hear from people who use the site – feel free to contact me and suggest enhancements, or to provide feedback/bug reports on the site.

Now, if only I could think of a better name than Mark’s (we)Blog (which was only ever intended as a working title and more than three years later it still hasn’t been replaced)! Any ideas? How about “Confessions of an infrastructure architect: echo $HEAD > dev/web”?

Spreading some link love

This content is 18 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

The rel="nofollow" attribute on HTML anchors was supposed to help prevent comment spam. Unfortunately, as Michael Hampton explains at length, NoFollow hasn’t worked – at least not based on the volume of comment spam that Akismet has removed since I moved to WordPress ([[akismet_counter]] spam comments detected as you read this post).

U comment.  I follow.Randa Clay has created an alternative – the I Follow Movement – sites that acknowledge the contribution that commenting makes to the blogoshere (avoiding the need to specifically add links to a blogroll in order to spread some link love). I figure that if NoFollow is not preventing comment spam, the least I can do is let the information people leave here in comments work for them in the search engines (at the risk that a few spam comments will still make it through).

Following Owen’s example, I’ve implemented the DoFollow WordPress plug-in on this site so URLs in comments will now (hopefully) be picked up by the Googlebot, Slurp, MSNbot, Teoma and others. Incidentally, if I specifically add rel="nofollow" to a link, it still works – so it’s still possible to block links that you really don’t want the bots to follow (robots.txt directives are unaffected too).

So, please, comment away – and consider doing the same on your site.

Bye bye Blogger – Hello WordPress!

This content is 18 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Regular visitors to this site may have noticed that over the last 24 hours, the site has developed a totally different look and feel.

I will start posting content that isn’t about the redevelopment of this site again soon but the last couple of weeks have been pretty tough on the self-hosted IT front. First I started to have problems with e-mail delivery to certain hosts, then I accidentally dropped my domain off the Internet and at the same time, I’ve been busy moving this website to a new content management system and hosting provider.

For some time now, I’ve been working on rewriting the site using (semantically correct) XHTML and CSS but my lack of design skills (combined with a lack of spare time) were holding the project back. Ironically, it was my decision to dump Blogger as a content management system (a not insubstantial project in its own right) that has pulled everything together.

WordPress logoI’ve heard a lot of good things about WordPress, which is available as a hosted service or as software to run on a server under your own control, and I’ve chosen the latter option. In fact, over the last couple of weeks, the whole site has been migrated to a WordPress installation on ascomi‘s webspace.

It’s quite strange – most of the technology on which I’ve built my career is from Microsoft – yet I’m writing this post on a Mac and publishing it on a site which uses the Linux-Apache-MySQL-PHP (LAMP) software stack (actually, the server is running FreeBSD, so it’s really FAMP but that’s just being pedantic).

I had originally planned to run the old and new sites in parallel until all the issues were ironed out, but in practice it’s not been that straightforward as I tried to maintain the URL structure. Late last night I cut everything across to the new site but like so much on the ‘net today, Mark’s (we)Blog 2.0 is in beta!

So, why’s it been so complex? Well, so far, this is what I’ve done:

  1. Order new hosting space and upload the content from old website.
  2. Transfer/register all domain names and direct them to the new hosting provider’s name servers.
  3. Edit .htaccess to rewrite requests from secondary domain names (or without the www. prefix) to http://www.markwilson.co.uk/.
  4. Install and configure WordPress – pretty straightforward with a Fantastico scripted installation.
  5. Customise WordPress – pick a template (Andreas Viklund’s WP-Andreas01), install and activate plug-ins (WP Suicide, New Blogger Import).
  6. Commit WordPress Suicide, in the process wiping out default posts etc. but leaving behind users, user metadata and options.
  7. Migrate Blogger content to WordPress, maintaining the existing URL structure – this was the bit that scared me most and actually it was really simple (hosted WordPress users can also directly import from Blogger). First of all I needed to switch Blogger over to host my blog at Google (BlogSpot) – as all the previously-published content was still available on my server then users would not have seen any change. Next, I used the New Blogger Import plugin to suck over 700 posts and 600 comments out of BlogSpot and into WordPress. I had an issue with the formatting of the URLs but Ady Romantika very kindly updated his script for me and the updated version ran very smoothly (a couple of posts were missed but I found them from an XML sitemap generator broken links report and migrated them manually). It’s worth noting that Ady’s script also leaves the Blogger post ID as a comment in each migrated post. Once migrated, I switched Blogger back to FTP publishing and ran the old and new sites in parallel for a short time but found that to be too much work and have since removed the Blogger site from the server (an archived version of the old site will remain in place for a few weeks at least).
  8. Install and activate the Category Tagging plugin. Start to assign categories to posts and create a new post, which removed the PHP error messages that originally appeared (Warning: array_keys(): The first argument should be an array in /usr/home/username/public_html/blog/wp-content/plugins/category-tagging.php on line 95 and Warning: Invalid argument supplied for foreach() in /usr/home/username/public_html/blog/wp-content/plugins/category-tagging.php on line 96).
  9. Make more template formatting changes; deactivate WP Suicide and New Blogger Import; install and activate Fancy Archives and AdSense Deluxe; register for a WordPress API key and activate Akismet.
  10. Create new pages to replace the non-blog content from the old site (and redirect requests using .htaccess).
  11. Remove the old content and generate a new XML sitemap.

Looking back, it’s odd that one of the things holding back the redevelopment of the original site was the lack of a good design – as it happens the WordPress template that I chose is also available as a standard website template and there are loads of good-looking templates at freecsstemplates.org and at Open Source Web Design.

At the moment I’m still adding categories and tweaking the formatting (there are some CSS glitches to iron out – hence the beta tag) but I’m hoping that within a few weeks the site will be pretty much there. I also plan to go back through the template code and implement some of the CSS tips that I’ve been picking up from the old .net magazines that Alex gave me as well as two excellent books:

If all goes to plan, subscribers shouldn’t have to change any settings, the URLs for the content should be preserved, the quality of the content should improve and my search engine placement should be maintained.

Oops! Dropped off the ‘net for a while…

This content is 18 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

No sooner had I blogged about the smooth transfer of my domain name to a new registration agent when my website dropped off the ‘net for a day or so. I had naively thought that, if I left the domain using the old name servers for a while, everything would work as it had done previously until I was ready to launch the new site – I hadn’t reckoned on my old hosting provider removing their DNS entries for the domain, leaving all my visitors with HTTP status code 404 – not found.

As soon as I noticed, I uploaded the old site to my new server and updated the name server records for the domain but, for the time it took to propagate that update, www.markwilson.co.uk was effectively offline.

Sorry. My mistake.

Bye bye Blogger?

This content is 18 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Recently, I’ve written a couple of posts which hinted at the problems I’ve been having since I was involuntarily upgraded to Blogger‘s new platform and tonight was the final straw. For a while now, I’ve wanted to implement a category system for posts and a couple of months back I did actually start to tag my posts at del.icio.us in preparation for following Peter Chen’s advice for creating Blogger categories.

Unfortunately, the delicious2Blogger (D2B) method does not work with the new Blogger and to implement Blogger’s label system (in order to put a tag cloud on the site using phydeaux3’s label cloud code) I’ll need to upgrade my “classic template” to a “layout”. The problem is, that layouts are not supported for externally hosted sites that are published using FTP (like mine), so I’ll be stuck with my existing template, which has been broken since the upgrade.

Seeing as Blogger seems to be so full of limitations and I’m in the middle of a site redesign anyway, I’m seriously considering a move to a WordPress-based site – as long as I can preserve all the links and comments. I’ve also been having some issues with my hosting provider (and the fact that they have recently been bought by BT doesn’t fill me with joy either) so I’m probably going to move away from them too.

I’ll be trying to minimise the impact on blog readers and hope to maintain the domain name and all the links, but please bear with me if there are a couple of hiccups along the way.

Apologies to subscribers on the RSS/Atom feeds

This content is 18 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Blogger logoAnyone who views this blog using the Atom or RSS XML feeds has probably noticed old posts coming back into the feed this week. It seems that after forcing me to upgrade from plain old Blogger to “new” Blogger (out of beta), Blogger now updates my feeds whenever a post is updated (e.g. if someone adds a comment), rather than when it is published. So far, I haven’t found a way to control this so for the time being, all I can do is apologise (I’ve been talking about moving over to WordPress for a while now… maybe this will be the catalyst although, to be honest, I’m a bit busy with the site redesign, among other things).

Whilst I’m writing this, I might was well point out that there seems to be a new RSS 2.0 feed available directly at the site (the old one was via Feedburner). I’m not sure how it got there (I haven’t found a corresponding option in Blogger) and I haven’t turned off the Feedburner RSS feed but you may want to switch existing RSS subscriptions to the new URL (http://www.markwilson.co.uk/blog/rss.xml). For Atom subscribers there’s no change (it’s still at http://www.markwilson.co.uk/blog/atom.xml) – Blogger has always supported Atom.

I’m still working out how to use the new features (it seems that a lot of the Blogger help content still relates to the old system) but I do plan to provide comments feeds (site-wide and per-post) as well as post labels (but with over 700 posts to go back and label that might take a while). In the meantime, please bear with me.

More blog spam

This content is 18 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

A few months back I had to enable comment moderation on this site to deal with the blog spam I was getting. Unfortunately, over the last few days I’ve had to delete hundreds of spam comments sent to my e-mail for moderation so, with regret, I’ve had to turn on word verification to make sure that comments are only left by humans.

Please continue to leave comments on the blog – it’s always nice to hear when something was useful, or when someone has some additional information relating to one of my posts. I’m just sorry that I have to put these blocks in to make it harder for the ‘bots – unfortunately it also makes it harder for people to leave genuine comments too.

New bookmarking links

This content is 19 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

This blog is overdue for redesign, but I barely have time to write posts at the moment so a new layout (using improved CSS and standards-compliant XHTML) will be a while coming yet; however I have been tinkering a little bit with the template and I just added bookmark links on the bottom of each post.

The trouble with social bookmarking sites and customised start pages is that there are so many of them – I used start.com (now renamed Windows Live) for a while, I have a Google personalised home page (that I don’t really use) and last night I had a play around with Protopage.

3spots has provided icons and details for over a hundred bookmark buttons but for now I’ve just put in del.icio.us del.icio.us, Digg Digg, Google Google Bookmarks, Technorati Technorati Favorites, Windows Windows Live and Yahoo Yahoo MyWeb.

Note that the 3spots site uses a Creative Commons attribution non-commercial sharealike licence and, even though I haven’t got around to switching this site over to Creative Commons yet, any reuse of the del.icio.us, Google, Technorati, Windows and Yahoo icons above is subject to the same terms (I got the Digg one from Digg).

It looks a bit messy right now so I may adjust the layout slightly over time but please let me know if there is another one that you’d really like to see and, if there is enough interest, I’ll add it.

Finally, if I write something that you think might be interesting to others, please click on the Digg Digg It! link.