The JavaScript blog.


fun games weekend

Weekend Reading

Posted on .

Assuming you're not going to be hungover or... working all weekend, here
are some tasty links from my DailyJS link folder.

I Can't Believe It's Thomas Fuchs Again!

I Can't Believe It's Not Flash
will strike a chord with many people. It's a presentation by Thomas
Fuchs about exciting things like WebGL. He mentions
SceneJS which looks ridiculously fun.

11 Tips for Creating Great MooTools Plugins

11 Tips for Creating Great MooTools Plugins
by prolific JavaScript blogger Ryan Florence is about writing better
MooTools plugins. He also has some good advice about writing JavaScript
in general:

Write methods to do one thing only

Create options for things that the class doesn’t need

Return this with most methods

Never mind about the plugins, I agree!


Load up balldroppings then keep
increasing the ball drop rate until your browser explodes.


Browser Pong. Have you ever see this version of Pong? It's hilarious.


compsci fun

Conway's Game of Life

Posted on .

Our recent post about Processing.js made me
think about Conway's Game of
. If you
haven't come across it before, it's a simulation that works like this:

1. Any live cell with fewer than two live neighbours dies, as if caused by underpopulation.\ 2. Any live cell with more than three live neighbours dies, as if by overcrowding.\ 3. Any live cell with two or three live neighbours lives on to the next generation.\ 4. Any dead cell with exactly three live neighbours becomes a live cell.

I like to use this algorithm to experiment with new graphics libraries,
so I had my own Processing version from back in 2005. I've ported it to
Processing.js here conway-js.

I've also found lots of interesting pure JavaScript implementations.
ConwayJS by Joseph Robert is my favourite. It's pretty fast and allows you to draw cells with the

Another interesting one is
game_of_life by sukhchander.

I've uploaded my Processing.js examples to DailyJS so you can see them
without checking out the git repositories: