<?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>Ajaxian &#187; Books</title>
	<atom:link href="http://ajaxian.com/by/topic/books/feed" rel="self" type="application/rss+xml" />
	<link>http://ajaxian.com</link>
	<description>Cleaning up the web with Ajax</description>
	<lastBuildDate>Tue, 22 May 2012 21:45:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
    	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Ext JS in Action: The Table Layout</title>
		<link>http://ajaxian.com/archives/ext-js-in-action-the-table-layout</link>
		<comments>http://ajaxian.com/archives/ext-js-in-action-the-table-layout#comments</comments>
		<pubDate>Wed, 07 Oct 2009 11:45:45 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7600</guid>
		<description><![CDATA[Jesus Garcia kindly gave us excerpts from his book Ext JS in Action. Now he is back with a new excerpt from a chapter on the Table Layout (download PDF): The table layout gives you complete control over how you want to visually organize your components. Many of us are used to building HTML tables <a href="http://ajaxian.com/archives/ext-js-in-action-the-table-layout">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://ajaxian.com/wp-content/images/extjsbook.png" alt="extjsbook" title="extjsbook" width="171" height="214" class="alignnone size-full wp-image-7602" style="float:right"/></p>
<p>Jesus Garcia kindly <a href="http://ajaxian.com/archives/ext-js-in-action-excerpts-and-discount-ext-js-30-rc-update">gave us excerpts</a> from his book <a href="http://www.manning.com/garcia">Ext JS in Action</a>.</p>
<p>Now he is back with a new excerpt <a href='http://ajaxian.com/wp-content/images/ExtJSInActionCH05new.pdf'>from a chapter on the Table Layout (download PDF)</a>:</p>
<blockquote><p>
The table layout gives you complete control over how you want to visually organize your components. Many of us are used to building HTML tables the traditional way, where we actually write the HTML code. Building a table of Ext Components, however, is different as we specify the content of the table cells in a single dimension array, which can get a little confusing. Once you’ve done these exercises, you’ll be an expert in this layout.
</p></blockquote>
<p>Manning has also given us the discount code “ajaxian35? that gives you 35% off of any version of this book. So, if you like what you see in the excerpts, get it cheap!</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/ext-js-in-action-the-table-layout/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Designing Web Interfaces with Bill Scott and Theresa Neil</title>
		<link>http://ajaxian.com/archives/designing-web-interfaces</link>
		<comments>http://ajaxian.com/archives/designing-web-interfaces#comments</comments>
		<pubDate>Wed, 04 Feb 2009 11:05:15 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5878</guid>
		<description><![CDATA[Bill Scott presented Designing Web Interfaces, a slideshow based on core items from his book (co-authored by Theresa Neil). There are some really interesting posts on the site, such as 30 Essential Controls. Theresa has been pinging the major frameworks and will be posting a matrix of coverage by the various frameworks. But more generally <a href="http://ajaxian.com/archives/designing-web-interfaces">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=dwi-1233708570866247-2&#038;stripped_title=designing-web-interfaces-book-oreilly-webcast" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=dwi-1233708570866247-2&#038;stripped_title=designing-web-interfaces-book-oreilly-webcast" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></p>
<p>Bill Scott presented Designing Web Interfaces, a slideshow based on core items from <a href="http://designingwebinterfaces.com/">his book</a> (co-authored by Theresa Neil).</p>
<p>There are some really interesting posts on the site, such as <a href="http://designingwebinterfaces.com/essential_controls">30 Essential Controls</a>. Theresa has been pinging the major frameworks and will be posting a matrix of coverage by the various frameworks. But more generally it is a nice checklist of controls that can liven up an interface.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/designing-web-interfaces/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Book review: &#8220;Web Form Design: Filling in the Blanks&#8221; by Wroblewski</title>
		<link>http://ajaxian.com/archives/book-review-web-form-design-filling-in-the-blanks-by-wroblewski</link>
		<comments>http://ajaxian.com/archives/book-review-web-form-design-filling-in-the-blanks-by-wroblewski#comments</comments>
		<pubDate>Mon, 22 Dec 2008 21:46:03 +0000</pubDate>
		<dc:creator>Dietrich Kappe</dc:creator>
				<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5480</guid>
		<description><![CDATA[Usability and design guru Luke Wroblewski knows that web forms suck. More importantly, he knows why &#8211; and how to make them suck less. For the past few years, the Yahoo! product design exec has been presenting his ongoing research into the humble HTML form at conferences and on his blog, Functioning Form. I attended <a href="http://ajaxian.com/archives/book-review-web-form-design-filling-in-the-blanks-by-wroblewski">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://ajaxian.com/wp-content/uploads/webforms-lg.gif"><img src="http://ajaxian.com/wp-content/uploads/webforms-lg.gif" alt="" title="webforms-lg" width="161" height="235" class="alignright size-full wp-image-5481" /></a></p>
<p>Usability and design guru Luke Wroblewski knows that web forms suck. More importantly, he knows why &#8211; and how to make them suck less.</p>
<p>For the past few years, the Yahoo! product design exec has been presenting his ongoing research into the humble HTML form at conferences and on his blog, <a href="http://www.lukew.com/ff/">Functioning Form</a>. I attended Wroblewski&#8217;s presentation at An Event Apart Chicago 2007 <a href="http://www.pathf.com/blogs/2007/11/luke-w-on-web-f/">and came away super-impressed</a>. His persuasive mixture of case studies, existing research and newly commissioned usability studies helped shed light on the patterns and anti-patterns that determine whether users successfully complete your forms or give up in disgust.</p>
<p>All of Wroblewski&#8217;s preparation came to fruition earlier this year when he published <a href="http://www.rosenfeldmedia.com/books/webforms/">&#8220;Web Form Design: Filling in the Blanks&#8221;</a> (Rosenfeld Media). After finally taking the time to read the book cover to cover, I&#8217;m mad at myself for waiting so long.</p>
<p><a href="http://www.pathf.com/blogs/2008/12/book-recommendation-web-form-design-filling-in-the-blanks-by-wroblewski/">More&#8230;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/book-review-web-form-design-filling-in-the-blanks-by-wroblewski/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Secrets of the JavaScript Ninja: A sneak peak for Ajaxians</title>
		<link>http://ajaxian.com/archives/secrets-of-the-javascript-ninja-a-sneak-peak-for-ajaxians</link>
		<comments>http://ajaxian.com/archives/secrets-of-the-javascript-ninja-a-sneak-peak-for-ajaxians#comments</comments>
		<pubDate>Thu, 14 Aug 2008 11:59:58 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[johnresig]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=4095</guid>
		<description><![CDATA[John Resig is working on the Secrets of the JavaScript Ninja book, which I am sure will be a success. Manning has been kind enough to give us a sneak peak at some of the chapters: How closures work This content introduces the closure, an important aspect of JavaScript, and describes its use. It goes <a href="http://ajaxian.com/archives/secrets-of-the-javascript-ninja-a-sneak-peak-for-ajaxians">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>John Resig is working on the <a href="www.manning.com/resig">Secrets of the JavaScript Ninja</a> book, which I am sure will be a success.</p>
<p>Manning has been kind enough to give us a sneak peak at some of the chapters:</p>
<p><a href="http://ajaxian.com/downloads/books/javascriptninja/JavaScriptNinja_ch3_Article1.pdf">How closures work</a></p>
<p>This content introduces the closure, an important aspect of JavaScript, and describes its use. It goes into detail on making private data, and dealing with callbacks and timers.</p>
<p><a href="http://ajaxian.com/downloads/books/javascriptninja/JavaScriptNinja_ch3_Article2.pdf">Using (function(){})()</a></p>
<p>Next up introduces the construct (function(){})() and describes its use in relationship to closures. See how you can create encapsulated temporary scopes.</p>
<p><a href="http://ajaxian.com/downloads/books/javascriptninja/JavaScriptNinja_ch5_Article1.pdf">Instantiation and Prototypes</a></p>
<p>This section introduces the technique of instantiating a function to give its prototype property functionality.</p>
<p><a href="http://ajaxian.com/downloads/books/javascriptninja/JavaScriptNinja_ch5_Article2.pdf">Class-like Code</a></p>
<p>And finally we are introduced to the technique of emulating classical-style inheritance in JavaScript.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/secrets-of-the-javascript-ninja-a-sneak-peak-for-ajaxians/feed</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Book review: “JavaScript: The Good Parts” by Crockford</title>
		<link>http://ajaxian.com/archives/book-review-%e2%80%9cjavascript-the-good-parts%e2%80%9d-by-crockford</link>
		<comments>http://ajaxian.com/archives/book-review-%e2%80%9cjavascript-the-good-parts%e2%80%9d-by-crockford#comments</comments>
		<pubDate>Tue, 29 Jul 2008 20:51:04 +0000</pubDate>
		<dc:creator>Dietrich Kappe</dc:creator>
				<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=3958</guid>
		<description><![CDATA[I heart David Flanagan. I&#8217;m making my way through &#8220;The Ruby Programming Language&#8221; this summer. Its exhaustiveness really satisfies. But a decade ago, my programming Bible was Flanagan&#8217;s &#8220;JavaScript: The Definitive Guide&#8221;. As I transitioned from a career in content to a career in code, &#8220;the Rhino book&#8221; taught me everything I needed to know <a href="http://ajaxian.com/archives/book-review-%e2%80%9cjavascript-the-good-parts%e2%80%9d-by-crockford">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.pathf.com/blogs/wp-content/uploads/2008/07/javascript-the-good-parts.jpg" alt="" title="javascript-the-good-parts" class="alignright" />I heart David Flanagan. I&#8217;m making my way through &#8220;The Ruby Programming Language&#8221; this summer. Its exhaustiveness really satisfies. But a decade ago, my programming Bible was Flanagan&#8217;s &#8220;JavaScript: The Definitive Guide&#8221;. As I transitioned from a career in content to a career in code, &#8220;the Rhino book&#8221; taught me everything I needed to know about object-oriented JavaScript, DOM scripting and the other building blocks of today&#8217;s Ajax landscape. I&#8217;ve bought a hard copy of each of the book&#8217;s five editions. It remained, until recently, the only JavaScript book I&#8217;d recommend.</p>
<p>That all changed with the recent publication of JavaScript: The Good Parts by Yahoo&#8217;s Douglas Crockford. Crockford probably needs no introduction. His incisive website and frequent blog posts have championed JavaScript&#8217;s power and potential while calling out its drawbacks and frequent misuse. Now, with &#8220;JavaScript: The Good Parts,&#8221; he has managed to provide a reference as useful for JavaScript pros as it is for novices. Part language primer, part apologia and part critique, Crockford&#8217;s book draws from and extends many of his long-gestating themes about how to use JavaScript &#8211; and how not to use it.</p>
<p>The author&#8217;s premise is so simple and intuitive that it sounds like rubbish until you suddenly realize that this is how all programming languages should be taught:</p>
<blockquote><p>When I was a young journeyman programmer, I would learn about every feature of the languages I was using, and I would attempt to use all of those features when I wrote. &#8230;</p>
<p>    Eventually I figured out that some of those features were more trouble than they were worth. Some of them were poorly specified, and so were more likely to cause portability problems. Some resulted in code that was difficult to read or modify. Some induced me to write in a manner that was too tricky and error-prone. And some of those features were design errors. Sometimes language designers make mistakes.</p>
<p>    Most programming languages contain good parts and bad parts. I discovered that I could be a better programmer by using only the good parts and avoiding the bad parts. After all, how can you build something good out of bad parts?</p></blockquote>
<p><a href="http://www.pathf.com/blogs/2008/07/book-review-javascript-the-good-parts-by-crockford/"><br />
More&#8230;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/book-review-%e2%80%9cjavascript-the-good-parts%e2%80%9d-by-crockford/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Book Excerpt: Practical Prototype and Script.aculo.us, Advanced Ajax Chapter 4</title>
		<link>http://ajaxian.com/archives/book-excerpt-practical-prototype-and-scriptaculous-advanced-ajax-chapter-4</link>
		<comments>http://ajaxian.com/archives/book-excerpt-practical-prototype-and-scriptaculous-advanced-ajax-chapter-4#comments</comments>
		<pubDate>Thu, 26 Jun 2008 12:16:51 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Prototype]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=3793</guid>
		<description><![CDATA[Andrew Dupont has written Practical Prototype and Script.aculo.us and has kindly given us a chapter excerpt to peruse. You can download chapter 4 in PDF format here. The chapter covers &#8220;Ajax: Advanced Client/Server Communication&#8221;: By now, youâ€™re almost certainly familiar with Ajax as a buzzword. Technically, itâ€™s an acronymâ€”Asynchronous JavaScript and XML â€” and refers <a href="http://ajaxian.com/archives/book-excerpt-practical-prototype-and-scriptaculous-advanced-ajax-chapter-4">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.apress.com/book/view/1590599195"><img src="http://www.apress.com/resource/bookcover/9781590599198?size=medium" border="0" style="float: right; padding: 8px;"/></a></p>
<p>Andrew Dupont has written <a href="http://www.apress.com/book/view/1590599195">Practical Prototype and Script.aculo.us</a> and has kindly given us a chapter excerpt to peruse.</p>
<p>You can <a href="http://ajaxian.com/downloads/books/practicalprototype/practicalprototype_ch4.pdf">download chapter 4 in PDF format here</a>. The chapter covers &#8220;Ajax: Advanced Client/Server<br />
Communication&#8221;:</p>
<blockquote><p>
By now, youâ€™re almost certainly familiar with Ajax as a buzzword. Technically, itâ€™s an acronymâ€”Asynchronous JavaScript and XML â€” and refers specifically to JavaScriptâ€™s XmlHttpRequestobject,which lets a browser initiate an HTTP request outside the confines of the traditional page request. </p>
<p>Yawn. The technology isnâ€™t the exciting part. Ajax is huge because it pushes the boundaries of what you can do with a web UI: it lets you reload part of a page without reloading the entire page. For a page-based medium like the Web, this is a seismic leap forward.
</p></blockquote>
<p>The chapter delves into the world of Ajax.Request, Ajax.Updater, Ajax.PeriodicalUpdater, by showing subtle examples of how to deal with timers, errors, and a lot more.</p>
<p>Like the chapter? <a href="http://www.apress.com/book/view/1590599195">check out the book home page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/book-excerpt-practical-prototype-and-scriptaculous-advanced-ajax-chapter-4/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Exclusive Mastering Dojo Chapters</title>
		<link>http://ajaxian.com/archives/exclusive-mastering-dojo-chapters</link>
		<comments>http://ajaxian.com/archives/exclusive-mastering-dojo-chapters#comments</comments>
		<pubDate>Sat, 10 May 2008 00:10:36 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/archives/exclusive-mastering-dojo-chapters</guid>
		<description><![CDATA[Craig Riecke, Rawld Gill, and Alex Russell, along with the Pragmatic Programmers themselves have been kind enough to give the Ajaxian community some exclusive extracts from the Mastering Dojo beta book. What do we have on the docket? First, we have details on the Dojo DOM Apis. Specifically, the author takes us through a challenge <a href="http://ajaxian.com/archives/exclusive-mastering-dojo-chapters">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://pragprog.com/titles/rgdojo/mastering-dojo"><img src="http://www.pragprog.com/images/covers/190x228/betas/rgdojo.jpg?1201636964" border="0" style="float: right; padding: 8px" /></a></p>
<p>Craig Riecke, Rawld Gill, and Alex Russell, along with the Pragmatic Programmers themselves have been kind enough to give the Ajaxian community some exclusive extracts from the <a href="http://pragprog.com/titles/rgdojo/mastering-dojo">Mastering Dojo</a> beta book.</p>
<p>What do we have on the docket?</p>
<p>First, we have details on the <a href="http://www.ajaxian.com/downloads/books/masteringdojo/format.pdf">Dojo DOM Apis</a>. Specifically, the author takes us through a challenge involving interview questions and manipulating the DOM for them. We end up seeing code that uses dojo.query, and class addition such as:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-2');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-2">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">function</span> layout1<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span> </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; dojo.<span style="color: #006600;">addClass</span><span style="color:#006600; font-weight:bold;">&#40;</span>dojo.<span style="color: #006600;">query</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">"form&gt; p"</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#800000;">0</span><span style="color:#006600; font-weight:bold;">&#93;</span>, <span style="color: #3366CC;">"formTitle"</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; dojo.<span style="color: #006600;">query</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">"div.questions p"</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">forEach</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span>node, i<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span> </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; dojo.<span style="color: #006600;">addClass</span><span style="color:#006600; font-weight:bold;">&#40;</span>node, <span style="color:#006600; font-weight:bold;">&#40;</span>i % <span style="color:#800000;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span> ? <span style="color: #3366CC;">"lightBand"</span> : <span style="color: #3366CC;">"darkBand"</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>It then delves into the intricacies of dojo.query and beyond.</p>
<p>Secondly, we have <a href="http://www.ajaxian.com/downloads/books/masteringdojo/widget.pdf">Ajax the Dojo way</a> which takes us on a trip down dojo.data and dojox.Grid lane... two differentiating features that Dojo comes with. The chapter builds a wishlist system using these features.</p>
<p>There is a lot lot more in the book, which the <a href="http://www.ajaxian.com/downloads/books/masteringdojo/toc.pdf">table of contents</a> covers for you. There are 400 pages of material here that cover the huge variety that exists within the Dojo community.</p>
<p>Thanks to the authors and the editor for sharing this with us.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/exclusive-mastering-dojo-chapters/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>JavaScript: The Good Parts</title>
		<link>http://ajaxian.com/archives/javascript-the-good-parts</link>
		<comments>http://ajaxian.com/archives/javascript-the-good-parts#comments</comments>
		<pubDate>Tue, 15 Apr 2008 13:05:19 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=3554</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://javascript.crockford.com/"><img src="http://ajaxian.com/wp-content/images/jsgoodparts.png" alt="JavaScript: The Good Parts" border="0" width="520" height="315"/</a/></p>
<p>Douglas Crockford has an interesting book on the horizon, </a><a href="http://javascript.crockford.com/">JavaScript: The Good Parts</a>. When I first heard about the combination of author and title, I couldn't help but think that it would be a short book, maybe a two pager as above.</p>
<p>But, Douglas has taken a deep look and found some content <a href="http://www.oreilly.com/catalog/978059651774/index.html#top">worthy of a book</a>:</p>
<blockquote><p>
Most programming languages contain good and bad parts, but JavaScript has more than its share of the bad, having been developed and released in a hurry before it could be refined. This authoritative book scrapes away these bad features to reveal a subset of JavaScript that's more reliable, readable, and maintainable than the language as a whole-a subset you can use to create truly extensible and efficient code.</p>
<p>Most programming languages contain good and bad parts, but JavaScript has more than its share of the bad, having been developed and released in a hurry before it could be refined. This authoritative book scrapes away these bad features to reveal a subset of JavaScript that's more reliable, readable, and maintainable than the language as a whole-a subset you can use to create truly extensible and efficient code.</p>
<p>Considered <em>the</em> JavaScript expert by many people in the development community, author Douglas Crockford identifies the abundance of good ideas that make JavaScript an outstanding object-oriented programming language-ideas such as functions, loose typing, dynamic objects, and an expressive object literal notation. Unfortunately, these good ideas are mixed in with bad and downright awful ideas, like a programming model based on global variables.</p>
<p>When Java applets failed, JavaScript became the language of the Web by default, making its popularity almost completely independent of its qualities as a programming language. In <em>JavaScript: The Good Parts</em>, Crockford finally digs through the steaming pile of good intentions and blunders to give you a detailed look at all the genuinely elegant parts of JavaScript, including:</p>
<ul>
<li>Syntax</li>
<li>Objects</li>
<li>Functions</li>
<li>Inheritance</li>
<li>Arrays</li>
<li>Regular expressions</li>
<li>Methods</li>
<li>Style</li>
<li>Beautiful features</li>
</ul>
<p>The real beauty? As you move ahead with the subset of JavaScript that this book presents, you'll also sidestep the need to <em>unlearn</em> all the bad parts. Of course, if you want to find out more about the bad parts and how to use them badly, simply consult any other JavaScript book. </p>
<p>With <em>JavaScript: The Good Parts</em>, you'll discover a beautiful, elegant, lightweight and highly expressive language that lets you create effective code, whether you're managing object libraries or just trying to get Ajax to run fast. If you develop sites or applications for the Web, this book is an absolute must.
</p></blockquote>
<p>Combine this with <a href="http://ejohn.org/blog/state-of-the-secrets/">John Resig</a>'s new book, and we have some good stuff to look forward too.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/javascript-the-good-parts/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Book review: Advanced Ajax by Lauriat (Part 2 of 2)</title>
		<link>http://ajaxian.com/archives/book-review-advanced-ajax-by-lauriat-part-2-of-2</link>
		<comments>http://ajaxian.com/archives/book-review-advanced-ajax-by-lauriat-part-2-of-2#comments</comments>
		<pubDate>Wed, 02 Apr 2008 21:51:47 +0000</pubDate>
		<dc:creator>Dietrich Kappe</dc:creator>
				<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=3509</guid>
		<description><![CDATA[Back in February, I reviewed the first half of Shawn M. Lauriat's "Advanced Ajax: Architecture and Best Practices" (Prentice Hall, 2008, 360p). The first four chapters of Lauriat's book, which focused almost exclusively on client-side technologies, impressed me considerably. But it's taken me several weeks to get through the remainder of the book, and there's <a href="http://ajaxian.com/archives/book-review-advanced-ajax-by-lauriat-part-2-of-2">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://blogs.pathf.com/agileajax/images/2008/04/02/advancedajax.jpg" alt="Advanced Ajax" style="float:right;margin: 0 0 8px 8px;"/>Back in February, <a href="http://blogs.pathf.com/agileajax/2008/02/book-review-adv.html" > I reviewed the first half of Shawn M. Lauriat's "Advanced Ajax: Architecture and Best Practices"</a> (Prentice Hall, 2008, 360p). The first four chapters of Lauriat's book, which focused almost exclusively on client-side technologies, impressed me considerably. But it's taken me several weeks to get through the remainder of the book, and there's one reason why: PHP.</p>
<p>The server-side portion of "Advanced Ajax" uses PHP code to illustrate its many and varied lessons about Ajax architecture. It's not that I have anything against the popular web-development framework and scripting language. It's just that, after spending my career in the ASP Classic and JSP trenches and slowly ramping up on Rails in the last year, I'm not the ideal target audience for these code samples. Adding "PHP" to the title of the book might have limited its potential audience, but it also would have been more accurate.</p>
<p>That said, there's a lot of value here for adherents of any server-side framework. Lauriat discusses each topic from a general perspective before diving into the code. The technical approach to a given problem would obviously differ by framework, but the high-level approach wouldn't. If you don't mind skimming past the content that doesn't apply to you, Lauriat's advice about developing stable, scalable, accessible and secure Ajax applications transcends framework allegiance.</p>
<p><a href="http://blogs.pathf.com/agileajax/2008/04/book-review-adv.html#more"><br />
more...</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/book-review-advanced-ajax-by-lauriat-part-2-of-2/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Book review: Advanced Ajax by Lauriat</title>
		<link>http://ajaxian.com/archives/book-review-advanced-ajax-by-lauriat</link>
		<comments>http://ajaxian.com/archives/book-review-advanced-ajax-by-lauriat#comments</comments>
		<pubDate>Tue, 12 Feb 2008 22:41:44 +0000</pubDate>
		<dc:creator>Dietrich Kappe</dc:creator>
				<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=3324</guid>
		<description><![CDATA[Because Ajax moves so much application logic from the server to the client, it forces many developers to master a wider range of web technologies than ever before. To work effectively on Ajax projects, front-end developers have to concern themselves with database performance, business logic and other server-side concerns. Back-end and middleware developers, meanwhile, have <a href="http://ajaxian.com/archives/book-review-advanced-ajax-by-lauriat">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img alt="Advanced Ajax" title="Advanced Ajax" src="http://blogs.pathf.com/photos/uncategorized/2008/02/12/advancedajax.jpg" style="margin: 0px 0px 5px 5px; float: right; font-size: 19.5556px;" border="0" height="225" width="169"/></p>
<p>Because Ajax moves so much application logic from the server to the client, it forces many developers to master a wider range of web technologies than ever before. To work effectively on Ajax projects, front-end developers have to concern themselves with database performance, business logic and other server-side concerns. Back-end and middleware developers, meanwhile, have to make friends with XHTML, CSS, JavaScript and a wide range of browsers. Sure, it's possible to develop Ajax apps in a siloed team environment. But it's not the easiest way, and it rarely provides the strongest results.</p>
<p>Shawn M. Lauriat's "<a href="http://www.amazon.com/Advanced-Ajax-Architecture-Best-Practices/dp/0131350641">Advanced Ajax: Architecture and Best Practices</a>" (Prentice Hall, 2008, 360p) bridges the gap between developers with exclusive client- or server-side skills. By exploring tools, technologies and best practices for every layer of the Ajax programming model, this solid new programming manual promises to plug the holes in any developer's resume. Lauriat's tops-to-tails approach offers something for almost any developer, but it also guarantees most readers will find some sections remedial. As this two-part review will demonstrate, that's not necessarily a liability.</p>
<p><a href="http://blogs.pathf.com/agileajax/2008/02/book-review-adv.html#more">more...</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/book-review-advanced-ajax-by-lauriat/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book: Practical DWR 2</title>
		<link>http://ajaxian.com/archives/book-practical-dwr-2</link>
		<comments>http://ajaxian.com/archives/book-practical-dwr-2#comments</comments>
		<pubDate>Fri, 01 Feb 2008 11:24:38 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[DWR]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=3274</guid>
		<description><![CDATA[Frank Zammetti has authored the first book dedicated to DWR, Practical DWR 2 (Amazon). Joe Walker wrote a foreward which he posted, and here is Frank's personal message: Ajax represents a brave, new(ish) world of web development where coding on the client is just as important as on the server side. Hundreds of libraries exist <a href="http://ajaxian.com/archives/book-practical-dwr-2">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://getahead.org/images/apress-dwr-book.jpg" border="0" style="float: right; padding: 8px;" /></p>
<p>Frank Zammetti has authored the first book dedicated to DWR, <a href="http://www.apress.com/book/search?searchterm=zammetti&#038;act=search">Practical DWR 2</a> (<a href="http://www.amazon.com/Practical-DWR-Projects/dp/1590599411/ref=sr_1_4?ie=UTF8&#038;s=books&#038;qid=1201563857&#038;sr=8-4">Amazon</a>). </p>
<p>Joe Walker <a href="http://getahead.org/blog/joe/2008/01/28/the_roller_coaster_of_open_source.html">wrote a foreward which he posted</a>, and here is Frank's personal message:</p>
<blockquote><p>
Ajax represents a brave, new(ish) world of web development where coding on the client is just as important as on the server side. Hundreds of libraries exist that purport to make it easier for you, and thereâ€™s always the "Do It Yourself" approach. Which route should you take?</p>
<p>If you work with Java technologies, one choice that stands out is DWR, or Direct Web Remoting. With DWR, JavaScript-based client code that calls server-side objects works as if it were all running in the same process space. The simplicity and power DWR blends together has few rivals today.</p>
<p>In this, the first DWR book to be published, youâ€™ll be introduced to DWR and all it has to offer, including reverse Ajax, XML and annotation-based configuration, container-managed security, simple POJO-based development, and greatly simplified client-side coding. Youâ€™ll learn by doing as you explore six fully functional applications including the following:</p>
<ul>
<li>A webmail client for remotely accessing your e-mail accounts</li>
<li>A wiki for collaborative efforts</li>
<li>A file manager for remotely managing your serverâ€™s file system</li>
<li>A portal for enterprise reporting needs</li>
<li>A project management/time-tracking system</li>
<li>Even a fun little game!</li>
</ul>
<p>In addition to DWR, youâ€™ll also see how other popular libraries help realize the RIA/Web 2.0 vision, including Spring, Hibernate, dHTMLx, DataVision, Freemarker, and Ext JS. If you're doing RIA development in Java, DWR is for you, as too is this book.</p>
<p>(and if you like sci-fi and pop culture references strewn throughout your reading material, and a touch of wise a**-edness too, you're in for a good time to boot!)
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/book-practical-dwr-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eloquent JavaScript</title>
		<link>http://ajaxian.com/archives/eloquent-javascript</link>
		<comments>http://ajaxian.com/archives/eloquent-javascript#comments</comments>
		<pubDate>Tue, 22 Jan 2008 10:57:25 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=3233</guid>
		<description><![CDATA[Marijn Haverbeke has put together an online book titled Eloquent JavaScript that not only has some nice content, but incorporates an integrated interface for editing and running example programs. Introduction Basic JavaScript: values, variables, and control flow Functions Data structures: Objects and Arrays Error Handling Functional Programming Searching Object-oriented Programming Modularity Regular Expressions Web programming: <a href="http://ajaxian.com/archives/eloquent-javascript">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Marijn Haverbeke has put together an online book titled <a href="http://eloquentjavascript.net/contents.html">Eloquent JavaScript</a> that not only has some nice content, but incorporates an integrated interface for editing and running example programs.</p>
<ul><a href="http://eloquentjavascript.net/chapter1.html">Introduction</a>
<li><a href="http://eloquentjavascript.net/chapter2.html">Basic JavaScript: values, variables, and control flow</a></li>
<li><a href="http://eloquentjavascript.net/chapter3.html">Functions</a></li>
<li><a href="http://eloquentjavascript.net/chapter4.html">Data structures: Objects and Arrays</a></li>
<li><a href="http://eloquentjavascript.net/chapter5.html">Error Handling</a></li>
<li><a href="http://eloquentjavascript.net/chapter6.html">Functional Programming</a></li>
<li><a href="http://eloquentjavascript.net/chapter7.html">Searching</a></li>
<li><a href="http://eloquentjavascript.net/chapter8.html">Object-oriented Programming</a></li>
<li><a href="http://eloquentjavascript.net/chapter9.html">Modularity</a></li>
<li><a href="http://eloquentjavascript.net/chapter10.html">Regular Expressions</a></li>
<li><a href="http://eloquentjavascript.net/chapter11.html">Web programming: A crash course</a></li>
<li><a href="http://eloquentjavascript.net/chapter12.html">The Document-Object Model</a></li>
<li><a href="http://eloquentjavascript.net/chapter13.html">Browser Events</a></li>
<li><a href="http://eloquentjavascript.net/chapter14.html">HTTP requests</a></li>
</ul>
<p><a href="http://eloquentjavascript.net/contents.html"><img src="http://ajaxian.com/wp-content/images/eloquentjs.png" alt="Eloquent JavaScript" border="0" width="520" height="235"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/eloquent-javascript/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Book recommendation: Ajax Security by Hoffman and Sullivan</title>
		<link>http://ajaxian.com/archives/book-recommendation-ajax-security-by-hoffman-and-sullivan</link>
		<comments>http://ajaxian.com/archives/book-recommendation-ajax-security-by-hoffman-and-sullivan#comments</comments>
		<pubDate>Wed, 16 Jan 2008 17:24:01 +0000</pubDate>
		<dc:creator>Dietrich Kappe</dc:creator>
				<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=3217</guid>
		<description><![CDATA[Reviewers overuse the phrase "required reading," but no other description fits the new book "Ajax Security" (2007, Addison Wesley, 470p). This exhaustive tome from Billy Hoffman and Bryan Sullivan places the specific security concerns of the Ajax programming model in historical perspective. It demonstrates not only new security threats that are unique to Ajax, but <a href="http://ajaxian.com/archives/book-recommendation-ajax-security-by-hoffman-and-sullivan">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://blogs.pathf.com/photos/uncategorized/2008/01/16/9780321491930_xs.jpg" alt="Ajax Security" style="margin: 0px 0px 5px 5px; float: right;" /><br />
Reviewers overuse the phrase "required reading," but no other description fits the new book "<a href="http://www.amazon.com/Ajax-Security-Billy-Hoffman/dp/0321491939/ref=pd_bbs_sr_1?ie=UTF8&#038;s=books&#038;qid=1200497800&#038;sr=8-1">Ajax Security</a>" (2007, Addison Wesley, 470p). This exhaustive tome from Billy Hoffman and Bryan Sullivan places the specific security concerns of the Ajax programming model in historical perspective. It demonstrates not only new security threats that are unique to Ajax, but established threats that have gained new traction in the Web 2.0 era. It then details both the specific technical solutions and - more importantly - the mindset that are necessary to combat such threats.</p>
<p>Because so many developers have historically overlooked the importance of security, the authors approach their topic for what it is: a remedial subject. They take pains to explain the basic mechanisms by which hackers have exploited insecure web applications over the last decade: cross-site request forgeries, denial of service attacks, cross-site scripting and SQL injection. Then they explain how those mechanisms have changed thanks to the rise of xmlHttpRequest, public APIs, mash-ups and aggregators. If you've ever read a <a href="http://blog.360.yahoo.com/blog-TBPekxc1dLNy5DOloPfzVvFIVOWMB0li?tag=security">Douglas Crockford rant</a> about the "brokenness" of the web security model and wondered why the guy was such an alarmist, Hoffman and Sullivan are only too happy to provide you with a much-needed wake-up call.</p>
<p><a href="http://blogs.pathf.com/agileajax/2008/01/book-recommenda.html">More...</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/book-recommendation-ajax-security-by-hoffman-and-sullivan/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Untold JavaScript Secrets</title>
		<link>http://ajaxian.com/archives/untold-javascript-secrets</link>
		<comments>http://ajaxian.com/archives/untold-javascript-secrets#comments</comments>
		<pubDate>Mon, 31 Dec 2007 12:08:49 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=3159</guid>
		<description><![CDATA[John Resig has some JavaScript secrets that he wishes to tell in a new book, and wants your help in getting more. Some on the tip of his tongue are: What is (function(){ })() and why is it so fundamentally important to modern JavaScript development? What does with(){...} do and why is it so useful? <a href="http://ajaxian.com/archives/untold-javascript-secrets">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>John Resig has some <a href="http://ejohn.org/blog/untold-javascript-secrets/">JavaScript secrets that he wishes to tell in a new book</a>, and wants your help in getting more.</p>
<p>Some on the tip of his tongue are:</p>
<ul>
<li>What is <code>(function(){ })()</code> and why is it so fundamentally important to modern JavaScript development?</li>
<li>What does <code>with(){...}</code> do and why is it so useful?</li>
<li>How can <code>arguments.callee</code> change how I work with JavaScript code?</li>
<li>How exactly do timers work and how can I best use them?</li>
<li>How do I identify and tackle memory leaks in web applications?</li>
<li>How do I write a cross browser way of...
<ul>
<li>Getting/setting attributes.</li>
<li>Injecting HTML strings.</li>
<li>Getting/setting computed css values.</li>
<li>Managing DOM events.</li>
<li>Writing a CSS selector engine.</li>
<li>Doing smooth animations.</li>
</ul>
</li>
<li>How can I use verification tools (like JSLint) to my advantage - and write my own?</li>
<li>What's the best way to transmit JavaScript files?</li>
<li>How do I write my own JavaScript compressor (like Packer)?</li>
</ul>
<p>This looks like good stuff. I am sure the likes of Dean Edwards, Neil Mix, Kris Zyp, Alex Russell, and many others have interesting things to add.</p>
<p>A book that I would love to see is the equivalent of the Eric CSS books for Ajax. Take some real apps and build them in a book. Quality case studies that teach you a lot, in a nice glossy set of copy that makes you smile.</p>
<p>What would you like to see?  Maybe the entire piece could be made collaboratively :)</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/untold-javascript-secrets/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Prototype 1.6, Script.aculo.us 1.8 and The Book.</title>
		<link>http://ajaxian.com/archives/prototype-16-scriptaculous-18-and-the-book</link>
		<comments>http://ajaxian.com/archives/prototype-16-scriptaculous-18-and-the-book#comments</comments>
		<pubDate>Wed, 07 Nov 2007 20:22:36 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[Scriptaculous]]></category>

		<guid isPermaLink="false">http://ajaxian.com/archives/prototype-16-scriptaculous-18-and-the-book</guid>
		<description><![CDATA[This is a big day for Protoscript friends. The triple release. The big one. This post is a long one two as it discusses: Prototype 1.6 Released Script.aculo.us 1.8 Released "Prototype and script.aculo.us: You never knew JavaScript could do this!" book released, and we have a great review by Stu Halloway Prototype 1.6 They cleaned <a href="http://ajaxian.com/archives/prototype-16-scriptaculous-18-and-the-book">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>This is a big day for Protoscript friends. The triple release. The big one. This post is a long one two as it discusses:</p>
<ul>
<li><a href="http://prototypejs.org/2007/11/7/prototype-1-6-0-script-aculo-us-1-8-0-and-the-bungee-book-now-available">Prototype 1.6 Released</a></li>
<li><a href="http://mir.aculo.us/2007/11/7/script-aculo-us-1-8-prototype-1-6-and-the-book-released">Script.aculo.us 1.8 Released</a></li>
<li><a href="http://pragprog.com/titles/cppsu">"Prototype and script.aculo.us: You never knew JavaScript could do this!"</a> book released, and we have a great review by Stu Halloway</li>
</ul>
<p><b>Prototype 1.6</b></p>
<p>They cleaned up, and <a href="http://prototypejs.org/2007/11/7/prototype-1-6-0-script-aculo-us-1-8-0-and-the-bungee-book-now-available">1.6 is a really nice piece of work</a>. A lot of little nit-picks are now solved, and you are left with the lean mean machine that you know and love.</p>
<p><b>Highlights</b></p>
<ul>
<li>Ajax transport objects are now automatically wrapped in an <tt>Ajax.Response</tt> object.</li>
<li><tt>Ajax.Response</tt> includes support for accessing <span class="caps">JSON</span> response bodies as JavaScript objects  via the <tt>responseJSON</tt> property.</li>
<li>The class <span class="caps">API</span> now includes full support for inheritance and superclass method calls. (See <a href="http://prototypejs.org/learn/class-inheritance">Mislavâ€™s tutorial</a> for more info.)</li>
<li>Class objects now have an <tt>addMethods</tt> method for adding instance methods after creation.</li>
<li>Elements can be created easily with the <tt>new Element(...)</tt> syntax.</li>
<li><tt>Element#insert</tt> provides a unified <span class="caps">API</span> to <span class="caps">DOM</span> element and <span class="caps">HTML</span> fragment insertion.</li>
<li><tt>Element#select</tt> is an alias for <tt>getElementsBySelector</tt> and is now the preferred way to find elements by class name.</li>
<li><tt>Element#wrap</tt> lets you easily wrap an element inside another element in place.</li>
<li><tt>Enumerable</tt> methods on <tt>Array</tt> are now backed by native <tt>Array#forEach</tt> implementations when possible.</li>
<li><tt>Enumerable</tt> now has aliases for equivalent JavaScript 1.6 <tt>Array</tt> methods, and support for JavaScript 1.6â€™s context parameter for automatic callback binding.</li>
<li><tt>Enumerable#grep</tt> now calls the match method on its first argument, so you can use it to e.g. filter an array of <span class="caps">DOM</span> nodes by <span class="caps">CSS</span> selector.</li>
<li>Event objects are now automatically extended with instance methods, so you can write e.g. <tt>event.stop()</tt> instead of <tt>Event.stop(event)</tt>.</li>
<li>Prototypeâ€™s event <span class="caps">API</span> now supports firing <span class="caps">DOM</span>-based custom events with <tt>Element#fire</tt>.</li>
<li>The new <tt>dom:loaded</tt> custom event fires when the entire document has loaded and is ready for manipulation.</li>
<li><tt>Function#curry</tt> allows for partial application of function arguments.</li>
<li><tt>Function#wrap</tt> facilitates simple aspect-oriented programming and provides the basis for Prototypeâ€™s superclass method call mechanism.</li>
<li><tt>Function#delay</tt> delays invocation of the function by the given number of seconds.</li>
<li><tt>Function#defer</tt> schedules the function to run as soon as the interpreter is idle.</li>
<li>The <tt>Hash</tt> API has changed, and you must now use <tt>Hash#get</tt> and <tt>Hash#set</tt> instead of directly accessing properties on <tt>Hash</tt> instances.</li>
<li><tt>String#interpolate</tt> is a shortcut for instantiating a <tt>Template</tt> from the string and calling <tt>evaluate</tt> on it.</li>
<li>Object properties can now be used in template replacement strings.</li>
</ul>
<p><b>Script.aculo.us 1.8</b></p>
<p>This is the last release before 2.0 comes out and <a href="http://mir.aculo.us/2007/11/7/script-aculo-us-1-8-prototype-1-6-and-the-book-released">features</a>:</p>
<ul>
<li>Complete rewrite of Ajax.InPlaceEditor and Ajax.InPlaceCollectionEditor</li>
<li>Full <span class="caps">CSS</span> inheritance in Effect.Morph</li>
<li>New core effect: Effect.Tween</li>
<li>Sound: play mp3 files for sound effects; uses native playback on IE and available plugins whereever possible</li>
<li>Duration and distance options for Effect.Shake</li>
<li>Performance improvements</li>
<li>Tons of bugfixes</li>
</ul>
<p><b>The Book</b> (Reviewed by Stu Halloway)	</p>
<p>The skinny: If you develop with Prototype and Scriptaculous, you need<br />
this book.</p>
<p><a href="http://pragprog.com/titles/cppsu">Prototype and script.aculo.us: You Never Knew JavaScript Could Do This!</a> is a long book, by Pragmatic Press standards. At first glance,<br />
this might seem doubly odd, since the libraries themselves are quite<br />
small, totaling only in the 100s of KB. But before I even opened the<br />
book, I hoped that the length might be justified, for two reasons:</p>
<ol>
<li>Prototype and Scripty (hereafter P&#038;S) are packed with dense,<br />
expressive, beautiful code, and they can do far more than their size<br />
might suggest.</li>
<li>Along with several other Ajax libraries, P&#038;S embody a modern<br />
JavaScript style that embraces functional programming. This new style<br />
is not well covered in the JavaScript books currently in print (as of<br />
November 2007), so to learn P&#038;S you also have to learn to think about<br />
JavaScript in a new way.</li>
</ol>
<p>Once inside the book, I was delighted to find that both of my hopes<br />
were addressed. Porteneuve dives straight into the deep end,<br />
embracing JavaScript's functional style immediately in Chapter 2 and<br />
never dumbing down the example code. (Don't worry, there are forward<br />
and backward references to help you along. This is especially nice if<br />
you are reading the electronic copy of the book.) You may need to<br />
read some sections of this book multiple times, and that is a good<br />
thing.</p>
<p>The coverage of both Prototype and Scriptaculous is thorough. Of<br />
course the marquee features receive due attention: Prototype's<br />
Ajax.Request and Scriptaculous's Effects each have their own<br />
chapters. More interesting to me is the thorough coverage of the less<br />
visible parts:</p>
<ul>
<li>Prototype's functional capabilities are significantly enhanced for<br />
the 1.6 release. Chapter 4 shows how to use curry, bind (including<br />
multiple argument invocation), delay, and defer. You can even do some<br />
lightweight Aspect-Oriented Programming (AOP) with the new wrap method.
</li>
<li>Chapter 7, "Playing with the DOM is Finally Fun", nicely mixes<br />
tutorial and reference. The Staff Manager example motivates each<br />
section, but each individual section also acts as a reference for a<br />
set of DOM extensions.
</li>
<li>The Event mechanism has been rewritten and enhanced for Prototype<br />
1.6. Chapter 6 covers the new unified event handling. Porteneuve<br />
motivates the event model by contrasting three approaches: the IE<br />
way, the standards way, and the Prototype way. With 1.6, portability<br />
improves again with synthetic events that fill gaps in the browser<br />
event model, e.g. dom:loaded. You can even fire and respond to your<br />
own custom events.
</li>
<li>I have been using Scripty for years and I never even noticed the<br />
sound API (Chapter 20).</li>
</ul>
<p>Of course, no reviewer feels complete until a few nits have been<br />
picked. So here are a few:</p>
<ul>
<li>Porteneuve embraces Prototype's approach to JavaScript and the web<br />
(as do I). That said, there are many other approaches. It would be<br />
great to have an overview of the philosophical differences that set<br />
P&#038;S apart from other JavaScript libraries.</li>
<li>The book's style is casual, even by Prag standards.
</li>
<li>Prototype and Scriptaculous are a rich buffet, and the book<br />
documents nearly every bite. Sometimes the book could be more<br />
opinionated about the menu. For example, I hate the $break feature in<br />
Prototype. Maybe Porteneuve does too--the example is certainly<br />
contrived.</li>
<li></li>
</ul>
<p>These flaws are relatively minor. Overall I was impressed by the<br />
amount of information in the book. I have been using P&#038;S for years,<br />
and I learned something new in almost every chapter.</p>
<p>For years, developers at software conferences have asked me "What is<br />
the best way to learn Prototype and Scripty?" Until today, my answer<br />
has always been "Read the source code." Not any more. If you are<br />
building applications with P&#038;S, you need to read this book.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/prototype-16-scriptaculous-18-and-the-book/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Adobe AIR Free Book Download</title>
		<link>http://ajaxian.com/archives/adobe-air-free-book-download</link>
		<comments>http://ajaxian.com/archives/adobe-air-free-book-download#comments</comments>
		<pubDate>Wed, 27 Jun 2007 13:34:36 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=2524</guid>
		<description><![CDATA[Mike Chambers and the Adobe AIR crew have generously released the Adobe Integrated Runtime (AIR) for JavaScript Developers Pocket Guide (Amazon) under a creative commons license. They have given us an electronic copy available for download for free, here. The pocket guide covers: Introduction to AIR Getting Started with AIR development Working with JavaScript and <a href="http://ajaxian.com/archives/adobe-air-free-book-download">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Mike Chambers and the Adobe AIR crew have generously released the <a href="http://www.amazon.com/Integrated-Runtime-JavaScript-Developers-Pocket/dp/0596515197/">Adobe Integrated Runtime (AIR) for JavaScript Developers Pocket Guide (Amazon)</a> under a creative commons license.</p>
<p>They have given us an electronic copy <a href="/downloads/books/AdobeAIR_for_javascript_developers.pdf">available for download for free, here.</a></p>
<p>The pocket guide covers:</p>
<ul>
<li>Introduction to AIR</li>
<li>Getting Started with AIR development</li>
<li>Working with JavaScript and HTML within AIR</li>
<li>AIR Mini Cookbook</li>
<li>Command line tools</li>
<li>Aliases</li>
</ul>
<p>Everyone who shows up for the free <a href="http://onair.adobe.com/">bus tour</a> will get a paper copy of the book.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/adobe-air-free-book-download/feed</wfw:commentRss>
		<slash:comments>48</slash:comments>
		</item>
		<item>
		<title>Bulletproof Ajax</title>
		<link>http://ajaxian.com/archives/bulletproof-ajax</link>
		<comments>http://ajaxian.com/archives/bulletproof-ajax#comments</comments>
		<pubDate>Tue, 16 Jan 2007 16:49:58 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/archives/bulletproof-ajax</guid>
		<description><![CDATA[Bulletproof Ajax is a new book by Jeremy Keith (of DOM Scripting fame). This book is slightly different that many of the other Ajax books in that it is targeted on the design side. The website that accompanies the book has some good examples to look at, so check it out and see if it <a href="http://ajaxian.com/archives/bulletproof-ajax">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://bulletproofajax.com/">Bulletproof Ajax</a> is a new book by Jeremy Keith (of DOM Scripting fame).</p>
<p>This book is slightly different that many of the other Ajax books in that it is targeted on the design side.</p>
<p>The website that accompanies the book has some good <a href="http://bulletproofajax.com/code/">examples</a> to look at, so check it out and see if it is for you.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/bulletproof-ajax/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Prototype docs &#8211; Developer Notes Updated, O&#8217;Reilly Resources</title>
		<link>http://ajaxian.com/archives/prototype-docs-developer-notes-updated-oreilly-resources</link>
		<comments>http://ajaxian.com/archives/prototype-docs-developer-notes-updated-oreilly-resources#comments</comments>
		<pubDate>Tue, 02 Jan 2007 14:02:32 +0000</pubDate>
		<dc:creator>Rob Sanheim</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=1973</guid>
		<description><![CDATA[Apparently Santa was listening to my request for more docs in this last post: Sergio Pereira has updated his outstanding developer notes for Prototype to cover 1.5rc2. Scott Raymond and Sergio also worked together to create the Prototype Quick Reference, a PDF that expands on Sergio's web site. The PDF will also be updated to <a href="http://ajaxian.com/archives/prototype-docs-developer-notes-updated-oreilly-resources">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img class="right" src="http://www.oreilly.com/catalog/covers/0596527446_cat.gif"/></p>
<p>Apparently Santa was listening to my request for more docs in this <a href="http://ajaxian.com/archives/prototype-sucks-20">last post:</a>  Sergio Pereira has updated his <a href="http://www.sergiopereira.com/articles/prototype.js.html">outstanding developer notes</a> for Prototype to cover 1.5rc2.   </p>
<p>Scott Raymond and Sergio also worked together to create the Prototype <a href="http://www.oreilly.com/catalog/prototypeqr/">Quick Reference,</a> a PDF that expands on Sergio's web site.  The PDF will also be updated to cover 1.5 final, whenever that happens.  There is also <a href="http://www.oreilly.com/catalog/9780596527440/index.html">Ajax on Rails</a>, written by Scott with Prototype-specific info contributed by Sergio.  It also covers Scriptactulous and of RJS and other Rails specific methods for developing ajax.  </p>
<p>Does anyone have any reviews of either they could link up or contribute?</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/prototype-docs-developer-notes-updated-oreilly-resources/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Beginning Google Maps Sample Chapters</title>
		<link>http://ajaxian.com/archives/beginning-google-maps-sample-chapters</link>
		<comments>http://ajaxian.com/archives/beginning-google-maps-sample-chapters#comments</comments>
		<pubDate>Wed, 29 Nov 2006 13:41:14 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Mapping]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=1865</guid>
		<description><![CDATA[Beginning Google Maps Applications has a couple of sample chapters to peruse. The sample chapters currently available cover: Interaction: Now that you have your first interactive Google Maps web application, grab aGPS and start looking for geocaches to add to your map! Get your friends involved, too, and show off what youâ€™ve learned. Geocoding: This <a href="http://ajaxian.com/archives/beginning-google-maps-sample-chapters">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.googlemapsbook.com/wordpress/wp-content/uploads/2006/07/frontcover-thumb.jpg" style="float: right; padding: 8px;" /></p>
<p><a href="http://googlemapsbook.com/book/">Beginning Google Maps Applications</a> has a couple of sample chapters to peruse.</p>
<p>The sample chapters currently available cover:</p>
<ul>
<li><a href="http://googlemapsbook.com/sample/Beginning_Google_Maps_Applications_CH3_Sample.pdf">Interaction</a>: Now that you have your first interactive Google Maps web application, grab aGPS and start looking for geocaches to add to your map! Get your friends involved, too, and show off what youâ€™ve learned. </li>
<li><a href="http://googlemapsbook.com/sample/Beginning_Google_Maps_Applications_CH4_Sample.pdf">Geocoding</a>: This chapter covers using geocoding services with your maps. Itâ€™s safe to assume that youâ€™ll be able to adapt the general ideas and examples here to use almost any web-based geocoding service that comes along in the future. From here on, weâ€™ll assume that you know how to use these services (or ones like them) to geocode and cache your information efficiently.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/beginning-google-maps-sample-chapters/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ajax and Security &#8211; Discuss</title>
		<link>http://ajaxian.com/archives/ajax-and-security-discuss</link>
		<comments>http://ajaxian.com/archives/ajax-and-security-discuss#comments</comments>
		<pubDate>Tue, 07 Nov 2006 14:00:02 +0000</pubDate>
		<dc:creator>Rob Sanheim</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Remoting]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[The Ajax Experience]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=1779</guid>
		<description><![CDATA[Often when you hear discussions regarding Ajax and security, its said that the issues remain the same as they were ten years ago: don't trust user input, don't expose sensitive data without encryption, code for security from day one, never display system errors messages, etc. While that is all true and good, one thing I <a href="http://ajaxian.com/archives/ajax-and-security-discuss">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Often when you hear discussions regarding Ajax and security, its said that the issues remain the same as they were ten years ago: don't trust user input, don't expose sensitive data without encryption, code for  security from day one, never display system errors messages, etc.  While that is all true and good, one thing I heard from the Ajax Experience that stuck with me is that "ajax increases the typical amount of <a href="http://cybercoyote.org/security/vectors.shtml">attack vectors</a>".  We are hitting the server more often, with different transports, and often talking to remote servers as well for services.  This will only become a bigger issue as cross domain ajax becomes more prevalent and libraries and tools make it easier to mash things up without having to know each individual services' API.  Do the developers you work with keep up to date on writing secure code?  Have you seen your ajax app exploited by cross-site scripting attacks or sql injection, or are do you consider things "safe" because you are only doing intranet work?</p>
<p>With that in mind, Michel Sutton's entry on <a href="http://portal.spidynamics.com/blogs/msutton/archive/2006/11/01/Top-10-Signs-You-Have-an-Insecure-Web-App.aspx">ten common security mistakes</a> might be a good refresher.  His earlier entry on <a href="http://portal.spidynamics.com/blogs/msutton/archive/2006/09/26/How-Prevalent-Are-SQL-Injection-Vulnerabilities_3F00_.aspx">SQL injection</a> is also worth a read, particularly if you are hand-coding sql and <strong>aren't</strong> using a database library that handles parameterized SQL statements for you (though if thats the case you might have bigger issues...)</p>
<p>Recently I went looking for an authoritative book on web app security for some fun-filled weekend reading, and came up with very few hits.  The closest I found was <a href="http://www.amazon.com/gp/product/0321369440?ie=UTF8&#038;tag=panasonicyout-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0321369440">How to Break Web Software</a><img src="http://www.assoc-amazon.com/e/ir?t=panasonicyout-20&#038;l=as2&#038;o=1&#038;a=0321369440" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> and <a href="http://www.amazon.com/gp/product/0072262990?ie=UTF8&#038;tag=panasonicyout-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0072262990">Hacking Exposed Web Applications, Second Edition</a><img src="http://www.assoc-amazon.com/e/ir?t=panasonicyout-20&#038;l=as2&#038;o=1&#038;a=0072262990" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.  <i>How to Break Web Software</i> has a bunch of good reviews and looks to be a good high level coverage of many of the common attacks.  <i>Hacking Exposed</i> is a bit newer and has less reviews, though the first edition looked to be pretty well received.  That title and cover are pretty painful, though.  Is there an equivalent to the <a href="http://www.amazon.com/gp/product/0131103628?ie=UTF8&#038;tag=panasonicyout-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0131103628">K&#038;R C Book</a><img src="http://www.assoc-amazon.com/e/ir?t=panasonicyout-20&#038;l=as2&#038;o=1&#038;a=0131103628" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> for web app security?</p>
<p>There are a ton of books on server security and locking down your OS, but not much that targets web applications specifically.  Any other good suggestions?  Any web security blogs worth subscribing to?</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/ajax-and-security-discuss/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

