How to add a body on load function with Javascript

This is an article on how to add a javascript function that will be run when a web page has loaded. We begin by defining a function for running after a page (or actually window) has been loaded:

function bodyOnLoad() {
  ..
  ..
}

And then we’ll do:

window.onload = bodyOnLoad;

However, we also want to make sure our setting of the load event doesn’t remove some other setting. This is done by also keeping any older events.

We store the previous on load event by doing;

var prevOnLoad = window.onload;

And we redefine our bodyOnLoad function:

function bodyOnLoad() {
  prevOnLoad();
  ..
  ..
}

However, we can make the creation of the function and the setting of the event a little bit more effective by doing:

window.onload = function() {
  prevOnLoad();

  ..
  ..
}

You still need to get prevOnLoad before you do that

This becomes even more obvious once we create a function for adding new load events:

function addLoadEvent(func) {
  var prevOnLoad = window.onload;
  window.onload = function() {
    prevOnLoad();
    func();
  }
}

In this way, we can concentrate on creating the new load event outside of the function for adding it to the window.onload.

function myEvent(){
  ..
  ..
}
addLoadEvent(myEvent);

We might even do:

addLoadEvent(
  function (){
    ..
    ..
  }
);

Notice the difference between curly braces “{}” and parenthesis “()”

Finally, we have to make sure there is a load event set for the window before calling it from the new event, so we need to check for this:

function addLoadEvent(func) {
  var prevOnLoad = window.onload;
  if (typeof prevOnLoad != 'function') {
    window.onload = func;
  }
  else {
    window.onload = function() {
      prevOnLoad();
      func();
    }
  }
}

Review: Faster, Pussycat! Kill! Kill! (1/5)

“Faster, Pussycat! Kill! Kill!” (IMDB, Amazon) is about three strippers Varla (Tura Satana), Rosie (Haji) and Billie (Lori Williams) out in the desert looking for thrills. They come across Linda (Sue Bernard) and her boyfriend Tommy (Ray Barlow). After killing Tommy, they take Linda hostage. At a nearby petrol station they are tipped off about an old, crippled man (Stuart Lancaster) living in the desert with a fortune. They decide to liberate him of his money. All they need to do is get past his two sons (Dennis Busch and Paul Trinka). However, it turns out the old man has an agenda of his own and most of the cast end up knife stabbed or hit by cars before we reach the end of the movie…

I have to admit, this movie is from 1965, and apparently, the way they acted in the 60ies are just not in my taste.

This film has huge problems with the script. Let us start with the name. When someone calls something “Faster, Pussycat! Kill! Kill!” at least I get an image of some kind of incitement/hunt/stress scene. My imagination was that the three “evil” strippers would incite the poor innocent girl to kill some other poor innocent victim. As it turns out, the script contains very little incitement, actually very little action at all.

The lack of action is, obviously, the main problem of this script. The characters (part from Paul Trinka’s Kirk) are all trying to ”be” instead of ”doing”. The three girls go around and snarl and talk “tough” but sadly enough the script fails them; there are virtually no cruelty or toughness for them to act on, leaving the poor actors to try and ”be” as good as they can, which of course just looks silly. This failure also rubs off on the victim of the story, Linda, making her fear and anxiety seem plastic and phony as well.

The script had me cringing more than once from the outright ridiculous plot turns. Especially the scene at the gas station where the station attendant tip the girls off about the old man, had me thinking of those good old days when I participated in high-school plays.

The script doesn’t give much credit to the human psyche either, and it utilizes the “linear cause-effect” type of psychology. For instance, the old man lost his ability to walk when he saved a girl from being hit by a train, so obviously, now he hates trains and girls…

If you want to see how to write a script that will kill all the characters mercilessly, then watch this flick (and by “kill” I don’t mean “blood-bath”-kill, unfortunately, even splatter would have made this less painful… most of the characters die, that’s true but they’re dead long before that happens). Or if you just feel that the good old classics has to be good, old and classic, then watch it and suit yourself! ;o)

I give “Faster, Pussycat! Kill! Kill!” 1 point of 5. (I’m not gonna f-up my own system by starting to deal out zeroes and minuses but I am pretty tempted…)

Programming humor

In case you wondered. Sure, programming can be humorous, but this is more about looking at programming with humor. Or, well, I’ve found a few funny things I’d like to share… XML is like violence: if it doesn’t solve your problem, you’re not using enough of it.

People who make buttumptions about their censoring settings, will be embarbutted when they repeat this clbuttic mistake.

Review: Paycheck – Let the future be untold (4/5)

Paycheck (IMDB, Amazon) is a story about Michael Jennings (Ben Affleck) who is an engineer, or to be more precise a reverse engineer. Michael is paid to take competitor’s work and reverse engineer it into something his employees can make into a products of their own.

Since it would be very bad if information about whose technology was reverse engineered into what, Michael’s assistant Shorty (Paul Giamatti) helps removing all of Michael’s memories of the project once work is finished.

