JavaScript Frameworks for Modern Web Dev

JavaScript Frameworks for Modern Web DevI am thrilled to announce the publication of my newest book, JavaScript Frameworks for Modern Web Dev, available now from APress!

A year ago my friend and former co-worker Tim Ambler approached me with a project: a list of strong frameworks and libraries in the JavaScript space that can each be effectively introduced in a single chapter. Over the last twelve months we wrote numerous drafts and revisions, and created a somewhat frightening amount of source code for these sixteen topics:

  1. Bower
  2. Grunt
  3. Yeoman
  4. PM2
  5. RequireJS
  6. Browserify
  7. Knockout
  8. AngularJS
  9. Kraken
  10. Mach
  11. Mongoose
  12. Knex and Bookshelf
  13. Faye
  14. Q
  15. Async.js
  16. Underscore and Lodash

Obviously, the scope of each topic is greater than its chapter, but the book’s goal is to be a quick but thorough introduction to the core concepts in each framework and library. The source code is non-trivial and executable, so a reader can see concepts in action while following along in the text.

Some of the technologies covered have aged (like fine wine!), and some are much younger, but we believe that each has staying power and stands well among its peers. Between us we have used all of these technologies in our own projects and in production deployments, and while we cannot claim complete expertise, we humbly submit that, to the best of our knowledge, the information here is both sound and practical.

We sincerely hope that this book brings much value to you and your team!




A few days ago I released a small open source jQuery plugin called footnote.js.  The idea for this plugin came to me as I was writing an article on postal.js (coming soon!).  I was adding some footnotes, and as I re-arranged text in my html document, I had to re-arrange the footnotes to match the order of the superscript tags in the document.  As you can imagine, this is a colossal pain in the ass, so in a fit of inspiration, I hacked together a jQuery plugin to manage this for me.  In short, when the document loads, it reads the order of superscript tags in the DOM, then reorders the items in an ordered list (the footnotes) to match.  It also re-numbers all of the superscript tags and creates hyperlinks to the corresponding footnotes.  It does make some assumptions (e.g., that you only have one list of footnotes), but I was striving for the simplest use case, so it is what it is.  Forks and pull requests are welcome, if you feel inclined.

Linus Torvalds on Project Management

“The first thing [people get wrong about open source projects] is thinking that you can throw things out there and ask people to help… That’s not how it works. You make it public, and then you assume that you’ll have to do all the work, and ask people to come up with suggestions of what you should do, not what they should do. Maybe they’ll start helping eventually, but you should start off with the assumption that you’re going to be the one maintaining it and ready to do all the work… If you start off with some ‘kumba-ya feeling’ where you think people from all the world are going to come together to make a better world by working together on your project, you probably won’t be going very far.” — Linus Torvalds (full article)