by Larry Ullman
Demonstrates how to build upon JavaScript's ease of use, enforces best practices, and embraces such key Web development approaches as progressive enhancement and unobtrusive scripting.