<?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>Global Nerdy &#187; books</title>
	<atom:link href="http://www.globalnerdy.com/category/books/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.globalnerdy.com</link>
	<description>Tech Evangelist Joey deVilla on software development, tech news and other nerdy stuff</description>
	<lastBuildDate>Thu, 19 Nov 2009 02:16:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Cory Doctorow&#8217;s &#8220;Makers&#8221; Launch Tonight</title>
		<link>http://www.globalnerdy.com/2009/11/12/cory-doctorows-makers-launch-tonight/</link>
		<comments>http://www.globalnerdy.com/2009/11/12/cory-doctorows-makers-launch-tonight/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 19:47:42 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Meetups]]></category>
		<category><![CDATA[Play]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[3-D printing]]></category>
		<category><![CDATA[Cory Doctorow]]></category>
		<category><![CDATA[HacklabTO]]></category>
		<category><![CDATA[MakerBot]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/11/12/cory-doctorows-makers-launch-tonight/</guid>
		<description><![CDATA[ 
My friend (and former officemate!) Cory Doctorow is launching his latest novel, Makers, tonight at the Toronto Public Library at 239 College Street (east of Spadina). The fun happens in the Merrill Collection room, located on the third floor at 7 p.m. tonight. Cory will be doing a reading, taking questions and signing books. [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="makers" border="0" alt="makers" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/11/makers.jpg" width="300" height="466" /> </p>
<p><strong>My friend (and former officemate!) <a href="http://en.wikipedia.org/wiki/Cory_Doctorow">Cory Doctorow</a> is launching his latest novel, <em><a href="http://craphound.com/makers/about/">Makers</a></em>, tonight at the Toronto Public Library at <a href="http://www.bing.com/maps/#JnE9eXAuMjM5K0NvbGxlZ2UrU3RyZWV0JTJjK1Rvcm9udG8rT04lN2Vzc3QuMCU3ZXBnLjEmYmI9NTkuMzM3NDAxMjE1MTMxJTdlLTQ5Ljc2MDg1NjYyOCU3ZTIyLjQ3OTU4NTQyMTk3MjQlN2UtMTA4Ljk5OTEzNzg3OA==">239 College Street</a> (east of Spadina).</strong> The fun happens in the Merrill Collection room, located on the third floor at 7 p.m. tonight. Cory will be doing a reading, taking questions and signing books. There will be books for sale at the event courtesy of our local science fiction and fantasy bookstore, <a href="http://www.bakkaphoenixbooks.com/">Bakka Phoenix</a>.</p>
<p>Here’s the publisher’s blurb about the book:</p>
<blockquote><p>From the <em>New York Times</em> bestselling author of <em>Little Brother</em>, a major novel of the booms, busts, and further booms in store for America</p>
<p>Perry and Lester invent things—seashell robots that make toast, Boogie Woogie Elmo dolls that drive cars. They also invent entirely new economic systems, like the “New Work,” a New Deal for the technological era. Barefoot bankers cross the nation, microinvesting in high-tech communal mini-startups like Perry and Lester’s. Together, they transform the country, and Andrea Fleeks, a journo-turned-blogger, is there to document it.</p>
<p>Then it slides into collapse. The New Work bust puts the dot.combomb to shame. Perry and Lester build a network of interactive rides in abandoned Wal-Marts across the land. As their rides, which commemorate the New Work’s glory days, gain in popularity, a rogue Disney executive grows jealous, and convinces the police that Perry and Lester’s 3D printers are being used to run off AK-47s.</p>
<p>Hordes of goths descend on the shantytown built by the New Workers, joining the cult. Lawsuits multiply as venture capitalists take on a new investment strategy: backing litigation against companies like Disney. Lester and Perry’s friendship falls to pieces when Lester gets the ‘fatkins’ treatment, turning him into a sybaritic gigolo.</p>
<p>Then things get really interesting.</p>
</blockquote>
<p><strong>It should be noted that while 3-D printers of the sort in Cory’s novel are still the stuff of science fiction, simpler versions exist today.</strong> In fact, at the <a href="http://hacklab.to">Hacklab</a>, where I spend many a working day, we’ve got a <a href="http://www.makerbot.com/">MakerBot Industries</a> “Cupcake” 3-D printer that can “print” plastic objects.</p>
<p>Here’s what the Cupcake looks like:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="cupcake_1" border="0" alt="cupcake_1" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/11/cupcake_1.jpg" width="450" height="600" /> </p>
<p>A computer connected to the Cupcake controls it. The big loop of plastic to the upper left of the machine is the material from which objects are printed. Here’s a closer look at its internals:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="cupcake_2" border="0" alt="cupcake_2" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/11/cupcake_2.jpg" width="600" height="450" /> </p>
<p>We have a small gallery of objects that were created using the Cupcake:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="cupcake_output" border="0" alt="cupcake_output" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/11/cupcake_output.jpg" width="450" height="600" /> </p>
</p>
<p>If you’d like one of your own, the fine folks at <a href="http://www.makerbot.com/">Makerbot Industries</a> would be more than happy to sell you a kit.</p>
<p class="alert"><a href="http://www.joeydevilla.com/2009/11/12/cory-doctorows-makers-launch-tonight/">This article also appears in <em>The Adventures of Accordion Guy in the 21st Century</em>.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/11/12/cory-doctorows-makers-launch-tonight/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New Book: Ultra-Fast ASP.NET</title>
		<link>http://www.globalnerdy.com/2009/11/11/new-book-ultra-fast-asp-net/</link>
		<comments>http://www.globalnerdy.com/2009/11/11/new-book-ultra-fast-asp-net/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 20:52:50 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[books]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/?p=4679</guid>
		<description><![CDATA[ 
The Empire’s been fine-tuning ASP.NET, SQL Server and the .NET runtime from the get-go, so ASP.NET is a pretty snappy platform. Even so, the fastest of platforms will still run like molasses in January if you don’t do things right. With any platform, there’s a body of best practices for getting the best performances, [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://apress.com/book/view/1430223839"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="UltraFastASPNET" border="0" alt="UltraFastASPNET" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/11/UltraFastASPNET.jpg" width="600" height="312" /></a> </p>
<p><strong>The Empire’s been fine-tuning <a href="http://asp.net">ASP.NET</a>, <a href="http://www.microsoft.com/sqlserver/">SQL Server</a> and the .NET runtime from the get-go, so ASP.NET is a pretty snappy platform.</strong> Even so, the fastest of platforms will still run like molasses in January if you don’t do things right. With any platform, there’s a body of best practices for getting the best performances, and with far too many platforms, these best practices haven’t been gathered into a single place.</p>
<p><strong>ASP.NET developer are in luck: I just got notified by <a href="http://apress.com/">Apress</a> of the release of a new book, <em><a href="http://apress.com/book/view/1430223839">Ultra-Fast ASP.NET</a></em>.</strong> Here’s the blurb:</p>
<blockquote>
<p><em>Ultra-fast ASP.NET</em> by Rick Kiessig presents a practical approach to building fast and scalable web sites using ASP.NET and SQL Server. In addition to a wealth of tips, tricks and secrets, you&#8217;ll find advice and code examples for all tiers of your application. By applying the ultra-fast approach to your projects, you’ll squeeze every last ounce of performance out of your code and infrastructure, giving your site unrivaled speed.</p>
<p>Learn How To:</p>
<ul>
<li>Think about performance issues that will help you obtain real results. </li>
<li>Apply key principles that will help you build ultra-fast and ultra-scalable web sites. </li>
<li>Use the ultra-fast approach to be fast in multiple dimensions. You’ll have not only fast pages but also fast changes, fast fixes, fast deployments and more. </li>
<li>Use techniques that are being used by some of the world&#8217;s largest web sites. </li>
<li>Structure your HTML and CSS to create pages that load ultra-fast. </li>
<li>Utilize tips and tricks for optimizing your ASP.NET and SQL Server code for performance and scalability. </li>
</ul>
</blockquote>
<p>You can <a href="http://apress.com/ecommerce/cart?act=add&amp;bid=1198">order the dead-tree edition of Ultra-Fast ASP.NET online</a> (it sells for USD$49.99, which at today’s exchange rate is CAD$52.32), or if you’re like me and try to get the electronic version when possible, <a href="http://www.amazon.com/exec/obidos/ASIN/1430223839/ref=nosim/apre-20">the PDF version</a> sells for USD$34.99 (CAD$36.62 at the time of this writing).</p>
<p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2009/11/11/new-book-ultra-fast-asp-net.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/11/11/new-book-ultra-fast-asp-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Passionate Programmer</title>
		<link>http://www.globalnerdy.com/2009/08/17/the-passionate-programmer/</link>
		<comments>http://www.globalnerdy.com/2009/08/17/the-passionate-programmer/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 04:00:00 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[Chad Fowler]]></category>
		<category><![CDATA[Passionate Programmer]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/08/17/the-passionate-programmer/</guid>
		<description><![CDATA[ 
“This book is about finding fulfillment and happiness in your career” is the first line of the introduction to The Passionate Programmer, Chad Fowler’s book for software developers. If that goal wasn’t bold enough, the first line of the following paragraph is “The book is also about cultivating the desire to live a remarkable [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.pragprog.com/titles/cfcar2/the-passionate-programmer"><img style="border-right-width: 0px; margin: 0px 0px 10px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Cover of &quot;The Passionate Programmer&quot;" border="0" alt="Cover of &quot;The Passionate Programmer&quot;" align="right" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/08/the_passionate_programmer.jpg" width="152" height="228" /></a> </p>
<p><strong>“This book is about finding fulfillment and happiness in your career”</strong> is the first line of the introduction to <em><strong><a href="http://www.pragprog.com/titles/cfcar2/the-passionate-programmer">The Passionate Programmer</a></strong></em>, Chad Fowler’s book for software developers. If that goal wasn’t bold enough, the first line of the following paragraph is <strong>“The book is also about cultivating the desire to live a remarkable life.”</strong></p>
<p><em>The Passionate Programmer</em> is actually the second edition of a book that went by another title: <em><a href="http://www.amazon.com/Job-Went-India-Pragmatic-Programmers/dp/0976694018">My Job Went to India: 52 Ways to Save Your Job</a></em>. When that book was released back in 2005, the threat of having one’s job outsourced to lower-wage countries was the topic of many articles and conversations. <em>My Job Went to India</em> provided a collection of strategies to take control of one’s high-tech career, build a plan to keep skills up to date, make the right choices, stay relevant and not be the expendable sort whose job would be outsourced.</p>
<p>The bogeyman may have changed from outsourcing to the economy, but the concerns that developers have about their careers remain the same. Chad saw the need for a new edition of his book, and with the new version came a new tone. He gave it a more positive-sounding (and less alarmist) name and changed its focus from <em>surviving</em> to <em>thriving</em>.</p>
<p><em>The Passionate Programmer</em> is split into five chapters, each covering a different aspect of a developer’s career:</p>
<ul>
<li><em><strong>Choosing Your Market:</strong></em> “Which technologies should we invest in? Which domain should we develop expertise in? Should we go broad or deep with our knowledge?” </li>
<li><strong><em>Investing in Your Product:</em></strong> In this case, your product is yourself. How do you become better at what you do? </li>
<li><strong><em>Executing:</em></strong> Tactics and habits for getting things done. </li>
<li><strong><em>Marketing: Not Just for Suits:</em></strong> As the title implies, marketing skills aren’t just for the business people – developers need to market themselves. </li>
<li><strong><em>Maintaining Your Edge:</em></strong> How stay relevant and <em>not</em> be a one-hit wonder. </li>
</ul>
<p>The chapters are themselves divided into sections, each one covering a specific approach or bit of advice. This arrangement lets you treat the book as if it were an agile project, picking and choosing a section at a time to read and put into practice instead of doing “big reading up front” from start to finish. It also makes the book easier to revisit when the need arises.</p>
<p><strong>In the end, the message of the book is to find and follow your passion, and do so with intention.</strong> In the final section of the book, appropriately titled <em>Have Fun</em>, Chad closes with:</p>
<blockquote><p>Ultimately, the most important thing I’ve learned over the journey that my career in software development has been is that it’s not what you do for a living or what you <em>have</em> that’s important. It’s how you choose to accept these things. It’s internal. Satisfaction, like our career choices, is something that should be sought after and <em>decided</em> upon <em>with intention</em>.</p>
</blockquote>
<p><strong><em>The Passionate Programmer</em> is an engaging, fascinating book, and it will have a longer shelf life than most of the technical books in your library.</strong> I know many people who own a copy and have recommended it to their friends, and the <a href="http://www.amazon.com/Passionate-Programmer-Remarkable-Development-Pragmatic/product-reviews/1934356344">Amazon</a> and <a href="http://dobbscodetalk.com/index.php?option=com_content&amp;task=view&amp;id=1185&amp;Itemid="><em>Dr. Dobbs</em></a> reviews have been nothing short of glowing. No matter what platforms, programming languages or technologies you use, <em>The Passionate Programmer </em>should be in your technical library. </p>
<h4>Book Details</h4>
<p><strong><em>The Passionate Programmer</em></strong> by <strong>Chad Fowler</strong></p>
<ul>
<li><strong>Publisher:</strong> Pragmatic Programmers </li>
<li><strong>Published:</strong> May 2009 </li>
<li><strong>ISBN:</strong> 978-1-93435-634-0 </li>
</ul>
<p>The book is <a href="http://www.pragprog.com/titles/cfcar2/the-passionate-programmer">available directly from the publisher</a> in the following formats:</p>
<ul>
<li><strong>Paperback book:</strong> USD$23.95 </li>
<li><strong>Ebook</strong> (DRM-free PDF, epub and mobi formats): USD$15.00 </li>
<li><strong>Paperback/ebook bundle:</strong> USD$29.95 </li>
</ul>
<p>You can also order the book from <a href="http://www.chapters.indigo.ca/books/Passionate-Programmer-Creating-Remarkable-Career-Chad-Fowler/9781934356340-item.html?ref=Search+Books%3a+%2527passionate+programmer%2527">Chapters/Indigo</a>, <a href="http://www.amazon.ca/Passionate-Programmer-Creating-Remarkable-Development/dp/1934356344/ref=sr_1_1?ie=UTF8&amp;qid=1250060219&amp;sr=8-1">Amazon.ca</a> and <a href="http://www.amazon.com/Passionate-Programmer-Remarkable-Development-Pragmatic/dp/1934356344/ref=sr_1_1?ie=UTF8&amp;qid=1250060251&amp;sr=8-1">Amazon.com</a>.</p>
<p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2009/08/17/the-passionate-programmer.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/08/17/the-passionate-programmer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Follow @ManningBooks on Twitter and Get Discount Codes</title>
		<link>http://www.globalnerdy.com/2009/07/03/follow-manningbooks-on-twitter-and-get-discount-codes/</link>
		<comments>http://www.globalnerdy.com/2009/07/03/follow-manningbooks-on-twitter-and-get-discount-codes/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 04:01:00 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[discount codes]]></category>
		<category><![CDATA[Manning Publications]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/07/03/follow-manningbooks-on-twitter-and-get-discount-codes/</guid>
		<description><![CDATA[This article also appears in Canadian Developer Connection.
  
Manning Publications have a great variety of books on .NET development. There’s the stuff you’d expect, such as books on C#, ASP.NET and SharePoint, but they’ve also produced books on IronPython and IronRuby (not many books on these languages), functional programming is both F# and C# [...]]]></description>
			<content:encoded><![CDATA[<p></p><p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2009/07/03/follow-manningbooks-on-twitter-and-get-discount-codes.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
<p align="center"><a href="http://manning.com/osherove/"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Cover of &quot;The Art of Unit Testing&quot;" border="0" alt="Cover of &quot;The Art of Unit Testing&quot;" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/07/art_of_unit_testing.jpg" width="150" height="186" /></a> <a href="http://manning.com/palermo"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Cover of &quot;ASP.NET MVC in Action&quot;" border="0" alt="Cover of &quot;ASP.NET MVC in Action&quot;" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/07/asp_net_mvc_in_action.jpg" width="150" height="188" /></a> <a href="http://manning.com/foord"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Cover of &quot;IronPython in Action&quot;" border="0" alt="Cover of &quot;IronPython in Action&quot;" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/07/ironpython_in_action.jpg" width="150" height="188" /></a></p>
<p><strong><a href="http://manning.com/catalog/dotnet/">Manning Publications have a great variety of books on .NET development.</a></strong> There’s the stuff you’d expect, such as books on C#, ASP.NET and SharePoint, but they’ve also produced books on IronPython and IronRuby (not many books on these languages), functional programming is both F# and C# and doing <a href="http://en.wikipedia.org/wiki/Brownfield_(software_development)">brownfield development</a> and building <a href="http://en.wikipedia.org/wiki/Domain-specific_programming_language">DSLs</a> using .NET. Many of their books have helped me get up to speed with .NET development, and I’m currently working my way through <em><a href="http://manning.com/osherove/">The Art of Unit Testing</a></em>. </p>
<p><strong>Another great thing about Manning Books is that they’re available in both paper <em>and</em> electronic form.</strong> This is great news for me, as I have disk space aplenty, but I’m running short on shelf space. There’s also the fact that while technology-specific books are useful, their shelf life is rather short. I’ll still buy paper editions of books that are longer on theory and technique, but when it comes to specific versions of languages, libraries or frameworks, I’ll take the ebook version.</p>
<p><strong>One more great thing about Manning Books is that they’re generous with the discount codes.</strong> Their discount codes are often for 33% to 50% off the regular price, and they announce them on <a href="http://twitter.com/manningbooks">their Twitter account, @ManningBooks</a>. If you’re looking to build your tech library and save money at the same time, you should follow them.</p>
<p>(<strong>Just so you know:</strong> Neither I nor anyone at the Developer and Platform Evangelism team at Microsoft have any kind of arrangement to promote Manning’s books. I just like their books, and getting a discounts on them is a bonus.)</p>
<p align="center"><a href="http://manning.com/skeet2"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Cover of &quot;C# in Depth&quot;" border="0" alt="Cover of &quot;C# in Depth&quot;" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/07/c_sharp_in_depth.jpg" width="150" height="186" /></a> <a href="http://manning.com/pbrown"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Cover of &quot;Silverlight 3 in Action&quot;" border="0" alt="Cover of &quot;Silverlight 3 in Action&quot;" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/07/silverlight_3_in_action.jpg" width="150" height="187" /></a> <a href="http://manning.com/carrero"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Cover of &quot;IronRuby in Action&quot;" border="0" alt="Cover of &quot;IronRuby in Action&quot;" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/07/ironruby_in_action.jpg" width="150" height="188" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/07/03/follow-manningbooks-on-twitter-and-get-discount-codes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Best &#8220;Chapter One&#8221; I&#8217;ve Ever Read</title>
		<link>http://www.globalnerdy.com/2009/06/15/the-best-chapter-one-ive-ever-read/</link>
		<comments>http://www.globalnerdy.com/2009/06/15/the-best-chapter-one-ive-ever-read/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 04:00:00 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[Gang of Foreheads]]></category>
		<category><![CDATA[NerdDinner]]></category>
		<category><![CDATA[reviews]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/06/15/the-best-chapter-one-ive-ever-read/</guid>
		<description><![CDATA[This article also appears in Canadian Developer Connection.
 
As a rule, Chapter One of most programming books seems to leave me with a vague, unsatisfied feeling. I usually finish them with either:

A “Hello World”-style application that provides an initial “It compiled!” rush, but little else, or 
A “Trees dies for this?” sort of indignation, if [...]]]></description>
			<content:encoded><![CDATA[<p></p><p class="alert">This article also appears in <a href="http://blogs.msdn.com/cdndevs/archive/2009/06/15/the-best-chapter-one-i-ve-ever-read.aspx"><em>Canadian Developer Connection</em></a>.</p>
<p><a href="http://www.wrox.com/WileyCDA/WroxTitle/Professional-ASP-NET-MVC-1-0.productCd-0470384611.html"><img style="border-right-width: 0px; margin: 0px 0px 10px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Cover of &quot;Professional ASP.NET MVC 1.0&quot;" border="0" alt="Cover of &quot;Professional ASP.NET MVC 1.0&quot;" align="right" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/gang_of_foreheads.jpg" width="250" height="315" /></a> </p>
<p><strong>As a rule, Chapter One of most programming books seems to leave me with a vague, unsatisfied feeling.</strong> I usually finish them with either:</p>
<ul>
<li>A “Hello World”-style application that provides an initial “It compiled!” rush, but little else, or </li>
<li>A “Trees dies for <em>this?”</em> sort of indignation, if the chapter is one of those perfunctory one with a name like “Getting Started” that provides the same information you gathered while deciding whether to buy the book. </li>
</ul>
<p>Based on these experiences, I think I can be excused for being a bit skeptical when I read the announcement that Chapter One of <em><strong><a href="http://www.wrox.com/WileyCDA/WroxTitle/Professional-ASP-NET-MVC-1-0.productCd-0470384611.html">Professional ASP.NET MVC 1.0</a></strong></em>, published by Wrox, was being made available for free download. <em>Of course they’re giving it away for free,</em> I thought, <em>it’s the chapter that’s worth nothing!</em></p>
<p><strong>A quick aside:</strong> If you haven’t heard of <a href="http://asp.net/mvc/">ASP.NET MVC</a>, it’s Microsoft’s answer to the MVC-based frameworks that are all the rage these days, such as <a href="http://rubyonrails.org/">Ruby on Rails</a> and <a href="http://djangoproject.com/">Django</a>. It’s not a replacement for <a href="http://asp.net/">ASP.NET</a>, but an alternative; if you want to build applications following the REST paradigm, with fine-grained control over the flow of your application and HTML and want to do things “the web way” as opposed to a more “desktop app” way, you should seriously consider trying it out. (For more detailed pros-and-cons considerations of ASP.NET versus ASP.NET MVC, <a href="http://www.coderjournal.com/2008/12/introducing-aspnet-mvc-part-2-aspnet-mvc-vs-webforms/">see this article in <em>Nick Berardi’s Code Journal</em></a>.)</p>
<p>Luckily, curiosity got the better of me and I downloaded the chapter. I got my first sign that wasn’t your garden-variety Chapter One when I looked at the file size and page count. 14 megabytes? 196 pages? Something strange was going on here. Perhaps a glitch during the download?</p>
<p>Once I scrolled past the cover page, the standard Wrox cover featuring the authors and their impressively receding hairlines (hence the nickname for the book, “The Gang of Foreheads”), I hit the introductory paragraph:</p>
<blockquote><p>The best way to learn a new framework is to build something with it. This first chapter walks through how to build a small, but complete, application using ASP.NET MVC, and introduces some of the core concepts behind it.</p>
</blockquote>
<p>That’s right: rather than provide some long-winded perfunctory history of the Model-View-Controller framework, the backstory of how the ASP.NET MVC framework came to be or some simple “Hello World”-style example app of little consequence and requiring less effort, <strong>the authors decided to get right down to business and show you how to build an ASP.NET MVC web app</strong>. This was a surprise – but a very welcome one!</p>
<p><a href="http://nerddinner.com/"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="NerdDinner screenshot" border="0" alt="NerdDinner screenshot" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/nerddinner.jpg" width="486" height="321" /></a></p>
<p>The application that you build is called “NerdDinner”, a site that lets techies declare Meetup.com-style gatherings and RSVP for them (you can see the finished product in action at <a href="http://nerddinner.com/">NerdDinner.com</a>). You start at ground zero,&#160; <strong>“File –&gt; New…”</strong>, and from there, you build the app with just enough asides to explain a few vital concepts and very few of those false detours that some tutorials lead you down. NerdDinner may be a simple app, but it covers a lot of ground:</p>
<ul>
<li>From the basics of CRUD application design in an MVC web framework </li>
<li>to matters of input validation, </li>
<li>to registering, authenticating&#160; and authorizing users </li>
<li>to integrating Ajax-enabled forms and an Ajax map </li>
<li>to the built-in unit testing features of ASP.NET MVC. </li>
</ul>
<p><strong>By the end of the chapter, you’ve got a nice little application that lies in the “sweet spot”.</strong> It’s small enough for you to be able to learn from quickly, yet big enough to show you the ropes behind building the important parts of a CRUD web application that’s ready for public consumption.</p>
<p><strong><strong><a href="http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-nerdinner_v1.pdf"><img style="border-right-width: 0px; margin: 0px 0px 10px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="download_chapter_1" border="0" alt="download_chapter_1" align="right" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/download_chapter_1.jpg" width="239" height="195" /></a></strong>I’ve tried out a number of ASP.NET MVC tutorials, and this one’s my hands-down favourite.</strong> It’s written by the people behind ASP.NET MVC, it covers a lot of ground, the finished app is an excellent basis for your future projects, there’s a working version online that you can use as a guide and&#160; the code works! Even better, this single chapter that packs all this value is free-as-in-beer. I’m sure I’ve paid&#160; for whole books that have imparted less knowledge than this single free chapter.</p>
<p><strong>If you’re interested in learning about ASP.NET MVC, <a href="http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-nerdinner_v1.pdf">download Chapter 1 of Professional ASP.NET MVC 1.0</a> [13.8 MB PDF] and give it a try.</strong> It’s the fastest way to get both a working ASP.NET application and up to speed on Microsoft’s new web application framework. And be sure to tell me how it worked out &#8212; if you have any questions or comments, or run into any difficulty with the chapter, let me know – <a href="mailto:joey.devilla@microsoft.com">drop me a line via email</a>, <a href="http://twitter.com/AccordionGuy">send me a tweet</a> or give me a shout-out in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/06/15/the-best-chapter-one-ive-ever-read/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pragmatic Thinking &amp; Learning: My Favourite Geek Book of 2008</title>
		<link>http://www.globalnerdy.com/2009/01/08/pragmatic-thinking-learning-my-favourite-geek-book-of-2008/</link>
		<comments>http://www.globalnerdy.com/2009/01/08/pragmatic-thinking-learning-my-favourite-geek-book-of-2008/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 06:06:42 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[mind and brain]]></category>
		<category><![CDATA[pragmatic programming]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/?p=2596</guid>
		<description><![CDATA[
This article also appears in Canadian Developer Connection.
It’s easy to point to books on understanding and improving the inner workings of your code, the software and hardware platforms on which it runs and even the processes used in developing it. It’s much harder to find one on understanding and improving the programmer, or more specifically [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning"><img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Cover of " border="0" alt="Cover of " align="right" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/pragmatic-thinking-and-learning.jpg" width="190" height="228" and="and" learning??="Learning??" pragmatic="pragmatic" thinking="thinking" /></a></p>
<p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2009/01/08/pragmatic-thinking-learning-my-favourite-geek-book-of-2008.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a><em></em></p>
<p>It’s easy to point to books on understanding and improving the inner workings of your code, the software and hardware platforms on which it runs and even the processes used in developing it. It’s much harder to find one on understanding and improving the <em>programmer</em>, or more specifically the programmer’s “wetware” – that is, the brain and mind. A few books aimed at programmers give a little space to the topic: <em><a href="http://www.chapters.indigo.ca/books/Tog-on-Interface-Bruce-Tognazzini/9780201608427-item.html">Tog on Interface</a></em> has a section and exercise on building your intuition, the first edition of <em><a href="http://www.chapters.indigo.ca/books/Code-Complete-Steve-Mcconnell/9780735619678-item.html">Code Complete</a> </em>devotes a small chapter to character, and <em><a href="http://www.chapters.indigo.ca/books/Cocoa-Programming-for-Mac-OS/9780321213143-item.html">Cocoa Programming for Mac OS X</a> </em>reminds the reader that getting extra sleep when learning new material is essential. For a <em>whole book</em> on the topic, we’ve had to wait until <a href="http://blog.toolshed.com/">Andy “<em>The Pragmatic Progammer</em>” Hunt’s</a> <em><strong><a href="http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning">Pragmatic Thinking &amp; Learning: Refactor Your Wetware</a></strong></em>.</p>
<p>The first few chapters of <em>PT&amp;L </em>form a quick introduction to the theories of cognition, learning and neuroscience on which the rest of the book is based. Among these are the <a href="http://blog.bruceabernethy.com/post/The-Dreyfus-Model-of-Skills-Acquisition.aspx">Dreyfus Model</a>, which explains how we progress from novice to expert and the steps along the way and a model of the brain in techie terms, shown below:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Diagram showing a &quot;Dual core&quot; model of the brain" border="0" alt="Diagram showing a &quot;Dual core&quot; model of the brain" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/your-dualcore-brain.jpg" width="514" height="420" /> </p>
<p>Once <em>PT&amp;L</em> has laid out these foundations, it dives into the brain-refactoring, including:</p>
<ul>
<li><strong>Taking advantage of <em>R</em>-mode</strong> (often called the <a href="http://www.funderstanding.com/content/right-brain-vs-left-brain">“right brain”</a> in pop psychology), which often gets ignored because of its non-linear, non-linguistic, unpredictable and even “artsy” nature. It’s actually an amazing problem-solver, so much that <em>PT&amp;L</em> suggests that you should “lead with <em>R</em>-mode and follow with L-mode”, or more colloquially, “write drunk; revise sober”. </li>
<li><strong>Working around the bugs in your brain.</strong> And there are many, from the primitive “lizard brain” that likes to override our higher cognitive functions to cognitive biases to generational affinity. </li>
<li><strong>Learning deliberately:</strong> what learning is and isn’t, how to plan to learn, figuring out what your learning style is and how to best take advantage of it, and harnessing mind maps, documentation and teaching in order to learn. </li>
<li><strong>Gaining experience, </strong>which includes understanding the importance of fun and how pressure kills cognition, learning the “inner game” and why your mantra shouldn’t be “learn to build”, but “build to learn”. </li>
<li><strong>Managing focus,</strong> a very important topic since there are so many things vying for it, from office interruptions to the siren song of the internet, with email, IM, Twitter, Digg, Reddit and LOLcats. One of my favourite bits in this section was some research whose results indicated that constantly checking your email lowers your effective IQ more than smoking a joint. </li>
</ul>
<p><em>PT&amp;L</em> does a great job following its own advice by presenting its material in ways that best take advantage of how our brains work, reinforcing its with anecdotes, metaphors and visuals and using the enjoyable style for which Andy Hunt’s other projects, such as <em><a href="http://www.pragprog.com/the-pragmatic-programmer">The Pragmatic Programmer</a> </em>and his various training sessions have become famous. </p>
<p>As with any book that proscribes a new way of doing or perceiving things – think of books on Agile programming or <a href="http://en.wikipedia.org/wiki/Getting_Things_Done">“Getting Things Done”</a> methodologies – you’ll have to pick and choose which ideas and techniques work best for you. In <a href="http://radar.oreilly.com/2008/07/book-review-pragmatic-thinking.html">his review</a>, O’Reilly editor Nat Torkington found the section on generational affinity a little too “Malcolm Gladwell”-ish in the way that it treats anecdotes about generations as data (personally, I think there’s some truth to the generational affinity thing). I do agree with Nat that some of the exercises, such as “Morning Pages” that seem a bit too new-agey/hippie even for me – and I’m the kind of guy who’d go to <a href="http://burningman.com/">Burning Man</a>.</p>
<p>This is the only book of which I’m aware that covers how to improve the tool that really develops code: not your platform, language or editor, but your <em>mind</em>. It’s worthy of several readings, first straight through and subsequent dives into specific sections. I took it with me on my flight from Toronto to TechDays Calgary and found it both not only informative, but engaging and entertaining as well. Best of all, barring some quantum leap in cognitive science that invalidates what we know today, <em>PT&amp;L</em> will probably have a much longer shelf life than most of the tech books in your library.</p>
<p>It’s my favourite geek book of 2008.</p>
<p><em><a href="http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning"><strong>Pragmatic Thinking &amp; Learning</strong></a></em> is available in both dead-tree (<a href="http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning">US$34.95 direct from the publisher</a>, <a href="http://www.chapters.indigo.ca/books/Pragmatic-Thinking-Learning-Refactor-Your-Andy-Hunt/9781934356050-item.html">CAD$30.69 from Chapters/Indigo online</a>) and PDF formats (<a href="http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning">US$22.00</a>). It’s a <a href="http://www.joltawards.com/finalists.html">finalist</a> in the “Books General” category of the 19th Annual <a href="http://www.joltawards.com/">Jolt Awards</a>.</p>
<p><strong>Would you be interested in hearing more from <em>PT&amp;L’s</em> author, Andy Hunt, himself?</strong> Let me know either via <a href="mailto:joey.devilla@microsoft.com">email</a> or the comments, and I’ll see what I can do about arranging an interview in some format with your questions!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/01/08/pragmatic-thinking-learning-my-favourite-geek-book-of-2008/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A Fix for the Error in Hour 9 of &#8220;Teach Yourself ASP.NET Ajax in 24 Hours&#8221; / Client-Side Error Handling in ASP.NET Ajax in .NET 3.5</title>
		<link>http://www.globalnerdy.com/2008/12/03/a-fix-for-the-error-in-hour-9-of-teach-yourself-aspnet-ajax-in-24-hours-client-side-error-handling-in-aspnet-ajax-in-net-35/</link>
		<comments>http://www.globalnerdy.com/2008/12/03/a-fix-for-the-error-in-hour-9-of-teach-yourself-aspnet-ajax-in-24-hours-client-side-error-handling-in-aspnet-ajax-in-net-35/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 19:40:55 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[ASP.NET 3.5]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[errata]]></category>
		<category><![CDATA[error handling]]></category>
		<category><![CDATA[exception handling]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PageRequestManager]]></category>
		<category><![CDATA[ScriptManager]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2008/12/03/a-fix-for-the-error-in-hour-9-of-teach-yourself-aspnet-ajax-in-24-hours-client-side-error-handling-in-aspnet-ajax-in-net-35/</guid>
		<description><![CDATA[While following the exercises in the book Teach Yourself ASP.NET Ajax in 24 Hours – one of the few books I’ve been able to find on Ajax for ASP.NET 3.5 – I found an error in the “Hour 9” chapter in the example that covers client-side error-handling (it starts on page 137). I’ve reported this [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.amazon.com/Sams-Teach-Yourself-ASP-NET-Hours/dp/0672329670"><img style="border-right-width: 0px; margin: 0px 0px 10px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Cover of &quot;Teach Yourself ASP.NET Ajax in 24 Hours&quot;" border="0" alt="Cover of &quot;Teach Yourself ASP.NET Ajax in 24 Hours&quot;" align="right" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/12/teach-yourself-aspnet-ajax-in-24-hours.jpg" width="185" height="240" /></a>While following the exercises in the book <em><a href="http://www.amazon.com/Sams-Teach-Yourself-ASP-NET-Hours/dp/0672329670"><strong>Teach Yourself ASP.NET Ajax in 24 Hours</strong></a></em> – one of the few books I’ve been able to find on Ajax for ASP.NET 3.5 – I found an error in the “Hour 9” chapter in the example that covers client-side error-handling (it starts on page 137). I’ve reported this error to the publisher and with any luck, they’ll post a corrected version on their support web page for the book.</p>
<p>I’ve done some searching and haven’t found anything covering this error so I thought I’d cover it here. Better still, I’ll also cover the fix, which turns out to be quite simple. If you’ve been trying out the code in the book and wondering why it doesn’t work, relax: at least in this case, it’s not your fault.</p>
<p>In the course of covering the error and how to fix it, I’ll also talk about how ASP.NET handles exceptions raised by asynchronous postbacks and how you can make use of it to make better user interfaces. Even if you don’t have a copy of <em>Teach Yourself ASP.NET Ajax in 24 Hours,</em> you should find this article an interesting introduction to client-side error handling in ASP.NET Ajax.</p>
<h3>Unhandled Exceptions and Asynchronous Postbacks</h3>
<p>In ASP.NET Ajax, if an exception is raised during an asynchronous postback and isn’t handled on the server side – that is, in the code-behind – it gets passed along to the client side. What happens on the client side depends on which version of ASP.NET you’re using:</p>
<ul>
<li><strong>In ASP.NET Ajax 1.0,</strong> the server-side exception object is serialized into <a href="http://www.json.org/">JSON</a>. The JSON is sent to the client, which displays the exception’s message property in an alert box. </li>
<li><strong>In ASP.NET Ajax for .NET 3.5,</strong> the server-side exception is still serialized into JSON and the JSON is still sent to the client. However, instead of displaying the exception’s message property in an alert box – a presumptuous design decision, if you want my opinion – the client throws the exception, which gives you the opportunity to handle it on the client side as you please. </li>
</ul>
<p>(In this article, I’ll stick to covering ASP.NET Ajax for .NET 3.5.)</p>
<p>This is quite different from most other web application frameworks, where an exception raised as the result of an <a href="http://www.w3.org/TR/XMLHttpRequest/">XMLHttpRequest</a> call to the server results in some kind of “error” page from the server (or a blank page, if you’re suppressing error reporting). </p>
<p>To illustrate this, let’s put together a simple ASP.NET Ajax application. It’s a single page with a single button, that if clicked, throws an exception.</p>
<p>Here’s the code for the page layout. It’s pretty straightforward:</p>
<p><strong>Listing 1: <code>Default.aspx</code> – Layout for the page of our simple ASP.NET Ajax application<em>.</em></strong></p>
<p> <code>
<pre>&lt;%@ Page Language=&quot;C#&quot; AutoEventWireup=&quot;true&quot;
CodeBehind=&quot;Default.aspx.cs&quot; Inherits=&quot;WebApplication1._Default&quot; %&gt;

&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;
&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;

&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; &gt;
&lt;head runat=&quot;server&quot;&gt;
    &lt;title&gt;Error Handling Demo 1&lt;/title&gt;
&lt;/head&gt;

&lt;body&gt;
    &lt;form id=&quot;form1&quot; runat=&quot;server&quot;&gt;

        &lt;div&gt;
            &lt;asp:ScriptManager ID=&quot;ScriptManager1&quot; runat=&quot;server&quot; /&gt;
            &lt;asp:UpdatePanel runat=&quot;server&quot; ID=&quot;UpdatePanel1&quot;&gt;
                &lt;ContentTemplate&gt;
                    &lt;asp:Button runat=&quot;server&quot; ID=&quot;Button1&quot;
                    Text=&quot;Click Me&quot; OnClick=&quot;Button1_OnClick&quot; /&gt;
                &lt;/ContentTemplate&gt;
            &lt;/asp:UpdatePanel&gt;
        &lt;/div&gt;

    &lt;/form&gt;
&lt;/body&gt;

&lt;/html&gt;</pre>
<p></code></p>
<p>Some notes about the code:</p>
<ul>
<li>The <code>ScriptManager</code> control at the top of the form enables Ajax by ensuring that the JavaScript needed to support ASP.NET Ajax on the client side is downloaded to the browser. </li>
<li>The <code>UpdatePanel</code> control determines the controls that trigger asynchronous postbacks and defines the region of the page that can be updated via Ajax. </li>
<li><code>Button1</code> is the button control that we want to throw an exception when clicked. We’ll set it to call the <code>Button1_OnClick</code> method, which will contain the exception-throwing code. </li>
</ul>
<p>The code-behind is very simple. In it, we define a single method: the event handler <code>Button1_OnClick</code>, which is called in response when the user clicks <code>Button1</code>. All we want it to do is throw an exception that uniquely identifies itself:</p>
<p><strong>Listing 2: <code>Default.aspx.cs</code> – Code-behind for the page of our very simple example app<em>.</em></strong></p>
<p><code></p>
<pre>using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Button1_OnClick(object sender, EventArgs e)
        {
            throw new Exception(&quot;Click!&quot;);
        }
    }
}</pre>
<p></code></p>
<h4>Running with Debugging vs. Running Without Debugging</h4>
<p>Listing 1 and 2 give us enough to make our simple app work. It’s time to take it for a spin.</p>
<p>Here’s something that doesn’t get covered in <em>Teach Yourself ASP.NET Ajax in 24 Hours: </em>what happens when you try to run this app <em>with</em> debugging (starting it by hitting F5 in Visual Studio or “Start Debugging” under the “Debug” menu)? </p>
<p>Here’s a screenshot of what happened for me: <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="simple_app_with_debugging" border="0" alt="simple_app_with_debugging" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/12/simple-app-with-debugging.jpg" width="567" height="417" /> </p>
<p>With debugging on, the unhandled exception thrown in <code>Button1_OnClick</code> is caught by the debugger. Normally, this sort of error-catching behaviour is welcome, but in this particular case, it gets in the way of what we’re trying to achieve: having an exception on the server side and passing it along to the user’s browser to handle.</p>
<p>If we run the same app without debugging, we get the effect we want: the exception is raised on the server side, but the server-side part of the application doesn’t halt with an error message. Instead, the client shows the error message.</p>
<p>Here’s a screenshot. Note that the error message includes the string “Click!”, which is the argument in the throw statement the <code>Button1_OnClick</code> event handler. Thanks to this, we can be pretty certain that the error message is the result of our deliberately-thrown exception:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/12/image.png" width="502" height="327" /></p>
<p>Now that we have the exception that we threw on the server side being handled on the client side, let’s do something with it.&#160; </p>
</p>
<h3>Handling Exceptions Passed from the Server on the Client Side</h3>
<p>Let’s do something simple – let’s catch the exception caused by the button click, and instead of having a JavaScript error box pop up, let’s make a couple of changes to the button:</p>
<ul>
<li>Change its text to “This button has been disabled for your safety.” </li>
<li>Disable it. </li>
</ul>
<p>To handle exceptions on the client side, we need to write some client-side JavaScript. Luckily, this is made simple by the number of handy utility classes defined in the scripts downloaded to the client by the <code>ScriptManager</code> component. In this case, we’re going to make use of the <code><a href="http://msdn.microsoft.com/en-us/library/bb311028.aspx">Sys.Webforms.PageRequestManager</a></code> class to deal with the exception because it provides us with the following:</p>
<ul>
<li>The <code><a href="http://msdn.microsoft.com/en-us/library/bb383810.aspx">endRequest</a></code> event, which is raised after an asynchronous postback has completed and control is returned to the browser. </li>
<li>The <code>add_endRequest</code> method, which specifies a method to call when the <code>endRequest</code> event is raised. </li>
</ul>
<p>Here’s the JavaScript, which we’ll put in a file called <code>ErrorHandler.js</code>:</p>
<p><strong>Listing 3: <code>ErrorHandler.js</code> &#8212; Client-side error handler for our very simple example app<em>.</em></strong></p>
<p><code></p>
<pre>Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);

function EndRequestHandler(sender, args)
{
    if (args.get_error() != undefined) {
        $get('Button1').value = &quot;This button has been disabled for your safety.&quot;;
        $get('Button1').disabled = true;
        args.set_errorHandled(true);
    }
}</pre>
<p></code></p>
<p>The script performs the following:</p>
<ul>
<li>It registers the method <code>EndRequestHandler</code> as the method to call whenever the <code>endRequest</code> event is raised. </li>
<li>It defined the method <code>EndRequestHandler</code>, which does the following:
<ul>
<li>If an exception did occur during the asynchronous callback:&quot;
<ul>
<li>The button’s text is changed </li>
<li>The button is disabled </li>
<li>The error is reported as handled, which allows the application to continue </li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Now that we have this client-side code, we need to get it to the client. We do this by using the <code>Scripts</code> section of the <code>ScriptManager</code> to send this file to the client. The listing below shows the updated layout code for our simple application. I’ve highlighted the change in the listing below:</p>
<p><strong>Listing 4: Revised <code>Default.aspx</code> – Layout for the page of our simple ASP.NET Ajax application<em>.</em></strong></p>
<p><code></p>
<pre>&lt;%@ Page Language=&quot;C#&quot; AutoEventWireup=&quot;true&quot; CodeBehind=&quot;Default.aspx.cs&quot; Inherits=&quot;WebApplication1._Default&quot; %&gt;

&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;

&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; &gt;
&lt;head runat=&quot;server&quot;&gt;
    &lt;title&gt;Error Handling Demo 1&lt;/title&gt;
&lt;/head&gt;

&lt;body&gt;
    &lt;form id=&quot;form1&quot; runat=&quot;server&quot;&gt;

        &lt;div&gt;
            <b>&lt;asp:ScriptManager ID=&quot;ScriptManager1&quot; runat=&quot;server&quot;&gt;
                &lt;Scripts&gt;
                    &lt;asp:ScriptReference Path=&quot;~/ErrorHandler.js&quot; /&gt;
                &lt;/Scripts&gt;
            &lt;/asp:ScriptManager&gt;</b>
            &lt;asp:UpdatePanel runat=&quot;server&quot; ID=&quot;UpdatePanel1&quot;&gt;
                &lt;ContentTemplate&gt;
                    &lt;asp:Button runat=&quot;server&quot; ID=&quot;Button1&quot;
                    Text=&quot;Click Me&quot; OnClick=&quot;Button1_OnClick&quot; /&gt;
                &lt;/ContentTemplate&gt;
            &lt;/asp:UpdatePanel&gt;
        &lt;/div&gt;

    &lt;/form&gt;
&lt;/body&gt;

&lt;/html&gt;</pre>
<p></code></p>
<p><strong></strong></p>
<p>The <code>Scripts</code> section of the <code>ScriptManager</code> lets us specify scripts to be sent to the client along with the page, with each script specified in a <code>ScriptReference</code> tag.</p>
<p>When we run the app (remember, <em>without </em>debugging on) with these changes and click the button, here’s what we get:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Button with text &quot;This button has been disabled for your safety&quot;" border="0" alt="Button with text &quot;This button has been disabled for your safety&quot;" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/12/sample-app-revised-screenshot.gif" width="401" height="43" /> </p>
<p>In a later article, I’ll look at other ways of using client-side error handling in ASP.NET Ajax in .NET 3.5.</p>
<h3>The Error in <em>Teach Yourself ASP.NET Ajax in 24 Hours</em></h3>
<p>Here’s the page layout code for the error-handling example in <em>Teach Yourself ASP.NET Ajax in 24 Hours</em>. The code-behind for the page and the client-side JavaScript are fine, it’s this code that has the error. See if you can spot what’s amiss:</p>
<p><strong>Listing 5: <code>Default.aspx</code> &#8212; Page layout of client-side error-handling example in Hour 9 of <em>Teach Yourself ASP.NET Ajax in 24 Hours.</em></strong></p>
<p><code></p>
<pre>&lt;%@ Page Language=&quot;C#&quot; AutoEventWireup=&quot;true&quot; CodeBehind=&quot;Default.aspx.cs&quot; Inherits=&quot;WebApplication1._Default&quot; %&gt;

&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;

&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; &gt;
&lt;head runat=&quot;server&quot;&gt;
    &lt;title&gt;&lt;/title&gt;
&lt;/head&gt;

&lt;body&gt;
    &lt;form id=&quot;form1&quot; runat=&quot;server&quot;&gt;

        &lt;div&gt;
            &lt;asp:ScriptManager ID=&quot;ScriptManager1&quot; runat=&quot;server&quot; /&gt;
            &lt;asp:UpdatePanel runat=&quot;server&quot; ID=&quot;UpdatePanel1&quot;&gt;
                &lt;ContentTemplate&gt;
                    &lt;asp:Button runat=&quot;server&quot; ID=&quot;Button1&quot;
                    Text=&quot;Click Me&quot; OnClick=&quot;Button1_OnClick&quot; /&gt;
                &lt;/ContentTemplate&gt;
            &lt;/asp:UpdatePanel&gt;
        &lt;/div&gt;

        &lt;br /&gt;&lt;br /&gt;

        &lt;div id=&quot;Message&quot; style=&quot;visibility: hidden;&quot;&gt;
            &lt;asp:HyperLink ID=&quot;HyperLink1&quot; runat=&quot;server&quot;
                           Font-Bold=&quot;true&quot;
                           Text=&quot;Error Occurred...&quot;
                           Font-Italic=&quot;true&quot;
                           ForeColor=&quot;red&quot; &gt;
            &lt;/asp:HyperLink&gt;
        &lt;/div&gt;

    &lt;/form&gt;
&lt;/body&gt;

&lt;/html&gt;</pre>
<p></code></p>
<p>Just for kicks, here’s what happens when you click on the button in the app using the code straight from <em>Teach Yourself ASP.NET Ajax in 24 Hours</em>:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Screen capture of resulting error message from original &quot;Teach Yourself ASP.NET Ajax in 24 Hours&quot; application" border="0" alt="Screen capture of resulting error message from original &quot;Teach Yourself ASP.NET Ajax in 24 Hours&quot; application" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/12/screen-capture-1.gif" width="582" height="337" /></p>
<p>The mistake is simple: although there is some error-handling client-side JavaScript in the app, it’s not referenced in the <code>ScriptManager</code> tag, which means it’s not sent to the client. Without error-handling code on the client side, the exception is thrown, there’s nothing to catch it and the user is presented with the standard error dialog box.</p>
<p>The fix is equally simple: reference the script in the <code>ScriptManager</code> tag’s <code>Scripts</code> section:</p>
<p><code></p>
<pre>&lt;asp:ScriptManager ID=&quot;ScriptManager1&quot; runat=&quot;server&quot;&gt;
    &lt;Scripts&gt;
        &lt;asp:ScriptReference Path=&quot;~/ErrorHandlingScript.js&quot; /&gt;
    &lt;/Scripts&gt;
&lt;/asp:ScriptManager&gt;</pre>
<p></code></p>
<p>Once that’s done, the program works as promised.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/12/03/a-fix-for-the-error-in-hour-9-of-teach-yourself-aspnet-ajax-in-24-hours-client-side-error-handling-in-aspnet-ajax-in-net-35/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>O&#8217;Reilly&#8217;s &#8220;Learning XNA 3.0&#8221;</title>
		<link>http://www.globalnerdy.com/2008/12/03/oreillys-learning-xna-30/</link>
		<comments>http://www.globalnerdy.com/2008/12/03/oreillys-learning-xna-30/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 18:31:22 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Play]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[game programming]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[O'Reilly]]></category>
		<category><![CDATA[XBox]]></category>
		<category><![CDATA[XBox 360]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[XNA 3.0]]></category>
		<category><![CDATA[Zune]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2008/12/03/oreillys-learning-xna-30/</guid>
		<description><![CDATA[ 
Hey, it looks like I’ve got some potential reading material for the holidays! O’Reilly’s just released their new book, Learning XNA 3.0, an introduction to Microsoft’s 2-D and 3-D game development framework for the PC, Xbox 360 and Zune. Here’s an excerpt from O’Reilly’s description of the book:
Written by an experienced university-level game development [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://oreilly.com/catalog/9780596521950/"><img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Cover of O&#39;Reilly&#39;s book &quot;Learning XNA 3.0&quot;" border="0" alt="Cover of O&#39;Reilly&#39;s book &quot;Learning XNA 3.0&quot;" align="right" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/12/oreilly-learning-xna-30.gif" width="180" height="236" /></a> </p>
<p>Hey, it looks like I’ve got some potential reading material for the holidays! O’Reilly’s just released their new book, <strong><em><a href="http://oreilly.com/catalog/9780596521950/">Learning XNA 3.0,</a></em></strong> an introduction to Microsoft’s 2-D and 3-D game development framework for the PC, Xbox 360 and Zune. Here’s an excerpt from O’Reilly’s description of the book:</p>
<blockquote><p>Written by an experienced university-level game development instructor, <em>Learning XNA 3.0</em> walks you through the framework in a clear and understandable step-by-step format. Each chapter offers a self-contained lesson with lots of illustrations and annotated examples to help you master key concepts. Once you finish the book, you&#8217;ll know how to develop sophisticated games from start to finish. </p>
<ul>
<li>Learn game development concepts from 2D animation to 3D cameras and effects </li>
<li>Delve into high-level shader language (HLSL) and introductory artificial intelligence concepts </li>
<li>Develop three complete and exciting games using 2D,3D and multiplayer concepts </li>
<li>Develop and deploy games to the Xbox 360 and the Microsoft Zune </li>
</ul>
<p>While teaching XNA to beginning game developers, author Aaron Reed noticed that several key concepts were difficult for students to grasp. <em>Learning XNA 3.0</em> was written specifically to address those issues. With this book, you can test your understanding and practice new skills as you go with unique &quot;Test Your Knowledge&quot; exercises and review questions in each chapter.</p>
</blockquote>
<p>The book, when purchased from O’Reilly, comes in several formats:</p>
<ul>
<li>Dead-tree format (that is, an actual paperback book): US$34.99 (currently CAD$44.06) / £24.99 in the UK</li>
<li>Ebook (PDF, EPUB and Kindle-compatible “Mobipocket” format): US$27.99 (currently CAD$35.23)</li>
<li>Dead-tree and ebook: US$45.49 (currently $57.27)</li>
</ul>
<p><strong>If you’re in Canada, you’ve got a chance to save big.</strong> <a href="http://www.chapters.indigo.ca/books/Learning-Xna-3-0-Aaron-Reed/9780596521950-item.html">Chapters/Indigo’s online price for the paperback book is CAD$23.09</a>, which makes it <em>cheaper than the electronic version</em>. If you’re an iRewards member, they’ll shave another buck-fifteen off the price to make it CAD$21.94.</p>
<h3>Links</h3>
<ul>
<li><a href="http://oreilly.com/catalog/9780596521950/">O’Reilly’s page for <em>Learning XNA 3.0</em></a></li>
<li><a href="http://www.chapters.indigo.ca/books/Learning-Xna-3-0-Aaron-Reed/9780596521950-item.html"><em>Learning XNA 3.0</em> at Chapters/Indigo’s online store</a> (cheap for Canadians!)</li>
<li><a href="http://creators.xna.com/">XNA Creators Club Online</a></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=7D70D6ED-1EDD-4852-9883-9A33C0AD8FEE&amp;displaylang=en">Download page for Microsoft XNA Game Studio 3.0</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/12/03/oreillys-learning-xna-30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Manga Guide to Databases</title>
		<link>http://www.globalnerdy.com/2008/10/08/the-manga-guide-to-databases/</link>
		<comments>http://www.globalnerdy.com/2008/10/08/the-manga-guide-to-databases/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 02:47:58 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[manga]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/?p=1721</guid>
		<description><![CDATA[Maybe we&#8217;re seeing the start of a strange new manga trend in books. First came The Adventures of Johnny Bunko: The Last Career Guide You&#8217;ll Ever Need, and now there&#8217;s The Manga Guide to Databases:

Here&#8217;s the publisher&#8217;s write-up of the book:

Want to learn about databases without the tedium? With its unique combination of Japanese-style comics [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Maybe we&#8217;re seeing the start of a strange new <em>manga</em> trend in books. First came <a href="http://www.amazon.com/Adventures-Johnny-Bunko-Career-Guide/dp/1594482918?ie=UTF8&#038;s=books&#038;qid=1210166042&#038;sr=8-1"><cite>The Adventures of Johnny Bunko: The Last Career Guide You&#8217;ll Ever Need</cite></a>, and now there&#8217;s <a href="http://www.amazon.com/gp/product/1593271905"><strong><cite>The Manga Guide to Databases</cite></strong></a>:</p>
<p style="text-align:center;"><a href="http://www.amazon.com/gp/product/1593271905"><img src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/10/the_manga_guide_to_databases.jpg" alt="Cover of &quot;The Manga Guide to Databases&quot;" title="Cover of &quot;The Manga Guide to Databases&quot;" width="380" height="500" /></a></p>
<p>Here&#8217;s the publisher&#8217;s write-up of the book:</p>
<blockquote><p>
Want to learn about databases without the tedium? With its unique combination of Japanese-style comics and serious educational content, The Manga Guide to Databases is just the book for you.</p>
<p>Princess Ruruna is stressed out. With the king and queen away, she has to manage the Kingdom of Kod&#8217;s humongous fruit-selling empire. Overseas departments, scads of inventory, conflicting prices, and so many customers! It&#8217;s all such a confusing mess. But a mysterious book and a helpful fairy promise to solve her organizational problems—with the practical magic of databases.</p>
<p>In The Manga Guide to Databases, Tico the fairy teaches the Princess how to simplify her data management. We follow along as they design a relational database, understand the entity-relationship model, perform basic database operations, and delve into more advanced topics. Once the Princess is familiar with transactions and basic SQL statements, she can keep her data timely and accurate for the entire kingdom. Finally, Tico explains ways to make the database more efficient and secure, and they discuss methods for concurrency and replication.</p>
<p>Examples and exercises (with answer keys) help you learn, and an appendix of frequently used SQL statements gives the tools you need to create and maintain full-featured databases.</p>
<p>(Of course, it wouldn&#8217;t be a royal kingdom without some drama, so read on to find out who gets the girl—the arrogant prince or the humble servant.)</p>
<p>This EduManga book is a translation of a bestselling series in Japan, co-published with Ohmsha, Ltd., of Tokyo, Japan.
</p></blockquote>
<p>The book will be available on December 1st, just in time to order as a Christmas present for someone who&#8217;s into both programming and manga.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/10/08/the-manga-guide-to-databases/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>I Have an Advance Copy of Neal Stephenson&#8217;s &#8220;Anathem&#8221;!</title>
		<link>http://www.globalnerdy.com/2008/07/22/i-have-an-advance-copy-of-neal-stephensons-anathem/</link>
		<comments>http://www.globalnerdy.com/2008/07/22/i-have-an-advance-copy-of-neal-stephensons-anathem/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 18:56:03 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[Anathem]]></category>
		<category><![CDATA[Neal Stephenson]]></category>

		<guid isPermaLink="false">http://globalnerdy.com/?p=1866</guid>
		<description><![CDATA[I Have an Advance Copy of Neal Stephenson&#8217;s &#8220;Anathem&#8221;! It just arrived at the office, and I&#8217;ve written about it here.
]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.joeydevilla.com/2008/07/22/i-have-an-advance-copy-of-neal-stephensons-anathem/"><strong>I Have an Advance Copy of Neal Stephenson&#8217;s &#8220;Anathem&#8221;!</strong></a> It just arrived at the office, and I&#8217;ve written about it <a href="http://www.joeydevilla.com/2008/07/22/i-have-an-advance-copy-of-neal-stephensons-anathem/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/07/22/i-have-an-advance-copy-of-neal-stephensons-anathem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;O Brave New World That Has Such Hardware In It!&#8221;</title>
		<link>http://www.globalnerdy.com/2008/06/16/o-brave-new-world-that-has-such-hardware-in-it/</link>
		<comments>http://www.globalnerdy.com/2008/06/16/o-brave-new-world-that-has-such-hardware-in-it/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 21:15:19 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Hardware and Gadgets]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[book covers]]></category>
		<category><![CDATA[obsolete]]></category>

		<guid isPermaLink="false">http://globalnerdy.com/?p=1737</guid>
		<description><![CDATA[<p>I absolutely love old computer books...</p>

<p style="text-align:center;"><a href="http://globalnerdy.com/2008/06/16/o-brave-new-world-that-has-such-hardware-in-it/"><img src="http://globalnerdy.com/wordpress/wp-content/uploads/2008/06/the_new_world_of_computers_preview.jpg" alt="Old book: \&#34;The New World of Computers\&#34;, featuring a late-\&#039;60s or \&#039;70s-era mainframe" title="the_new_world_of_computers_preview" width="400" height="300" /></a><br /><span class="caption">Click the picture to see a larger version.</span></p>]]></description>
			<content:encoded><![CDATA[<p></p><p>I absolutely love old computer books&#8230;</p>
<p style="text-align:center;"><img src="http://globalnerdy.com/wordpress/wp-content/uploads/2008/06/the_new_world_of_computers.jpg" alt="Old book: \&quot;The New World of Computers\&quot;, featuring a late-\&#039;60s or \&#039;70s-era mainframe" title="the_new_world_of_computers" width="500" height="375" /><br /><span class="caption">Photo courtesy of Miss Fipi Lele.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/06/16/o-brave-new-world-that-has-such-hardware-in-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Tech Reading List for May</title>
		<link>http://www.globalnerdy.com/2008/05/01/my-tech-reading-list-for-may/</link>
		<comments>http://www.globalnerdy.com/2008/05/01/my-tech-reading-list-for-may/#comments</comments>
		<pubDate>Thu, 01 May 2008 19:29:09 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[Apress]]></category>
		<category><![CDATA[Head First]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://globalnerdy.com/?p=1655</guid>
		<description><![CDATA[<p>I got a number of books for free this past week:</p>

<p style="text-align:center;"><img src="http://globalnerdy.com/wordpress/wp-content/uploads/2008/05/books_im_reviewing_may_2008.jpg" alt="Books I\&#039;m reviewing in May 2008" title="books_im_reviewing_may_2008" width="400" height="337" /></p>

<ul>
<li><a href="http://www.amazon.com/Head-First-PMP-Brain-Friendly-Professional/dp/0596102348?tag=particculturf-20"><strong><cite>Head First PMP</cite></strong></a> - When my friend <a href="http://hypatia.ca/">Leigh Honeywell</a> heard that I was taking a project management course later this month, she told me that she got this book for free at a conference and had no use for it. So she gave this book to me, and I'll be reading it so that when the course comes around -- it's May 21st through 23rd -- I'll be at least familiar with the material.</li>
</ul>

<p>And four books from <a href="http://apress.com/">Apress</a>, courtesy of Julie Miller:</p>
<ul>
<li><a href="http://www.amazon.com/Pro-PHP-Patterns-Frameworks-Testing/dp/1590598199/ref=pd_bbs_sr_1?ie=UTF8&#038;s=books&#038;qid=1209667340&#038;sr=1-1"><strong><cite>Pro PHP: Patterns, Frameworks, Testing and More</cite></strong></a></li>
<li><a href="http://www.amazon.com/PHP-Objects-Patterns-Practice-Second/dp/1590599098/ref=pd_bxgy_b_img_b"><strong><cite>PHP Objects, Patterns, and Practice, Second Edition</cite></strong></a></li>
<li><a href="http://www.amazon.com/Practical-Web-2-0-Applications-PHP/dp/1590599063/ref=pd_bxgy_b_img_b"><strong><cite>Practical Web 2.0 Applications with PHP</cite></strong></a></li>
<li><a href="http://www.amazon.com/Practical-Reporting-Rails-Experts-Source/dp/1590599330/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1209667643&#038;sr=1-1"><strong><cite>Practical Reporting with Ruby and Rails</cite></strong></a></li>
</ul>

<p>I'll be reading them this month and posting my reviews here in <cite>Global Nerdy</cite>. Watch this space!</p>]]></description>
			<content:encoded><![CDATA[<p></p><p>I got a number of books for free this past week:</p>
<p style="text-align:center;"><img src="http://globalnerdy.com/wordpress/wp-content/uploads/2008/05/books_im_reviewing_may_2008.jpg" alt="Books I\&#039;m reviewing in May 2008" title="books_im_reviewing_may_2008" width="400" height="337" /></p>
<ul>
<li><a href="http://www.amazon.com/Head-First-PMP-Brain-Friendly-Professional/dp/0596102348?tag=particculturf-20"><strong><cite>Head First PMP</cite></strong></a> &#8211; When my friend <a href="http://hypatia.ca/">Leigh Honeywell</a> heard that I was taking a project management course later this month, she told me that she got this book for free at a conference and had no use for it. So she gave this book to me, and I&#8217;ll be reading it so that when the course comes around &#8212; it&#8217;s May 21st through 23rd &#8212; I&#8217;ll be at least familiar with the material.</li>
</ul>
<p>And four books from <a href="http://apress.com/">Apress</a>, courtesy of Julie Miller:</p>
<ul>
<li><a href="http://www.amazon.com/Pro-PHP-Patterns-Frameworks-Testing/dp/1590598199/ref=pd_bbs_sr_1?ie=UTF8&#038;s=books&#038;qid=1209667340&#038;sr=1-1"><strong><cite>Pro PHP: Patterns, Frameworks, Testing and More</cite></strong></a></li>
<li><a href="http://www.amazon.com/PHP-Objects-Patterns-Practice-Second/dp/1590599098/ref=pd_bxgy_b_img_b"><strong><cite>PHP Objects, Patterns, and Practice, Second Edition</cite></strong></a></li>
<li><a href="http://www.amazon.com/Practical-Web-2-0-Applications-PHP/dp/1590599063/ref=pd_bxgy_b_img_b"><strong><cite>Practical Web 2.0 Applications with PHP</cite></strong></a></li>
<li><a href="http://www.amazon.com/Practical-Reporting-Rails-Experts-Source/dp/1590599330/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1209667643&#038;sr=1-1"><strong><cite>Practical Reporting with Ruby and Rails</cite></strong></a></li>
</ul>
<p>I&#8217;ll be reading them this month and posting my reviews here in <cite>Global Nerdy</cite>. Watch this space!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/05/01/my-tech-reading-list-for-may/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
