Was that the most expensive piece of fanwank ever?
surprisedWas that the most expensive piece of fanwank ever?
surprisedVia a few people but most immediately
uninvitedcat.
The Big Read reckons that the average adult has only read 6 of the top 100 books they’ve printed.
ObHTML: I managed to resist the temptation to add <cite> tags to every title. If I had an editor open with better RegEx support…
thoughtfulOn 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.
chipperBetter late than never, what did I make of @media last week?
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?
frustrated1 pack of Star Wars Force Unleashed collectible miniatures from Forbidden Planet, @ £14.99
2 issues of Wargamesd Illustrated, @ £4.00 each
1 issue of Wargames Soldiers and Strategy, @ £3.95
Brontosaurus Rex RPG from eBay, @ £9.99 lost in post, money refunded by seller
Total: £26.94