µ: the JavaScript microframework