JavaScript: The Good Parts, by Douglas Crookford review