<?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>Matthieu Brucher&#039;s blog &#187; O&#8217;Reilly</title> <atom:link href="http://matt.eifelle.com/category/general/book-review-general/oreilly/feed/" rel="self" type="application/rss+xml" /><link>http://matt.eifelle.com</link> <description></description> <lastBuildDate>Tue, 27 Jul 2010 07:04:23 +0000</lastBuildDate> <generator>http://wordpress.org/?v=2.9.1</generator> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>Book review: 97 Things Every Programmer Should Know</title><link>http://matt.eifelle.com/2010/05/25/book-review-97-things-every-programmer-should-know/</link> <comments>http://matt.eifelle.com/2010/05/25/book-review-97-things-every-programmer-should-know/#comments</comments> <pubDate>Tue, 25 May 2010 07:14:40 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[Book review]]></category> <category><![CDATA[O'Reilly]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=1182</guid> <description><![CDATA[97 pieces of advice, not less, not more. Several dozens of (more or less famed) developers were asked for their opinion on programming good practices, and their answers were compiled in this book.Content and opinions
Each &#8220;thing&#8221; is explained by a two-pages article. The tone is different as each chapter is written by different authors. They [...]]]></description> <content:encoded><![CDATA[<p>97 pieces of advice, not less, not more. Several dozens of (more or less famed) developers were asked for their opinion on programming good practices, and their answers were compiled in this book.<br
/> <span
id="more-1182"></span></p><h4>Content and opinions</h4><p>Each &#8220;thing&#8221; is explained by a two-pages article. The tone is different as each chapter is written by different authors. They are sorted alphabetically, and there is a table of contents sorted by topics.</p><p>The topics browse the modern/current approach to programming (in almost every aspect), emphasing the need for tests, automatic tools, good designs or personal enhancement. Of course, they cannot be deepened in so few words, so you have to get another book for more detailed explanations. This also means that for some pieces of advice, you may found them too obvious, as you need details to implement the approach.</p><h4>Conclusion</h4><p>This book is a great first approach to good practices. If you are used to reading good practices books, you may not need this one, but it tries efficiently to sum up the different faces of modern programming.</p><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"><a
rel="nofollow" href="http://r.popshops.com/r/U1J3YWFpNlh0YW5QSTFaaWRUcU1RakFLdWpycUpEOWRwL1A0d0V6akcrYz0K"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/55910000/55918434.JPG" border="0" alt="97 Things Every Programmer Should Know: Collective Wisdom from the Experts" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/r/U1J3YWFpNlh0YW5QSTFaaWRUcU1RakFLdWpycUpEOWRwL1A0d0V6akcrYz0K">97 Things Every Programmer Should Know: Collective Wisdom from the Experts</a><br
/> Price: $21.59</div><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 50px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/0596809484/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/41V%2BeeI0XzL._SL75_.jpg" width="50" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/0596809484/masbl03-20" target="_blank">97 Things Every Programmer Should Know: Collective Wisdom from the Experts</a> (Paperback)<br
/> <span
style="font-size: 0.8em;">by <strong></strong></span><br
/> ISBN: 0596809484</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 19.79</span><br
/> <strong>46 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 15.04</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-3.5.gif" class="asa_rating_stars" /> | 3.5 | 10</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2010/05/25/book-review-97-things-every-programmer-should-know/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Book review: Inside Cyber Warfare</title><link>http://matt.eifelle.com/2010/02/16/book-review-inside-cyber-warfare/</link> <comments>http://matt.eifelle.com/2010/02/16/book-review-inside-cyber-warfare/#comments</comments> <pubDate>Tue, 16 Feb 2010 07:57:09 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[Book review]]></category> <category><![CDATA[O'Reilly]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=1108</guid> <description><![CDATA[It&#8217;s funny I&#8217;ve started reading this book shortly before Google announced it withdraws from China because of a cyber attack. Well, this book is about this new theater of operations and explains what everyone should be ready for.Content and opinions
Warfare is gouverned by international laws. You can&#8217;t attack another country (unless you&#8217;re the USA&#8230;) without [...]]]></description> <content:encoded><![CDATA[<p>It&#8217;s funny I&#8217;ve started reading this book shortly before Google announced it withdraws from China because of a cyber attack. Well, this book is about this new theater of operations and explains what everyone should be ready for.<br
/> <span
id="more-1108"></span></p><h4>Content and opinions</h4><p>Warfare is gouverned by international laws. You can&#8217;t attack another country (unless you&#8217;re the USA&#8230;) without some solid arguments. The issue arises here, as a cyber attack is not something we are used to see, and thus there are several interpretations on this topic.</p><p>Jeffrey Carr tries to clear the picture by stating what is a cyber attack and how a state can be found responsible for a cyber attack. Indeed, this is a difficult topic as a lot of attacks are made by &#8220;simple&#8221; hackers that are not officially employed by a state (kind of mercenaries). The fourth whapter is written by an invited guest and describes how a cyber attack may be responded to. It is a complicated legal issue under international laws, but the author is also very clear in his demonstration.</p><p>After the legal part, Jeffrey Carr tackles the general topic of intelligence. Attacks may focus on retrieving information (social intelligence or data) or disconnecting websites. I was amazed to see that there were attacks on some websites so that people couldn&#8217;t get information from rebels to some states, and that those attacks were made by the before-mentioned states. I thought that hackers were mainly outlaws, but it seems that states rely on hackers when rebels rely more on open information (I&#8217;m thinking about the Iran situation).</p><p>A lot of time must be spend on finding who launched the attack. How is it possible to launch an attack without being indentified is an issue tackled by several chapters. It seems that a lot of people on the Internet do not ware about accurate information, and this disables the capacity of investigators to find their quarry. It&#8217;s also surprising to see the difference between the reality and the movies/TV series where a hacker can find the attacker in less than a minute&#8230;</p><p>The last chapters are dedicated to using malwares for an attack (retrieving information or setting up a DDOS attack), the military doctrine of China and Russia, how can cyber attack be detected (in a state versus state situation) and general advice for cyber defense.</p><p>I have to say that I&#8217;m worried when I hear some of France MP saying that all DNS are under US management (which is obviously wrong) and that France should nationalize the Internet: how could we prepare for cyber warfare with this kind of MP??</p><h4>Conclusion</h4><p>Although only China, Russia and the USA positions are tackled, I think Europe has even greater problems than the US. The picture given by the book may be grim, but at least it clearly states the challenges we have to face now. I think it is also a corner stone for developing our (meaning your country&#8217;s) cyber doctrine. So if you think that Google versus China is not something to be worried about, read it, and if you know that is a symptom of a dangerous disease, read it also.</p><p>Here is <a
href="http://radar.oreilly.com/2010/02/cyber-warfare-dont-inflate-it.html">an interview of Jeffrey Carr that I found also interesting</a>.</p><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"> <a
rel="nofollow" href="http://r.popshops.com/pp/73648/inside-cyber-warfare"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/49510000/49514139.JPG" border="0" alt="Inside Cyber Warfare" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/pp/73648/inside-cyber-warfare">Inside Cyber Warfare</a><br
/> Price: $28.79</div><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 57px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/0596802153/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/519K0cesuoL._SL75_.jpg" width="57" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/0596802153/masbl03-20" target="_blank">Inside Cyber Warfare: Mapping the Cyber Underworld</a> (Paperback)<br
/> <span
style="font-size: 0.8em;">by <strong>Jeffrey Carr</strong></span><br
/> ISBN: 0596802153</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 26.39</span><br
/> <strong>37 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 20.79</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-4.gif" class="asa_rating_stars" /> | 4 | 11</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2010/02/16/book-review-inside-cyber-warfare/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Book review: The Art of Concurrency: A Thread Monkey&#8217;s Guide to Writing Parallel Applications</title><link>http://matt.eifelle.com/2009/12/08/book-review-the-art-of-concurrency-a-thread-monkeys-guide-to-writing-parallel-applications/</link> <comments>http://matt.eifelle.com/2009/12/08/book-review-the-art-of-concurrency-a-thread-monkeys-guide-to-writing-parallel-applications/#comments</comments> <pubDate>Tue, 08 Dec 2009 07:57:54 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[Book review]]></category> <category><![CDATA[C++]]></category> <category><![CDATA[Debugger]]></category> <category><![CDATA[O'Reilly]]></category> <category><![CDATA[Profiler]]></category> <category><![CDATA[Tools]]></category> <category><![CDATA[Multithreaded applications]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=847</guid> <description><![CDATA[Free lunch is over, it&#8217;s time to go concurrent. The Art of Concurrency addresses the need for a workflow to develop concurrent/parallel applications.Mainly based on multithreaded applications, the book covers pthreads, Windows threads, OpenMP or Intel Threading Building Blocks library. It also covers some part of multiprocess applications if there are differences with threaded ones.
Content [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://www.gotw.ca/publications/concurrency-ddj.htm">Free lunch is over</a>, it&#8217;s time to go concurrent. <span
style="text-decoration: underline;">The Art of Concurrency</span> addresses the need for a workflow to develop concurrent/parallel applications.<br
/> <span
id="more-847"></span><br
/> Mainly based on multithreaded applications, the book covers pthreads, Windows threads, OpenMP or <a
href="http://matt.eifelle.com/2008/07/09/book-review-intel-threading-building-blocks-outfitting-c-for-multi-core-processor-parallelism/">Intel Threading Building Blocks library</a>. It also covers some part of multiprocess applications if there are differences with threaded ones.</p><h4>Content and opinions</h4><p>The book starts with two chapers on what actions to take before parallelizing and what can and what cannot. Before the usual algorithms that can be parallelized, the author takes three chapters to explain how you may achieve your goal. Ensuring correctness is a difficult task, so the book gives 8 rules to help and then an explanation of several support libraries that can be used.</p><p>The biggest part of the book, as I&#8217;ve hinted, is dedicated to simple but usual algorithms that may be parallelized: sums and scans, mapreduce, sorts, searches, and graph algorithms. Each time, several different algorithms are first coded in a serial way and then parallelized with possibly different support libraries. Also each time, the efficiency, the simplicity, the portability and the scalability conclude the sub art: it helps standing back.</p><p>The last chapter is a small overview of the additional tools that you may use (but they are not mandatory). They are mainly Intel&#8217;s tools, but it&#8217;s mainly because Intel provides the developer with some of the best tools.</p><h4>Conclusion</h4><p>Although the author works for Intel, he doesn&#8217;t expose Intel tools more than others. The book tone is adequate, not too much serious, not like a &#8220;For Dummies&#8221;, so just enjoyable.</p><p>If you need advices to parallelize your applications and you don&#8217;t want to buy <a
href="http://matt.eifelle.com/2009/03/10/book-review-patterns-for-parallel-programming/">Patterns for Parallel Programming</a>, buy this one (well, buy it anyway).</p><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"> <a
rel="nofollow" href="http://r.popshops.com/pp/69253/the-art-of-concurrency-a-thread-monkey-s-guide-to-writing-parallel-applications"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/37180000/37189689.JPG" border="0" alt="The Art of Concurrency: A Thread Monkey's Guide to Writing Parallel Applications" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/pp/69253/the-art-of-concurrency-a-thread-monkey-s-guide-to-writing-parallel-applications">The Art of Concurrency: A Thread Monkey&#8217;s Guide to Writing Parallel Applications</a><br
/> Price: $40.49</div><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 57px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/0596521537/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/51QaJYFLmGL._SL75_.jpg" width="57" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/0596521537/masbl03-20" target="_blank">The Art of Concurrency: A Thread Monkey&#8217;s Guide to Writing Parallel Applications</a> (Paperback)<br
/> <span
style="font-size: 0.8em;">by <strong>Clay Breshears</strong></span><br
/> ISBN: 0596521537</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 38.48</span><br
/> <strong>40 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 17.99</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-3.5.gif" class="asa_rating_stars" /> | 3.5 | 6</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2009/12/08/book-review-the-art-of-concurrency-a-thread-monkeys-guide-to-writing-parallel-applications/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Book review: Mercurial &#8211; The Definitive Guide</title><link>http://matt.eifelle.com/2009/11/19/book-review-mercurial-the-definitive-guide/</link> <comments>http://matt.eifelle.com/2009/11/19/book-review-mercurial-the-definitive-guide/#comments</comments> <pubDate>Thu, 19 Nov 2009 08:55:43 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[Book review]]></category> <category><![CDATA[O'Reilly]]></category> <category><![CDATA[Tools]]></category> <category><![CDATA[DVCS]]></category> <category><![CDATA[Mercurial]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=812</guid> <description><![CDATA[Thre is two ways of getting this book: the electronic one or the paper one. If you plan of using Mercurial, the paper may be better suited.
Mercurial (also called hg as the Mendeleiev symbol for mercurial) is one of the three DVCS (Distributed Version Control System) that are in the mood nowadays. Written in Python, [...]]]></description> <content:encoded><![CDATA[<p>Thre is two ways of getting this book: the electronic one or the paper one. If you plan of using Mercurial, the paper may be better suited.</p><p>Mercurial (also called hg as the Mendeleiev symbol for mercurial) is one of the three DVCS (Distributed Version Control System) that are in the mood nowadays. Written in Python, its life started at the time as git&#8217;s when BitKepper was dumped as the Linux kernel&#8217;s VCS. Now it is a mature product, and the book tries to explain how to use it and also the differences with Git. Bazaar, the third DVCS, is not even mentionned, although it is also written in Python.<br
/> <span
id="more-812"></span></p><h4>Content and opinions</h4><p>The book starts with a small introduction to revision control, and then gets to the basics of version control with Mercurial. This chapter and the following one really are the only things to fully master before starting with hg. With them, you can track your changes, send them to other repositories, &#8230;, and the third chapter helps you merging different changes together. In this case, you may encounter some small &#8220;glitches&#8221; of Mercurial, and the book explains them correctly.</p><p>The remainign of the book is more dedicated to small additions that can make your life better.  For instance, the fourth chapter is about the efficient repository storage. If a repository with Subversion could get really big, Mercurial keeps things small and doesn&#8217;t use garbage collectors like Git. The next chapter that was interesting was the eigth (the other deal with daily use, that is, copy, rename, &#8230;, web servers, selecting several files through regexp). It deals with organizing the branches and giving names to revisions. I think it could have deserved a better place, as I find the last three chapters of less interest (in fact, other book on DVCS deal with the web server part at the end, so I think it&#8217;s not just me).</p><p>The next chapter is about fixing some mistakes you may make. Mercurial has some useful tools, and there is also the <strong>bisect</strong> command. I had to use it several times, and it is really efficient. Some tips are given to help using this command efficiently, and it may be the most important topic in this chapter. Reverting or &#8220;removing&#8221; a commit (they are never really removed, they will stay in a hidden branch of some sort) can help sorting a situation, but you shouldn&#8217;t use it anyway. The book should have big red/orange warnings in this chapter (which is obviously has not). An important part of VCS is everything related to automation with hooks. Mercurial delivers several places where you can launch your scripts (for instance to update your web site), and the book has a good tutorial on how to write simple hooks.</p><p>Another not so important part is how you can customize Mercurial&#8217;s output. Interesting, but not that much. A topic that helped Mercurial gaining momentum is MQ (Management Queues). I don&#8217;t have the need myself, so the two chapters on that subject were a little bit boring. Besides, to use MQ, you have to set up another repository inside the hidden folder of Mercurial, which is not as efficient as having the queues directly inside the first repository. A good point is that it shows that extensions can really change the way Mercurial can be used (which is the subject of the last chapter).</p><h4>Conclusion</h4><p>All things considered, the book managed browsing through the capabilities of Mercurial. The contents may not be organized in the best way, but one can still find what it needs, and even more. If you want to use a DVCS, try Mercurial with this book, you won&#8217;t be disappointed (by neither of them).</p><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"> <a
rel="nofollow" href="http://r.popshops.com/pp/69261/mercurial-the-definitive-guide-modern-software-for-collaboration-animal-guide-se"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/40350000/40355581.JPG" border="0" alt="Mercurial: The Definitive Guide: Modern Software for Collaboration (Animal Guide Series)" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/pp/69261/mercurial-the-definitive-guide-modern-software-for-collaboration-animal-guide-se">Mercurial: The Definitive Guide: Modern Software for Collaboration (Animal Guide Series)</a><br
/> Price: $35.99</div><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 57px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/0596800673/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/414gvga11SL._SL75_.jpg" width="57" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/0596800673/masbl03-20" target="_blank">Mercurial: The Definitive Guide (Animal Guide)</a> (Paperback)<br
/> <span
style="font-size: 0.8em;">by <strong>Bryan O&#8217;Sullivan</strong></span><br
/> ISBN: 0596800673</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 34.07</span><br
/> <strong>33 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 17.93</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-5.gif" class="asa_rating_stars" /> | 5 | 4</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2009/11/19/book-review-mercurial-the-definitive-guide/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Book review: Beautiful Architecture</title><link>http://matt.eifelle.com/2009/07/28/book-review-beautiful-architecture/</link> <comments>http://matt.eifelle.com/2009/07/28/book-review-beautiful-architecture/#comments</comments> <pubDate>Tue, 28 Jul 2009 08:02:43 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[Book review]]></category> <category><![CDATA[General]]></category> <category><![CDATA[O'Reilly]]></category> <category><![CDATA[Architecture]]></category> <category><![CDATA[Conception]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=657</guid> <description><![CDATA[Beautiful Architecture is a kind of follow-up of Beautiful Code, which I reviewed some time ago. Far smaller, the book is aimed at architecture, although Beautiful Code also presented some aspect of architecture.
The question I&#8217;ve asked myself whether or not it is as good as its predecessor.Content and opinions
The editor split the different architecture topics [...]]]></description> <content:encoded><![CDATA[<p><span
style="text-decoration: underline;">Beautiful Architecture</span> is a kind of follow-up of <span
style="text-decoration: underline;">Beautiful Code</span>, which <a
href="http://matt.eifelle.com/2008/09/16/book-review-beautiful-code-leading-programmers-explain-how-they-think/">I reviewed some time ago</a>. Far smaller, the book is aimed at architecture, although <span
style="text-decoration: underline;">Beautiful Code</span> also presented some aspect of architecture.<br
/> The question I&#8217;ve asked myself whether or not it is as good as its predecessor.<br
/> <span
id="more-657"></span></p><h4>Content and opinions</h4><p>The editor split the different architecture topics in 5 parts. The first is very general, and short. The main topic is why you should have a good architecture, with some real experience with good and bad architectures. It&#8217;s a necessary introduction, even if the content is to be expected.</p><p>The second part left me with mixed feelings. If you&#8217;re used to architectural readings, you won&#8217;t learn much, in my opinion. OK, it&#8217;s a book on software architecture, but actual architectures are expected, and some displayed architectures (like web services) are obvious, although Facebook&#8217;s chapter is interesting in that matter.</p><p>The third part is dedicated to hardware, emulation, virtualization or real one. This was really interesting, with a lot of details on known projects (Xen) or lesser-known ones (Guardian, which I didn&#8217;t hear about until the book, but which was really interesting in its philosophy). I had less interest in both Java projects, as it&#8217;s not something I deal with on a regular basis, but the approach was enjoyable.</p><p>After the hardware, two chapters are dedicated to two well-known projects with really different teams, Emacs and KDE. KDE&#8217;s chapter is almost more about the team and how the architecture emerged from team&#8217;s discussions than architecture itself, and I think that another message behind this part is to learn to communicate inside the developer team.</p><p>Finally the conclusion starts with a discussion on object-oriented languages (the kind that is mainly used) versus functional ones, by a reference in that field, Bertrand Meyer. One has to be focused to fully understand Meyer&#8217;s message. For his demonstration, he uses a real object-oriented language, Eiffel, and not one of the usual not-fully object-oriented languages like C++ or Java. So some concepts may be missing to you. And the last chapter is about overdoing an architecture and finishing with a half-baked software with examples from the buildings architecture where some famous architects overdid their work and losing sight of the buyer&#8217;s needs. Like every book on architecture or software conception, it is best to explicitely state that too much is the enemy of a good program.</p><h4>Conclusion</h4><p>Less surprising than its predecessor, shorter and with less magnificence, this book is sometimes more boring. From a cultural point of view, it&#8217;s a good one, with examples for very distinct fields. Some chapters are too obvious if one is familiar with the field, and this spoils a little bit the pleasure of reading.</p><p>As for <a
href="http://matt.eifelle.com/2009/07/14/book-review-the-art-of-application-performance-testing-help-for-programmers-and-quality-assurance/">my last O&#8217;Reilly review</a>, the book is also printed on recycled paper.</p><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"> <a
rel="nofollow" href="http://r.popshops.com/pp/69398/beautiful-architecture"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/36060000/36065505.JPG" border="0" alt="Beautiful Architecture" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/pp/69398/beautiful-architecture">Beautiful Architecture</a><br
/> Price: $40.49</div><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 57px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/059651798X/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/51VUsbfFFjL._SL75_.jpg" width="57" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/059651798X/masbl03-20" target="_blank">Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design</a> (Paperback)<br
/> <span
style="font-size: 0.8em;">by <strong>Diomidis Spinellis, Georgios Gousios</strong></span><br
/> ISBN: 059651798X</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 38.20</span><br
/> <strong>43 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 15.96</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-3.gif" class="asa_rating_stars" /> | 3 | 4</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2009/07/28/book-review-beautiful-architecture/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Book review: The Art of Application Performance Testing: Help for Programmers and Quality Assurance</title><link>http://matt.eifelle.com/2009/07/14/book-review-the-art-of-application-performance-testing-help-for-programmers-and-quality-assurance/</link> <comments>http://matt.eifelle.com/2009/07/14/book-review-the-art-of-application-performance-testing-help-for-programmers-and-quality-assurance/#comments</comments> <pubDate>Tue, 14 Jul 2009 08:34:39 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[Book review]]></category> <category><![CDATA[O'Reilly]]></category> <category><![CDATA[Tools]]></category> <category><![CDATA[Performance Testing]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=636</guid> <description><![CDATA[A network application should be tested for the performance it is meant to have. To do this, tools must be used, results analyzed, &#8230; This book is about bringing together experience on this.Content and opinions
The first chapter defines the purposes of performance tests. Unfortunately, those are generally executed too late or badly executed. The goal [...]]]></description> <content:encoded><![CDATA[<p>A network application should be tested for the performance it is meant to have. To do this, tools must be used, results analyzed, &#8230; This book is about bringing together experience on this.</p><p><span
id="more-636"></span></p><h4>Content and opinions</h4><p>The first chapter defines the purposes of performance tests. Unfortunately, those are generally executed too late or badly executed. The goal of the book is to present the associated good practices.</p><p>The second chapter is imposing, to say the least as it fills almost half of the book. It&#8217;s the core of performance testing: what should I test? What tools to select and on what basis? The presentation is clear, precise and goes straight to the point.</p><p>The last three chapters go further with the elements of the second chapter. First, you have to gring up the need for performance testing, and two examples are given, with all the details. Then, you have to analyze the results, as get the cause of the lack of performance, &#8230; The last chapter lists some technologies that can impact performance or tests.</p><h4>Conclusion</h4><p>In the end, this is a really good book on performance testing. Besides it is printed on recycled paper.</p><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"> <a
rel="nofollow" href="http://r.popshops.com/pp/69400/art-of-application-performance-testing"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/34390000/34399252.JPG" border="0" alt="Art of Application Performance Testing" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/pp/69400/art-of-application-performance-testing">Art of Application Performance Testing</a><br
/> Price: $31.49</div><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 57px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/0596520662/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/41jPr-WTgzL._SL75_.jpg" width="57" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/0596520662/masbl03-20" target="_blank">The Art of Application Performance Testing: Help for Programmers and Quality Assurance</a> (Paperback)<br
/> <span
style="font-size: 0.8em;">by <strong>Ian Molyneaux</strong></span><br
/> ISBN: 0596520662</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 30.61</span><br
/> <strong>30 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 23.23</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-4.5.gif" class="asa_rating_stars" /> | 4.5 | 3</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2009/07/14/book-review-the-art-of-application-performance-testing-help-for-programmers-and-quality-assurance/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Book review: The Productive Programmer</title><link>http://matt.eifelle.com/2009/06/16/book-review-the-productive-programmer/</link> <comments>http://matt.eifelle.com/2009/06/16/book-review-the-productive-programmer/#comments</comments> <pubDate>Tue, 16 Jun 2009 08:49:18 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[Book review]]></category> <category><![CDATA[General]]></category> <category><![CDATA[O'Reilly]]></category> <category><![CDATA[Tools]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=560</guid> <description><![CDATA[What an appetizing title! This book is part of an O&#8217;Reilly serie that treats a lot of interesting topic. Contrary to Beautiful Code, this one is much shorter but the title suggest it is much more pragmatic.Each time, the author has some thing to say, it starts with a small phrase that can be disturbing, [...]]]></description> <content:encoded><![CDATA[<p>What an appetizing title! This book is part of an O&#8217;Reilly serie that treats a lot of interesting topic. Contrary to <a
href="http://matt.eifelle.com/2008/09/16/book-review-beautiful-code-leading-programmers-explain-how-they-think/">Beautiful Code</a>, this one is much shorter but the title suggest it is much more pragmatic.<br
/> <span
id="more-560"></span><br
/> Each time, the author has some thing to say, it starts with a small phrase that can be disturbing, and then a complete explanation follows. This means you should be ready to be shaken, what the author tries to teach you are sometimes things you have to think about twice (at least I had this feeling).</p><p>The book is plit in two parts, theory and pratice. The first one is the longest, with 4 chapters, still the second has more chapters, with 10 ones.</p><h4>Content and opinions</h4><p>So the first part is about theory. A lot of things make sense, and even if you didn&#8217;t read the book, you should know them. Acceleration is about how you can do things faster. Well, it&#8217;s not much about developing than setting up you work environment (search utilities, shells, &#8230;) so that you can access things faster. Focus is about maintaining focus during development. Less distractions so that you can keep be focused (you need 15 minutes until you achive maximum productivity, so if you&#8217;re interrupted every 5 minutes, it&#8217;s cumbersome), more space on your desktop with several monitors or virtual desktops (the book gives links to useful tools, like virtual desktops for Windows), &#8230; Automation is linked to acceleration, but it is more, it is about doing the same thing several times. Different tools (bash, ruby, &#8230;) are used in different examples. What I mainly remember is that you need to master several different tools. The last chapter is Canonality, or the DRY principle (Don&#8217;t Repeat Yourself). There are several cases where you seem to need to have several times the same things (when maintaining UML diagrams, for instance), and then using automation, you can have canonality. This is spreading through several pages, and although it is natural to use automation to achieve canonality, you have to realize it first.</p><p>The second part is about practice, and more exactly what tools and processes you should use, based on the author&#8217;s experience. It seems to be mainly based on the agile patterns, with a start on test-driven development, and then several topics on software architecture, and they come regularly back in following chapters (a good thing INO). Two chapters are about the old times, one dedicated to what good can be extracted from past experiences, and one dedicated to bad experiences that keep on harming development (mainly people that think they know the truth, without questionning themselves, the so-called angry monkeys). The last two chapters are about using the right language for the application and using the right tool (the IDE in this case) for maximum productivity. This part about the actual ways of being more productive achieves, IMHO, its goal with good impulses for a productive programmer.</p><h4>Conclusion</h4><p>A lot of the tools that are presented in the first part are not free or open source, and sometimes there exists alternatives in the free community, so you have to look for them. The secon part tends to look more towards those free tools.</p><p>The whole book is definitely about good practices, with some more controversial than others. Some of them are also difficult to apply to any language, as tools for this practice are missing. I think the book describes a good set of practices to try to apply personnally ; at least, I&#8217;ve decided to try to and to better use the command-line and my IDEs (also fight angry monkeys).</p><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"> <a
rel="nofollow" href="http://r.popshops.com/pp/69402/the-productive-programmer"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/30010000/30014905.JPG" border="0" alt="The Productive Programmer" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/pp/69402/the-productive-programmer">The Productive Programmer</a><br
/> Price: $34.19</div><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 57px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/0596519788/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/61dx4Iu-fyL._SL75_.jpg" width="57" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/0596519788/masbl03-20" target="_blank">The Productive Programmer (Theory in Practice (O&#8217;Reilly))</a> (Paperback)<br
/> <span
style="font-size: 0.8em;">by <strong>Neal Ford</strong></span><br
/> ISBN: 0596519788</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 26.39</span><br
/> <strong>44 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 17.24</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-4.5.gif" class="asa_rating_stars" /> | 4.5 | 25</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2009/06/16/book-review-the-productive-programmer/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Book review: Head First Design Patterns</title><link>http://matt.eifelle.com/2009/04/21/book-review-head-first-design-patterns/</link> <comments>http://matt.eifelle.com/2009/04/21/book-review-head-first-design-patterns/#comments</comments> <pubDate>Tue, 21 Apr 2009 08:13:05 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[Book review]]></category> <category><![CDATA[Design Patterns]]></category> <category><![CDATA[O'Reilly]]></category> <category><![CDATA[Design pattern]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=403</guid> <description><![CDATA[If last week&#8217;s book review was too complicated for you, perhaps this book is more suited for you. Less design patterns, but a funnier way to describe them.Content and opinions
Only twelve patterns are explained, but more important is the fact that each of them is detailled, with examples and exercices, as well as important phrases [...]]]></description> <content:encoded><![CDATA[<p>If <a
href="http://matt.eifelle.com/2009/04/14/book-review-design-patterns-elements-of-reusable-object-oriented-software/">last week&#8217;s book review</a> was too complicated for you, perhaps this book is more suited for you. Less design patterns, but a funnier way to describe them.<br
/> <span
id="more-403"></span></p><h4>Content and opinions</h4><p>Only twelve patterns are explained, but more important is the fact that each of them is detailled, with examples and exercices, as well as important phrases displayed as images. With humor, these are the caracteristics of the &#8220;Head First&#8221; collection.</p><p>Instead of using the same example throughout the book, each chapter has more or less its own concrete example. The latest chapters explain how they can interact to create complex applications, or how they can define new design patterns (as MVC for instance), then how it will change your way of thinking software architecture.</p><h4>Conclusion</h4><p>This book focuses on the most used and perhaps useful design patterns. This way, it can present them differently than a simple catalog, but I have to say that this approach will not be suited for everyone. For instance, I appreciate books that go straight to the point.</p><p>This kind of book is well suited for people that want to start with design patterns, but not for people familiar with them: they should go for catalogs.</p><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"> <a
rel="nofollow" href="http://r.popshops.com/pp/69410/head-first-design-patterns"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/14240000/14246647.JPG" border="0" alt="Head First Design Patterns" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/pp/69410/head-first-design-patterns">Head First Design Patterns</a><br
/> Price: $32.36</div><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 65px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/0596007124/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/51cSUZ-L1yL._SL75_.jpg" width="65" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/0596007124/masbl03-20" target="_blank">Head First Design Patterns</a> (Paperback)<br
/> <span
style="font-size: 0.8em;">by <strong>Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra</strong></span><br
/> ISBN: 0596007124</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 29.67</span><br
/> <strong>78 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 21.49</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-4.5.gif" class="asa_rating_stars" /> | 4.5 | 295</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2009/04/21/book-review-head-first-design-patterns/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Book review: Programming Collective Intelligence: Building Smart Web 2.0 Applications</title><link>http://matt.eifelle.com/2008/11/18/book-review-programming-collective-intelligence-building-smart-web-2-0-applications/</link> <comments>http://matt.eifelle.com/2008/11/18/book-review-programming-collective-intelligence-building-smart-web-2-0-applications/#comments</comments> <pubDate>Tue, 18 Nov 2008 08:05:24 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[Book review]]></category> <category><![CDATA[O'Reilly]]></category> <category><![CDATA[Python]]></category> <category><![CDATA[Machine learning]]></category> <category><![CDATA[Scientific computing]]></category> <category><![CDATA[Web]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=158</guid> <description><![CDATA[The book description was really appetizing: Machine Learning applied to the Internet, so it should be easy to understand, and Python as the mean to compute. Unfortunately, contrary to what I saw in different reviews, I was not pleased with the book, and here is why.Machine learning is a difficult topic. I can understand that [...]]]></description> <content:encoded><![CDATA[<p>The <a
href="http://oreilly.com/catalog/9780596529321/index.html">book description</a> was really appetizing: Machine Learning applied to the Internet, so it should be easy to understand, and Python as the mean to compute. Unfortunately, contrary to what I saw in different reviews, I was not pleased with the book, and here is why.<br
/> <span
id="more-158"></span><br
/> Machine learning is a difficult topic. I can understand that there is need for a introductory book. The need is there (it can be seen on the O&#8217;Reilly comments of the book). But need does not imply not thorough:</p><ul><li>The tools of the book can be dangerous. Neural networks are regularly debatted, and the litterature is very dense. You cannot expect to understand neural networks with only a chapter. And this applies to every other tool (multidimensonal scaling, &#8230;).</li><li>There are no references, no bibliography to help if you encounter a problem. Say you apply neural networks as explained in the book. You get a result you don&#8217;t expect. Where do you turn to to have an explanation? In such a book, you have to give references.</li></ul><p>Another point is that the code quality is bad. Really bad. If you do machine learning, you use the appropriate Python tools, <em>i.e.</em> Numpy. Besides there are a lot of additional modules to help using machine learning.</p><p>I know it&#8217;s difficult to write a book and to think about everything: I&#8217;ve gone through that path. But if you want to write an ambitious book and if you fail to meet the requirements, you must expect some bad reviews <img
src='http://matt.eifelle.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><p>Such a book should be bigger, far bigger. If you want a real book about Machine Learning, get <span
style="text-decoration: underline;">Pattern Recognition and Machine Learning</span> from Christopher Bishop. And if you want to apply your findings to the web, well, there are a lot of books on web analysis.</p><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"><a
rel="nofollow" href="http://r.popshops.com/pp/69419/programming-collective-intelligence-building-smart-web-2-0-applications"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/14240000/14246767.JPG" border="0" alt="Programming Collective Intelligence: Building Smart Web 2.0 Applications" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/pp/69419/programming-collective-intelligence-building-smart-web-2-0-applications">Programming Collective Intelligence: Building Smart Web 2.0 Applications</a><br
/> Price: $34.19</div><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 57px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/0596529325/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/51Y1H8DiXcL._SL75_.jpg" width="57" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/0596529325/masbl03-20" target="_blank">Programming Collective Intelligence: Building Smart Web 2.0 Applications</a> (Paperback)<br
/> <span
style="font-size: 0.8em;">by <strong>Toby Segaran</strong></span><br
/> ISBN: 0596529325</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 26.39</span><br
/> <strong>58 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 16.35</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-4.5.gif" class="asa_rating_stars" /> | 4.5 | 57</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2008/11/18/book-review-programming-collective-intelligence-building-smart-web-2-0-applications/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Book review: Beautiful Code: Leading Programmers Explain How They Think</title><link>http://matt.eifelle.com/2008/09/16/book-review-beautiful-code-leading-programmers-explain-how-they-think/</link> <comments>http://matt.eifelle.com/2008/09/16/book-review-beautiful-code-leading-programmers-explain-how-they-think/#comments</comments> <pubDate>Tue, 16 Sep 2008 08:24:55 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[Book review]]></category> <category><![CDATA[O'Reilly]]></category> <category><![CDATA[Code quality]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=100</guid> <description><![CDATA[I got this book from a partnership between http://www.developpez.com/ and O&#8217;Reilly. Thanks to both of them.
What defines &#8220;beautiful code&#8221;? How do people think a beautiful code should look like? This isn&#8217;t a simple question to answer, so this book asked several lead programmers (Ruby, Python, C, C++, Java, Perl, &#8230;) some beautiful code they wrote [...]]]></description> <content:encoded><![CDATA[<p>I got this book from a partnership between http://www.developpez.com/ and O&#8217;Reilly. Thanks to both of them.</p><p>What defines &#8220;beautiful code&#8221;? How do people think a beautiful code should look like? This isn&#8217;t a simple question to answer, so this book asked several lead programmers (Ruby, Python, C, C++, Java, Perl, &#8230;) some beautiful code they wrote or they encountered. And if some want to answer &#8220;think about a robust, simple to extend code and that will be it&#8221; (and I would be one of them before I read the book), there are some code that would not fit this profile.<br
/> <span
id="more-100"></span></p><h4>Content and opinions</h4><p>I won&#8217;t speak about each chapter because there are numerous and my goal is not to analyze what programmer wrote what. The book has no parts <em>per se</em>, but some chapters can be grouped together.</p><p>There is a progression through the chapters, from pure code to architecture and design. The study domains are very wide, regular expression, subversion core, the quick sort algorithm, the evolution of the fast mathematical routines, but also how to test, some pitfalls of concurrency programming, how to design an efficient GUI for bioinformatics or simply an UI for disabled people, &#8230; In every case, there is some thing close to what one is doing.</p><p>Some may think that there are a lot of books on code writing or code architecture, code design, &#8230; but there is not another &#8220;Beautiful code&#8221;, at least at this time of blogging. It melds these aspects of programming together, and this is what is interesting in this book. It&#8217;s not meant to be a reference like the Cormen for &#8220;beautiful&#8221; algorithms, or Martin Fowler&#8217;s book on design, Kent Beck&#8217;s on developement, so don&#8217;t wait for the same things.</p><h4>Conclusion</h4><p>If you are looking for theory about good code practices, this is not a book for you. If you are looking for culture, for some applied code pratices (how they interact with the code, how code can evolve, &#8230;), go and read this book.</p><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"> <a
rel="nofollow" href="http://r.popshops.com/pp/69423/beautiful-code-leading-programmers-explain-how-they-think"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/15220000/15227898.JPG" border="0" alt="Beautiful Code: Leading Programmers Explain How They Think" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/pp/69423/beautiful-code-leading-programmers-explain-how-they-think">Beautiful Code: Leading Programmers Explain How They Think</a><br
/> Price: $40.49</div><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 57px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/0596510047/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/41D5YKslp8L._SL75_.jpg" width="57" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/0596510047/masbl03-20" target="_blank">Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O&#8217;Reilly))</a> (Paperback)<br
/> <span
style="font-size: 0.8em;">by <strong></strong></span><br
/> ISBN: 0596510047</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 39.79</span><br
/> <strong>68 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 7.76</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-3.5.gif" class="asa_rating_stars" /> | 3.5 | 41</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2008/09/16/book-review-beautiful-code-leading-programmers-explain-how-they-think/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> </channel> </rss>
<!-- Served from: matt.eifelle.com @ 2010-07-30 08:38:28 by W3 Total Cache -->