Thursday, July 7, 2011

Divide by Cucumber

Shades of DiscWorld, visiting stuff today and saw this, who knew the techies at stuff had a sense of humour. see the text under the image

The original Link is here

 Of course from what i understand the error message should read

+++ Divide By Cucumber Error. Please Reinstall Universe And Reboot +++

but then again that would probably frighten the conspiracy theorists.

Monday, May 16, 2011

Anyone else watching TED

I finally went on to the TED site

Fascinating video by Arvind Gupta, on making toys out of junk

His little story at the end is good to

Thursday, March 24, 2011

Genetic tests pending...

The downside to homebirths, is that you can't pretend that you were given the wrong children. No matter how much you want to imagine the misbehaving little troglodytes aren't yours, you just know they are.

I blame their mothers side of the family for the naughty genetics.

Anyway it all began on  Tuesday, Alex stuffed a gold bead up his nose, despite having been told a gazillion time not to stuff things in his various orifices, anyway we tried everything to get it out, to no avail, so i loaded him in the courtesy car (did i mention our car dropped dead the previous week)and took him to the local doctors, Lottie had to stay home and screamed her lungs out as she wanted to go too. Once we got to the doctors he was seen extremely quickly, after trying various scary looking tweezers (big and scary Alex looked terrified, that'll teach him) the doctor disappeared for 10 minutes, then came back with tweezers with a big spike on the end (excellent), and see if this doesn't work he'll need to go to Waikato hospital and have it taken out under sedation, (oh bugger), thankfully it worked and the bead got put straight in the bin, so Alex didn't get any ideas.

Fast forward to Wednesday, Lottie stuck a big pile of sellotape up her nose, and we tried everything to get it out, but to no avail, but as it didn't seem to be causing a prob and it was later before we noticed (not to mention I was a touch embarrased to have to take a second kid in to th docs with something wedged up their nose), we left it and waited for the next day. Thursday Shar finds a new pair of tweezers and within about 10 mins we have the sellotape out.

I am hoping the genetic test come soon.

Thursday, March 17, 2011

Sweeter than a cookie

Was entertaining the sprogs on youtube, and i have had this song stuck in my head for weeks.

I have been singing the chorus while shopping, and getting some odd looks.

Wednesday, March 16, 2011

Image Handler and Internet Explorer 9

Edited 17 March to remove testing code - Thanks Steve.

Image Handler is a zencart plugin for those who don't know

IE9 was released recently and is an improvement in all ways.

Unfortunately though IE9 breaks Image Handlers javascript hover function, once the page is fully loaded the hover doesn't work correctly although it works in every other browser and in IE9s compatibility mode.

Anyway i have fixed it, the below is a replacement Image Handlers javascript file, if your js file is version 4.2 or older it needs replacing.

How to use the code

Open your

zencart -> Includes -> templates -> your template -> jscript
jscript_imagehover.js file

Delete all the code in that file, then paste the code below into that file and upload
Simple Image Trail script- By
Visit for this script and more
This notice must stay intact

Simple Image Trail script- By was originally modified by Tim Kroeger ( 
for use with Image Handler 2 and better cross browser functionality

Later the Simple Image Trail script- By was further modified by in an attempt to  fix ie 6 issues see zencart forum IH2 thread
for detials

Image Handler Jscript
Version 4.3
Modified by Nigel Thomson ( 12 June 2010
This  modified version of the Simple Image Trail script- By (4.1) brings in Opera 
support, and fixes the webkit (Safari and Chrome) Bugs
Fix for horizontalscrollbar added 23 june 2010
Fix for IE9 added 16 March 2011

var offsetfrommouse=[10,10]; //image x,y offsets from cursor position in pixels. Enter 0,0 for no offset
var displayduration=0; //duration in seconds image should remain visible. 0 for always.
var currentimageheight = 400;    // maximum image size.
var padding=10; // padding must by larger than specified div padding in stylessheet

// Global variables for sizes of hoverimg
// Defined in "showtrail()", used in "followmouse()"
var zoomimg_w=0;
var zoomimg_h=0;
var vpos;
//Detect IE
var stIsIE = /*@cc_on!@*/false;
//detect opera
var isOpera =
// Detect Webkit browsers
var isWebKit =
navigator.userAgent.indexOf("AppleWebKit") > -1;

if (document.getElementById || document.all){
document.write('<div id="trailimageid">');

function getObj(name) {
if (document.getElementById) {
this.obj = document.getElementById(name); = document.getElementById(name).style;
} else if (document.all) {
this.obj = document.all[name]; = document.all[name].style;
} else if (document.layers) {
this.obj = document.layers[name]; = document.layers[name];

function gettrail(){
return new getObj("trailimageid");

function truebody(){
if (isWebKit){
return document.body;
}else if (isOpera) {
return document.documentElement;

return (!window.opera && document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body

function showtrail(imagename,title,oriwidth,oriheight,zoomimgwidth,zoomimgheight, image, startx, starty, startw, starth){
if (zoomimgheight > 0){ currentimageheight = zoomimgheight; }
trailobj = gettrail().obj;*padding))+"px";*padding))+"px";
trailobj.setAttribute("startx", startx);
trailobj.setAttribute("starty", starty);
trailobj.setAttribute("startw", startw);
trailobj.setAttribute("starth", starth);
trailobj.setAttribute("imagename", imagename);
trailobj.setAttribute("imgtitle", title);

function hidetrail(){
trailstyle = gettrail().style;
trailstyle.visibility = "hidden";
document.onmousemove = "";
trailstyle.left = "-2000px"; = "-2000px";

function followmouse(e){

var xcoord=offsetfrommouse[0];
var ycoord=offsetfrommouse[1];
if (stIsIE){
var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth-15;
var docheight=document.all? Math.min(truebody().scrollHeight, truebody().clientHeight) : Math.min(window.innerHeight);
var docwidth=pageXOffset+window.innerWidth-15;
var docheight=Math.min(window.innerHeight);

var relativeX = null;
var relativeY = null;
if ((typeof e != "undefined") && !(stIsIE)){ // This forces IE9 to go to the else option
if ((typeof e.layerX != "undefined") && (typeof e.layerY != "undefined")) {
relativeX = e.layerX;
relativeY = e.layerY;
} else if ((typeof e.x != "undefined") && (typeof e.y != "undefined")) {
//      relativeX = e.x; // original code replaced to work with Opera
//      relativeY = e.y; // original code replaced to work with Opera
relativeX = event.offsetX;
relativeY = event.offsetX;
if (docwidth - e.pageX < zoomimg_w + (3 * padding)) {
xcoord = e.pageX - xcoord - zoomimg_w - (2 * offsetfrommouse[0]);
} else {
xcoord += e.pageX;
if (docheight - e.pageY < zoomimg_h + (2 * padding)){
ycoord += e.pageY - Math.max(0,(0 + zoomimg_h + (5 * padding) + e.pageY - docheight - truebody().scrollTop));
// returning different values for ff and (opera and webkit) - fixed 12th june 2010
} else {
ycoord += e.pageY;

} else if (typeof window.event != "undefined"){ // This works for IE

if ((typeof event.x != "undefined") && (typeof event.y != "undefined")) {
relativeX = event.x;
relativeY = event.y;
else if ((typeof event.offsetX != "undefined") && (event.offsetY != "undefined")) {
relativeX = event.offsetX;
relativeY = event.offsetY;

if (docwidth - event.clientX < zoomimg_w + (3 * padding)) {
xcoord = event.clientX - xcoord - zoomimg_w - (2 * offsetfrommouse[0]);
} else {
xcoord += truebody().scrollLeft+event.clientX;
/* event.clientY is not valid in firefox netscape or opera, but ie has to use it */
var ie_offset = -20;
if ( docheight - event.clientY < zoomimg_h + (2 * padding) ){
ycoord += event.clientY - Math.max(0,(0 + zoomimg_h + (5 * padding) - (docheight + truebody().scrollTop -event.clientY) ) );
ycoord += ie_offset + truebody().scrollTop + event.clientY - Math.max(0,(0 + zoomimg_h + (2 * padding) - (docheight - event.clientY) ) );
} else {
ycoord += ie_offset + truebody().scrollTop + event.clientY;

trail = gettrail();
startx    = trail.obj.getAttribute("startx");
starty    = trail.obj.getAttribute("starty");
startw    = trail.obj.getAttribute("startw");
starth    = trail.obj.getAttribute("starth");
imagename = trail.obj.getAttribute("imagename");
title     = trail.obj.getAttribute("imgtitle");

// calculate and set position BEFORE switching to visible
if (stIsIE){
var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth-15;
var docheight=document.all? Math.max(truebody().scrollHeight, truebody().clientHeight) : Math.max(document.body.offsetHeight, window.innerHeight);
var docwidth=pageXOffset+window.innerWidth-15;
var docheight=Math.max(document.body.offsetHeight, window.innerHeight);

if(ycoord < 0) { ycoord = ycoord*-1; }
if (( == "-2000px") || ( == "")) {"px"; }
if (( == "-2000px") || ( == "")) {"px"; }"px";"px";

if ( != "visible") {
if (((relativeX == null) || (relativeY == null)) ||
((relativeX >= startx) && (relativeX <= (startx + startw))
&& (relativeY >= starty) && (relativeY <= (starty + starth)))){
newHTML = '<div><h1>' + title + '</h1>';
newHTML = newHTML + '<img src="' + imagename + '"></div>';
trail.obj.innerHTML = newHTML;"visible";
and then save the file and upload it to your server, and IE9 should work correctly

Tuesday, January 18, 2011

4 Dumb Clucks

Ok we now have chooks, infact we have had them for a few months, and they live in Casa de Pollo, which was built by yours truly.

I really am not a DIYer as it took me a lot of time, and cost a small fortune, mind you I did buy some power tools so that bumped the cost up.

I was thinking to use it as a playarea for the kids but wifey said NO, I mean it would be a good way to get peace and quiet.

Anyway we got three chooks, Wyandottes which were 12-15 weeks old at the time, and should hopefully start laying in the next couple of weeks.
Alex named them (note they are all HENS as in girls) , and their names are Fireman Sam, Elvis and Wendy

They got joined by Flossie (a Shaver) a rescued chook that had been found roaming the streets, she's a lot older and was at some stage a caged bird as her beak show that it was clipped at some stage, she quickly became head chook, although now the Wyandottes are a good 10cm taller than here, that status is under threat.

Eggs, currently we get 1 every 2 days, so hopefully these others start laying soon, as i am starting to see roast chook with all the trimming every time i look at them, OK not really, and they'll probably all die of old age as I am too much of a sook to bump them off when they stop laying.