<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://perthdotnet.org/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>Perth .NET CoP Book Reviews</title><link>http://perthdotnet.org/blogs/bookreviews/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.2)</generator><item><title>Microsoft VS2008 Launch with Andrew Coates</title><link>http://perthdotnet.org/blogs/bookreviews/archive/2007/11/26/microsoft-vs2008-launch-with-andrew-coates.aspx</link><pubDate>Mon, 26 Nov 2007 13:47:00 GMT</pubDate><guid isPermaLink="false">f7473a12-7a45-4812-b895-10f51d5714b1:68</guid><dc:creator>Administrator</dc:creator><slash:comments>0</slash:comments><comments>http://perthdotnet.org/blogs/bookreviews/comments/68.aspx</comments><wfw:commentRss>http://perthdotnet.org/blogs/bookreviews/commentrss.aspx?PostID=68</wfw:commentRss><description>&lt;P&gt;Not a book review but Trevor Doddrell was kind enough to write a roundup of last week's VS2008 launch given by Andrew Coates:&lt;/P&gt;
&lt;P&gt;Earlier this week Andrew Coates at Microsoft presented VS2008 to its&lt;BR&gt;Gold Partners which was quite popular with a full room of budding .Net&lt;BR&gt;coders - drawn by the smell of fresh muffins no doubt. VS2008&lt;BR&gt;coincides with the release of the new 3.5 version of the .Net&lt;BR&gt;framework and can sit side by side with VS2005 - but it can also be&lt;BR&gt;used to develop .Net 2.0 code as the framework can be targeted at any&lt;BR&gt;version of the framework from 2.0 up.&lt;BR&gt;&lt;BR&gt;Some cool new UX features include a new WPF designer, some WPF&lt;BR&gt;controls and a designer for working with the office 2007 ribbon. On&lt;BR&gt;the web dev side, Ajax is now a part of the framework, the designer&lt;BR&gt;supports nested masterpages and finally there is a split code/html&lt;BR&gt;view.&lt;BR&gt;&lt;BR&gt;LINQ is now out of beta and it should be a great technology to query&lt;BR&gt;data in a standard fashion, independent of their formats or sources.&lt;BR&gt;&lt;BR&gt;Even if you don't intend on developing in .Net 3.5 just yet, VS2008&lt;BR&gt;comes well recommended from Brian Madsen and other developers who find&lt;BR&gt;it more stable than VS2005.&lt;BR&gt;&lt;BR&gt;Many thanks to Microsoft for putting on the presentation and Andrew&lt;BR&gt;Coates for giving it. Andrew's slides can be found online here:&lt;BR&gt;http://candrew.members.winisp.net/files/Visual Studio 2008 Overview (Core) - Copy.pptx&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://perthdotnet.org/aggbug.aspx?PostID=68" width="1" height="1"&gt;</description></item><item><title>Bulletproof Web Design, by Dan Cederholm. New Riders (Peachpit).</title><link>http://perthdotnet.org/blogs/bookreviews/archive/2007/10/01/bulletproof-web-design-by-dan-cederholm-new-riders-peachpit.aspx</link><pubDate>Tue, 02 Oct 2007 08:30:00 GMT</pubDate><guid isPermaLink="false">f7473a12-7a45-4812-b895-10f51d5714b1:58</guid><dc:creator>Administrator</dc:creator><slash:comments>0</slash:comments><comments>http://perthdotnet.org/blogs/bookreviews/comments/58.aspx</comments><wfw:commentRss>http://perthdotnet.org/blogs/bookreviews/commentrss.aspx?PostID=58</wfw:commentRss><description>&lt;P&gt;&lt;IMG title="Bullet Proof Web Design" style="WIDTH:160px;HEIGHT:192px;" height=192 alt="Bullet Proof Web Design" src="http://www.perthdotnet.org/photos/bookimages/bulletproofwebdesign.bmp" width=160&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN-US;"&gt;[Many thanks to &lt;A href="http://members.iinet.net.au/~greenh/"&gt;Harvey Green&lt;/A&gt; for this review]&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:Arial;mso-ansi-language:EN-US;"&gt;This book is intended to be a hands on guide for designing “bulletproof” web sites using CSS (Cascading Style Sheets) and XHTML.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;By bulletproof, the author means sites that will cater for the widest possible number of web browsers, various window sizes, be easy to maintain, and cater for users who have accessibility problems, e.g. those who are visually impaired for example.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:Arial;mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:Arial;mso-ansi-language:EN-US;"&gt;The author, Dan Cederholm, has definitely got a lot of experience in this area, having worked for companies such as Google, Blogger and MTV.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;He has organized the book into 8 chapters, each one concentrating on one particular aspect of web design, including font size, tables, navigation menus, and rounded-corner text box layouts. The final chapter brings all his techniques together into one web page of a sample website.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:Arial;mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:Arial;mso-ansi-language:EN-US;"&gt;The author makes it clear that creating “bulletproof” websites is not easy. Of course if you are designing a site that has millions of users, then it would definitely be worth spending a lot of time and effort implementing all his recommendations in order to improve the look of your site for a couple of extra percent of users.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;It’s really a matter of taking what you want from this book as it suits your particular problem or project.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:Arial;mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:Arial;mso-ansi-language:EN-US;"&gt;On first looking at this book’s chapter headings, I thought that there wouldn’t be much in there that I didn’t already know something about, but the detail with which the author discusses the topics is incredible.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;The first chapter on font size for example discusses his own solution for creating site-wide bulletproof font sizes by using a combination of a CSS font size keyword used as a base (e.g. “medium”) along with a percentage which is relative to that base, all of which are done via CSS.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;That said, even with this first chapter on font size, to implement his recommendations requires you to also include some non-standard “hacks” within your CSS code to workaround bugs in browsers such as IE5.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;These hacks are explained fully, but I must admit this put me off quite a bit, since I personally would rather have clean code which is easy to read than code which has some embedded hacks to support old browsers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:Arial;mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:Arial;mso-ansi-language:EN-US;"&gt;One chapter I have to mention is the one entitled “No Images? No CSS? No Problem!”, in which the author describes his method of still presenting a readable website even when there is no CSS support and no images can be displayed.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;I think personally that it’s not worth bothering with such cases as it would be such a tiny percentage of users (if any) that would be affected.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:Arial;mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:Arial;mso-ansi-language:EN-US;"&gt;The aspects of his solutions that are particularly attractive are those like the chapter on bulletproof navigation menus, which will in the long term make your website easier to maintain.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Instead of traditional image based tab menus, he describes a method using CSS and the HTML &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:'Courier New';mso-ansi-language:EN-US;"&gt;&amp;lt;ul&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:Arial;mso-ansi-language:EN-US;"&gt; tag (unordered list).&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;This stores all the text and links together in the HTML instead of the old fashioned method of creating two images per tab (one selected and one deselected) which must be redone when its text changes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:Arial;mso-ansi-language:EN-US;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:Arial;mso-ansi-language:EN-US;"&gt;If you’re an ASP.NET developer, then to some degree a lot of the work of making your site cross-browser compatible will be done for you automatically by the ASP.NET engine – since it automatically detects what browser is running on the client and generates the relevant HTML code.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;Also, the navigation controls available in ASP.NET are very high level and easy to maintain using XML sitemaps. Nevertheless, I would say this book is still definitely worth a look – the techniques explained will certainly improve the layout and structure of your website and will give you insights into how to solve various classical problems of website design.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://perthdotnet.org/aggbug.aspx?PostID=58" width="1" height="1"&gt;</description></item><item><title>Eric Sink on the Business of Software. Eric Sink. Apress</title><link>http://perthdotnet.org/blogs/bookreviews/archive/2007/10/01/eric-sink-on-the-business-of-software-eric-sink-apress.aspx</link><pubDate>Tue, 02 Oct 2007 08:11:00 GMT</pubDate><guid isPermaLink="false">f7473a12-7a45-4812-b895-10f51d5714b1:57</guid><dc:creator>Administrator</dc:creator><slash:comments>0</slash:comments><comments>http://perthdotnet.org/blogs/bookreviews/comments/57.aspx</comments><wfw:commentRss>http://perthdotnet.org/blogs/bookreviews/commentrss.aspx?PostID=57</wfw:commentRss><description>&lt;P&gt;&lt;IMG src="http://www.perthdotnet.org/photos/bookimages/small/2_sm.bmp"&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;Eric Sink on the Business of Software&lt;/SPAN&gt;&lt;/I&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt; is a selection of Eric’s essays from his website and blog. He explores the business concerns that programmers face in small software development shops and starting out on their own. &lt;B style="mso-bidi-font-weight:normal;"&gt;Note&lt;/B&gt;: much of the material in this book is available online. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;This relaxed, easy to read and sometimes offbeat book is a candid recollection of Eric’s successes and failures in starting his own Independent Software Vendor (ISV), SourceGear. Eric founded SourceGear, in his own words, “somewhat by accident”, and he relates the joys and pitfalls he experienced along the path of starting your own ISV.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;I have read Eric’s blog for several years, and I have always enjoyed his insights and commentary on a diverse range of subject matter, usually with a software development or business angle. [for example, his series of posts on &lt;A href="http://www.ericsink.com/scm/source_control.html"&gt;Source Control HowTo&lt;/A&gt;, especially the section on Branching and Merging].&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="VERTICAL-ALIGN:top;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-ansi-language:EN;"&gt;He covers issues such as hiring staff, finances and marketing in a style aimed at programmers, interspersed with anecdotes and humor.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;Eric is honest and right on the mark when he says “Don’t take anybody’s guidelines too seriously”, as what works for one person in one situation might not apply in another.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;Chapter 4 “&lt;A href="http://www.ericsink.com/bos/Finance_for_Geeks.html"&gt;Finance for Geeks&lt;/A&gt;” was particularly interesting and contains basic accounting information you should be aware of if you are setting up a business venture.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;It is often said that successful business people are those that learn from their mistakes, and in chapter 7, “Make More Mistakes”, Eric describes several examples where he has made a few ‘whoppers’ and learned from them the hard way! Admitting your own mistakes is not always easy, learning from them and moving on to something else is one of the traits that distinguish successful businesses from those that fail.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;I particularly liked Eric’s ‘conversational’ writing style and his ability to weave ideas familiar to ‘geeks’ into the text, such as his NetHack analogy of the “Gauntlets of Fumbling”. If you have never played NetHack, I won’t try to explain…just Google it! Definitely worth reading.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="VERTICAL-ALIGN:top;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:9pt;FONT-FAMILY:Verdana;mso-ansi-language:EN;"&gt;Disclosure&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE:9pt;FONT-FAMILY:Verdana;mso-ansi-language:EN;"&gt;: The Perth .NET User Group is a member of the Apress User Group Program. Apress make copies of their books available for review, and the copy reviewed here was kindly donated by them.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="VERTICAL-ALIGN:top;"&gt;&lt;SPAN style="FONT-SIZE:9pt;FONT-FAMILY:Verdana;mso-ansi-language:EN;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://perthdotnet.org/aggbug.aspx?PostID=57" width="1" height="1"&gt;</description></item><item><title>Windows Developer Power Tools. James Avery and Jim Holmes. O'Reilly</title><link>http://perthdotnet.org/blogs/bookreviews/archive/2007/09/21/windows-developer-power-tools-james-avery-and-jim-holmes-o-reilly.aspx</link><pubDate>Sat, 22 Sep 2007 06:12:00 GMT</pubDate><guid isPermaLink="false">f7473a12-7a45-4812-b895-10f51d5714b1:55</guid><dc:creator>Administrator</dc:creator><slash:comments>0</slash:comments><comments>http://perthdotnet.org/blogs/bookreviews/comments/55.aspx</comments><wfw:commentRss>http://perthdotnet.org/blogs/bookreviews/commentrss.aspx?PostID=55</wfw:commentRss><description>&lt;P&gt;&lt;IMG style="WIDTH:69px;HEIGHT:90px;" height=90 src="http://www.perthdotnet.org/photos/bookimages/9780596527549_sm.gif" width=69 align=middle&gt;&lt;/P&gt;
&lt;P&gt;[Thanks go to &lt;A class="" href="http://wolfbyte-net.blogspot.com/"&gt;Michael Minutillo&lt;/A&gt;&amp;nbsp;for this book review.] &lt;/P&gt;
&lt;P&gt;Until reading this book, I did not realize how much productivity I stood to gain.&lt;BR&gt;&lt;BR&gt;When I first agreed to review this book I didn't know what I was really getting into. I expected a brief catalog of fairly standard, well-known tools which would only come as a surprise to fresh graduate. I expected I getting a small pocket-sized book which I could devour in one train ride. I could not have been more wrong.&lt;BR&gt;&lt;BR&gt;The book covers over 170 Open Source tools across a wide variety of development domains from Windows Forms and Web Development, to working with Databases and XML data. Each tool will in some way enhance your productivity in some way, allowing you to do the things your really enjoy about writing software on the Microsoft Windows platform. The productivity gains vary from being able to generate the tedious 80% of your project to those 5 second boosts which all add up and prevent RSI.&lt;BR&gt;&lt;BR&gt;Each of the 23 chapters is targeted at a particular issue or development task and opens with one or two pages describing this task. These are so well written that I think the opening of Chapter 9 [Analyzing Your Code], which gives a quick explanation of code metrics, is my favorite section of the whole book. This means that the book is not just an encyclopedic reference of tools, but also of modern development techniques.&lt;BR&gt;&lt;BR&gt;After the introduction a very brief description of each tool follows. These are great memory refreshers once you have read the book and are repeated on the companion web-site. Each tool is then given its own section and the chapter closes with a bibliography for people interested in finding out more.&lt;BR&gt;&lt;BR&gt;This structure of "Introduction, Overview data, Full text, Where to get more information" is repeated for each tool. The overview data includes such information as:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The version covered 
&lt;LI&gt;The home page 
&lt;LI&gt;The license type 
&lt;LI&gt;Which versions of the .NET Framework are supported 
&lt;LI&gt;A collection of related tools for cross-referencing purposes&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The full text of each tool explains where to get the tool, how to install it and how to get started using it allowing you to jump straight in and leverage the tool. This section is often littered with useful screenshots which give you a glimpse at the experience you will find when using the tool. The text for each tool closes with instructions for getting support on the tool and often a brief passage from the tools creator explaining the thinking behind creating the tool.&lt;BR&gt;&lt;BR&gt;If that weren't enough, the book also has a companion website at &lt;A href="http://www.blogger.com/www.windevpowertools.com"&gt;&lt;FONT color=#445566&gt;www.windevpowertools.com&lt;/FONT&gt;&lt;/A&gt; where all of the tools are listed and tagged, each with a download link enabling you to download one straight from the site. You can even create your own "toolbox" and add tools from the site to it, allowing you to quickly and easily provision new machines from the web site itself.&lt;BR&gt;&lt;BR&gt;All in all I have thoroughly enjoyed reading this book. I would have liked to have seen more information about the selection process for the tools and readers would do well to remember that a tools inclusion (or lack of inclusion) in the text is not necessarily an indicator of its maturity or usefulness. Be sure that you have a lot of time if you buy this book as you are likely to download, install, and play with many of the tools. If you do then using a virtual machine is highly recommended. None of the tools did anything harmful to my computer, but having 170 tools running at once just isn't advised!&lt;BR&gt;&lt;BR&gt;You can purchase the book from here:&lt;BR&gt;&lt;A href="http://www.oreilly.com/catalog/9780596527549/"&gt;&lt;FONT color=#445566&gt;http://www.oreilly.com/catalog/9780596527549/&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.amazon.com/exec/obidos/ASIN/0596527543/wdpt-20"&gt;&lt;FONT color=#445566&gt;http://www.amazon.com/exec/obidos/ASIN/0596527543/wdpt-20&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Disclosure&lt;/STRONG&gt;: The Perth .NET User Group is a member of the O'Reilly User Group and Professional Association Program. O’Reilly make copies of their books available for user group libraries, and the copy reviewed here was kindly donated by O’Reilly.&lt;/P&gt;&lt;img src="http://perthdotnet.org/aggbug.aspx?PostID=55" width="1" height="1"&gt;</description></item><item><title>Head First Object-Oriented Analysis and Design</title><link>http://perthdotnet.org/blogs/bookreviews/archive/2007/09/18/head-first-object-oriented-analysis-and-design.aspx</link><pubDate>Tue, 18 Sep 2007 13:26:00 GMT</pubDate><guid isPermaLink="false">f7473a12-7a45-4812-b895-10f51d5714b1:54</guid><dc:creator>Administrator</dc:creator><slash:comments>0</slash:comments><comments>http://perthdotnet.org/blogs/bookreviews/comments/54.aspx</comments><wfw:commentRss>http://perthdotnet.org/blogs/bookreviews/commentrss.aspx?PostID=54</wfw:commentRss><description>&lt;P&gt;&lt;IMG src="http://www.perthdotnet.org/photos/bookimages/9780596008673_cat.gif"&gt;&lt;/P&gt;
&lt;P class=citation style="MARGIN:auto 0cm;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:Arial;"&gt;I found it hard to write a review about this book. &lt;I style="mso-bidi-font-style:normal;"&gt;Why?&lt;/I&gt; Because apart from a few, very minor typos it is simply &lt;I style="mso-bidi-font-style:normal;"&gt;superb&lt;/I&gt;! In my opinion, it is one of the best and sure to be one of the most influential books in this subject area.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;The O’Reilly Head First series of books are fast becoming the de facto standard, and I recommend that anyone who wants to get a deeper understanding of how you should approach designing and developing software, read this book, &lt;I style="mso-bidi-font-style:normal;"&gt;no matter what your background or current skill set is&lt;/I&gt;. To date, I’ve read this book twice, cover to cover. It is not a particularly thin book, but it is very easy to read.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=citation style="MARGIN:auto 0cm;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-bidi-font-family:Arial;"&gt;A colleague once told me that he picked up “Head First: Design Patterns” in a bookshop and flicked through it. He didn’t buy it because he wasn’t sure about the format, which if you’ve never seen a Head First book before, might at first seem a little different and perhaps off putting. As one reviewer put it so well:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=citation style="MARGIN:auto 0cm auto 36pt;"&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;"Hidden behind the funny pictures and crazy fonts is a serious, intelligent, extremely well-crafted presentation of OO Analysis and Design. As I read the book, I felt like I was looking over the shoulder of an expert designer who was explaining to me what issues were important at each step and why." -- Edward Sciore&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=citation style="MARGIN:auto 0cm;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;The book’s primary focus is “How to write great software”; this is summarised in 3 steps:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV class=citation style="MARGIN:auto 0cm auto 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;Make sure your software does what the customer wants&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=citation style="MARGIN:auto 0cm auto 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;Apply basic OO principles to add flexibility&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=citation style="MARGIN:auto 0cm auto 36pt;TEXT-INDENT:-18pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;Strive for a maintainable, reusable design.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=citation style="MARGIN:auto 0cm;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;It is a practical, readable and refreshing step-by-step walkthrough of the development process. It covers how to incorporate flexibility into all aspects of the software development life cycle. This book leads you through simple and then more advanced concepts by allowing you, the reader, to make the connections. In addition, it gives an easy to understand introduction to UML class diagrams.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=citation style="MARGIN:auto 0cm;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;Kathy Sierra talks about “Creating passionate users” over at the &lt;A href="http://headrush.typepad.com/creating_passionate_users/index.rdf"&gt;blog&lt;/A&gt; of the same name (highly recommended reading, as it is a gold mine of ideas and advice on creating great software). One of the beliefs espoused there is that it is better to get passionate responses from users at either end of the spectrum (i.e. love or hate it), rather than a mediocre “Yeah, it’s OK”. Judging by the polarised reviews over at Amazon, this book certainly creates passionate users/readers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=citation style="MARGIN:auto 0cm;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;It is always hard to do justice to a great book in a short review, and this book is no exception.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;It is more readable and accessible than most other OO design books (excluding the other Head First design titles, of course!). I agree with Steve Bailey’s comments:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=citation style="MARGIN:auto 0cm auto 36pt;"&gt;&lt;I style="mso-bidi-font-style:normal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;”I’d recommend this book to even the most veteran OO programmers. I put it up there along with Code Complete …” &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=citation style="MARGIN:auto 0cm;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;You can purchase from here:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=citation style="MARGIN:auto 0cm;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;&lt;A href="http://www.oreilly.com/catalog/hfobjects/index.html"&gt;http://www.oreilly.com/catalog/hfobjects/index.html&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=citation style="MARGIN:auto 0cm;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;&lt;A href="http://www.amazon.com/Head-First-Object-Oriented-Analysis-Design/dp/0596008678"&gt;http://www.amazon.com/Head-First-Object-Oriented-Analysis-Design/dp/0596008678&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=citation style="MARGIN:auto 0cm;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://perthdotnet.org/aggbug.aspx?PostID=54" width="1" height="1"&gt;</description></item><item><title>Pro C# 2005 and the .Net Platform, by Andrew Troelsen</title><link>http://perthdotnet.org/blogs/bookreviews/archive/2007/09/15/pro-c-2005-and-the-net-platform-by-andrew-troelsen.aspx</link><pubDate>Sun, 16 Sep 2007 03:53:00 GMT</pubDate><guid isPermaLink="false">f7473a12-7a45-4812-b895-10f51d5714b1:53</guid><dc:creator>Administrator</dc:creator><slash:comments>0</slash:comments><comments>http://perthdotnet.org/blogs/bookreviews/comments/53.aspx</comments><wfw:commentRss>http://perthdotnet.org/blogs/bookreviews/commentrss.aspx?PostID=53</wfw:commentRss><description>&lt;P&gt;&lt;IMG title="PRO C#, .NET 2.0" style="WIDTH:77px;HEIGHT:105px;" height=105 alt="PRO C#, .NET 2.0" src="http://www.perthdotnet.org/photos/bookimages/small/7_sm.bmp" width=77&gt;&lt;/P&gt;
&lt;P class=citation style="MARGIN:auto 0cm;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;This book is well written, very clear and does not sacrifice any depth despite its broad coverage. Although targeted at developers with a few years experience, it is one of those rare books that are good no matter what your level of experience. The style is very polished and the book’s topics flow easily into one another. Highly recommended.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=citation style="MARGIN:auto 0cm;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;Content-wise, it covers pretty much everything you need to know about C# 2.0. One notable and surprising omission of .NET version 2.0 new (and very useful) features was the &lt;A href="http://msdn2.microsoft.com/en-us/library/ms379553(VS.80).aspx"&gt;BackgroundWorker class&lt;/A&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=citation style="MARGIN:auto 0cm;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;This is one of two Apress books that I purchased approximately a year ago, after researching what ‘best of breed’ books were on offer for version 2.0 of the .Net framework (the other was Pro ASP.NET 2.0). Both were excellent choices. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=citation style="MARGIN:auto 0cm;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;As an aside, I’m not sure whether Apress still offer this, but when I purchased the third edition of this book, I was also able to download a free, fully searchable eBook as well. &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;I have used the eBook many times as a reference source for C# language features. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;
&lt;P&gt;&lt;IMG title="PRO c#, .NET 3.0" style="WIDTH:77px;HEIGHT:102px;" height=102 alt="PRO c#, .NET 3.0" src="http://www.perthdotnet.org/photos/bookimages/small/5_sm.bmp" width=77&gt;&lt;/P&gt;
&lt;P style="VERTICAL-ALIGN:top;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-ansi-language:EN;"&gt;Since I wrote this short review an updated special version of this book became available, &lt;A href="http://www.apress.com/book/view/1590598237"&gt;Pro C# with .NET 3.0, Special Edition&lt;/A&gt;, that covers using C# with the .NET 2.0 platform and the .NET 3.0 extensions. It includes a section on the WPF features in version 3.0 of the .NET framework. If you buy the special edition of this book, you can additionally purchase (for US$10) and download a searchable PDF bonus book.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="VERTICAL-ALIGN:top;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;mso-ansi-language:EN;"&gt;Both hardback versions of this book are available in the user group members library.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=citation style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;You can purchase from here:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=citation style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;&lt;A href="http://www.apress.com/book/view/1590598237"&gt;http://www.apress.com/book/view/1590598237&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=citation style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Verdana;"&gt;&lt;A href="http://www.amazon.com/Pro-2005-NET-Platform-Third/dp/1590594193"&gt;http://www.amazon.com/Pro-2005-NET-Platform-Third/dp/1590594193&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=citation style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN style="FONT-SIZE:9pt;COLOR:black;FONT-FAMILY:Verdana;mso-bidi-font-family:Arial;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=citation style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN style="FONT-SIZE:9pt;COLOR:black;FONT-FAMILY:Verdana;mso-bidi-font-family:Arial;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;Disclosure&lt;/STRONG&gt;: The Perth .NET User Group is a member of the Apress User Group Program. Apress make copies of their books available for user group libraries, and the copy of “Pro C# with .NET 3.0, Special Edition” reviewed here was kindly donated by them.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;img src="http://perthdotnet.org/aggbug.aspx?PostID=53" width="1" height="1"&gt;</description><category domain="http://perthdotnet.org/blogs/bookreviews/archive/tags/.NET+2.0/default.aspx">.NET 2.0</category><category domain="http://perthdotnet.org/blogs/bookreviews/archive/tags/2005/default.aspx">2005</category><category domain="http://perthdotnet.org/blogs/bookreviews/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>Applied Mathematics for Database Professionals. Lex de Haan and Toon Koppelaars. Apress</title><link>http://perthdotnet.org/blogs/bookreviews/archive/2007/09/02/applied-mathematics-for-database-professionals-lex-de-haan-and-toon-koppelaars-apress.aspx</link><pubDate>Sun, 02 Sep 2007 14:57:00 GMT</pubDate><guid isPermaLink="false">f7473a12-7a45-4812-b895-10f51d5714b1:44</guid><dc:creator>Administrator</dc:creator><slash:comments>0</slash:comments><comments>http://perthdotnet.org/blogs/bookreviews/comments/44.aspx</comments><wfw:commentRss>http://perthdotnet.org/blogs/bookreviews/commentrss.aspx?PostID=44</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Times New Roman';mso-ansi-language:EN-US;mso-fareast-font-family:'Times New Roman';mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&amp;nbsp;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Times New Roman';mso-ansi-language:EN-US;mso-fareast-font-family:'Times New Roman';mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Times New Roman';mso-ansi-language:EN-US;mso-fareast-font-family:'Times New Roman';mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Times New Roman';mso-ansi-language:EN-US;mso-fareast-font-family:'Times New Roman';mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;IMG title=Applied style="WIDTH:125px;HEIGHT:168px;" height=168 alt=Applied src="http://www.apress.com/ApressCorporate/supplement/1/10238/bcm.gif" width=125&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Times New Roman';mso-ansi-language:EN-US;mso-fareast-font-family:'Times New Roman';mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;"&gt;Writing a book is no easy task. Completing a book when your co-author and friend passes away early in the process, must be a monumental task, this is what Toon Koppelaars achieved with this work.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;"&gt;I ordered this book expecting it to contain examples of using statistics, probability and data mining algorithms as applied to databases. In retrospect, I am not sure why I made that assumption. It is actually about formally specifying database designs using logic and set theory. &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;This book is reviewed and endorsed by C. J. Date and features a foreword by him, which would be high praise for any book on the subject of databases.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;It is split into 3 parts and 12 chapters as follows:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN-LEFT:36pt;TEXT-INDENT:-18pt;mso-list:l1 level1 lfo2;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;Logic: Introduction&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN-LEFT:36pt;TEXT-INDENT:-18pt;mso-list:l1 level1 lfo2;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;Set Theory: Introduction &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN-LEFT:36pt;TEXT-INDENT:-18pt;mso-list:l1 level1 lfo2;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;Some More Logic&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN-LEFT:36pt;TEXT-INDENT:-18pt;mso-list:l1 level1 lfo2;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;Relations and Functions&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN-LEFT:36pt;TEXT-INDENT:-18pt;mso-list:l1 level1 lfo2;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;Tables and Database States&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN-LEFT:36pt;TEXT-INDENT:-18pt;mso-list:l1 level1 lfo2;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;Tuple, Table, and Database Predicates&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN-LEFT:36pt;TEXT-INDENT:-18pt;mso-list:l1 level1 lfo2;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;Specifying Database Designs&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN-LEFT:36pt;TEXT-INDENT:-18pt;mso-list:l1 level1 lfo2;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;Specifying State Transition Constraints&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN-LEFT:36pt;TEXT-INDENT:-18pt;mso-list:l1 level1 lfo2;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;Data Retrieval&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN-LEFT:36pt;TEXT-INDENT:-18pt;mso-list:l1 level1 lfo2;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;Data Manipulation&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN-LEFT:36pt;TEXT-INDENT:-18pt;mso-list:l1 level1 lfo2;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;Database Designs in Oracle&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV style="MARGIN-LEFT:36pt;TEXT-INDENT:-18pt;mso-list:l1 level1 lfo2;tab-stops:list 36.0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;Summary and Conclusions&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;"&gt;If you’ve studied mathematics (or a tertiary subject with a mathematics element to it) you will most probably be familiar with the sections on set theory and logic. If you have not then they provide an as excellent introduction to these topics that you are likely to find anywhere.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;This book makes the following claims and I have made my comments against each one:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;“This book will help you”:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;“Become a better database designer. You’ll make fewer mistakes, and your designs will be more flexible in response to changing data needs.” &lt;B style="mso-bidi-font-weight:normal;"&gt;I agree 100% that having a good, if not intuitive, grasp of logic and basic set theory will help you to create better DB schemas.&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;“Use the expressive power of mathematics to precisely specify designs and business rules.” &lt;B style="mso-bidi-font-weight:normal;"&gt;I am not sure how useful this is, and I have a mathematics background. I personally feel that having another notation to express the database design seems to break the DRY (Don’t Repeat Yourself) principle.&lt;/B&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;“Communicate effectively about design using the universal language of mathematics.” &lt;B style="mso-bidi-font-weight:normal;"&gt;Personally, I do not think this applies unless you are at the top of your game and/or have a theoretical bias and you are communicating with someone similar.&lt;/B&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;“Develop and write complex SQL statements with confidence.” &lt;B style="mso-bidi-font-weight:normal;"&gt;Absolutely agree. I am often surprised at the number of software developers that do not have a thorough grasp of logic.&lt;/B&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;tab-stops:list 36.0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;“Avoid pitfalls and problems from common relational bugaboos such as null values and duplicate rows”. &lt;B style="mso-bidi-font-weight:normal;"&gt;Probably, but then 3NF will go a long way to achieving that.&lt;/B&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;"&gt;I would be the first to agree that a good, basic mathematics grounding is desirable if you want to confidently design databases that scale well and are modelled correctly.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;The mathematics that you learn in this book will certainly put you above the level of understanding of most database professionals. But I am not convinced that alone will enable you to better understand the technology and be able to apply it more effectively. It will help you to avoid data anomalies like redundancy and inconsistency, which are not uncommon problems in the world of databases!&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;"&gt;On the whole, I enjoyed reading this book, but I’m not sure if I learnt anything I could immediately put to use when designing and refactoring databases. I did not put a great deal of effort into learning and understanding the formal database specification language described in this book purely because I could not see an immediate benefit when balanced against the effort required to learn a new notation, and I may well have overlooked something crucial that would indeed enable me to create better database designs.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE:11pt;COLOR:black;FONT-FAMILY:Arial;"&gt;Disclosure&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE:11pt;COLOR:black;FONT-FAMILY:Arial;"&gt;: The Perth .NET User Group is a member of the Apress User Group Program. Apress make copies of their books available for user group libraries, and the copy reviewed here was kindly donated by them.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;/SPAN&gt;&lt;img src="http://perthdotnet.org/aggbug.aspx?PostID=44" width="1" height="1"&gt;</description><category domain="http://perthdotnet.org/blogs/bookreviews/archive/tags/database/default.aspx">database</category><category domain="http://perthdotnet.org/blogs/bookreviews/archive/tags/formal/default.aspx">formal</category><category domain="http://perthdotnet.org/blogs/bookreviews/archive/tags/design/default.aspx">design</category></item><item><title>ShipIt!: Essential Habits</title><link>http://perthdotnet.org/blogs/bookreviews/archive/2007/08/31/shipit-essential-habits.aspx</link><pubDate>Fri, 31 Aug 2007 14:54:00 GMT</pubDate><guid isPermaLink="false">f7473a12-7a45-4812-b895-10f51d5714b1:41</guid><dc:creator>Administrator</dc:creator><slash:comments>0</slash:comments><comments>http://perthdotnet.org/blogs/bookreviews/comments/41.aspx</comments><wfw:commentRss>http://perthdotnet.org/blogs/bookreviews/commentrss.aspx?PostID=41</wfw:commentRss><description>&lt;FONT size=2&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;A href="http://www.oreilly.com/catalog/0974514047/cover.html"&gt;&lt;IMG alt="Ship it!" src="http://www.oreilly.com/catalog/covers/0974514047_cat.gif" border=0&gt;&lt;/A&gt;&amp;nbsp;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;&lt;FONT color=#006bad&gt;&lt;A class="" href="http://www.oreilly.com/catalog/0974514047/" target=_blank&gt;Ship It!: A Practical Guide to Successful Software Projects, Jared Richardson, William Gwaltney Jr. Pragmatic Bookshelf.&lt;/A&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;&lt;STRONG&gt;&lt;EM&gt;“You can only steer a boat if it’s moving!”&amp;nbsp;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;If you want to produce reliable software, then this is the book on how to go about it. The authors have done a fantastic job of collating essential software building habits in a clear and concise book. Even if you already know that build scripts, testing harnesses, continuous integration and code reviews aid in building great code, the book provides tips on how to get started and integrate those practices as routine activities.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;As a developer, I found the section on "Problems and How to Fix Them" particularly relevant and particularly liked the suggestions on how to both inform and sell to management. The authors have recommended their favourite tools and products, and listed many alternatives. Though easy to read, it's packed with practicality and subsequent reviews will remind you of more tidbits to add to your bag of tricks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;Many thanks to guest reviewer, Simon Mawkes.&lt;/SPAN&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://perthdotnet.org/aggbug.aspx?PostID=41" width="1" height="1"&gt;</description></item><item><title>Beautiful Code: Leading Programmers Explain How They Think. Edited by Andy Oram &amp; Greg Wilson. O’REILLY</title><link>http://perthdotnet.org/blogs/bookreviews/archive/2007/08/11/beautiful-code-leading-programmers-explain-how-they-think-edited-by-andy-oram-greg-wilson-o-reilly.aspx</link><pubDate>Sun, 12 Aug 2007 07:18:00 GMT</pubDate><guid isPermaLink="false">f7473a12-7a45-4812-b895-10f51d5714b1:38</guid><dc:creator>Administrator</dc:creator><slash:comments>0</slash:comments><comments>http://perthdotnet.org/blogs/bookreviews/comments/38.aspx</comments><wfw:commentRss>http://perthdotnet.org/blogs/bookreviews/commentrss.aspx?PostID=38</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Verdana';mso-ansi-language:EN-US;mso-fareast-font-family:'Verdana';mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;IMG title="Beautiful Code" style="WIDTH:180px;HEIGHT:236px;" height=236 alt="Beautiful Code" src="http://www.oreilly.com/catalog/covers/9780596510046_cat.gif" width=180&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:'Verdana';mso-ansi-language:EN-US;mso-fareast-font-family:'Times New Roman';mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;Is this book a classic in the making? Probably!&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;This book contains many diverse and wonderful chapters; the highlights for me personally were from Jon Bentley (the ‘Programming Pearls’ author) on “less is more”, Simon Peyton Jones on Concurrency and although it was hard to pick a favourite, I think “Beautiful Debugging” from Andreas Zeller and “Distributed Programming with MapReduce” from Jeffrey Dean and Sanjay Ghemawat stand out.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;This is not an &lt;I style="mso-bidi-font-style:normal;"&gt;easy&lt;/I&gt; book, in the sense that it requires that you get into the right frame of mind to fully appreciate some of the subtleties. You might need to find a quiet corner and get into the zone whilst tackling one or two of the more difficult topics. You might even need to read the odd chapter twice before the ‘Aha!’ moment strikes, but it’s certainly worth it. The time spent might well pay for itself several times over if it provides the insight required to solve a problem you encounter.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;I believe it is worth buying this book solely for the chapter titled “Distributed Programming with MapReduce” which lucidly describes how large-scale computations can be performed in parallel with the important MapReduce algorithm (which is what Google uses in many applications including google search, across approximately 500,000 machines!). I mentioned the original paper by Jeffrey Dean and Sanjay Ghemawat in a blog post &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:'Trebuchet MS';"&gt;&lt;A href="http://mitch-wheat.blogspot.com/2006/08/mapreduce.html"&gt;here&lt;/A&gt;.&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;It covers many fields all with the theme of ‘Beautiful Code’. Jon Bentley (the author of Programming Pearls) talks about the ‘most beautiful code he &lt;I style="mso-bidi-font-style:normal;"&gt;never&lt;/I&gt; wrote’! This chapter struck a chord because I often ‘soapbox’ that code should be short as possible but not obtuse. Let’s face it, verbose code is just as hard to understand (if not worse) than terse code.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;If you are a programmer purely because it is the way you pay your bills, I don’t think you will find much to help with your day-to-day routine in this book. On the other hand, if you are a programmer who likes to find out how things really work, and gain some insight into the minds of past master craftsman, then you should definitely buy this book. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;This book deserves a place on every serious programmers bookshelf since the lessons to be learned will not become obsolete as languages and technologies change. Highly recommended.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;There is a web site dedicated to the book here: &lt;A href="http://beautifulcode.oreillynet.com/"&gt;http://beautifulcode.oreillynet.com/&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;All royalties from the sale of this book go towards Amnesty International.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;You can purchase from here:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;&lt;A href="http://www.amazon.com/Beautiful-Code-Leading-Programmers-Practice/dp/0596510047"&gt;http://www.amazon.com/Beautiful-Code-Leading-Programmers-Practice/dp/0596510047&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;A href="http://www.oreilly.com/catalog/9780596510046/"&gt;http://www.oreilly.com/catalog/9780596510046/&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;Disclosure&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="mso-ansi-language:EN-AU;"&gt;: The Perth .NET User Group is a member of the O'Reilly User Group and Professional Association Program. O’Reilly make copies of their books available for user group libraries, and the copy reviewed here was kindly donated by O’Reilly.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://perthdotnet.org/aggbug.aspx?PostID=38" width="1" height="1"&gt;</description></item><item><title>C# Cookbook (2nd Edition), Jay Hilyard and Stephen Teilhet, O’REILLY</title><link>http://perthdotnet.org/blogs/bookreviews/archive/2007/08/01/c-cookbook-2nd-edition-jay-hilyard-and-stephen-teilhet-o-reilly.aspx</link><pubDate>Thu, 02 Aug 2007 04:37:00 GMT</pubDate><guid isPermaLink="false">f7473a12-7a45-4812-b895-10f51d5714b1:33</guid><dc:creator>Administrator</dc:creator><slash:comments>0</slash:comments><comments>http://perthdotnet.org/blogs/bookreviews/comments/33.aspx</comments><wfw:commentRss>http://perthdotnet.org/blogs/bookreviews/commentrss.aspx?PostID=33</wfw:commentRss><description>&lt;P&gt;&lt;IMG title="C# Cookbook" style="WIDTH:180px;HEIGHT:236px;" height=236 alt="C# Cookbook" src="http://www.oreilly.com/catalog/covers/0596100639_cat.gif" width=180&gt;&lt;/P&gt;
&lt;P&gt;The C# Cookbook, Second Edition has been updated and revised for C# 2.0 and version 2.0 of the .NET framework, and despite the fact that version 3.5 of the .NET framework is imminent, it remains a must have book to have on hand. It is essentially a collection of examples showing how to solve specific programming problems (some of which you might not have even realised you have, such as boxing/unboxing and efficient string handling, to name just a few…)&lt;BR&gt;&lt;BR&gt;The C# Cookbook has over 1100 pages and is arranged into 20 chapters, each of which focuses on a particular area in C#. Despite its size it is not daunting to read. Here are the topics covered:&lt;BR&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Numbers and Enumerations 
&lt;LI&gt;Strings and Characters 
&lt;LI&gt;Classes &amp;amp; Structures 
&lt;LI&gt;Generics 
&lt;LI&gt;Collections 
&lt;LI&gt;Iterators and Partial Types 
&lt;LI&gt;Exception Handling 
&lt;LI&gt;Diagnostics 
&lt;LI&gt;Delegates, Events and Anonymous methods 
&lt;LI&gt;Regular Expressions 
&lt;LI&gt;Data Structures and Algorithms 
&lt;LI&gt;Filesystem I/O 
&lt;LI&gt;Reflection 
&lt;LI&gt;Web 
&lt;LI&gt;XML 
&lt;LI&gt;Networking 
&lt;LI&gt;Security 
&lt;LI&gt;Threading and Synchronisation 
&lt;LI&gt;Unsafe Code 
&lt;LI&gt;Toolbox&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;This book is in O’Reilly’s ‘cookbook’ series &lt;EM&gt;Problem-Solution-Discussion&lt;/EM&gt; format, and like other books in the series can either be read from cover to cover, or be used as a reference to shed light on a particular problem. Each ‘recipe’ starts with a description of the problem, followed by a complete, documented code sample showing you how to solve it, along with a detailed discussion of how and why it works, and any drawbacks. This format can also serve as an excellent way of mastering aspects of C#.&lt;BR&gt;&lt;BR&gt;Like the other O'Reilly cookbooks, this book manages to strike a perfect balance between reference and instruction on real problems developers encounter every day. Hats off to Jay and Stephen for creating such a useful resource.&lt;BR&gt;&lt;BR&gt;If you are a developer who writes C# code for a living, I would be surprised if you do not find something useful the first time you pick this book up. If you are thinking of buying just one book on C# 2.0, make it this one. Highly recommended for beginners and experts alike.&lt;BR&gt;&lt;BR&gt;The only problem I have now is that I need to go and buy my own copy as this one is now on its way to the User Group library. Of course, I could just borrow it, but I would really like to have a copy on hand all the time…!&lt;BR&gt;&lt;BR&gt;You can download the source code here: &lt;A href="http://examples.oreilly.com/csharpckbk2/"&gt;&lt;FONT color=#ff6b00&gt;http://examples.oreilly.com/csharpckbk2/&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;You can purchase the book online here:&lt;BR&gt;&lt;A href="http://www.oreilly.com/catalog/csharpckbk2/"&gt;&lt;FONT color=#ff6b00&gt;http://www.oreilly.com/catalog/csharpckbk2/&lt;/FONT&gt;&lt;/A&gt; &lt;BR&gt;&lt;A href="http://www.amazon.com/C-Cookbook-2nd-Cookbooks-OReilly/dp/0596100639"&gt;&lt;FONT color=#ff6b00&gt;http://www.amazon.com/C-Cookbook-2nd-Cookbooks-OReilly/dp/0596100639&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Disclosure:&lt;/STRONG&gt; The Perth .NET User Group is a member of the O'Reilly User Group and Professional Association Program. O’Reilly make copies of their books available for user group libraries, and the copy reviewed here was kindly donated by O’Reilly. Thanks to everyone involved at O’Reilly for making this happen. That said, it has not been a factor in reviewing this book&lt;/P&gt;&lt;img src="http://perthdotnet.org/aggbug.aspx?PostID=33" width="1" height="1"&gt;</description></item><item><title>The Principles of Beautiful Web Design, Jason Beaird, Sitepoint</title><link>http://perthdotnet.org/blogs/bookreviews/archive/2007/08/01/the-principles-of-beautiful-web-design-jason-beaird-sitepoint.aspx</link><pubDate>Thu, 02 Aug 2007 04:32:00 GMT</pubDate><guid isPermaLink="false">f7473a12-7a45-4812-b895-10f51d5714b1:32</guid><dc:creator>Administrator</dc:creator><slash:comments>0</slash:comments><comments>http://perthdotnet.org/blogs/bookreviews/comments/32.aspx</comments><wfw:commentRss>http://perthdotnet.org/blogs/bookreviews/commentrss.aspx?PostID=32</wfw:commentRss><description>&lt;P&gt;&lt;IMG title="Beautiful web design" style="WIDTH:180px;HEIGHT:232px;" height=232 alt="Beautiful web design" src="http://www.oreilly.com/catalog/covers/0975841963_cat.gif" width=180&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;“What’s the most infuriating part of design? Getting started!”&lt;/P&gt;
&lt;DIV align=left&gt;&lt;/DIV&gt;
&lt;P align=left&gt;This book bills itself as “A simple, easy-to-follow guide…this book leads you through the process of creating great designs from start to finish.” and it is exactly that. The author sets out with the premise that “Good design Principles are not rocket science!” and does an excellent job of proving it. His “Don’t just tell, show!” style makes this book accessible to everyone.&lt;BR&gt;&lt;BR&gt;At just over 160 pages, you could almost read this book in a single session. It strikes a carefully thought-out balance between describing principles and illustrating them. It is clear and well structured, with practical examples in every chapter.&lt;BR&gt;&lt;BR&gt;Aimed at the novice to intermediate designer, and a great resource for software developers who want to take their web design skills to the next level and provide them with a shared vocabulary with designers.&lt;BR&gt;&lt;BR&gt;The book is divided into the following chapters:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Layout and Composition 
&lt;LI&gt;Colour 
&lt;LI&gt;Texture 
&lt;LI&gt;Typography 
&lt;LI&gt;Imagery&lt;/LI&gt;&lt;/OL&gt;
&lt;P align=left&gt;The preface starts out by stating: “Good design is about the relationship between the elements involved, and creating a balance between them.” The design principles espoused in this book are very much in line with how I personally view design: “The most important thing to keep in mind is that design is about communication…”. It is fundamentally important to strike a balance between design and usability. It’s all about balance.&lt;BR&gt;&lt;BR&gt;It’s likely to leave you wanting to hear/digest more of Jason’s expertise and insight; let’s hope he publishes a next book in what could be a classic series. This book was a delight to read.&lt;/P&gt;
&lt;P align=left&gt;Purchase here:&lt;BR&gt;&lt;A href="http://www.sitepoint.com/books/design1/"&gt;&lt;FONT color=#ff6b00&gt;http://www.sitepoint.com/books/design1/&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;A href="http://www.amazon.com/Principles-Beautiful-Web-Design/dp/0975841963"&gt;&lt;FONT color=#ff6b00&gt;http://www.amazon.com/Principles-Beautiful-Web-Design/dp/0975841963&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Disclosure&lt;/STRONG&gt;: The Perth .NET User Group is a member of the O'Reilly User Group and Professional Association Program. O’Reilly make copies of their books available for user group libraries, and the copy reviewed here was kindly donated by O’Reilly. That said, it was not a factor in reviewing this book.&lt;/P&gt;&lt;img src="http://perthdotnet.org/aggbug.aspx?PostID=32" width="1" height="1"&gt;</description></item><item><title>Ship It!: A Practical Guide to Successful Software Projects, Jared Richardson, William Gwaltney Jr. Pragmatic Bookshelf.</title><link>http://perthdotnet.org/blogs/bookreviews/archive/2007/08/01/ship-it-a-practical-guide-to-successful-software-projects-jared-richardson-william-gwaltney-jr-pragmatic-bookshelf.aspx</link><pubDate>Thu, 02 Aug 2007 04:10:00 GMT</pubDate><guid isPermaLink="false">f7473a12-7a45-4812-b895-10f51d5714b1:31</guid><dc:creator>Administrator</dc:creator><slash:comments>0</slash:comments><comments>http://perthdotnet.org/blogs/bookreviews/comments/31.aspx</comments><wfw:commentRss>http://perthdotnet.org/blogs/bookreviews/commentrss.aspx?PostID=31</wfw:commentRss><description>&lt;P&gt;&amp;nbsp;&lt;IMG title=ShipIt! style="WIDTH:180px;HEIGHT:216px;" height=216 alt=ShipIt! src="http://www.oreilly.com/catalog/covers/0974514047_cat.gif" width=180 align=middle&gt;&lt;/P&gt;
&lt;DIV&gt;If you are familiar with the “The Pragmatic Programmer”(written by Andy Hunt and Dave Thomas) then you will probably recognise the Pragmatic Bookshelf series of books, set up by Hunt and Thomas, in which &lt;STRONG&gt;Ship It!&lt;/STRONG&gt; is included. This series of books sets itself apart by emphasising the practical aspects of delivering software, and also doing it well.&lt;BR&gt;&lt;BR&gt;The book is split into the following chapters:&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;Introduction 
&lt;LI&gt;Tools and Infrastructure 
&lt;LI&gt;Pragmatic Project Techniques 
&lt;LI&gt;Tracer Bullet Development 
&lt;LI&gt;Common Problems and How to Fix Them&lt;/LI&gt;&lt;/UL&gt;
&lt;DIV&gt;From the very first chapter, the authors make it clear ‘Ship It!’ is not another methodology, “&lt;EM&gt;There is no single, right way to develop software. There are a lot of wrong ways&lt;/EM&gt;…”. Instead, they have gathered together the ‘best’ bits’ of various styles and methodologies they have been directly involved with, and combined them into a practical approach with the focus on delivering a project. The authors do not expect you to necessarily implement everything they suggest all at once. Adopt one or two at time and determine if they work in your environment. This practical stance is reinforced throughout the book. A selection of the topics examined can be broadly listed as follows:&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI&gt;Use source control (for anything you want to keep) 
&lt;LI&gt;Automate your build (one click) 
&lt;LI&gt;Use continuous integration 
&lt;LI&gt;Track issues and features 
&lt;LI&gt;Write tests and automate them 
&lt;LI&gt;Use mocking 
&lt;LI&gt;Build end-to-end stubbed systems (Tracer Bullet Development) 
&lt;LI&gt;Build teams and foster communication&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;It is easy to read and feels fresh. As another reviewer pointed out, “&lt;EM&gt;It's a rare book that speaks convincingly to both developers and managers, but this one does a good job&lt;/EM&gt;”. There is a definite emphasis on the positive; it is about how to make projects succeed rather than a post-mortem of why they fail. The chapter “Common Problems and How to Fix Them” is a gem, with practical advice for developers, managers and customers.&lt;BR&gt;&lt;BR&gt;In Appendix E: Issue Tracking Systems, I was surprised to see that Gemini from CounterSoft (http://www.countersoft.com/) was not mentioned. I have implemented it at several sites with minimal effort and it has been used by developers and users with great success.&lt;BR&gt;&lt;BR&gt;In Tracer bullet development, I agree with the approach to the end-to-end working ‘stubbed‘ systems, but I would also add that methods should also be written in such a way that the release version will throw an exception in any method that has not been implemented (rather than just returning a dummy value). Otherwise, years from now, you might find yourself mentioned on the DailyWTF! In some ways, it would have been nice to have had a worked code example for this section, but I realise the authors did not want to limit themselves to one particular language and restrict the reach of this book; I think they made the right decision.&lt;BR&gt;&lt;BR&gt;If you are an experienced developer, then you probably will not find anything revolutionary or truly new amongst its 200 pages, but you might find something that your current routine is missing. Is this book worth reading? Absolutely. I would not hesitate for a moment in saying go out and buy it. Highly recommended.&lt;BR&gt;&lt;BR&gt;You can purchase from here:&lt;BR&gt;&lt;A href="http://www.amazon.com/Practical-Guide-Successful-Software-Projects/dp/0974514047"&gt;&lt;FONT color=#ff6b00&gt;http://www.amazon.com/Practical-Guide-Successful-Software-Projects/dp/0974514047&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;A href="http://www.oreilly.com/catalog/0974514047/"&gt;&lt;FONT color=#ff6b00&gt;http://www.oreilly.com/catalog/0974514047/&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Disclosure&lt;/STRONG&gt;: The Perth .NET User Group is a member of the O'Reilly User Group and Professional Association Program. O’Reilly make copies of their books available for user group libraries, and the copy reviewed here was kindly donated by O’Reilly. That said, it was not a factor in reviewing this book&lt;/P&gt;
&lt;P&gt;Originally posted to my blog: &lt;A href="http://mitch-wheat.blogspot.com/2007/07/ship-it-practical-guide-to-successful.html"&gt;http://mitch-wheat.blogspot.com/2007/07/ship-it-practical-guide-to-successful.html&lt;/A&gt;&lt;/P&gt;&lt;img src="http://perthdotnet.org/aggbug.aspx?PostID=31" width="1" height="1"&gt;</description></item></channel></rss>