jQuery Enlightenment By Cody Lindley

Posted September 18, 2009 at 8:50 AM by Ben Nadel

Tags: Javascript / DHTML, Books

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.




Reader Comments

Sep 18, 2009 at 9:49 AM // reply »
211 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.


Sep 18, 2009 at 9:53 AM // reply »
11,238 Comments

@Todd,

Ha ha, word up!


Sep 18, 2009 at 10:14 AM // reply »
4 Comments

>> 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.


Sep 18, 2009 at 10:24 AM // reply »
11,238 Comments

@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.


Sep 18, 2009 at 11:09 AM // reply »
4 Comments

Oh, right. I didn't catch your name then. Was nice meeting you there!


Sep 18, 2009 at 11:14 AM // reply »
3 Comments

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.


Sep 18, 2009 at 11:16 AM // reply »
11,238 Comments

@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.


Sep 18, 2009 at 11:20 AM // reply »
3 Comments

@Ben -- Hmm, I'll have to look again but I don't remember seeing one.


Sep 18, 2009 at 11:27 AM // reply »
6 Comments

@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


Sep 18, 2009 at 11:55 AM // reply »
11,238 Comments

@Michael,

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


Sep 18, 2009 at 12:33 PM // reply »
6 Comments

I will have to look at my stuff because I don't remember seeing that one either.

I hope your ride back to NYC was uneventful.


Sep 18, 2009 at 12:35 PM // reply »
11,238 Comments

@Michael,

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


Sep 18, 2009 at 12:48 PM // reply »
6 Comments

@Ben,

I actually went to work a couple hours late on Monday but came in feeling all refreshed and jQuerified.


Sep 18, 2009 at 12:51 PM // reply »
11,238 Comments

@Michael,

Ha ha, jQuerified most definitely!


Sep 18, 2009 at 2:35 PM // reply »
3 Comments

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."


Sep 18, 2009 at 2:44 PM // reply »
11,238 Comments

@Graham,

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


Sep 25, 2009 at 9:55 AM // reply »
2 Comments

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?


Sep 25, 2009 at 12:43 PM // reply »
11,238 Comments

@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.


Sep 26, 2009 at 6:30 PM // reply »
2 Comments

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.


Sep 29, 2009 at 5:43 AM // reply »
1 Comments

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.


Sep 29, 2009 at 8:01 AM // reply »
11,238 Comments

@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.


Nov 11, 2009 at 9:53 AM // reply »
2 Comments

Read Less, Learn More - I love to do this. if someone is there to explain things, its great right?


Dec 2, 2009 at 5:00 PM // reply »
1 Comments

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.


Aug 26, 2010 at 7:27 PM // reply »
3 Comments

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.


Aug 26, 2010 at 10:17 PM // reply »
11,238 Comments

@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.


Aug 27, 2010 at 11:08 AM // reply »
3 Comments

Thanks, I'll keep watching (and hope you'll get a chance to notice my site, and blog which is w/in it)


Aug 27, 2010 at 11:28 AM // reply »
11,238 Comments

@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 :)


Aug 30, 2010 at 1:27 PM // reply »
3 Comments

@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



Post A Comment

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.

Please review the following issues:

Author Name:


Author Email:

Author Website:

Comment:

Supported HTML tags for formatting: <strong>bold</strong>   <em>italic</em>   <code>code</code>







  • Help Wanted - Find Your Next ColdFusion Job
Ben Nadel's Company - Epicenter Consulting Recent Blog Comments
May 22, 2013 at 12:44 PM
Ask Ben: Query Loop Inside CFScript Tags
In cf10, if you call a function that has: local.result = {}; local.result.msg = ""; local.svc = new query(); local.svc.setSQL("SELECT * FROM..."); local.obj = local.svc.exe ... read »
May 22, 2013 at 12:29 PM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
@Ben: What version of Java are you using? Also, did you test users.id to see what Java reports as the data type? I wonder if it's not a Java primitive data type, but getting returned as something ... read »
May 22, 2013 at 11:47 AM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
@Dana, Awesome - so it looks like this bug was fixed in ColdFusion 10. Thanks so much for double-checking that. ... read »
May 22, 2013 at 11:37 AM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
When I c&p and run on cf10, I get: Selected User IDs: 1,4 User 1 selected: YES - YES User 2 selected: NO - NO User 3 selected: NO - NO User 4 selected: YES - YES User 5 selected: NO - ... read »
May 22, 2013 at 11:27 AM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
@Tom, Good thought, but no dice. Both of these still exhibit the same behavior: users.id[ users.currentRow ] users[ "id" ][ users.currentRow ] It's just something whacky happening with ... read »
May 22, 2013 at 11:07 AM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
Could your problem be that "users.id" is actually an ARRAY, not a single value? Perhaps try it again with "users.id[1]" (I only have CF8 here at work). ... read »
May 22, 2013 at 7:52 AM
Nested Views, Routing, And Deep Linking With AngularJS
Hi, Just a quick thank you. As it happens, for my own purposes, the pending ui-router work being done in native angular is likely the one I'll adopt, but your exploration, code and documentation of ... read »
May 22, 2013 at 4:43 AM
How Do You Use The ColdFusion CFParam Tag?
'<cfparam>' or 'isDefined()and <cfset>' performs the same task.Is there any difference? ... read »
InVision App - Prototyping Made Beautiful With Prototyping Tools