AngularJS by Brad Green and Shyam Seshadri