<?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>Simone Carletti&#039;s Blog &#187; Books</title>
	<atom:link href="http://www.simonecarletti.com/blog/tags/books/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.simonecarletti.com/blog</link>
	<description>Simone Carletti&#039;s personal ramblings on programming, syndication, search engines &#38; marketing.</description>
	<lastBuildDate>Thu, 12 Jan 2012 09:16:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Eloquent Ruby Book Review</title>
		<link>http://www.simonecarletti.com/blog/2011/10/eloquent-ruby/</link>
		<comments>http://www.simonecarletti.com/blog/2011/10/eloquent-ruby/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 09:49:25 +0000</pubDate>
		<dc:creator>Simone Carletti</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[reviews]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.simonecarletti.com/blog/?p=1522</guid>
		<description><![CDATA[Eloquent Ruby by Russ Olsen is a book about the Ruby programming language that focuses on Ruby programming style by teaching you how to write your code as a real Rubyist.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.simonecarletti.com/blog/out/amzcom-eloquentruby"><img class="alignleft" title="Book Eloquent Ruby" src="http://share.weppos.net/simonecarletti/book-addison-eloquentruby-20110930-194837.png" alt="Book Eloquent Ruby" height="250" /></a> <a href="http://www.simonecarletti.com/blog/out/amzcom-eloquentruby"><em>Eloquent Ruby</em></a> (<a href="http://www.simonecarletti.com/blog/out/amzcom-eloquentruby">US</a> | <a href="http://www.simonecarletti.com/blog/out/amzuk-eloquentruby">UK</a>) by Russ Olsen is a book about the Ruby programming language that focuses on <strong>Ruby programming style</strong> by teaching you how to write your code as a real Rubyist.</p>
<p>This is the second Olsen&#8217;s book about Ruby. In 2007 he published <a title="Design Patterns in Ruby Book Review" href="http://www.simonecarletti.com/blog/2009/03/book-review-design-patterns-in-ruby/">Design Patterns in Ruby</a>, an other great example of how common programming practices like Design Patterns apply to the Ruby world.</p>
<p>Eloquent Ruby is a very lightweight and pleasant reading. The colloquial tone is friendly and engrossing. The books has plenty of code snippets and it requires only a few days to read it from start to end.</p>
<p>Be prepared, <strong>this is an unconventional Ruby book</strong>. To use author&#8217;s words</p>
<blockquote><p>This is a book about making that final leap, about absorbing the Ruby programming culture, about becoming truly fluent in Ruby.</p></blockquote>
<p>This is something I have been claiming for the last 5 years. Learning Ruby is not difficult, start thinking in Ruby and becoming a Rubyist is the real challenge.</p>
<blockquote><p>A formal understanding of the mechanics of Ruby isn&#8217;t the same as really looking at the programming world through Ruby-colored glasses. You need to absorb the cultural part of Ruby, to see how real Rubyist use the language to solve problems.</p></blockquote>
<p>This is one of the reasons that convinced me to <a href="http://www.simonecarletti.com/blog/2011/09/the-rubyist/">create the Rubyist</a>.</p>
<h2><span id="more-1522"></span>Structure</h2>
<p>The book is divided into 4 parts:</p>
<ol>
<li>The Basics</li>
<li>Classes, Modules, and Blocks</li>
<li>Metaprogramming</li>
<li>Pulling It All Together</li>
</ol>
<p>Each part is divided into chapters. The book counts 31 chapters and about 400 pages.</p>
<p>The first part covers some <strong>basic Ruby features</strong> in a way you normally won&#8217;t read in any other Ruby reference. Ah, if I only had the Symbol chapter available when I started learning Ruby!</p>
<p>The second part covers <strong>Classes, Modules and Blocks</strong> and it explains how to use modules successfully, how to deal with inheritance, equality and operators. This is by far my most favorite section.</p>
<p>The third part is about <strong>Metaprogramming</strong>. Whilst the name of the section is technically correct, it can be misleading. If you are looking for a complete Ruby and Metaprogramming course, check out <a href="http://www.simonecarletti.com/blog/out/amzcom-metaprogrammingruby"><em>Metaprogramming Ruby</em></a> (<a href="http://www.simonecarletti.com/blog/out/amzcom-metaprogrammingruby">US</a> | <a href="http://www.simonecarletti.com/blog/out/amzuk-metaprogrammingruby">UK</a>). This section covers common Ruby metaprogramming topic such as hooks, method_missing (a must read!) and monkey patching.</p>
<p>The forth part wraps several topics all together and talks about <strong>creating and implementing a DSL</strong> in Ruby.</p>
<p>The book ends with a <strong>rich list of books about Ruby and programming in general</strong>. The list contains amazing Ruby titles like <a href="http://www.simonecarletti.com/blog/out/amzcom-rubybestpractices"><em>Ruby Best Practices</em></a> (<a href="http://www.simonecarletti.com/blog/out/amzcom-rubybestpractices">US</a> | <a href="http://www.simonecarletti.com/blog/out/amzuk-rubybestpractices">UK</a>) or <a href="http://www.simonecarletti.com/blog/out/amzcom-rubyway"><em>The Ruby Way Second Edition</em></a> (<a href="http://www.simonecarletti.com/blog/out/amzcom-rubyway">US</a> | <a href="http://www.simonecarletti.com/blog/out/amzuk-rubyway">UK</a>), as well programming masterpieces like <a href="http://www.simonecarletti.com/blog/out/amzcom-elprogstyle"><em>The Elements of Programming Style</em></a> (<a href="http://www.simonecarletti.com/blog/out/amzcom-elprogstyle">US</a> | <a href="http://www.simonecarletti.com/blog/out/amzuk-elprogstyle">UK</a>). If you are looking for some inspiration about your next reading, you might probably find some there.</p>
<h3>Chapters</h3>
<ol>
<li>Write Code That Looks Like Ruby</li>
<li>Choose the Right Control Structure</li>
<li>Take Advantage of Ruby&#8217;s Smart Collections</li>
<li>Take Advantage of Ruby&#8217;s Smart Strings</li>
<li>Find The Right String With Regular Expressions</li>
<li>Use Symbols to Stand for Something</li>
<li>Treat Everything Like an Object &#8211; Because Everything Is</li>
<li>Embrace Dynamic Typing</li>
<li>Write Specs!</li>
<li>Construct Your Classes from Short, Focused Methods</li>
<li>Define Operators Respectfully</li>
<li>Create Classes That Understand Equality</li>
<li>Get The Behavior You Need with Singleton and Class Methods</li>
<li>Use Class Instance Variables</li>
<li>Use Modules as Name spaces</li>
<li>Use Modules as Mixins</li>
<li>Use Blocks to Iterate</li>
<li>Execute Around with a Block</li>
<li>Save Blocks to Execute Later</li>
<li>Use Hooks to Keep Your Program Informed</li>
<li>Use method_missing for Flexible Error Handling</li>
<li>Use method_missing for Delegation</li>
<li>Use method_missing to Build Flexible APIs</li>
<li>Update Existing Classes with Monkey Patching</li>
<li>Create Self-Modifying Classes</li>
<li>Create Classes That Modify Their Subclasses</li>
<li>Invent Internal DSLs</li>
<li>Build External DSLs for Flexible Syntax</li>
<li>Package Your Programs as Gems</li>
<li>Know Your Ruby Implementation</li>
<li>Keep An Open Mind to Go With Those Open Classes</li>
</ol>
<h2>Requirements</h2>
<p>This book assumes that you have a basic knowledge of the Ruby language. You don&#8217;t need to be a Ruby master, but some advanced sections such as Metaprogramming and DSL may require you to stop for a moment and refresh or improve your specific knowledge of Ruby on that topic.</p>
<p>Don&#8217;t expect this book to explain you the basic details of Ruby or its syntax, this is behind the scope of this publication. There are plenty of commented examples, but if you want to learn about a specific Ruby feature make sure you keep a reference like <a href="http://www.simonecarletti.com/blog/out/amzcom-programmingruby"><em>Programming Ruby</em></a> (<a href="http://www.simonecarletti.com/blog/out/amzcom-programmingruby">US</a> | <a href="http://www.simonecarletti.com/blog/out/amzuk-programmingruby">UK</a>) or <a href="http://www.simonecarletti.com/blog/out/amzcom-rubyway"><em>The Ruby Way</em></a> (<a href="http://www.simonecarletti.com/blog/out/amzcom-rubyway">US</a> | <a href="http://www.simonecarletti.com/blog/out/amzuk-rubyway">UK</a>) handy.</p>
<p>Another requirement is that you must be ready to read printed source code: this book is full or Ruby code. At least the 50% of the pages contain code, making this book a valuable practical reference.</p>
<h2>Plus</h2>
<p>Aside from being an excellent resource to help you thinking Ruby and programming in the Ruby way, this book constantly adopts a practical approach providing tons of examples to read. Every chapter ends with an <em>In the Wild</em> section containing examples extracted from real Ruby libraries, and a <em>Wrapping up</em> section that helps you to fix the concepts in mind.</p>
<p>As as long time Ruby developer I really loved the <em>Use Symbols to Stand for Something</em>, object and block chapters. Some of them didn&#8217;t necessary teach anything new, but the way used to present the concepts was very helpful and understandable.</p>
<p>I appreciate the focus on tests and the RSpec chapter. The most part of Ruby books dedicate a specific section about tests, then seem to forget them for the rest of the chapters. This is not the case of this book, where several examples are verified by tests.</p>
<p>Finally, the simple colloquial tone makes the book really friendly. It seems like a person you always worked with is now teaching you programming and thinking in the Ruby way.</p>
<h2>Minus</h2>
<p>It&#8217;s really hard to find some real negative in this book.</p>
<p>I found the Regular Expression chapter pretty boring and misplaced. In fact, it was the only chapter in the book where the main focus was teaching Regular Expression basics, instead of focusing on using Regular Expressions in the right way.</p>
<p>The same applies to the RubyGems sections. There have been several changes in the Gems community in the last years and the chapter appears to be slightly outdated. Again, I would have left this topic outside the book.</p>
<p>Finally, I would have appreciated a wider usage of Ruby 1.9 over 1.8 in order to discourage the adoption of Ruby 1.8.</p>
<h2>In Conclusion</h2>
<p>If you are a beginner to intermediate level Ruby programmer, this book is a must read that it&#8217;s likely to help you improving your Ruby skill and writing code in the Ruby way.</p>
<p>If you are completely new to Ruby, personally don&#8217;t recommend this book as a first reading. You might want to start with a Ruby reference to learn how programming in Ruby, then read Eloquent Ruby to learn how programming in the Ruby way. Also, don&#8217;t forget about <a href="http://rubyist.info/">the Rubyist</a>, you&#8217;ll find several Ruby common practices and coding conventions.</p>
<p>If you are a Ruby expert and you have been writing Ruby for the last 5 years, don&#8217;t be too self-confident. I&#8217;m quite sure the book will be able to provide you some valuable advice more than once.</p>
<h2>Where to Find Eloquent Ruby</h2>
<p>You can get a printed or Kindle copy at <a href="http://www.simonecarletti.com/blog/out/amzcom-eloquentruby">Amazon.com</a>, <a href="http://www.simonecarletti.com/blog/out/amzuk-eloquentruby">Amazon.co.uk</a>, or at your other favorite book seller.</p>
<h3>Kindle Preview</h3>
<div id="kindle-reader">.</div>
<p><script type="text/javascript" src="http://kindleweb.s3.amazonaws.com/app/KindleReader-min.js"></script><script type="text/javascript">// <![CDATA[
                            KindleReader.LoadSample({containerID: 'kindle-reader', asin: 'B004MMEJ36', width: '600', height: '599', assoctag: 'simonecarletti-20'});
// ]]&gt;</script></p>
<p>Related posts<ol>
<li><a href='http://www.simonecarletti.com/blog/2009/03/book-review-design-patterns-in-ruby/' rel='bookmark' title='Design Patterns in Ruby Book Review'>Design Patterns in Ruby Book Review</a></li>
<li><a href='http://www.simonecarletti.com/blog/2010/03/book-review-learning-jquery/' rel='bookmark' title='Learning jQuery 1.3 Book Review'>Learning jQuery 1.3 Book Review</a></li>
<li><a href='http://www.simonecarletti.com/blog/2011/03/book-review-getting-real/' rel='bookmark' title='Getting Real Book Review'>Getting Real Book Review</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecarletti.com/blog/2011/10/eloquent-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML 5 Up and Running Book Review</title>
		<link>http://www.simonecarletti.com/blog/2011/03/book-review-html-5-up-and-running/</link>
		<comments>http://www.simonecarletti.com/blog/2011/03/book-review-html-5-up-and-running/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 11:22:17 +0000</pubDate>
		<dc:creator>Simone Carletti</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html 5]]></category>
		<category><![CDATA[reviews]]></category>

		<guid isPermaLink="false">http://www.simonecarletti.com/blog/?p=1393</guid>
		<description><![CDATA[HTML5 Up and Running provides a practical overview of the new features available in HTML 5.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.simonecarletti.com/blog/out/amzcom-divehtml5"><img class="alignleft" title="Book HTML5 Up and Running" src="http://share.weppos.net/simonecarletti/book-oreilly-divehtml5-20110930-193508.png" alt="Book HTML5 Up and Running" width="190" height="250" /></a><a href="http://www.simonecarletti.com/blog/out/amzcom-divehtml5"><em>HTML5 Up and Running</em></a> (<a href="http://www.simonecarletti.com/blog/out/amzcom-divehtml5">US</a> | <a href="http://www.simonecarletti.com/blog/out/amzuk-divehtml5">UK</a>) is one of the first books — if not the first — <strong>about HTML 5</strong>. The author of the book is Mark Pilgrim, developer advocate for Google well know for its effort in the open source community and web standards.</p>
<p>Mark is the author of several other publications including <a href="http://example.com/">Dive Into Accessibility</a>, <a title="Dive Into Python" href="http://diveintopython.org/">Dive into Python</a>, Dive Into Greasemonkey. Not surprisingly, his site is called <a title="dive into mark" href="http://diveintomark.org/">Dive Into Mark</a>.</p>
<p>But hey. Why isn&#8217;t this book called Dive Into HTML 5? I&#8217;m glad you asked. Actually, this appears to be the original title. The book is entirely available for free on the web at the <a title="Dive Into HTML5" href="http://diveintohtml5.org/">Dive Into HTML 5 website</a>. Honestly, I don&#8217;t know the reason why the title was changed for the printed version.</p>
<p><em>HTML5 Up and Running</em> provides a <strong>practical overview of the new features already available in HTML 5</strong>. HTML 5 is not a standard (yet), but browsers such as Safari, Firefox, Opera and Chrome already support many if its feature.</p>
<p>One of the first things you&#8217;ll learn reading this book, is that HTML 5 is not one big thing. Here&#8217;s what Mark said in the introduction.</p>
<blockquote><p>You may well ask: &#8220;How can I start using HTML5 if older browsers don&#8217;t support it?&#8221; But the question itself is misleading. HTML5 is not one big thing; it is a collection of individual features. So you can&#8217;t detect &#8220;HTML5 support,&#8221; because that doesn&#8217;t make any sense. But you <em>can</em> detect support for individual features, like canvas, video, or geolocation.</p></blockquote>
<p><strong>HTML 5 is closer than you think</strong>.</p>
<p><span id="more-1393"></span>For example, by reading this book you will learn that the iPhone and the iPad already support the new HTML 5 input features and attempt to adapt the keyboard layout according to the <code>input</code> type.</p>
<p>An email input type, like this following one</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;input type=&quot;email&quot; /&gt;</div></td></tr></tbody></table></div>
<p>on the iPhone and iPad will trigger the email-keyboard that contains a smaller-than-usual space bar, plus dedicated keys for the <code>@</code> and <code>.</code> characters.</p>
<p>Isn&#8217;t this amazing?</p>
<h2>Structure</h2>
<p><em>HTML5 Up and Running</em> is divided into an introduction, 11 chapters, and 2 appendix.</p>
<p>Here&#8217;s the table of content:</p>
<ul>
<li>Introduction: Five Things You Should Know About HTML</li>
<li>A Quite Biased History of HTML5</li>
<li>Detecting HTML5 Features: It&#8217;s Elementary, My Dear Watson</li>
<li>What Does It All Mean?</li>
<li>Let’s Call It a Draw(ing Surface)</li>
<li>Video in a Flash (Without That Other Thing)</li>
<li>You Are Here (And So Is Everybody Else)</li>
<li>A Place To Put Your Stuff</li>
<li>Let’s Take This Offline</li>
<li>A Form of Madness</li>
<li>&#8220;Distributed&#8221;, &#8220;Extensibility&#8221;, And Other Fancy Words</li>
<li>Manipulating History for Fun &amp; Profit</li>
<li>The All-In-One Almost-Alphabetical No-Bullshit Guide to Detecting Everything</li>
<li>HTML5 Peeks, Pokes and Pointers</li>
</ul>
<p>The book is very easy to read. It contains <strong>tons of examples</strong>, a very simple tone and several references. However, <strong>previous programming experience is recommended</strong>, especially if you plan to use advanced JavaScript-oriented features.</p>
<h2>Examples, Examples and Examples</h2>
<p>As I already mentioned, the book is full of contextual hints and examples. This is really cool because examples help you to remember an information.</p>
<p>You don&#8217;t need to trust me, you can check with your own eyes. Go for example to the <a title="Canvas - Dive Into HTML5" href="http://diveintohtml5.org/canvas.html">Canvas chapter</a> and see how well it is explained. I honestly can&#8217;t imagine a better way to do this.</p>
<h2>This is not a book to learn HTML</h2>
<p>Remember, even if <em>HTML5 Up and Running</em> is easy to read and full of examples, <strong>it isn&#8217;t the right book to start learning HTML</strong>. This book assumes you already know about HTML, CSS and JavaScript.</p>
<p>Nevertheless, the <em><a title="How Did We Get Here? - Dive Into HTML5" href="http://diveintohtml5.org/past.html">How did we get there</a></em> chapter is one of the best article I ever read about the history of HTML.</p>
<p>And if you happened to migrate all your websites to XHTML (like the 90% of developers did) in the last 5 years, you might probably want to read the <em>everything you know about xhtml is wrong</em> paragraph — <em>*sigh*</em>.</p>
<h2>Remember, JavaScript is the future</h2>
<p>Since I mentioned JavaScript, let me take the time to highlight a very important concept: <strong>JavaScript is the future</strong>.</p>
<p>It doesn&#8217;t matter if you are developing a mobile web site, an iPad product, a Rails application, an interactive HTML 5 interface. JavaScript is the future.</p>
<p><strong>JavaScript stands to development like parsley stands to kitchen</strong>. You find it almost everywhere. Think about jQuery Mobile, Sencha Touch, <a title="Unobtrusive JavaScript in Rails 3  –  Simone Carletti's Blog" href="http://www.simonecarletti.com/blog/2010/06/unobtrusive-javascript-in-rails-3/">unobtrusive Rails 3 helpers</a>, <a title="Cappuccino Web Framework - Build Desktop Class Applications in Objective-J and JavaScript" href="http://cappuccino.org/">Cappucino</a>, HTML 5 Modernizr library, etc. these are just a few examples of how JavaScript is evolving and entering our life.</p>
<p>If you are a developer or designer, you can&#8217;t continue to ignore JavaScript. And JavaScript appears to be even more important in HTML 5 because several features are designed to work with JavaScript. I&#8217;m talking about Geo Localization, Canvas and Local Storage, just to name a few.</p>
<p>So do yourself a favor: <strong>take the time to start learning and experimenting with JavaScript</strong>.</p>
<h2>In conclusion</h2>
<p>I enjoyed this book. I appreciated the HTML 5 introduction, the history of HTML and the tutorial about detecting HTML 5 features. But the chapter I enjoyed the most is the one about the new HTML 5 form inputs, probably because I have been able to start experimenting with them immediately.</p>
<h2>Where to Find HTML 5 Up and Running</h2>
<p>You can get a printed or Kindle copy at <a href="http://www.simonecarletti.com/blog/out/amzcom-divehtml5">Amazon.com</a>, <a href="http://www.simonecarletti.com/blog/out/amzuk-divehtml5">Amazon.co.uk</a>, or at your other favorite book seller.</p>
<div id="kindle-reader">
<h3>Kindle Preview</h3>
</div>
<p><script type="text/javascript" src="http://kindleweb.s3.amazonaws.com/app/KindleReader-min.js"></script><script type="text/javascript">// <![CDATA[
                                KindleReader.LoadSample({containerID: 'kindle-reader', asin: 'B0043D2E0E', width: '600', height: '635', assoctag: 'simonecarletti-20'});
// ]]&gt;</script></p>
<p>Related posts<ol>
<li><a href='http://www.simonecarletti.com/blog/2010/03/book-review-learning-jquery/' rel='bookmark' title='Learning jQuery 1.3 Book Review'>Learning jQuery 1.3 Book Review</a></li>
<li><a href='http://www.simonecarletti.com/blog/2009/03/book-review-design-patterns-in-ruby/' rel='bookmark' title='Design Patterns in Ruby Book Review'>Design Patterns in Ruby Book Review</a></li>
<li><a href='http://www.simonecarletti.com/blog/2011/10/eloquent-ruby/' rel='bookmark' title='Eloquent Ruby Book Review'>Eloquent Ruby Book Review</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecarletti.com/blog/2011/03/book-review-html-5-up-and-running/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Getting Real Book Review</title>
		<link>http://www.simonecarletti.com/blog/2011/03/book-review-getting-real/</link>
		<comments>http://www.simonecarletti.com/blog/2011/03/book-review-getting-real/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 10:02:27 +0000</pubDate>
		<dc:creator>Simone Carletti</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[37signals]]></category>
		<category><![CDATA[reviews]]></category>

		<guid isPermaLink="false">http://www.simonecarletti.com/blog/?p=1296</guid>
		<description><![CDATA[Getting Real is the first book published by 37signals, containing ideas, suggestions and examples to help you building effective software.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.simonecarletti.com/blog/out/amzcom-gettingreal"><img class="alignleft" title="Book Getting Real" src="http://share.weppos.net/simonecarletti/book-gettingreal-20110930-193119.png" alt="Book Getting Real" width="166" height="250" /></a><a href="http://www.simonecarletti.com/blog/out/amzcom-gettingreal"><em>Getting Real</em></a> (<a href="http://www.simonecarletti.com/blog/out/amzcom-gettingreal">US</a> | <a href="http://www.simonecarletti.com/blog/out/amzuk-gettingreal">UK</a>) is the first book published by <a href="http://37signals.com/">37signals</a>, the famous company behind successful web applications such as <strong>Basecamp</strong> and <strong>Highrise</strong>, other than the company that created the Ruby on Rails framework.</p>
<p><em>Getting Real</em> was published in 2006 but if you start reading it today, you will probably find it more relevant than several other programming and development books written in the last two months. This is because <em>Getting Real</em> is not about a language or technology. It isn&#8217;t about the latest cutting-edge development framework. <em>Getting Real</em> describes a way of thinking, describes an effective approach ideally suited to develop web based software.</p>
<p>To describe the book with the authors&#8217; words</p>
<blockquote><p><em>Getting Real</em> is about skipping all the stuff that <em>represents</em> real and <em>actually building the real things</em>.</p>
<p><em>Getting Real</em> is less. Less mass, less software, less of everything that&#8217;s not essential.</p>
<p><em>Getting Real</em> is about iterations and lowering the cost of change.</p></blockquote>
<p><span id="more-1296"></span></p>
<h2>Structure</h2>
<p>The book is <strong>organized in 16 chapters</strong>, <strong>each one containing several essays</strong>.</p>
<p>Here&#8217;s the table of content:</p>
<ol>
<li>Introduction</li>
<li>The Starting Line</li>
<li>Stay Lean</li>
<li>Priorities</li>
<li>Feature Selection</li>
<li>Process</li>
<li>The Organization</li>
<li>Staffing</li>
<li>Interface Design</li>
<li>Code</li>
<li>Words</li>
<li>Pricing and Signup</li>
<li>Promotion</li>
<li>Support</li>
<li>Post-Launch</li>
<li>Conclusion</li>
</ol>
<p>If you want to get a preview of the content or read it online, <a href="http://gettingreal.37signals.com/toc.php">the complete book is available online for free</a>.</p>
<h3>Essays</h3>
<p>An essay is usually no more than 2 pages long. <strong>The essay size is one of the best aspects of the book</strong>. Keeping essays short actually make it possible to read them very quickly. You can easily schedule your reading. Do you have only 15 minutes available? Open the book, pick the next essay and changes are you will finish it in 10 minutes.</p>
<p>Short chapters help you to stay focused on the content. When it takes 30 minutes or longer to read a chapter, you might lose the concentration. How many times in the middle of a chapter and did you realize you didn&#8217;t remember what was written at the beginning of it?</p>
<p>Essays contain ideas, suggestions and examples to help you <em>Getting Real</em>. <strong>The book focus is on building software and web applications</strong>, but reading the book you will immediately realize that several topics are applicable to non-software activities too.</p>
<p>As the authors say, <em>this book doesn&#8217;t have to be an all or nothing proposition. Even if you can&#8217;t embrace Getting Real fully, there are bound to be at least a few ideas in here you can sneak past the powers that be</em>.</p>
<h2>Who should read this book?</h2>
<p>So, is <em>Getting Real</em> for you? For me, <strong><em>Getting Real</em> is one of the best books I ever read about development methodologies</strong> since a long time. When I was reading the book, I had the same awesome feeling I first noticed when I read The Pragmatic Programmers book.</p>
<p>As an entrepreneur and the co-founder of RoboDomain, <em>Getting Real</em> has been a valuable resource. I discovered that several techniques and processes we applied to RoboDomain are proven to be successful and there&#8217;s still plenty of new things to be done to improve ourself and our product.</p>
<p><em>Getting Real</em> is not the kind of book you can read and say &#8220;from tomorrow we have to start following all these guidelines&#8221;. You need to be ready to acknowledge the ideas it contains.</p>
<p>If you ever developed a web application or if you&#8217;re going to develop one. If you are an entrepreneur, designer or programmer. If concepts like <strong>versioning</strong>, <strong>agile development</strong>, <strong>iterations</strong>, <strong>continuous integration</strong>, <strong>testing</strong> and <strong>customer satisfaction</strong> mean something for you, then you will probably appreciate <em>Getting Real</em>.</p>
<p>And if you love meetings, spend several time writing specs, work several months before having a working version of your product, <em>Getting Real</em> might be a good book for, you provided that you read it by trying to understand why a specific approach has proven to be successful, rather than assuming this is just hot air.</p>
<p><span style="font-size: 20px; font-weight: bold;">In conclusion</span></p>
<p>As you might understand, I really enjoyed this book and <strong>I strongly recommend it</strong>.</p>
<p>I want to close this book review by quoting a couple of sentences that, in my opinion, better represent <em><em>Getting Real</em></em>.</p>
<blockquote>
<h4>Don&#8217;t be a yes-man</h4>
<p>Each time you say yes to a feature, you&#8217;re adopting a child. You have to take your baby through a whole chain of events (e.g. design, implementation, testing, etc.). And once that feature&#8217;s out there, you&#8217;re stuck with it. Just try to take a released feature away from customers and see how pissed off they get.</p></blockquote>
<blockquote>
<h4>Pay off your code and design &#8220;bills&#8221;</h4>
<p>We usually think of debt in terms of money but it comes in other forms too. You can easily build up code and design debt. Hack together some bad code that&#8217;s functional but still a bit hairy and you&#8217;re building up debt.</p>
<p>The same way you should regularly put aside some of your income for taxes, regularly put aside some time to pay off your code and design debt. If you don&#8217;t, you&#8217;ll just be paying interest (fixing hacks) instead of paying down the principal (and moving forward).</p></blockquote>
<h2>Where to Find Getting Real</h2>
<p>You can get a printed copy at <a href="http://www.simonecarletti.com/blog/out/amzcom-gettingreal">Amazon.com</a>, <a href="http://www.simonecarletti.com/blog/out/amzuk-gettingreal">Amazon.co.uk</a>, or at your other favorite book seller. The complete book <a href="http://gettingreal.37signals.com/toc.php">is also available online for free</a>.</p>
<p>Related posts<ol>
<li><a href='http://www.simonecarletti.com/blog/2009/03/book-review-design-patterns-in-ruby/' rel='bookmark' title='Design Patterns in Ruby Book Review'>Design Patterns in Ruby Book Review</a></li>
<li><a href='http://www.simonecarletti.com/blog/2010/03/book-review-learning-jquery/' rel='bookmark' title='Learning jQuery 1.3 Book Review'>Learning jQuery 1.3 Book Review</a></li>
<li><a href='http://www.simonecarletti.com/blog/2011/10/eloquent-ruby/' rel='bookmark' title='Eloquent Ruby Book Review'>Eloquent Ruby Book Review</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecarletti.com/blog/2011/03/book-review-getting-real/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Learning jQuery 1.3 Book Review</title>
		<link>http://www.simonecarletti.com/blog/2010/03/book-review-learning-jquery/</link>
		<comments>http://www.simonecarletti.com/blog/2010/03/book-review-learning-jquery/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 09:11:13 +0000</pubDate>
		<dc:creator>Simone Carletti</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[reviews]]></category>

		<guid isPermaLink="false">http://www.simonecarletti.com/blog/?p=990</guid>
		<description><![CDATA[Learning jQuery 1.3 is one of the most famous books about jQuery, the popular JavaScript framework.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.simonecarletti.com/blog/out/amzcom-learnjquery13"><img class="alignleft" title="Book Learning jQuery 1.3" src="http://share.weppos.net/simonecarletti/book-packt-learningjquery13-20110930-195149.png" alt="Book Learning jQuery 1.3" width="202" height="249" /></a> It&#8217;s been a while since I published <a title="Book Review: Design Patterns in Ruby" href="http://www.simonecarletti.com/blog/2009/03/book-review-design-patterns-in-ruby/">my last book review on this blog</a>. Last week I decided it was the time to brush up on my JavaScript skills and I pick up my copy of <em>Learning jQuery 1.3</em> I bought on December.</p>
<p><a href="http://www.simonecarletti.com/blog/out/amzcom-learnjquery13"><em>Learning jQuery 1.3</em></a> (<a href="http://www.simonecarletti.com/blog/out/amzcom-learnjquery13">US</a> | <a href="http://www.simonecarletti.com/blog/out/amzuk-learnjquery13">UK</a>) is one of the most famous books about jQuery, the popular JavaScript framework. It&#8217;s written by <strong>Karl Swedberg</strong> &amp; <strong>Jonathan Chaffer</strong> and published by <strong>Packt</strong>.<span id="more-990"></span></p>
<h2>Structure</h2>
<p>The book is implicitly divided into tree parts:</p>
<ul>
<li>The first part, from chapter 1 to 6, provides an <strong>introduction to the framework</strong>. You&#8217;ll learn the philosophy behind jQuery, how to use it and how jQuery can help you to write more powerful user interactions.</li>
<li>The second part, from chapter 7 to 9, contains several <strong>real-world examples</strong>, pulling together what you&#8217;ve learned in the previous part. Most of the examples are actually overtaken by existing jQuery plugins, however creating something from scratch it&#8217;s an important training and it forces you to have your finger in the pie.</li>
<li>The third part, from chapter 10 to 11, <strong>shows you how to extend the jQuery core library</strong> using existing plugins or creating and packaging your own extensions.</li>
</ul>
<h2>Requirements</h2>
<p>You don&#8217;t have to be a JavaScript master to read this book, though some JavaScript skills might be helpful. Moreover, a basic programming knowledge can help you to better understand the examples.</p>
<p>If you want to leverage your JavaScript skills, jump to Appendix C. It offers a really <strong>interesting overview about Closures</strong>: what they are and how you can use them to your advantage.<br />
Reading this section before the other chapters can make the difference later, when you&#8217;ll have to understand the usage of anonymous functions and callbacks in the examples throughout the book.</p>
<p>Quite obviously, you need a good HTML and CSS knowledge.</p>
<p>If you are looking for a JavaScript reference, this isn&#8217;t the book for you. Remember, this book covers the jQuery JavaScript framework, not the JavaScript language.</p>
<h2>Plus</h2>
<p>One of the aspects of the book I appreciate the most is the number of examples. You don&#8217;t have to wait more than ten pages to see the first example of a HTML page enriched by a jQuery effect. Examples are clear, effective and they never overshadow the narration.</p>
<p>Also, this book is not merely a learn-by-example publication. The authors never delegate to the example the role of teaching you how to learn jQuery but they always use them in support of the theoretical explanation. For me, this is a really important point. The risk of learn-by-example books is that, at the end, you are just able to reproduce what the examples show you without having a global mastery of the argument.</p>
<p>Two other important concepts I learned reading this book are g<strong>raceful degradation</strong> and <strong>progressive enhancement</strong>. I must admin I didn&#8217;t care too much about them before reading the book.<br />
The authors remarked these concepts multiple times throughout the book underlining the importance of using JavaScript and jQuery to improve interaction and usability <cite>ensuring that a page will render as accurately, even if not as beautifully, with JavaScript disabled as it does with JavaScript turned on</cite>.</p>
<h2>Minus</h2>
<p>The book does a good job to introduce jQuery and its most important features. However, I would have dedicated more pages to plugins.</p>
<p>Plugins are one of the reasons of the success of jQuery. The books dedicates two chapters to plugins: the first on using plugins and the second on developing plugins. Whilst the list of jQuery plugins continue to grow up and it&#8217;s impossible to keep a book up-to-date with it, I would have appreciated a more deep overview about <a title="Plugins/Authoring - jQuery JavaScript Library" href="http://docs.jquery.com/Plugins/Authoring">authoring a plugin</a>.</p>
<p>Something like plugin best practices, suggestions and why not, <a title="A Plugin Development Pattern" href="http://www.learningjquery.com/2007/10/a-plugin-development-pattern">plugin development patterns</a>.</p>
<h2>In conclusion</h2>
<p>If you are an <strong>user interface designer</strong> or <strong>interaction designer</strong>, the first part teaches you how to alter the structure of an HTML document attaching or moving page elements, fire off behaviors responding to user events and interact with server-side functionalities.</p>
<p>If you are a <strong>programmer</strong>, the third part offers some precious suggestions to package your scripts making your code more reusable and maintainable.</p>
<p>Regardless your activity, if you are looking for a book to better understand how jQuery works, <em>Learning jQuery</em> is definitely a recommended reading. Someone can argue that online you can easily find tons of articles and discussions about jQuery that make a book quite useless. In my opinion, this is exactly the reason why a book can make the difference. When reading a book, you find all the information you need concentrated in a single source, organized into a logical learning flow and you don&#8217;t need to waste your time searching for information, verifying blog credibility or discarding outdated solutions. A good book if often the preferred starting point if you want to learn a new technology in the minimum amount of time.</p>
<h2>Where to Find Learning jQuery</h2>
<p>You can get a printed copy at <a href="http://www.simonecarletti.com/blog/out/amzcom-learnjquery13">Amazon.com</a>, <a href="http://www.simonecarletti.com/blog/out/amzuk-learnjquery13">Amazon.co.uk</a>, or at your other favorite book seller.</p>
<p>Related posts<ol>
<li><a href='http://www.simonecarletti.com/blog/2011/03/book-review-html-5-up-and-running/' rel='bookmark' title='HTML 5 Up and Running Book Review'>HTML 5 Up and Running Book Review</a></li>
<li><a href='http://www.simonecarletti.com/blog/2009/03/book-review-design-patterns-in-ruby/' rel='bookmark' title='Design Patterns in Ruby Book Review'>Design Patterns in Ruby Book Review</a></li>
<li><a href='http://www.simonecarletti.com/blog/2011/10/eloquent-ruby/' rel='bookmark' title='Eloquent Ruby Book Review'>Eloquent Ruby Book Review</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecarletti.com/blog/2010/03/book-review-learning-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Design Patterns in Ruby Book Review</title>
		<link>http://www.simonecarletti.com/blog/2009/03/book-review-design-patterns-in-ruby/</link>
		<comments>http://www.simonecarletti.com/blog/2009/03/book-review-design-patterns-in-ruby/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 12:20:35 +0000</pubDate>
		<dc:creator>Simone Carletti</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[addison wesley]]></category>
		<category><![CDATA[design patterns]]></category>
		<category><![CDATA[reviews]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.simonecarletti.com/blog/?p=155</guid>
		<description><![CDATA[Design Patterns in Ruby by Russ Olsen is the first book entirely dedicated to the implementation in Ruby of the most common Design Patterns.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.simonecarletti.com/blog/out/amzcom-rubypatterns"><img class="alignleft" title="Book Design Patterns in Ruby" src="http://share.weppos.net/simonecarletti/book-addison-rubypatterns-20110817-214258.png" alt="Book Design Patterns in Ruby" width="189" height="250" /></a> <a href="http://www.simonecarletti.com/blog/out/amzcom-rubypatterns"><em>Design Patterns in Ruby</em></a> (<a href="http://www.simonecarletti.com/blog/out/amzcom-rubypatterns">US</a> | <a href="http://www.simonecarletti.com/blog/out/amzuk-rubypatterns">UK</a>) is the first book entirely dedicated to the <strong>implementation of the most common Design Patterns in Ruby</strong> as defined by the <em>Gang of Four</em> (GoF). <em>Design Patterns in Ruby</em> is written by <a href="http://www.russolsen.com/">Russ Olsen</a>, edited by Addison-Wesley and is a part of the <strong>Professional Ruby Series</strong> managed by <a href="http://obiefernandez.com/">Obie Fernandez</a>. This series is without a doubt synonymous to quality and guarantee for those looking for a book on Ruby or Rails.</p>
<p>Compared to my last readings, this publication was decisively less time consuming. I finished the book in no more than a week, dedicating an hour a day in tram. On condition that you have a certain familiarity with <strong>Ruby</strong> and <strong>Object Oriented Programming</strong>, <em>Design Patterns in Ruby</em> is a quick and involving reading.<span id="more-155"></span></p>
<h2>Structure</h2>
<p>The book is divided in three parts.</p>
<p>The first part, <strong>Patterns and Ruby</strong>, is a quick introduction to the design patterns and the Ruby programming language. As I said before, you should not rely too much on the second chapter. A single section is not enough to demonstrate the power of the Ruby language.</p>
<p>The second part, <strong>Patterns in Ruby</strong>, is the heart of the book. Each chapter covers one of the different patterns originally discussed by the GoF, providing a brief introduction, practical examples of the Ruby implementation and a few real world examples, inspired by famous Ruby libraries such as <code>Rails</code> and <code>URI</code>. At the end of each chapter, a summarizing paragraph wraps up the most important Design Pattern elements.</p>
<p>The third part, <strong>Pattern for Ruby</strong>, takes into consideration three patterns not included in the original book but emerged with the introduction and the development of the Ruby language.</p>
<h3>Design Pattern discussed</h3>
<p>This is the list of all design patterns discussed in the book:</p>
<ul>
<li>Template</li>
<li>Strategy</li>
<li>Observer</li>
<li>Composite</li>
<li>Iterator</li>
<li>Commands</li>
<li>Adapter</li>
<li>Proxy</li>
<li>Decorator</li>
<li>Singleton</li>
<li>Factory</li>
<li>Builder</li>
<li>Interpreter</li>
</ul>
<p>These are the Ruby-oriented patterns covered in the third chapter:</p>
<ul>
<li>Domain-Specific Language (DSL)</li>
<li>Meta-Programming</li>
<li>Convention Over Configuration</li>
</ul>
<h2>Requirements</h2>
<p>As stated in the preface of the author, in order to read this book you don’t need to hold any particular competence either in Ruby or Design Pattern. Even so, you should have a certain familiarity with the dynamics of the object oriented programming. I confess to finding myself partially disagreeing. <strong>Tackling the reading in this book without a certain amount of knowledge of Ruby could prove itself as counter-productive</strong>, considering that some design patterns use characteristics like meta-programming, reflection, modules, symbols, Mixins, blocks, and procedures. While the previous can be considered common aspects in many languages, starting from symbols onwards, you find yourself entering in the Ruby world.</p>
<p>The second chapter of the book offers a brief introduction to Ruby, but these 30 minutes of reading are nothing compared with the experience you can learn with a day-by-day programming or a Ruby book such as the excellent <a href="http://bit.ly/cjpbLm">Learn to Program</a> or <a href="http://bit.ly/9SZ23k">Programming Ruby</a>, one of the most complete Ruby references.</p>
<p>You don’t need any specific Design Pattern knowledge in order to appreciate this book. I agree with the author in this case. It covers all Design Patterns from theory to the practical implementation providing you with a full overview of the subject.</p>
<h2>In conclusion</h2>
<p>Once more, the Addison-Wesley and the Professional Ruby Series completely met my expectations. <strong>I strongly suggest the book</strong> <a href="http://www.simonecarletti.com/blog/out/amzcom-rubypatterns"><em>Design Patterns in Ruby</em></a> (<a href="http://www.simonecarletti.com/blog/out/amzcom-rubypatterns">US</a> | <a href="http://www.simonecarletti.com/blog/out/amzuk-rubypatterns">UK</a>) to all those programmers who wish to improve their Ruby development knowledge and <strong>leverage their skills to an even more professional level</strong>. Design Patterns are an advanced and professional solution to the most common software development problems and should be part of every professional developer.</p>
<p>Russ Olsen had the ability to write an easily readable publication, without compromising the quality of the book. Each chapter is self-contained and they can be read in no specific order. If I must find a dislike, then I would say the price could be lower, compared to the average price of similar books. But you know, <strong>quality has its price</strong>.</p>
<h2>Where to Find Design Patterns in Ruby</h2>
<p>You can get a printed or Kindle copy at <a href="http://www.simonecarletti.com/blog/out/amzcom-rubypatterns">Amazon.com</a>, <a href="http://www.simonecarletti.com/blog/out/amzuk-rubypatterns">Amazon.co.uk</a>, or at your other favorite book seller.</p>
<h3>Kindle Preview</h3>
<div id="kindle-reader">.</div>
<p><script type="text/javascript" src="http://kindleweb.s3.amazonaws.com/app/KindleReader-min.js"></script><script type="text/javascript">// <![CDATA[
                         KindleReader.LoadSample({containerID: 'kindle-reader', asin: 'B0010SEN1S', width: '600', height: '629', assoctag: 'simonecarletti-20'});
// ]]&gt;</script></p>
<p>Related posts<ol>
<li><a href='http://www.simonecarletti.com/blog/2011/10/eloquent-ruby/' rel='bookmark' title='Eloquent Ruby Book Review'>Eloquent Ruby Book Review</a></li>
<li><a href='http://www.simonecarletti.com/blog/2010/03/book-review-learning-jquery/' rel='bookmark' title='Learning jQuery 1.3 Book Review'>Learning jQuery 1.3 Book Review</a></li>
<li><a href='http://www.simonecarletti.com/blog/2011/03/book-review-getting-real/' rel='bookmark' title='Getting Real Book Review'>Getting Real Book Review</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.simonecarletti.com/blog/2009/03/book-review-design-patterns-in-ruby/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

