Archive for June, 2008

Was that the most expensive piece of fanwank ever?


The Big Read (or the BBC, depending on which source you read, but actually The Guardian) reckons that the average adult has only read 6 of the top 100 books they’ve printed.

  1. Look at the list and bold those you have read.
  2. Italicize those you intend to read.
  3. Underline the books you LOVE.
  4. Strike out the books you have no intention of ever reading, or were forced to read at school and hated.
  5. Reprint this list in your own blog so we can try and track down these people who’ve read 6 and force books upon them

  1. Pride and Prejudice – Jane Austen
  2. The Lord of the Rings – JRR Tolkien
  3. Jane Eyre – Charlotte Bronte
  4. The Harry Potter Series – JK Rowling
  5. To Kill a Mockingbird – Harper Lee
  6. The Bible
  7. Wuthering Heights – Emily Bronte
  8. Nineteen Eighty Four – George Orwell
  9. His Dark Materials – Philip Pullman
  10. Great Expectations – Charles Dickens
  11. Little Women – Louisa M Alcott
  12. Tess of the D’Urbervilles – Thomas Hardy
  13. Catch 22 – Joseph Heller
  14. Complete Works of Shakespeare
  15. Rebecca – Daphne Du Maurier
  16. The Hobbit – JRR Tolkien
  17. Birdsong – Sebastian Faulks
  18. Catcher in the Rye – JD Salinger
  19. The Time Traveller’s Wife – Audrey Niffenegger
  20. Middlemarch – George Eliot
  21. Gone With The Wind – Margaret Mitchell
  22. The Great Gatsby – F Scott Fitzgerald
  23. Bleak House – Charles Dickens
  24. War and Peace – Leo Tolstoy
  25. The Hitch Hiker’s Guide to the Galaxy – Douglas Adams
  26. Brideshead Revisited – Evelyn Waugh
  27. Crime and Punishment – Fyodor Dostoyevsky (I’ve read about a third, but a long time ago so I really should start again)
  28. Grapes of Wrath – John Steinbeck
  29. Alice in Wonderland – Lewis Carroll
  30. The Wind in the Willows – Kenneth Grahame
  31. Anna Karenina – Leo Tolstoy
  32. David Copperfield – Charles Dickens
  33. Chronicles of Narnia – CS Lewis (I’m sure I’ve read some other than TLTWATW but I’m not sure how many)
  34. Emma – Jane Austen
  35. Persuasion – Jane Austen
  36. The Lion, The Witch and The Wardrobe – CS Lewis (Why is this separate to 33?)
  37. The Kite Runner – Khaled Hosseini
  38. Captain Corelli’s Mandolin – Louis De Bernieres
  39. Memoirs of a Geisha – Arthur Golden
  40. Winnie the Pooh – AA Milne
  41. Animal Farm – George Orwell
  42. The Da Vinci Code – Dan Brown
  43. One Hundred Years of Solitude – Gabriel Garcia Marquez
  44. A Prayer for Owen Meaney – John Irving
  45. The Woman in White – Wilkie Collins
  46. Anne of Green Gables – LM Montgomery
  47. Far From The Madding Crowd – Thomas Hardy
  48. The Handmaid’s Tale – Margaret Atwood
  49. Lord of the Flies – William Golding
  50. Atonement – Ian McEwan
  51. Life of Pi – Yann Martel
  52. Dune – Frank Herbert
  53. Cold Comfort Farm – Stella Gibbons
  54. Sense and Sensibility – Jane Austen
  55. A Suitable Boy – Vikram Seth
  56. The Shadow of the Wind – Carlos Ruiz Zafon
  57. A Tale Of Two Cities – Charles Dickens
  58. Brave New World – Aldous Huxley
  59. The Curious Incident of the Dog in the Night-time – Mark Haddon
  60. Love In The Time Of Cholera – Gabriel Garcia Marquez
  61. Of Mice and Men – John Steinbeck
  62. Lolita – Vladimir Nabokov
  63. The Secret History – Donna Tartt
  64. The Lovely Bones – Alice Sebold
  65. Count of Monte Cristo – Alexandre Dumas
  66. On The Road – Jack Kerouac
  67. Jude the Obscure – Thomas Hardy
  68. Bridget Jones’s Diary – Helen Fielding
  69. Midnight’s Children – Salman Rushdie
  70. Moby Dick – Herman Melville
  71. Oliver Twist – Charles Dickens
  72. Dracula – Bram Stoker
  73. The Secret Garden – Frances Hodgson Burnett
  74. Notes From A Small Island – Bill Bryson
  75. Ulysses – James Joyce
  76. The Bell Jar – Sylvia Plath
  77. Swallows and Amazons – Arthur Ransome
  78. Germinal – Emile Zola
  79. Vanity Fair – William Makepeace Thackeray
  80. Possession – AS Byatt
  81. A Christmas Carol – Charles Dickens
  82. Cloud Atlas – David Mitchell
  83. The Color Purple – Alice Walker
  84. The Remains of the Day – Kazuo Ishiguro
  85. Madame Bovary – Gustave Flaubert
  86. A Fine Balance – Rohinton Mistry
  87. Charlotte’s Web – EB White
  88. The Five People You Meet In Heaven – Mitch Albom
  89. Adventures of Sherlock Holmes – Sir Arthur Conan Doyle
  90. The Faraway Tree Collection – Enid Blyton
  91. Heart of Darkness – Joseph Conrad
  92. The Little Prince – Antoine De Saint-Exupery
  93. The Wasp Factory – Iain Banks
  94. Watership Down – Richard Adams
  95. A Confederacy of Dunces – John Kennedy Toole
  96. A Town Like Alice – Nevil Shute
  97. The Three Musketeers – Alexandre Dumas
  98. Hamlet – William Shakespeare
  99. Charlie and the Chocolate Factory – Roald Dahl
  100. Les Miserables – Victor Hugo

