adventures in javascript