Art Lebedev release new Moscow Metro map

The 'process' section is fascinating.

An example of canvas methods modified to allow chaining

I've spent this evening bowling (badly) and thinking about ways to simplify working with the canvas element. On returning home I stumbled across the above blog post on Dreaming In Javascript. I didn't think I would like modifying the canvas methods in this way, and seeing the code I still have my reservations, but it's not as bad as I thought.

Method chaining in HTML5 Canvas

I've started playing with the new HTML5 canvas element. Here is an example from Mozilla's canvas tutorial:

var canvas = document.getElementById("c");
var context = canvas.getContext("2d");
// Draw a circle
context.beginPath();
context.arc(75,75,50,0,Math.PI*2,true);
context.stroke();

The first thing that springs to mind is that this code could be improved with method chaining:

var canvas = document.getElementById("c");
var context = canvas.getContext("2d");
// Draw a circle
context.beginPath().arc(75,75,50,0,Math.PI*2,true).stroke();

As great as this would be, beginPath and arc don't return context. It would probably be possible to alter how context's methods work, but I think a better alternative is to create some sort of wrapper, a bit like jQuery does. I envisage something like:

var context_wrapper(document.getElementById("c"));
context_wrapper.circle(75,75,50).stroke();

Even this could be improved, but it is elegant enough for me to tolerate.

Moving to Gandi.net

I've been using GoDaddy as my domain registrar for years but I've recently decided to move to Gandi.net. I'm transferring this domain at the moment, so I apologise in advance if anything stops working over the next few days.

Oi, a modular sofa

Oi sofa

Oi is a sofa designed to easily adapt to people's lives. I like the idea of being able to use your existing furniture in a different way rather than buying something new every time your needs change.

Personally I think this would be great for people with children.

One month left to donate to EXP. magazine

EXP

Cory Schmitz wants to make a different kind of video game magazine:

The purpose of EXP is to reject the idea that a video game magazine has to be be comprised of reviews and previews of the latest games. It hones in on the gap between game magazines and design magazines, embracing the relationship between video games and artists. A big focus of the magazine is the experience games provide, and how that is a great inspiration for creative people to draw from.

Some samples from the magazine are available.

I'm really looking forward to getting a copy of this.

What if the Deepwater Horizon oil spill were to happen where you live?

Really smart visualisation.

Kaleidoscope file comparison

Sofa have released a new file comparison tool. I've played with it for a little while within Git this evening and I'm impressed. It even shows the differences between images.

Alfred – An app launcher

I'd been using QuickSilver for about 3 years until last month when Ylva suggested I switch to Alfred.

Not only is Alfred's icon a cute little hat, it's also a really neat launcher. After a month's worth of use I can highly recommend it.

First issue of Hacker Monthly

Hacker News user bearwithclaws started a project to create a monthly magazine consisting of popular posts from Hacker News. I was skeptical of the project, but the PDF version actually looks quite impressive.