<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dan Wellman &#187; Book Review</title>
	<atom:link href="http://www.danwellman.co.uk/category/book-review/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.danwellman.co.uk</link>
	<description>JavaScript and JavaScript Libraries</description>
	<lastBuildDate>Sat, 26 Nov 2011 23:00:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Book review: Learning jQuery</title>
		<link>http://www.danwellman.co.uk/book-review-learning-jquery/</link>
		<comments>http://www.danwellman.co.uk/book-review-learning-jquery/#comments</comments>
		<pubDate>Sat, 26 Nov 2011 23:00:32 +0000</pubDate>
		<dc:creator>Dan Wellman</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.danwellman.co.uk/?p=444</guid>
		<description><![CDATA[In this review I look at the brand new third edition of Jonathan Chaffer and Karl Swedberg&#8217;s excellent book that gives a complete introduction to the popular JavaScript library jQuery. One great thing about this edition is the foreword, written by none other than the creator of jQuery itself John Resig, which talks about the [...]]]></description>
			<content:encoded><![CDATA[<p>In this review I look at the brand new third edition of Jonathan Chaffer and Karl Swedberg&#8217;s excellent book that gives a complete introduction to the popular JavaScript library jQuery. One great thing about this edition is the foreword, written by none other than the creator of jQuery itself John Resig, which talks about the how important the community around jQuery is. It&#8217;s an inspiring start to a great book.</p>
<p><img style="float:none" src="http://www.danwellman.co.uk/wp-content/uploads/2011/11/jquery.jpeg" alt="" title="jquery" width="400" height="493" class="alignnone size-full wp-image-457" /></p>
<p>The book caters for beginner to advanced users of the library, with roughly the fist half of the book covering basic usage and the second half covering more advanced uses. There are also several chapters dedicated to plugins, and some excellent appendices at the end of the book. Overall this is the ideal way to learn jQuery from scratch, but users of all levels will very probably still have a look to take away from it.</p>
<p>One thing I like about the book is that as well as a summary at the end of the chapter, it also features a basic set of tasks that should be completed to reinforce the topics discussed, and suggested further reading on any key points.</p>
<p>Overal this is an excellent book that anyone interested in learning how to use the library to its full potential should read. It is packed with examples that highlight how to achieve different tasks, is highly detailed and gives lot of tips and tricks that make code more efficient or uses features of the library to their full potential.</p>
<p>The first chapter talks at length about what jQuery is and why it works so well. It covers how the library is used on a web page, and sets up a basic example page that is used to highlight some basic ways of using jQuery. It compares the jQuery example code with the equivalent plain JavaScript version to highlight some of the benefits of using jQuery, and looks at how Firebug can be used to aid development.</p>
<p>Chapter 2 covers all of the different types of selectors that can be used including simple id and class selectors, attribute selectors, and custom selectors including things like :odd, :even and the form selectors :input etc. It also talks about some of the DOM traversal methods used to access other elements after selecting an initial element.</p>
<p>Events are the subject of chapter 3, starting with the document ready event and the bind() method, and then on to short-hand event methods and compound events. It also covers important aspects of event handling such as event bubbling, stopping the propagation of events and event delegation. Keyboard events are also explained in detail, as well as event namespacing.</p>
<p>Chapter 4 is all about styling and animation. The css() method is discussed in the first section of the chapter, but the majority of the chapter is devoted to the wide range of animation methods that jQuery ships with. All of the animation methods are covered including showing and hiding, fading, sliding and positioning. It also covers the animation queue, custom animations and manipulating multiple properties simultaneously.</p>
<p>DOM manipulation is covered in chapter 5 including common tasks such as modifying element attributes and properties, creating new elements and inserting them, copying and moving them, and changing their structure or content.</p>
<p>A popular use of jQuery is in making AJAX quick and easy; chapter 6 is an extensive look at this broad topic. All of the most common AJAX tasks are discussed including working with JSON and JSONP, interacting with the server over GET and POST requests, and loading script, XML files and document fragments. It also goes into detail on other essential AJAX topics like AJAX events, error handling and setting default AJAX options.</p>
<p>Chapters 7 and 8 focus on jQuery plugins with chapter 7 looking at how to use some common plugins including jQuery UI. Chapter 8 looks at how to create your own plugins, including how to write jQuery UI plugins.</p>
<p>The latter part of the book exposes some of the more advanced aspects of each of the different components of the library that have already been looked at, witch chapters covering advanced selectors and traversing, advanced effects, advanced DOM manipulation and advanced AJAX. These latter chapters go into great detail on some of the finer aspects of using the different components.</p>
<p>The book ends with some useful appendices; there is one that explores JavaScript closures, another that looks at unit testing with qUnit, and a final one that briefly lists each jQuery method in a quick reference guide.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danwellman.co.uk/book-review-learning-jquery/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Book review: JavaScript Enlightenment by Cody Lindley</title>
		<link>http://www.danwellman.co.uk/book-review-javascript-enlightenment-by-cody-lindley/</link>
		<comments>http://www.danwellman.co.uk/book-review-javascript-enlightenment-by-cody-lindley/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 19:30:32 +0000</pubDate>
		<dc:creator>Dan Wellman</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.danwellman.co.uk/?p=355</guid>
		<description><![CDATA[
JavaScript Enlightenment, by Cody Lindley, is the follow-up to the excellent jQuery Enlightenment. Its aim is to give you a deeper understanding of how objects work in JavaScript, to the point where you can understand how your favourite library works, or even write your own library, turning library users into library developers.
The book makes quite [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://javascriptenlightenment.com/" title="JavaScript Enlightenment" target="_blank"><img src="http://www.danwellman.co.uk/wp-content/uploads/2011/09/jsEnlightenment.jpg" alt="jsEnlightenment Book Cover" title="jsEnlightenment" width="500" height="291" class="alignnone size-full wp-image-358" /></a></p>
<p>JavaScript Enlightenment, by Cody Lindley, is the follow-up to the excellent jQuery Enlightenment. Its aim is to give you a deeper understanding of how objects work in JavaScript, to the point where you can understand how your favourite library works, or even write your own library, turning library users into library developers.</p>
<p>The book makes quite clear that it is not a general guide to JavaScript in its entirety, or a book about coding patterns, and the author does an excellent job of keeping the book succinct and focused on the topic at hand. It is literally filled with code examples to reinforce the topic being discussed, and like jQuery Enlightenment before it, all of the examples are up on jsFiddle for you to play with.</p>
<p>The starts with a conceptual overview of what objects in JavaScript are and how they are created, and used. It also covers the object constructors that are built-in to JavaScript to store specific types of values, and how to create custom constructors used to create custom objects.<br />
It quickly moves on to describe using object properties, creating Object() objects and working with functions. The functions chapter shows all the different ways in which functions can be defined and invoked. This is a particularly detailed chapter and covers advanced function topics including the call() and apply() methods, function hoisting, useful function properties such as callee, anonymous functions and self-invoking functions and recursion.</p>
<p>A short chapter on the head object is provided, which gives useful details on the window object found in web browsers, and then the book gets into the real fundamental issues. You get a chapter dedicated to the this keyword that covers how the value of this is determined, how its value can be controlled in nested functions and how it can be used within constructor functions.</p>
<p>Next is a chapter that focuses on scope and closures, and in my opinion is probably the most interesting chapter in the book. It goes into great detail about how scope in JavaScript works including details on scope chains and look-ups, how scope is determined and how scope causes closures. Although the section on closures is short, the explanation is very clear and the code example really clarifies the basic mechanism at work.</p>
<p>Following this is a chapter on the prototype chain, another extremely useful chapter that reveals how some of the fundamental aspects of JavaScript work. It goes into detail on how inheritance via the Function() prototype property works, how prototype chain look-ups work and why the prototype property is important.</p>
<p>The chapters after this point are kept quite short and look at a selection of native object constructors built into JavaScript such as Array(), String(), Number() and Boolean(), as well as primitives, null, undefined values and the Math singleton. The basic use of each of these objects and values are detailed, along with any available properties and methods. </p>
<p>There is also a review section at the end of the book which lists all of the key points to take away from each chapter, which serves as a great mini-refresher if you read the book over an extended period.</p>
<h2>Conclusion</h2>
<p>Overall this is an excellent learning tool for intermediate to advanced JavaScript developers and is definitely highly recommended by myself. It reads well, is clear and concise and highly instructive.  The fact that the code examples are all up on jsFiddle is a great feature that invites you to play around with them and this in turn helps cement the lessons from each section in your mind.</p>
<p>I came away from the book feeling that I&#8217;d learned a lot, which is exactly what you want from a technical book such as this. The danger of self-teaching yourself a programming language is that there will inevitably be gaps in your knowledge that you simply aren&#8217;t aware of, which can mean that powerful features of the language are beyond your manipulation. This is the kind of book that you need in order to fill those gaps. </p>
<p>At just $15 for a copy I don&#8217;t think there are many JavaScripters out there that can afford not to buy this book. Visit <a href="http://javascriptenlightenment.com/" title="JavaScript Enlightenment" target="_blank">http://javascriptenlightenment.com/</a> to secure your copy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danwellman.co.uk/book-review-javascript-enlightenment-by-cody-lindley/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yahoo! User Interface Library 2.x Cookbook By Matt Snider review</title>
		<link>http://www.danwellman.co.uk/yahoo-user-interface-library-2-x-cookbook-by-matt-snider-review/</link>
		<comments>http://www.danwellman.co.uk/yahoo-user-interface-library-2-x-cookbook-by-matt-snider-review/#comments</comments>
		<pubDate>Sun, 13 Mar 2011 18:21:32 +0000</pubDate>
		<dc:creator>Dan Wellman</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[YUI]]></category>

		<guid isPermaLink="false">http://www.danwellman.co.uk/?p=309</guid>
		<description><![CDATA[I recently got my hands on a copy of the new YUI cookbook from Packt Publishing and I was very impressed with both its content and the style of the book. Its the first &#8216;cookbook&#8217; style book from Packt that I&#8217;ve read, and I really like the format.

Each chapter is split into a series of [...]]]></description>
			<content:encoded><![CDATA[<p>I recently got my hands on a copy of the new YUI cookbook from Packt Publishing and I was very impressed with both its content and the style of the book. Its the first &#8216;cookbook&#8217; style book from Packt that I&#8217;ve read, and I really like the format.</p>
<p><a href="http://link.packtpub.com/SMHe4C" title="Buy Yahoo! User Interface Library 2.x Cookbook By Matt Snider"><img src="/img/yui-cookbook.jpg"></a></p>
<p>Each chapter is split into a series of recipes, each showing how a particular method or group of related methods are used. Once the core technique and functionality has been demonstrated there are further sub sections that show additional features and related functionality. Each section is short and easy to digest which really helps to grasp the fundamental concepts shown in each recipe. The book is divided into the following sections:</p>
<table class="padded-table" cellpadding="0" cellspacing="0">
<tr>
<th>Chapter 1 <em>Using YUI 2</em></th>
<td>a collection of common/miscellaneous utilities such as the YUILoader, the Get component, browser and platform detection and working with objects and JSON data .</td>
</tr>
<tr>
<th>Chapter 2 <em>Using DOM and selector components</em</th>
<td>recipes include searching the document, searching child and sibling elements, modifying styles and attributes, working with positions and sizes and using CSS2 and CSS3 selectors.</td>
</tr>
<tr>
<th>Chapter 3 <em>Using event component</em></th>
<td>recipes in this chapter include attaching and removing event listeners, event normalization functions, subscribing to YUI events and custom events.</td>
</tr>
<tr>
<th>Chapter 4 <em>Using connection component</em></th>
<td>this chapter covers AJAX requests and looks at the callback and request objects and their properties, event callbacks, connection manager and cross-domain requests.</td>
</tr>
<tr>
<th>Chapter 5 <em>Using datasource component</em></th>
<td>this chapter covers the datasource component in details and includes recipes showing how to use each of the different datasources such as XML response, text response and JSON response.</td>
</tr>
<tr>
<th>Chapter 6 <em>Using logger and test components</em></th>
<td>These two components can be exceptionally useful for debugging and testing large scale JS applications and this chapter covers most common scenarios with detailed and explanatory recipes and examples.</td>
</tr>
<tr>
<th>Chapter 7 <em>Using element and button components</em></th>
<td>by this point in the book we have reached the full UI components. Recipes in this chapter show common ways of using the element and button components including subscribing elements to events, manipulating the DOM and adding buttons.</td>
</tr>
<tr>
<th>Chapter 8 <em>Using menu component</em></th>
<td>This chapter is dedicated to the menu component, which offers a lot of functionality. The recipes cover the most common menu implementations including menus, meuitems, context menus and menu bars.</td>
</tr>
<tr>
<th>Chapter 9 <em>Using animation component</em></th>
<td>recipes in this chapter cover creating basic animations, creating easing functions, animating colours, motion and scroll.</td>
</tr>
<tr>
<th>Chapter 10 <em>Using drag and drop</em></th>
<td>Most simple0use scenarios are described in this chapter, including implementing drag and drop, using the drag and drop manager, drag and drop events, grouped instances, drag handles and drag regions.</td>
</tr>
<tr>
<th>Chapter 11 <em>Using container component</em></th>
<td>This important chapter has recipes that show all of the different containers that the YUI makes use of in its widgets including the module, the overlay, the panel, and dialog and simple dialog.</td>
</tr>
<tr>
<th>Chapter 12 <em>Using datatable component</em></th>
<td>Chapter 12 is dedicated to the datatable – a progressively enhanced rich table widget. Recipes focus on defining datables and columns, cell formatting, sorting, paging and scolling, and inline cell editing.</td>
</tr>
<tr>
<th>Chapter 13 <em>Using treeview component</em></th>
<td>The treeview component is the last component with a chapter dedicated to it. Common treeview implementations are covered with recipes including node definitions, navigating and searching the tree, adding and removing nodes, expanding and collapsing nodes, events and dynamic data.</td>
</tr>
<tr>
<th>Chapter 14 <em>Other useful components</em></th>
<td>Several different components are covered in this chapter, including autocomplete, the calendar, the history component, resize, slider and the tabview component. There are a number of recipes for each component that cover basic usage.</td>
</tr>
<tr>
<th>Chapter 15 <em>Some interesting beta components</em></th>
<td>The book ends with a look at some of the newer beta components including swf and swfstore, the storage component, cycle component, charts and the uploader component.</td>
</tr>
</table>
<p>Overall, it&#8217;s quite a long book at just over 400 pages, but a book of this length is required really due to how big the YUI library actually is. The length of the book also represents pretty good value for money, and I would certainly consider this an excellent investment for someone that needs to learn YUI quickly, or have a reference for common tasks and solutions to hand.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danwellman.co.uk/yahoo-user-interface-library-2-x-cookbook-by-matt-snider-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Review of jQuery 1.4 by Karl Swedberg and Jonathon Chaffer</title>
		<link>http://www.danwellman.co.uk/review-of-jquery-1-4-by-karl-swedberg-and-jonathon-chaffer/</link>
		<comments>http://www.danwellman.co.uk/review-of-jquery-1-4-by-karl-swedberg-and-jonathon-chaffer/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 21:20:55 +0000</pubDate>
		<dc:creator>Dan Wellman</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.danwellman.co.uk/?p=130</guid>
		<description><![CDATA[I recently read through the newest revision of Karl and Jonathon’s amazing jQuery reference manual, which has just been updated for the latest release of the jQuery library itself. Even though it’s a reference manual used to refer to specific methods or properties of the library rather than a teaching book that takes the reader [...]]]></description>
			<content:encoded><![CDATA[<p>I recently read through the newest revision of Karl and Jonathon’s amazing jQuery reference manual, which has just been updated for the latest release of the jQuery library itself. Even though it’s a reference manual used to refer to specific methods or properties of the library rather than a teaching book that takes the reader on a journey through the API I still wanted to read through it in its entirety in order to give it a balanced review and to see how much additional information it provided. It&#8217;s great to see what resources like this offer those who wish to read through their material. Learning new skills is crucial, and whether you&#8217;re a jQuerie newbie or you&#8217;re knee-deep in the process of building a <u><a href="http://da.partypoker.com/">Poker</a></u> site, it&#8217;s likely you&#8217;ll want to take a look. As for me, I was not new to the jQuery scene, but decided to read through it regardless. I’m already fairly competent in using jQuery so I wanted to see if there was anything new it could show me. It did – there were subtle aspects to a number of methods that I had never used before, and with the new additions to the guide added for jQuery 1.4, there was actually a lot I took away from this book.</p>
<p><a href="http://www.packtpub.com/jquery-1-4-reference-guide/book/mid/170310y5ia2d?utm_source=danwellman.co.uk&#038;utm_medium=affiliate&#038;utm_content=blog&#038;utm_campaign=mdb_002738" title="Buy the book!"><img src="http://www.danwellman.co.uk/wp-content/uploads/2010/03/jquery-image.jpg" alt="jQuery 1.4 Reference Guide" title="jQuery 1.4 Reference Guide" width="500" height="610" class="alignnone size-full wp-image-132" /></a></p>
<p>The first chapter served as a very good general introduction to jQuery and what the library is capable of. The whole chapter is dedicated to an interactive example that uses a wide variety of different jQuery methods and functionality, and the accompanying text gradually picks apart all of the code to show what it does. The example is excellent for those new to jQuery and was a very good way to start the book.
<p>After the initial example-based chapter the book switches tone to more of a reference style guide; chapter 2 is a very detailed, quite lengthy chapter that covers all of the different types of selectors that can be used to select elements from the DOM. Many different selectors, including advanced ones like the different types of attribute selectors are covered.
<p>Remaining chapters look at the different types of methods that are exposed by the library; there is a chapter dedicated to DOM traversal methods, another that looks at AJAX-related methods, etc. Helpfully, the book is structured similarly to the online documentation so readers should be able to easily find the method they require information about without too much difficulty.</p>
<p>Towards the end of the book there are chapters that look at the miscellaneous methods such as .grep(), .unique(), etc which don’t fit neatly into any of the other categories, and the different properties of the jQuery object that can give us extra information about the environment that the library is executing in such as the .browser properties. These last chapters will be of huge importance to many developers that are familiar with some of the more common methods, but less familiar with some of these lesser-used methods and properties.
<p>There is also a chapter dedicated to the construction of jQuery plugins; the authors didn’t have to include an entire chapter on this topic as it is sometimes seen as beyond the scope of general jQuery usage. They could have just included some basic information under the miscellaneous chapter perhaps, but they didn’t, they provided a whole chapter to it because the topic deserves a whole chapter. It’s a relatively short chapter, and the example plugins are very light, but it covers all of the essentials for plugin development such as the standard conventions, the object method and global functions, so this chapter adds a lot of value.
<p>The book also features some potentially very useful appendices including lists of useful tools for JS developers such as code minifiers and browser development tools, information about where to find useful JavaScript, (X)HTML and CSS references as well as a complete alphabetical listing of every jQuery method and property.</p>
<p>Overall, I found this an excellent reference book for developers of all levels and would recommend it to anyone that was serious about jQuery development. Bear in mind that it is a reference manual opposed to a recipe-style example-based book, so the style is very concise and sometimes dry. Personally I think this was a good thing as it allowed the book to remain focused on the core topics without going off on a tangent about implementational specifics that the reader may never encounter. It’s highly accessible, very information-heavy and literally covers every single method and property found in the library. This book will stay on my desktop (my real, actual desk) for some time to come and will remain my first point of contact from now on when looking up any method of the library.</p>
<p>My one complaint is that some of the appendix items from previous versions of the book seem to have been removed; for example, there is an information box in one chapter which states ‘An in-depth discussion of closures can be found in Appendix C of the book Learning jQuery 1.3.’ I’m sure many people buying the 1.4 version of the book won’t already have the previous edition so this is not helpful in any way. Leaving this non-essential but related information in the book would have been far better. Sometimes however, due to the limits that are placed on page count by publishers, old, less-related information has to be removed. It’s not a massive complaint, and I can understand why the authors may have had to remove these extras to make room for information relating to all the cool new functionality of jQuery, but I think the book would have benefited from retaining this information if at all possible. </p>
<p><a href="http://www.packtpub.com/jquery-1-4-reference-guide/book/mid/170310y5ia2d?utm_source=danwellman.co.uk&#038;utm_medium=affiliate&#038;utm_content=blog&#038;utm_campaign=mdb_002738" title="Buy jQuery 1.4 Reference Guide">Buy the book!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.danwellman.co.uk/review-of-jquery-1-4-by-karl-swedberg-and-jonathon-chaffer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Review of jQuery 1.3 with PHP by Kae Verens</title>
		<link>http://www.danwellman.co.uk/review-of-jquery-1-3-with-php-by-kae-verens/</link>
		<comments>http://www.danwellman.co.uk/review-of-jquery-1-3-with-php-by-kae-verens/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 19:54:57 +0000</pubDate>
		<dc:creator>Dan Wellman</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.danwellman.co.uk/?p=100</guid>
		<description><![CDATA[
jQuery 1.3 with PHP by Kae Varens is a great book that shows you how to interface jQuery with PHP. It&#8217;s different from any other web development book I&#8217;ve read because it approaches things from the opposite perspective that I personally am used to – from the server to the client. It&#8217;s aimed at competent [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.packtpub.com/jquery-1-3-with-php/book" title="jQuery 1.3 with PHP by Kae Verens"><img src="http://danwellman.co.uk/img/jqueryphp.jpg" alt="Jquery 1.3 with PHP by Kae Verens"></a></p>
<p>jQuery 1.3 with PHP by Kae Varens is a great book that shows you how to interface jQuery with PHP. It&#8217;s different from any other web development book I&#8217;ve read because it approaches things from the opposite perspective that I personally am used to – from the server to the client. It&#8217;s aimed at competent PHP developers that want to learn how to use jQuery. Strictly speaking I&#8217;m outside of the scope of who the book is aimed at, but fortunately I just enough PHP to follow along with the examples and know roughly what is happening in the server-side code. It is made clear very early on who the book is aimed at.</p>
<p>One thing that I really liked about this book was that as well as the strong focus on jQuery throughout (as you&#8217;d expect) the author also included not just one, but several different examples of using jQuery UI in conjunction with PHP. jQuery UI is the official UI library for jQuery so I think it&#8217;s important that it should be covered in this kind of book, even if only briefly.</p>
<p>The book is broken down into the following chapters:</p>
<p><strong>Chapter 1</strong> eases you into the book with sections on what jQuery is, why you should be using it and how it integrates with PHP. Some popular web applications that use jQuery are looked at and the author shows how to set up a directory structure so that the examples in the book can be replicated.</p>
<p><strong>Chapter 2</strong> covers some quick tips that server-side developers can use in order to help bridge the gap between the client and the server. Examples include how to make select boxes dynamically load options when required, contextual help tips, and inline editing of a page&#8217;s content.</p>
<p><strong>Chapter 3</strong> looks at the tabs and accordion widgets from jQuery UI and shows not only how to load their contents dynamically, but also how to create them on the fly with the server. This is a very thorough and detailed chapter and I really liked the code examples here.</p>
<p><strong>Chapter 4</strong> focuses on forms and form validation; it shows how to use the jQuery validation plugin in order to perform some validation on the client before involving the server (such as checking for empty fields which are required), and how to complete the validation on the server. Another code examples shows how to easily create an awesome auto-complete text-field.</p>
<p><strong>Chapter 5</strong> is another very thorough and in-depth chapter dominated by code examples; it shows how to create a file management system that allows for creating, moving and deleting directories on the server and uploading, moving and deleting files. This was probably my favourite chapter of the book.</p>
<p><strong>Chapter 6</strong> shows you how to create an entire calendar application that allows you to add, delete and move events and how recurring events can be handled.  This is a great practical chapter that uses some interesting plugins including the jquery-week-calendar and the jQuery UI dialog. The example really highlights how to make these plugins work with server efficiently.</p>
<p><strong>Chapter 7</strong> covers image manipulation such as cropping, resizing and rotating. Jorn Zaefferer&#8217;s treeview plugin is used in conjunction with some of the file management app created in chapter 5 to  show the images available, while the actual manipulations are performed with the ImageMagick PECL extension.</p>
<p><strong>Chapter 8</strong> looks at the client-side heavy jQuery UI interaction helper sortable; so far the jQuery UI components the book has looked at have all been UI widgets so it&#8217;s great that this is included as well. Drag and drop, a very client-side oriented task, is looked at in detail and there is probably less server-side code in this chapter than in any other, which must be incredibly useful for those more used to working with the server.</p>
<p><strong>Chapter 9</strong> looks at displaying large sets of tabular data efficiently and uses the dataTables jQuery plugin to allow pagination, sorting, filtering and column re-ordering. There are some interesting (for me) server-side concepts in this example such as caching and how to load data is small chunks, but a server-side developer would probably know this already. The client-side code examples were quite extensive as well though and would help server-side developers use the dataTable plugin effectively.</p>
<p>The final chapter, <strong>chapter 10</strong> looks at a series of examples that show how client-side code can be optimised to improve the user experience; it&#8217;s a fast paced chapter with a lot of small examples and contains some real gems of information.</p>
<p>Overall this is a great book with very thorough and well-explained examples and plenty of code that the average server-side developer could take away and reuse. As a front-end developer I&#8217;m completely the opposite of who the book is aimed at but it was clear that the descriptions of using jQuery would be of value to PHP developers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danwellman.co.uk/review-of-jquery-1-3-with-php-by-kae-verens/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Review of jQuery Enlightenment by Cody Lindley</title>
		<link>http://www.danwellman.co.uk/review-of-jquery-enlightenment-by-cody-lindley/</link>
		<comments>http://www.danwellman.co.uk/review-of-jquery-enlightenment-by-cody-lindley/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 21:32:48 +0000</pubDate>
		<dc:creator>Dan Wellman</dc:creator>
				<category><![CDATA[Book Review]]></category>

		<guid isPermaLink="false">http://www.danwellman.co.uk/?p=87</guid>
		<description><![CDATA[jQuery Enlightenment is an e-book in PDF format written by Cody Lindley, an official jQuery evangelist since 2008 and talented front-end developer with over 12 years experience in the field.
The book is aimed at several different types of developer; the first is someone that knows the basics of jQuery and is ready to take their [...]]]></description>
			<content:encoded><![CDATA[<p>jQuery Enlightenment is an e-book in PDF format written by Cody Lindley, an official jQuery evangelist since 2008 and talented front-end developer with over 12 years experience in the field.</p>
<p>The book is aimed at several different types of developer; the first is someone that knows the basics of jQuery and is ready to take their skills to an intermediate or advanced level. The second type of developer is someone that is proficient with another JavaScript library and needs to quickly learn how to transfer their skills to the world of jQuery. The book is not recommended for people that have never used jQuery or any other JavaScript library before because it describes some advanced concepts which may hinder novices in learning the basics. That&#8217;s not to say that a novice couldn&#8217;t pick up this book and learn jQuery from scratch, but generally it&#8217;s best to master the basics first.</p>
<p>The PDF format is excellent for this type of book because extra and supplemental information can be properly hyper-linked to. One of the things I loved about this book was that virtually all of the practical examples are hosted on JSBin so while reading you can instantly see the effect of code without having to download source files – everything is ready and waiting for you to experiment with.</p>
<p>Another thing I really found useful with this book was the level of detail it goes into when explaining the different methods found in jQuery, it even informs you how some of the methods are executed by jQuery and this gives a much fuller understanding of how the library works and therefore how to use it more effectively.</p>
<p>I found the book very easy to read, with a strong focus on practical code interspersed with succinct descriptions. There wasn&#8217;t too much theory or too many complex examples – the perfect blend of theory and practice. I would consider myself a fairly experienced jQuery developer, having used the library for several years, but there was still a lot I learnt from reading this book. It was really great for going back and filling in the gaps between what I&#8217;ve learnt from just playing with code, stuff I&#8217;d simply not learnt because I&#8217;d never needed to use it.</p>
<p>The book is divided into the following chapters:</p>
<dl>
<dt>1: Core jQuery</dt>
<dd>Chapter one introduces the concept of jQuery and looks at when to include the script files, using hosted versions of the library and checking which version of the library is in use. It also covers a range of other foundation-laying subjects including the different ways of executing jQuery code, chaining, destructive vs non-destructive methods, the this keyword, aliasing the jQuery object and different wrapper-set concepts.</dd>
<dt>2: Selecting</dt>
<dd>Chapter two covers advanced aspects of element selecting such as custom filters, creating custom filters, the is() method and how to escape characters used when selecting. Other topics such as stacking and nesting filters, the nth-child filter and using regular expressions to select attribute values are also covered here.</dd>
<dt>3: Traversing</dt>
<dd>Chapter three looks at the different ways that new elements can be navigated to through the DOM after selection. The subtle differences between the find() and filter() methods, custom functions passed to the filter() method and how to traverse the DOM using CSS expressions with traversal methods are some of the subjects discussed here.</dd>
<dt>4: Manipulation</dt>
<dd>Chapter four focuses on how raw HTML can be created, manipulated and added to the DOM. The index(), text(), contents() and remove() methods are looked at in detail and advanced techniques such as removing particular characters from an element&#8217;s content by regular expression are also discussed.</dd>
<dt>5: HTML forms</dt>
<dd>Chapter five is dedicated entirely to working with HTML form elements with jQuery and covers topics including disabling and enabling elements, checking and un-checking radio and checkbox elements getting or setting the values of different form elements. The different ways of selecting form elements are looked at too.</dd>
<dt>6: Events</dt>
<dd>Chapter 6 covers everything about events a jQuery developer could want to know such as working with the bind() and unbind() methods, invoking events and how to share a function between several event handlers. Other key event topics such as event namespacing, event delegation and working with the normalized event object&#8217;s native methods (such as preventDefault() are also discussed in detail.</dd>
<dt>7: jQuery and the browser</dt>
<dd>This relatively short chapter looks at two ways of dealing with common tasks in the browser itself – disabling right-click context menus and handling scrolling in the browser window.</dd>
<dt>8: Plugins</dt>
<dd>Chapter 8 looks at all aspects of plugins from how to construct one from scratch and best practices when working with them, to how they attach to the jquery.fn object to become new jQuery methods. Other less well known aspects of plugin development such as invoking plugins programmatically without using a collection of selected elements are also covered in detail.</dd>
<dt>9: Performance best practices</dt>
<dd>Chapter 9 is a collection of tips and best practices to use to ensure that your jQuery–powered interfaces remain responsive. This chapter is filled with information that intermediate to advanced developers should be considering whenever they write jQuery including selector performance, minimising DOM changes, method and selector optimization and when to use native JavaScript methods instead of jQuery functionality.</dd>
<dt>10: Effects</dt>
<dd>Chapter eleven is concerned with the different jQuery effects and how best to leverage them. Subjects of this chapter include determining which elements are currently being animated using the :animated filter, using show(), hide() and toggle() logic without animations and the difference between sequential and non-sequential animations.</dd>
<dt>11: AJAX</dt>
<dd>Chapter 11 looks at the base ajax() method from which all other AJAX methods are derived and looks in detail at cross-domain requests with JSONP and how to control caching of XHR requests.</dd>
<dt>12: Miscellaneous concepts</dt>
<dd>The final chapter is a mixed bag of concepts giving some theory but mostly practical recipes for achieving different things with jQuery such as storing data on DOM elements, embedding flash objects with a plugin, pre-loading assets (images and XHR) and adding new functions to the jQuery namespace.</dd>
</dl>
<h2>Summary</h2>
<p>Overall this would be a great addition to any jQuery developer&#8217;s library and I&#8217;d thoroughly recommend it for all but the most advanced developers. Its easy readability combined with its detailed examples make this a book that I&#8217;ll repeatedly turn to for reference.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danwellman.co.uk/review-of-jquery-enlightenment-by-cody-lindley/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

