Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.
I am the chief technical officer at InVision App, Inc - a prototyping and collaboration platform for designers, built by designers. I also rock out in JavaScript and ColdFusion 24x7.
Meanwhile on Twitter
Loading latest tweet...
Ben Nadel at CFUNITED 2010 (Landsdown, VA) with:

jQuery Enlightenment By Cody Lindley

By Ben Nadel on

As an attendee of the jQuery Conference 2009, I received a free PDF version of Cody Lindley's new book, jQuery Enlightenment. The jQuery conference was tremendously inspiring, so needless to say, I returned from it ready to devour some tasty jQuery goodness. And, devour it I did; I got through jQuery Enlightenment in three nights, no problem. Of course, this was not just a factor of my newly fueled enthusiasm - jQuery Enlightenment happens to be a very nice read; I found it to be the perfect balance of explanation and code sample. If jQuery's message is "Write Less, Do More," then this book's message would be "Read Less, Learn More."


 
 
 

 
jQuery Elightenment By Cody Lindley.  
 
 
 

At 123 pages, jQuery Enlightenment is certainly concise, but manages to cover the full API of the jQuery library. It does this by concentrating on an explanation-by-code technique, relying on prose only to expand upon anything that was not easily gleaned from the Javascript samples. A style like this could have easily been disastrous; but, Cody's jQuery code was so clear and well commented that with just a few lines, he was able to, in the most simple way, fully demonstrate the feature in question. While I was occassionally left with the question of "Why," as in "Where and why might I use this feature?", I was certainly never left wondering "How" a particular feature worked.

This book would be fantastic for anyone who is relatively new to jQuery and wants to learn it, in depth, in the most efficient way. But, that is not to say that this book is basic; as someone with a good deal of jQuery experience, I found myself dog-earing every few pages, seeing things that I had either never seen before or things that I wanted to look into more deeply. I think that because jQuery Enlightenment is so easy to read, it feels like a deceptively low-level book. But, when you take a step back and think about what it's covered, you realize that it gets quite advanced, covering custom pseudo-selector development, plugin development, event delegation, closures, callbacks, and everything else you need to cultivate a rock-solid understanding of how jQuery works. As such, I think that there is information here that would benefit even the more advanced jQuery programmers.

What this book is not is a book about jQuery application architecture; while you will walk away from this book with a fantastic grasp of what jQuery can do, you might walk away with questions about how to most effectively pull it all together. That's not to say that you won't be able to build jQuery applications; the rich internet applications (RIA) that I build currently operate at the levels covered in this book. But, if you're looking for a book that discusses things like Javascript MVC (Model-View-Controller) or single-page application development, you should look elsewhere.

Overall, Cody Lindley's jQuery Enlightenment book is quite impressive. I found his writing style and code samples to be very clear and easy to understand. And, one thing that I thought was brilliant was that every single one of his code samples is available online at JSBin.com, hot-linked directly from the PDF. In general, the book was just very well executed; and at just $15 for the PDF version, it's a great deal.


 
 
 

 
Cody Lindley And Ben Nadel At jQuery Conference 2009 In Cambridge, MA.  
 
 
 

Cody Lindley and myself at jQuery Conference 2009 in Cambridge, MA.

Tweet This Titillating read by @BenNadel - jQuery Enlightenment By Cody Lindley Thanks my man — you rock the party that rocks the body!



Reader Comments

Regarding "jQuery application architecture" - I think Jason Dean / Andy Matthews need to get off their asses and write up something on this. When we were doing the AIR stuff, that's the one thing I noticed / learned.

Reply to this Comment

>> If jQuery's message is "Write Less, Do More," then this book's message would be "Read Less, Learn More."

Thats a nice comment; as a tech reviewer, I
appreciate, and I'm sure Cody does, too. Thanks for the great review.

Reply to this Comment

@Jörn,

My pleasure. Great to meet you at the conference. I told Glen that you used his Marketo form and he told me how you guys knew each other.

Reply to this Comment

Question: you said that "as an attendee of the jQuery Conference 2009, I received a free PDF version" of the book. Were all attendees supposed to get a copy? I was at the conference and didn't see anything about it.

Reply to this Comment

@Graham,

In your attendee packet, you should have gotten a business-card-looking paper with a discount code on it. As far as I know, everyone got one.

Reply to this Comment

@Ben,

