Below are the five most recent posts in my weblog. You can also see a chronological list of all posts, dating back to 1999.

I stumbled across some information about pathological behaviour of Western Digital Green (and some Red) hard drives relating to drive-head parking when the device is idle.

In some circumstances, a particular pattern of drive activity can result in the drive head being repeatedly parked and un-parked in short intervals, possibly* resulting in excess wear on the drive. Apparently* the drive head parking is recorded in the S.M.A.R.T. "Load Cycle Count" attribute.

I have two WD Red drives in my NAS, one for live data and one for backup. The latter drive is basically unused most of the day until scheduled backup jobs kick in and those jobs are all clustered together. I already unmount the backup filesystems when the jobs are not active (I wrote about this in mount-on-demand backups).

Inspecting the S.M.A.R.T. attributes was surprising:

drive power on hours load cycle count
regular 12143 348
backup 12191 13043

It certainly looks like my backup drive has a much higher load cycle count than you might expect for a mostly-idle drive. I checked the attributes again 24 hours later and the regular drive had incremented by a single cycle, whilst the backup drive went up by 56.

There are some official tools from Western Digital that makes an adjustment to the idle timeouts for head parking on the drives. There's also an unofficial tool idle3tcl to do the same, which is packaged in Debian. The unofficial tool let you set and fetch a particular value from the drive firmware. I don't know for sure* that the official tool does exactly the same thing, and nothing else. One advantage of the unofficial tool is it lets you read the value as well as write it.

I tried the unofficial tool to get the drive's default value, which was 0x8a, and bump it to the maximum of 0xff. I then tried the official tool then fetched the value again: interestingly the official tool had reset the value back to 0x8a. I haven't managed to assess the impact of these changes on the attrition rate yet because I need to perform a cold boot for the change to take effect and that isn't convenient just now.

My plan is to try and disable the feature completely via the unofficial tool. If that rectifies the issue I will then investigate changing the power management settings by hand at backup start/end time, perhaps via hdparm.

( The problem with these kind of issues is there is precious little in the way of reliable documentation as to the real issue, real drive behaviour, etc. I've marked a few sections of this blog post with * asterisks to indicate where we are having to make informed guesses. )


My wife and I have read about minimalism. I plan to write about it.

For a while now, I've wanted to increase my frequency of blogging. I've got roughly 24 draft posts which I haven't finished writing, stretching back to at least 2009, and several other topics that I haven't even begun to write about but have something in the back of my mind which I'd like to express. I have been self-censoring to an extent for two reasons:

  • I'd been publishing my blog posts (or links to them) elsewhere, in particular on Facebook, and I felt discouraged from writing on topics that I thought would not be interesting to many of those who I am connected to on Facebook (school friends, etc.)

  • I used twitter, and expressed shorter ideas there instead.

Neither of these are good enough reasons to do so: in the case of Facebook, I make very little use of it, and if people didn't find my posts interesting they can mute me, block me or ignore them. In the case of Twitter, my interest in it as a platform has waned since they have made it increasingly difficult to interact with them as a developer. I've given up trying to archive my own tweets, and so on longer think of it as a good place to express anything in isolation.

Going forward I'm going to make an effort to ignore their influence on me.


I've written a guest post for the Yakking Blog — "A WadC successor in Haskell?. It's mainly on the topic of Haskell with WadC as a use-case for a thought experiment.

Yakking is a collaborative blog geared towards beginner software engineers that is put together by some friends of mine. I was talking to them about contributing a blog post on a completely different topic a while ago, but that has not come to fruition (there or anywhere, yet). When I wrote up the notes that formed the basis of this blog post, I realised it might be a good fit.

Take a look at some of their other posts, and if you find it interesting, subscribe!


I run some Internet services on my home Internet connection, mostly for myself but also for friends and family. The IPv4 address assigned to my home by my ISP (currently: BT Internet) is dynamic and changes from time to time. To get around this, I make use of a "dynamic dns" service: essentially, a web service that updates a hostname whenever my IP changes.

Since sometime last year I have also had an IPv6 address for my home connection: In fact, lots of them. There are more IPv6 addresses assigned to my home than there are IPv4 addresses on the entire Internet: 4,722,366,482,869,645,213,696 compared to 4,294,967,296 IPv4 addresses for the entire world (of which 3,706,452,992 are usable).

I am relatively new to IPv6 (despite having played with it on and off since around the year 2000). I was curious to find out how stable the IPv6 addresses are, compared to the IPv4 one. It turns out that it's very stable: I've had four IPv4 addresses since February this year, but my IPv6 allocation has not changed.


Older posts are available on the all posts page.