An old classic, re-written in HTML5.