ObHTML: I managed to resist the temptation to add <cite> tags to every title. If I had an editor open with better RegEx support…


On the dino pages I’ve updated the lists to include the latest releases from Fenryll, some very old Metal Magic caveman now available via Mega Minis and a general update of the Jeff Valent listings.

As promised only two and half months ago I’ve now upgraded the blog to use the standard WordPress sidebar syntax which makes it much more widget-friendly. I’ve also converted what little JavaScript I was using to use jQuery as part of my ongoing learning process.

I’ve added a few new plugins to the mix: Sociable, Better Blogroll and MyTwitter.


I’ve been meaning to learn how to use a JavaScript library for some time. I first learnt JavaScript when it originally appeared in Netscape 2 and wasn’t working with it much in the years when it was knocked into shape by some proper programmers, so a library seemed to be the best short cut to more modern coding styles.

Looking at the various libraries I ranked them in order of attractiveness as jQuery > YUI > Prototype > Dojo. This was based on a first glance at file size, amount of documentation and supported features. That was over a year ago.

With jQuery in the lead it would be surprising of John Resig’s talk at @media would do much to change it my mind. But I decided to put his advice into practice and download a library and try it out. Twenty minutes after downloading jQuery I was starting to update a copy of the code used on VisitLondon.com

From this (not the greatest piece of JavaScript in the world – it was written by multiple authors in a bit of a rush – but not the worst either):

function topmenuClear() {
 var navRoot = document.getElementById("topmenu");
 for (var i=0; i<navRoot.childNodes.length; i++) {
  var node = navRoot.childNodes[i];
   if (node.nodeName=="LI") {
    node.className=node.className.replace("over", "");
    node.childNodes[0].className="";
   }
 }
}
function topmenuHover() {
 if(document.getElementById("topmenu")) {
  var navRoot = document.getElementById("topmenu");
  for (var i=0; i<navRoot.childNodes.length; i++) {
   var node = navRoot.childNodes[i];
   if (node.nodeName=="LI") {
    node.onmouseover=function() {
     clearTimeout(navTimer); topmenuClear();
     this.className+=" over";
     this.childNodes[0].className="over";
    };
    node.onmouseout=function() {
     navTimer = setTimeout(topmenuClear,2000);
    };
   }
  }
 }
}
function showlang() {
 if(document.getElementById('lang-list').style.display == "none") {
  document.getElementById('lang-list').style.display = "block";
 } else if (document.getElementById('lang-list').style.display == "block") {
  document.getElementById('lang-list').style.display = "none";
 }
}

To this:

function topmenuClear() {
 $("#topmenu > li").removeClass("over");
 $("#topmenu > li > *").removeClass("over");
}
function topmenuHover() {
 $("#topmenu > li").mouseover(function(){
  clearTimeout(navTimer); topmenuClear();
  $(this).addClass("over");
  $(this).find(":first").addClass("over");
 });
 $("#topmenu > li").mouseout(function(){
  navTimer = setTimeout(topmenuClear,2000);
 });
}
function showlang() {
 $("#lang-list").toggle();
}

Okay, so that’s probably the easiest part of our code to modify as it’s doing a very basic task – toggling visibility and adding event handlers – but it makes a dramatic difference to the complexity of the code. I’ve still got a lot of work and testing to do but I’d like to reach the point where the only JavaScript coding I have to do is implementing our functionality rather than reimplementing common functions.


@media 2008

Better late than never, what did I make of @media last week?

  • Number of talks that included LOL Cats: 1½
  • Number of talks that included Rick Rolling: 2
  • Number of talks that included comedy graphs: 2
  • Number of talks that included mention of Twitter being down all the time: I lost count, but at least 4

There are a few technical subjects (HTML 5, WAI ARIA, jQuery) that I hope to post more about later so here are a few impressions of each session:

Jeffrey Veen included some of my favourite charts in his talk (I have favourite charts/graphs/maps – what do you mean that you don’t?). Indi Young made me think that every single project I’d ever worked on had been poorly planned. Drew McLellan says “everyone hates their CMS” and he’s right. According to Stuart Langridge the fact that we use 410 responses on VisitLondon.com puts us in a very elite group. Nate Koechley explained why what I do is really very important. Richard Ishida baffled the audience with Unicode.

Good fun all round, roll on 2009.


I have a four year old Acer Aspire 1680 which yesterday refused to boot, complaining about a missing hal.dll file.

This laptop came with a system recovery disk but not a Win XP install disk.

The laptop didn’t see the system recovery disk as bootable. So no chance of repairing or reinstalling it from that.

I stuck in the Win XP disk from my desktop and went into Repair mode. This couldn’t detect any installations of Windows on the laptop. So no chance of repairing it that way either.

I installed Windows from the desktop’s disk and then stuck the laptop’s system disk in to install drivers, etc. This worked and I now have a working Windows system; but, of course, I can’t activate it as the laptop’s product code doesn’t match the desktop’s install disk. And there’s no wireless at all despite isntalling the correct drivers, and no LAN either – it always says the cable is unplugged.

Any ideas of where to go from here?

Install linux instead? How much pain will it be to find wireless drivers that work?

[Update] – Got the wireless working, and the LAN works sometimes, but the DVD drive has packed up. How useful will it be to phone MS and explain that I have two legitimate copies of XP but only one working install disk?