Was that the card from Manning that offered a free version of jQuery in Action or Javascript Ninja?

I also don't remember seeing Cody's book offered as a free download.

Michael

Reply to this Comment

@Michael,

That was the other one - we got two cards. One for jQuery Enlightenment and one for Manning books (I think).

Reply to this Comment

@Michael,

Yeah, it was mostly uneventful. Got home, grabbed a few hours of sleep, and then right back to work :)

Reply to this Comment

For everyone confused about the discount code, I emailed the organizers and asked.

"There were 30 passes given out at random during checkin. Not everyone got one. There were also other books given away at check in to the first so many people who checked in."

Reply to this Comment

@Graham,

Ah, OK, that makes sense. I did some other people get hard-copy books that I did not get.

Reply to this Comment

When you say: "if you're looking for a book that discusses things like Javascript MVC (Model-View-Controller) or single-page application development, you should look elsewhere"

Where? Where? Where? lol! Does such a book even exist?

Reply to this Comment

@Jamal,

I share your curiosity. I am trying to get through some jQuery books and none that I have looked at really address this yet. My next book to read is jQuery In Action. Perhaps that will shed some light.

In the mean time, I'm trying to fool around with some ideas (very rough) that I will present on soon.

Reply to this Comment

Well, I've read most of it (JQuery in Action) and it does not. The closest I could find to match my need were old books (but good books) that gave insight into single page application development, these are Ajax in Action and Professional Ajax (chapter 5 is a gem). I am currently trying the finite state machine approach to clean my event oriented design, I recommend:

http://www.ibm.com/developerworks/web/library/wa-finitemach2/index.html

http://www.ibm.com/developerworks/web/library/wa-finitemach2/index.html

http://www.ibm.com/developerworks/web/library/wa-finitemach3/index.html

To get inspired and to study this (even if it uses Ext.JS):

http://max-bazhenov.com/dev/upload-dialog-2.0/index.php

Hope this helps.

Reply to this Comment

As I found, jQuery Enlightenment was written to express the concepts essential to intermediate and advanced jQuery development. I am trying to get jquery Enlightenment book having good quality semi-gloss and good the color look. Once i will read it then surely post feedback on this blog.

Reply to this Comment

@Jamal,

Thanks, I'll have to check that out. I'm working right now on a jQuery + ColdFusion application demo / presentation in which I am really trying to use some sort of MVC on the client side. Mostly just trial and error at this point.

Reply to this Comment

Although it doesn't directly address MVC, there is a jquery plugin that has made most of my AJAXy stuff almost laughably easy to implement.

Checkout http://malsup.com/jquery/taconite/.
Check the docs and the demos.

I have used this on a number of Django-based sites. I created a simple "class Taconite" to gather/wrap/render the taconite object. It uses jQuery CSS-based addressing and handles all sorts of replace/append/delete/etc., allowing multiple changes per call. It also has an eval() function so that you can trigger arbitrary JavaScript as part of your response.

I use a Jquery onready to decorate all manner of links with specific actions to call taconite-based URLs to update parts of the page. This can degrade nicely into a simple new-page-load if the user has JS disabled.

Reply to this Comment

Wow. I love when I chance upon sites like this ('enlightenment', to me, had a whole different meaning). I've three postgraduate degrees, and not a clue what you guys are talking about. The world is mighty wide.

Reply to this Comment

@Andrew,

Glad that you're liking it, as non-stereotypically enlightening as it may be :) I also blog somewhat about books, life, and love, which maybe of a more traditional interest.

Reply to this Comment

@Andrew,

It looks like you have written a very interesting collection of books there. I'll have to check them out. I'm not a religious person; but, as you say, when you come at these books as a source of guidance, arguing with the historical facts becomes irrelevant.

When I read the description of your book, The American Psyche in Search of its Soul, I was reminded of Viktor Frankl's, Man Search For Meaning. He had a great quote in that book, something like, "He who has a why to live can bear with almost any how." Anyway, just popped into my head - I know this is not really the best forum to discuss this :)

Reply to this Comment

@Ben,
Frankl is a great looming influence on me (from long ago, but not forgotten). That what motivates a human being is a need for meaning, not just cravings for food/sex/money, seems undeniable to me. Without it we're just annoyingly clever animals.
Andy

Reply to this Comment

Post A Comment

You — Get Out Of My Dreams, Get Into My Comments
Live in the Now
Oops!
Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.