Alex MacCaw

Ruby/JavaScript developer & entrepreneur. O'Reilly writer and open source developer. Working for Stripe.


I'm @maccman on Twitter.

I'm maccman on Github.

I'm oldmanorhouse on Skype.

I'm here on Linked in.

I'm here on Delicious.


Current OS projects:
Books/Sites/App's
I've created/written:
Email me

I am now blogging at blog.alexmaccaw.com

Crowd-sourcing a Book

October 26, 2010

As I mentioned in my last post on Holla, I'm in the process of writing a book about building JavaScript Web Applications. Why am I writing a book? Well, for all the money and women of course - but apart from that, I really think JS apps provide a vastly improved user experience over convential server side ones. Over the next year, I'm confident we'll see many more of them.

These JS apps intelligently preload all the data they need, render all the data with JS, and have a non-blocking user interface - which all boils down to one thing, speed. Speed matters, and by making your apps more fast you can make a big difference to the user experience.

Developers are stuck in the artificial request/response paradigm. We have the technologies to have proper state now, so why impose this limitation on our users? Just as the technology behind AJAX was around before it's potential was realized, so the technology for asynchronous, stateful web applications is here right now. All that is needed is a shift in perception, a bit like the way Gmail opened the eyes of developers to the potential of AJAX.

So, on to the book. I've mapped out the various chapters below. Some are already written, others have been sketched out.

I might as well write what people want to read. So, here's how you can help the project. Edit the Google Docs list of chapters to include something you, and other developers would be interested in. If the suggestion is popular enough, I'll include it.

  • Introduction
    • Speed
  • jQuery primer
  • JS Templating
    • SuperConnect
    • jquery.tmpl
    • Mustache
  • JS Binding
    • SuperConnect
    • jquery.datalink
  • Frameworks
    • Sproutcore
    • Cappuccino
    • Backbone.js
    • Super
      • SuperClass
      • SuperApp
        • States
        • Views
      • SuperModel
      • SuperRPC
  • Preloading
  • Less
  • Sprockets
  • Hash routing
    • Sammy
    • AJAX crawling
  • Degradation
    • CSS
    • Mordenizr
  • AJAX
    • OAuth
    • COR
    • JSONP
    • Upload
  • Juggernaut 2
    • Chat example
    • Observer
  • HTML5
    • Doctype
    • Offline
    • Input
    • placeholder
    • search
    • email
    • File API
    • Drag/drop
    • Local storage
    • Other?
      • Canvas
      • Video
  • CSS3
    • Gradients
    • box-sizing
    • vbox/hbox
    • box-shadow
    • border-radius
    • rgba
    • transitions
    • text-shadow
  • Holla?
    • Models
    • Loader
    • States
    • AJAX RPC
    • Layout/CSS
    • Juggernaut