A once in a lifetime opportunity comes along as Michael’s old friend Rethrick (Aaron Eckhart) offers him work that will give him stocks in Rethrick’s promised-to-become-great company. Michael takes on the three year project, even if he risks losing his memory for the whole period, and that of a probably blooming romance with one of Rethrick’s employees, doctor in biochemistry, Rachel Porter (Uma Thurman).

Three years passes, Michael finds himself back where he once begun, in Rethrick’s office, his memory wiped and all that stands between him and his millions, a trip to the bank.

That is however, when problem starts, because Michael finds not only has he switched the personal effects he once had to leave before entering Rethrick’s employee, he has also forfeited a 100 million dollars worth of stocks in Rethrick’s company.

Why did Michael say no to the money and, of significantly less importance, what became of his personal effects? Michael soon realizes his former employees and the FBI are out to get him, and his bag of assorted effects seems to be the only thing that keeps him ahead of the game. A game, that if lost, could cost him his life…

You can read the whole review by clicking the below link, but there may be spoilers in that text…

Continue reading Review: Paycheck – Let the future be untold (4/5)

Programming booleans

When looking at other programmer’s code I’m sometimes surprised with things like this:

exportDocumentView(java.lang.String absPath, java.io.OutputStream out,
boolean skipBinary, boolean noRecurse)

And in such prominent frameworks as Java Content Repository as well.

What’s my problem then? Double negations. In order to do exportDocumentView and get binary data and recursive export you’ll need to do:

exportDocumentView(“/path/to/my/Node/”, System.out, false, false)

Sure I can handle it… but… false to opt something in? I find it rather fishy. Call me an idiot but my brain just don’t deal with that kind of stuff easily…

What I would have wanted instead was:

exportDocumentView(java.lang.String absPath, java.io.OutputStream out,
boolean includeBinary, boolean recursive)

Which would have been called like:

exportDocumentView(“/path/to/my/Node/”, System.out, true, true)

For when we want binary data and recursive export, and like this for the case when we don’t want either or both:

exportDocumentView(“/path/to/my/Node/”, System.out, false, true)
exportDocumentView(“/path/to/my/Node/”, System.out, true, false)
exportDocumentView(“/path/to/my/Node/”, System.out, false, false)

I’m just saying. In my world false means “no” and “no” means don’t give me something or don’t do something:

“Don’t return binary data.”
“Don’t recurse the tree of nodes.”

To be compared with:

“Don’t skip binary data.”
“Don’t do no recursing.”

(But you’re free to curse? :o)

He heard her own gasp of astonishment

I just read the following sentence:

“He heard her own gasp of astonishment”

Some words just don’t work well with things no one else can do for you, I mean…

I entered the room and guess if I was surprised. My neighbor gasped with my astonishment, and as he had one of my thoughts, he came over to my own apartment to have a talk with me. He told me, with his wife’s voice, he disliked all but his own ideas. I had one of his ideas and in a contrary to his position, decided I liked it, so I made it my own idea.

It could get pretty interesting after a while of that. Perhaps the next pop-style of writing…?

Review: Ultraviolet – Xenophobia (3/5)

Ultraviolet (IMDB, Amazon) is a story about Violet, an ordinary woman whose life changed when she was infected by a virus that turned her into a feared and hated hemophage.

Once contracting hemophagia, Violet was incarcerated and experimented on, and perhaps these experiments cost her the child she was bearing when infected, perhaps the infection itself did, regardless, Violet escaped and now she is out to steal the government’s latest and most deadly weapon in the fight against hemophages.

The hemophages have superhuman strength and speed, but at a cost; few live longer than a decade. Since the virus that causes hemophagism infect on blood contact, the number of hemophages should have grown had it not been for the government’s prosecution.

Like vampires the hemophages have pointy eyeteeth, but unlike the vampires they do not require sucking blood and taking lives to survive. They are far from demons, and rather unfortunates infected by a deadly and infectious disease, and the only demon thing about them is the demonizing of them done by the government.

You can read the whole review by clicking the below link, but there may be spoilers in that text…

Continue reading Review: Ultraviolet – Xenophobia (3/5)

DVDs catching up?

Once upon a time a CD was large. Huge. You used it to save lots and lots of data.

Then came MP3s, movies, digital cameras with millions of pixels and suddenly the CD was small. And the DVD came, and for a while it was large… I don’t think it ever was huge.

Today I would have to use more than 300 4.4 GB DVDs to save all my data, and that only includes the data on hard drives. Making back-ups becomes a question of selecting what to back-up and what to leave for chance. A real pain.

But there might be light at the end of the tunnel.

Researches at the Technical University of Berlin claims they’ve managed to put up to 500 GB of data on a CD/DVD-sized disc

This is (layman’s interpretation) done by using holograms. The disc is transparent (wonder how that will work with labeling?) and uses ten layers of data (to compare with blu-rays that use two, and ordinary DVDs that use one). Anyway, sometime around 2010 they might be able to fit as much as 1 Terabyte to a CD-sized disc.

That’s probably the same time as hard drives comes in 10-20 Terabyte sizes, and soon after the 1TB DVD will once more be insufficient.

Wheehoo…