<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://devlicio.us/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Sergio Pereira : review, book</title><link>http://devlicio.us/blogs/sergio_pereira/archive/tags/review/book/default.aspx</link><description>Tags: review, book</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>Design Patterns in Ruby - book review</title><link>http://devlicio.us/blogs/sergio_pereira/archive/2008/07/22/design-patterns-in-ruby-book-review.aspx</link><pubDate>Tue, 22 Jul 2008 11:58:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:41361</guid><dc:creator>sergiopereira</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I have &lt;a href="http://abombss.com/"&gt;a friend&lt;/a&gt; that is very much into Design Patterns and wanted to learn Ruby with a more applied perspective of the language.
&lt;/p&gt;&lt;p&gt;
I went the exact opposite direction. I know a little bit of Ruby already and I wanted to improve my limited patterns knowledge.
&lt;/p&gt;
&lt;a href="http://www.amazon.com/dp/0321490452?tag=by-asin-tag-20"&gt;&lt;img src="http://devlicio.us/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/sergio_5F00_pereira.2008.07/design_5F00_patterns_5F00_in_5F00_ruby.jpg" align="left" style="border:solid 1px black;margin-right:5px;" alt="" /&gt;&lt;/a&gt;


&lt;p&gt;What we had in common is that we both picked up &lt;a href="http://www.amazon.com/dp/0321490452?tag=by-asin-tag-20"&gt;Design Patterns in Ruby&lt;/a&gt; by Russ Olsen. The title can be a little deceiving in that you might think it assumes Ruby knowledge, but no, it actually covers the Ruby language at a level that doesn&amp;#39;t bore the reader with programming basics. The book assumes you know how to program already but you&amp;#39;re new to Ruby.
&lt;/p&gt;

&lt;p&gt;After an introductory chapter about Ruby basics, the book delves into Design Patterns, their formal definitions, how they look like in Ruby, how to leverage Ruby features to tweak the patterns, and examples of the pattern being used in examples extracted from the Ruby class library or popular components (gems). As the examples and tweaks are being presented, any new Rubyism being applied is explained. 
&lt;/p&gt;
&lt;p&gt;
I found this book to be a great way to learn more about the Design Patterns and the proper way to implement them in Ruby. I also learned a little more Ruby and some language features that I did not know how to use yet.
&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devlicio.us/aggbug.aspx?PostID=41361" width="1" height="1"&gt;</description><category domain="http://devlicio.us/blogs/sergio_pereira/archive/tags/Ruby/default.aspx">Ruby</category><category domain="http://devlicio.us/blogs/sergio_pereira/archive/tags/Development/default.aspx">Development</category><category domain="http://devlicio.us/blogs/sergio_pereira/archive/tags/book/default.aspx">book</category><category domain="http://devlicio.us/blogs/sergio_pereira/archive/tags/review/default.aspx">review</category></item><item><title>JavaScript: The Good Parts - book review</title><link>http://devlicio.us/blogs/sergio_pereira/archive/2008/05/11/javascript-the-good-parts-book-review.aspx</link><pubDate>Sun, 11 May 2008 22:48:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:40468</guid><dc:creator>sergiopereira</dc:creator><slash:comments>1</slash:comments><description>&lt;a href="http://www.amazon.com/dp/0596517742?tag=by-asin-tag-20"&gt;&lt;img src="http://devlicio.us/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/sergio_5F00_pereira.2008.05/javascript_2D00_the_2D00_good_2D00_parts.gif" align="left" style="border:solid 1px black;margin-right:5px;" alt="" /&gt;&lt;/a&gt;

&lt;p&gt;
I just finished reading Douglas Crockford&amp;#39;s &lt;a href="http://www.amazon.com/dp/0596517742?tag=by-asin-tag-20"&gt;JavaScript: The Good Parts&lt;/a&gt; and it only took me a few hours to go through it this weekend. This is a short and delightful read. &lt;strike&gt;The book has not been released in print yet and&lt;/strike&gt; I read it via O&amp;#39;Reilly&amp;#39;s Safari Bookshelf, which will be the subject of a future post by itself.
&lt;/p&gt;
&lt;b&gt;Update: &lt;/b&gt; The book became available almost at the same time I posted this review.

&lt;p&gt;
In its 170 pages the book describes not only the HOWs but, most importantly, the WHYs of the JavaScript language. &lt;a href="http://www.crockford.com/"&gt;Douglas Crockford&lt;/a&gt; is known for his great contributions for JavaScript development, including &lt;a href="http://www.json.org/"&gt;JSON&lt;/a&gt;, &lt;a href="http://www.jslint.com/"&gt;JSLint&lt;/a&gt;. &lt;a href="http://www.crockford.com/javascript/jsmin.html"&gt;JSMin&lt;/a&gt;, and several programming patterns and practices. 
&lt;/p&gt;
&lt;p&gt;
In this book, Douglas explains JavaScript and how it differs from other popular object oriented programming language. Special attention is given to JavaScript&amp;#39;s inheritance model and scoping rules.
&lt;/p&gt;
&lt;p&gt;
Crockford doesn&amp;#39;t limit the coverage to what is considered good in the language design. He also sticks his finger at the problems in the language and what he considers (justifiably) bad language design and missing features. A lot of attention is also given to common sources of bugs and how to avoid them.
&lt;/p&gt;
&lt;p&gt;
This is such an easy and valuable read that I have to recommend it to anyone trying to produce solid and maintainable JavaScript code.
&lt;/p&gt;

&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devlicio.us/aggbug.aspx?PostID=40468" width="1" height="1"&gt;</description><category domain="http://devlicio.us/blogs/sergio_pereira/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://devlicio.us/blogs/sergio_pereira/archive/tags/book/default.aspx">book</category><category domain="http://devlicio.us/blogs/sergio_pereira/archive/tags/review/default.aspx">review</category></item></channel></rss>