<?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>Adrian Kosmaczewski &#187; Books</title> <atom:link href="http://kosmaczewski.net/category/books/feed/" rel="self" type="application/rss+xml" /><link>http://kosmaczewski.net</link> <description></description> <lastBuildDate>Sat, 05 May 2012 22:16:45 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.2</generator> <item><title>Best Books of 2011</title><link>http://kosmaczewski.net/best-books-of-2011/</link> <comments>http://kosmaczewski.net/best-books-of-2011/#comments</comments> <pubDate>Mon, 06 Feb 2012 08:40:05 +0000</pubDate> <dc:creator>Adrian</dc:creator> <category><![CDATA[Books]]></category> <category><![CDATA[Apple]]></category> <category><![CDATA[design]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[preferred]]></category> <guid
isPermaLink="false">http://kosmaczewski.net/</guid> <description><![CDATA[Just like in 2010, 2009, 2008 and 2007, here goes the traditional book of the year post for 2011! This year my reading list included design, history, and lots of JavaScript. Here goes the list, in a completely arbitrary order &#8230; <a
href="http://kosmaczewski.net/best-books-of-2011/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Just like in <a
href="http://kosmaczewski.net/best-books-of-2010/">2010</a>, <a
href="http://kosmaczewski.net/best-books-of-2009/">2009</a>, <a
href="http://kosmaczewski.net/best-books-of-2008/">2008</a> and <a
href="http://kosmaczewski.net/best-books-of-2007/">2007</a>, here goes
the traditional book of the year post for 2011! This year my reading
list included design, history, and lots of JavaScript.</p><p><img
src="http://kosmaczewski.net/wp-content/uploads/2012/02/books.png" alt="" title="Best Books of 2011" width="493" height="110" class="aligncenter size-full wp-image-2482" /></p><p>Here goes the list, in a completely arbitrary order of personal
preference:</p><h2><a
href="http://www.designforhackers.com/">&#8220;Design for Hackers&#8221;</a> by David Kadavy</h2><p>It all started, around August, with a conversation with Paul, my cousin
from London, the founder of <a
href="http://www.zerofee.org/">Zerofee</a>; we were talking that while
designers could easily find tutorials and documentation to learn about
software development, it was much harder for developers to find material
about design, at least to learn the basic concepts.</p><p>Somehow, David Kadavy must have heard us, and he came up the following
month with this great book. I have recommended it to every one of my
students since I read it; it is built like a computer book, with clear
explanations, diagrams and lots of pictures; every concept is described
in detail, including historical references and examples.</p><p>David provides a healthy introduction to design, going through subjects
such as fonts, proportions, color theory, structure, grids, and much,
much more.</p><p>I insist; this is a must read for any developer, particularly those who,
like me, are self-taught and eager to expand their own possibilities.</p><h2><a
href="http://www.amazon.com/Steve-Jobs-Walter-Isaacson/dp/1451648537">&#8220;Steve Jobs&#8221;</a>, by Walter Isaacson</h2><p>The day Steve Jobs passed away I was in South Africa, giving some
trainings in Johannesburg, precisely about iOS. I remember waking up,
opening my copy of Echofon in my iPhone, and seeing lots of tweets with
just an apple sign on them.</p><p>I said to myself, as I started to scroll downwards, that this was it. I
sat on the edge of the bed, realizing that it was the end of a huge
chapter for the computer industry.</p><p>That very same morning, I gave an introduction to iOS to some
developers, and of course there was a special thing to that training.
Somehow there was a legacy of the guy in every NSObject that we
allocated in memory.</p><p>Later that same month, I went to the USA and landed in Newark. While
waiting for my connecting flight, I was dragging my feet in the
terminal, and the corner of my eye saw the book in the shelves of a
bookstore.</p><p>I read it in about 5 days. There had not been a book that hook me as
much as this one in ages.</p><p>I will not go as far as saying that this was the book of the year. I
won&#8217;t add anything to what is already available online about it. It was,
without any doubt, the most hyped book of the decade. And it is a
surprisingly good one; not biased, very acid in some parts &#8211; I guess
Jobs would not have liked reading some sections of it. I picture him
throwing the book out of the window, outraged, while weeping at some
chapters.</p><p>I admit, I&#8217;ve shed some tears in some parts. All in all, a very
emotional piece, not to be missed.</p><h2><a
href="http://shop.oreilly.com/product/9780596806767.do">&#8220;JavaScript Patterns&#8221;</a>, by Stoyan Stefanov</h2><p>2011 was the year of the mobile web. Not only because some analyst said
so, but because the demand for mobile web solutions from companies has
increased dramatically in one year. Also because the capabilities of
smartphones have grown in such a way that today, web apps are a viable
choice for consumers.</p><p>This means, by all standards, that JavaScript regains a preeminence on
the web; longtime a language that was bashed and forgotten, JavaScript
reappears in front of many developers as the instrument by which the
mobile web becomes a reality.</p><p>This book is a perfect way to rediscover JavaScript; to forget the pain
of the past, to see that it is a wonderful language that, as Crockford
would say, was hugely misunderstood.</p><p>By the way, readers should have read Crockford&#8217;s &#8220;JavaScript: the Good
Parts&#8221; before this book; Stefanov builds on top of that knowledge and
provides the developer with a fresh bouquet of idioms and constructions
that will be useful in every JavaScript project.</p><p>Finally, given the rise of Node.js in the past few years, reading it
provides also with a solid background for the next wave of JavaScript
frameworks hitting the market these days.</p><h2><a
href="http://shop.oreilly.com/product/9780596807795.do">&#8220;Programming the Mobile Web&#8221;</a>, by Maximiliano Firtman</h2><p>Maximiliano is a genius. The guy has pulled the complete bible, the
absolute reference, for everything that has to do with mobile web
development. The book is a treasure of capabilities, comparisons,
history, and nitty-gritty details about every possible mobile web
browser in the planet.</p><p>How he does it, it&#8217;s his great mystery. After publishing this book, he
came up with the great <a
href="http://mobilehtml5.org/">Mobile HTML5 site</a> which, if you haven&#8217;t seen
it yet, you should.</p><p>Even better, he&#8217;s argie like I am, and I&#8217;ve had the opportunity of
inviting him to Zürich last year, to hear him talk about jQuery Mobile.
Which reminds me of&#8230;</p><h2><a
href="http://shop.oreilly.com/product/0636920014607.do">&#8220;jQuery Mobile: Up and Running&#8221;</a>, again by Maximiliano Firtman</h2><p>&#8230; his latest book; this time, Maximiliano tackled the hottest mobile
framework of the moment. I&#8217;ve read the book in &#8220;early release&#8221; mode,
prior to the final publication, and so far it looks very promising.</p><p>In this book, Maximiliano explains the core concepts of jQuery Mobile,
the semantics and the capabilities of the framework, clearly explaining
its strengths as well as its weaknesses.</p><p>I have learnt a lot about jQuery Mobile through this book, so I strongly
recommend it to anyone interested in the subject.</p><h2><a
href="http://www.smashingmagazine.com/2010/11/03/ebook-4-mobile-design-for-iphone-and-ipad/">&#8220;Mobile Design for iPhone and iPad&#8221;</a>, by Smashing Magazine</h2><p>A very nice and concise eBook by the great people of Smashing Magazine,
with great tips and tricks about how to create UIs for the new
generation of touchscreen devices. I&#8217;ve learnt a lot with this book.</p><h2><a
href="http://itunes.apple.com/us/book/ipad-at-work/id455380218?mt=11">&#8220;iPad at Work&#8221;</a>, by Apple</h2><p>Finally, a nice free eBook by Apple, very useful for explaining the iPad
and its multiple capabilities to business people; I am personally seeing
more and more iPads in enterprise contexts, so I think that this is an
important (and small) title to read.</p> ]]></content:encoded> <wfw:commentRss>http://kosmaczewski.net/best-books-of-2011/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Best Books of 2010</title><link>http://kosmaczewski.net/best-books-of-2010/</link> <comments>http://kosmaczewski.net/best-books-of-2010/#comments</comments> <pubDate>Thu, 31 Mar 2011 08:08:10 +0000</pubDate> <dc:creator>Adrian</dc:creator> <category><![CDATA[Books]]></category> <category><![CDATA[Technology]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[management]]></category> <category><![CDATA[programming]]></category> <category><![CDATA[project]]></category> <category><![CDATA[Social Networks]]></category> <category><![CDATA[Software]]></category> <guid
isPermaLink="false">http://kosmaczewski.net/?p=2288</guid> <description><![CDATA[It is that time of the year again, just like in previous years. This is the list of the books I enjoyed most in 2010! You know that I like reading at least 6 books per year, and learning a &#8230; <a
href="http://kosmaczewski.net/best-books-of-2010/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>It is that time of the year again, just <a
target="_blank" href="http://kosmaczewski.net/2008/01/23/best-books-of-2007/">like in</a> <a
target="_blank" href="http://kosmaczewski.net/2009/01/06/best-books-of-2008/">previous</a> <a
target="_blank" href="http://kosmaczewski.net/2010/02/24/best-books-of-2009/">years</a>. This is the list of the books I enjoyed most in 2010! You know that I like reading at least 6 books per year, and learning a new programming language every year. Last year&#8217;s <a
target="_blank" href="https://github.com/akosma/PracticalCommonLisp_ePub">programming language was LISP</a>, and the books, well, here they go.</p><h2>eBooks</h2><p>By all means, it is clear that 2010 was the year of the eBook. Maybe it&#8217;s because of the iPad, but I&#8217;ve been consuming more and more eBooks, even if I still enjoy buying some classics in paper form. Kindle, iPad, iBooks, Nook, GoodReader, PDF, ePub, all of those names have shaped my way of reading last year.</p><p>But one of the most visible changes of switching to eBooks was the speed of reading; consuming eBooks is fast, much faster than reading normal books. I can&#8217;t say that I prefer one or the other; it&#8217;s simply different. But reading eBooks is faster than reading paper books. Probably there&#8217;s a warmth factor in paper books, which makes me enjoy them longer, I don&#8217;t know, but the fact is, in 2010 my book reading consumption has gone up in an alarming rate.<span
id="more-2288"></span></p><h2>Reading as a Reviewer</h2><p><img
src="http://kosmaczewski.net/wp-content/uploads/2011/03/ipad_programming.jpeg" alt="Ipad programming" border="0" width="150" height="176" align="right" /> Another big change in 2010 was that, for the first time, I&#8217;ve been asked to review a book before it&#8217;s published, as a technical reviewer; and boy, what a book: it was <a
target="_blank" href="http://www.amazon.com/iPad-Programming-Daniel-H-Steinberg/dp/1934356573">iPad Programming by Daniel Steinberg and Eric Freeman</a>. I&#8217;ve started reviewing it when the iPad&#8217;s iPhone 3.2 SDK was still in beta, and I remember it was the first book I&#8217;ve read in iBooks on my iPad. It&#8217;s an awesome reference for iPhone developers who want to start developing apps for this (at the time) new device, providing both design and programming techniques.</p><p>Actually, I got the great chance to meet Daniel in person later during the <a
target="_blank" href="http://devdayforiphone.com/">DevDay for iPhone in London and Geneva</a> later, and he&#8217;s not only a great author but now too a good friend of mine.</p><h2>Physical Books</h2><p><img
src="http://kosmaczewski.net/wp-content/uploads/2011/03/cocoa_patterns.jpeg" alt="Cocoa patterns" border="0" width="150" height="193" align="left" />But not everything was eBooks in 2010; I&#8217;ve been buying paper books as well, which I love and enjoy a lot; my preferred, by all standards, is this gem called <a
target="_blank" href="http://www.amazon.com/Cocoa-Design-Patterns-Erik-Buck/dp/0321535022">Cocoa Design Patterns</a> by Erik Buck and Donald Yacktman, which I think is a mandatory read for any iOS or Mac OS X developer; it is probably one of the most important books ever written about Objective-C.</p><p>Buck and Yacktman are also the authors of the 2002 <a
target="_blank" href="http://www.cocoaprogramming.net/">Cocoa Programming</a> absolute reference <a
target="_blank" href="http://kosmaczewski.net/2005/11/05/my-bookshelf-part-i/">I&#8217;ve talked about</a> in 2005, so I&#8217;m not surprised that this new collaboration yields such an impressive volume.</p><p>Other gems I&#8217;ve read this year:</p><ul><li><a
target="_blank" href="http://37signals.com/rework/">REWORK</a> by Jason Fried and David Heinemeier Hansson;</li><li><a
target="_blank" href="http://www.amazon.com/Presentation-Zen-Simple-Design-Delivery/dp/0321525655">Presentation Zen</a> by Garr Reynolds;</li><li><a
target="_blank" href="http://www.abookapart.com/products/html5-for-web-designers">HTML5 For Web Designers</a> by Jeremy Keith (A Book Apart).</li></ul><h2>More eBooks</h2><p>Finally, the list of great eBooks I&#8217;ve read, in either ePub, PDF, Kindle or just plain websites, in no particular order:</p><ul><li><a
target="_blank" href="http://www.amazon.com/Rules-Successful-Companies-Attract-Talent/dp/0137146701">17 Rules Successful Companies Use to Attract and Keep Top Talent</a> by David Russo;</li><li><a
target="_blank" href="http://www.sensible.com/dmmt.html">Don’t Make Me Think!</a> by Steve Krug;</li><li><a
target="_blank" href="http://www.amazon.com/iPhone-Developers-Cookbook-Building-Applications/dp/0321659570">The iPhone Developer&#8217;s Cookbook</a> by Erica Sadun, 2nd edition;</li><li><a
target="_blank" href="http://www.amazon.com/iPhone-iPad-Apps-Marketing-Biz-Tech/dp/0789744279">iPhone and iPad Apps Marketing</a> by Jeffrey Hughes;</li><li><a
target="_blank" href="http://www.gigamonkeys.com/book/">Practical Common Lisp</a> by Peter Seibel, which I <a
target="_blank" href="https://github.com/akosma/PracticalCommonLisp_ePub">adapted to ePub</a> format;</li><li><a
target="_blank" href="http://mislav.uniqpath.com/poignant-guide/">_why&#8217;s poignant guide to Ruby</a> by _why the lucky stiff, also <a
target="_blank" href="https://github.com/sorah/poignant-guide-epub/">available as ePub</a> and <a
target="_blank" href="http://www.rubyinside.com/media/poignant-guide.pdf">PDF versions</a>;</li><li><a
target="_blank" href="http://www.20thingsilearned.com/home">20 Things I Learned About Browsers and the Web</a> by the Google Chrome team.</li></ul><p><a
href="http://www.flickr.com/photos/derito/5221457189/" title="Rework and HTML5 for Web Designers by Deryck O. Espinel, on Flickr"><img
src="http://farm5.static.flickr.com/4150/5221457189_593b4db508.jpg" width="500" height="304" alt="Rework and HTML5 for Web Designers"></a></p> ]]></content:encoded> <wfw:commentRss>http://kosmaczewski.net/best-books-of-2010/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Best Books of 2009</title><link>http://kosmaczewski.net/best-books-of-2009/</link> <comments>http://kosmaczewski.net/best-books-of-2009/#comments</comments> <pubDate>Wed, 24 Feb 2010 15:06:15 +0000</pubDate> <dc:creator>Adrian</dc:creator> <category><![CDATA[Books]]></category> <category><![CDATA[Technology]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[management]]></category> <category><![CDATA[programming]]></category> <category><![CDATA[project]]></category> <category><![CDATA[Software]]></category> <guid
isPermaLink="false">http://kosmaczewski.net/?p=2203</guid> <description><![CDATA[Every year I&#8217;m doing the same post (well, in 2006 I completely forgot to do it) that starts more or less with the same phrase: &#8220;every year I like to read at least 6 new tech books, and to learn &#8230; <a
href="http://kosmaczewski.net/best-books-of-2009/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><a
href="http://www.amazon.com/Software-Engineering-Contributions-Development-Practitioners/dp/047014873X%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D047014873X"><img
src="http://kosmaczewski.net/wp-content/uploads/2010/02/047014873X1.jpg" alt="047014873X.jpg" border="0" width="200" height="298" align="right" /></a> <a
target="_blank" href="http://kosmaczewski.net/2009/01/06/best-books-of-2008/">Every</a> <a
target="_blank" href="http://kosmaczewski.net/2008/01/23/best-books-of-2007/">year</a> I&#8217;m doing the same post (well, in 2006 I completely forgot to do it) that starts more or less with the same phrase: &#8220;every year I like to read at least 6 new tech books, and to learn a new programming language.&#8221;</p><p><a
target="_blank" href="http://kosmaczewski.net/2009/11/12/thoughts-about-googles-go-programming-language/">Last year&#8217;s language was Go</a>, and the books, well, here we go:</p><ul><li><a
href="http://www.amazon.com/Software-Engineering-Contributions-Development-Practitioners/dp/047014873X%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D047014873X">Software Engineering: Barry W. Boehm&#8217;s Lifetime Contributions to Software Development, Management, and Research</a></li><li><a
href="http://www.amazon.com/iPhone-Developers-Cookbook-Building-Applications/dp/0321555457%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0321555457">The iPhone Developer&#8217;s Cookbook: Building Applications with the iPhone SDK</a></li><li><a
href="http://www.amazon.com/Beautiful-Teams-Inspiring-Cautionary-Veteran/dp/0596518021%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0596518021">Beautiful Teams: Inspiring and Cautionary Tales from Veteran Team Leaders</a></li><li><a
href="http://www.amazon.com/Core-Animation-Mac-iPhone-Programmers/dp/1934356107%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1934356107">Core Animation for Mac OS X and the iPhone: Creating Compelling Dynamic User Interfaces</a></li><li><a
href="http://www.amazon.com/Pragmatic-Version-Control-Using-Starter/dp/1934356158%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1934356158">Pragmatic Version Control Using Git</a></li><li><a
href="http://www.amazon.com/4-Hour-Workweek-Escape-Live-Anywhere/dp/0307353133%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0307353133">The 4-Hour Workweek: Escape 9-5, Live Anywhere, and Join the New Rich</a></li></ul><h3><a
href="http://www.amazon.com/Software-Engineering-Contributions-Development-Practitioners/dp/047014873X%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D047014873X">Software Engineering: Barry W. Boehm&#8217;s Lifetime Contributions to Software Development, Management, and Research</a></h3><p><a
target="_blank" href="http://en.wikipedia.org/wiki/Barry_Boehm">Barry Boehm</a> is a name that might not strike a chord immediately, but if you work in the software field, it should. He has been working non-stop for the past 50 years (that&#8217;s right, 50), discussing all kind of subjects related to the practice of software engineering. This book is a compilation of his most well-known papers, with subjects ranging from project management to components, from iterative techniques to developer productivity. The guy has written about all of it, and when you realize how right he was, you wish you had read those papers earlier in your career. <span
id="more-2203"></span></p><h3><a
href="http://www.amazon.com/iPhone-Developers-Cookbook-Building-Applications/dp/0321555457%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0321555457">The iPhone Developer&#8217;s Cookbook: Building Applications with the iPhone SDK</a></h3><p><a
href="http://www.amazon.com/iPhone-Developers-Cookbook-Building-Applications/dp/0321555457%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0321555457"><img
src="http://ecx.images-amazon.com/images/I/51HunBd6F-L._SL160_.jpg" alt="" align="left" /></a>Erica Sadun is a legend in the iPhone software engineering field. Her involvement with the iPhone developer community from the very beginning (during the dark times of jailbroken iPhones) has increased since the release of the official iPhone SDK in March 2008. Her articles on <a
target="_blank" href="http://arstechnica.com/">Ars Technica</a> or <a
target="_blank" href="http://www.tuaw.com/">The Unofficial Apple Weblog</a> are epic, and her book could not be other than a masterpiece. Make no mistake: this is not a book for beginners (and, by the way, <a
target="_blank" href="http://www.amazon.com/iPhone-Developers-Cookbook-Building-Applications/dp/0321659570%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0321659570">the second edition</a> has recently been published) but it is the perfect companion for all of us who spend a life in Xcode and the SDK. I hope she will continue providing more editions of this book, particularly now that the iPad has been announced, and will be released soon.</p><h3><a
href="http://www.amazon.com/Beautiful-Teams-Inspiring-Cautionary-Veteran/dp/0596518021%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0596518021">Beautiful Teams: Inspiring and Cautionary Tales from Veteran Team Leaders</a></h3><p><a
href="http://www.amazon.com/Beautiful-Teams-Inspiring-Cautionary-Veteran/dp/0596518021%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0596518021"><img
src="http://ecx.images-amazon.com/images/I/51HE-mjYyfL._SL160_.jpg" alt="" align="right" /></a>O&#8217;Reilly has some very successful book series, like the <a
target="_blank" href="http://oreilly.com/store/series/headfirst.csp">&#8220;Head First&#8221;</a> and the &#8220;Beautiful&#8221; ones. The latter, very similar in spirit and nature to the <a
target="_blank" href="http://apress.com/book/view/1430219483">&#8220;At Work&#8221;</a> series of books by Apress, provides a series of interviews to key industry players, in different fields, highlighting real-world experiences. This book takes this approach and brings an incredible series of war stories from organizations like IBM, Media Molecule or the NASA, told by Grady Booch, Tim O&#8217;Reilly, Cory Doctorow, Steve McConnell and, yes, even Barry Boehm. This book reinforced my belief that <a
target="_blank" href="http://kosmaczewski.net/2008/08/11/saving-a-failing-project/">software is a social process</a>, and I think that you will enjoy these stories about how many well-known products we use and love (or hate) every day have been brought to market, and how their teams struggled to stay together &#8211; or how they miserably failed.</p><h3><a
href="http://www.amazon.com/Core-Animation-Mac-iPhone-Programmers/dp/1934356107%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1934356107">Core Animation for Mac OS X and the iPhone: Creating Compelling Dynamic User Interfaces</a></h3><p><a
href="http://www.amazon.com/Core-Animation-Mac-iPhone-Programmers/dp/1934356107%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1934356107"><img
src="http://ecx.images-amazon.com/images/I/41UKNBBLqaL._SL160_.jpg" alt="" align="left" /></a>The iPhone OS and Mac OS X both share a legacy of design, attention to detail and awesomeness that can be explained by the sole existence of a single set of APIs: <a
target="_blank" href="http://developer.apple.com/mac/library/documentation/cocoa/Conceptual/CoreAnimation_guide/index.html">Core Animation</a>. This library allows developers to create stunning visual effects with great performance and with just a few lines of code. The rational use of animations is considered a huge usability win, bringing context awareness to users, helping them understand what&#8217;s going on their applications and providing feedback and a &#8220;real world&#8221; feel to software. <a
target="_blank" href="http://bill.dudney.net/">Bill Dudney</a> provides here a short yet complete introduction to the concepts behind Core Animation, both for the Mac OS X and iPhone OS; all in all a must have for all Cocoa and Cocoa Touch developers.</p><h3><a
href="http://www.amazon.com/Pragmatic-Version-Control-Using-Starter/dp/1934356158%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1934356158">Pragmatic Version Control Using Git</a></h3><p><a
href="http://www.amazon.com/Pragmatic-Version-Control-Using-Starter/dp/1934356158%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1934356158"><img
src="http://ecx.images-amazon.com/images/I/519CeNsejdL._SL160_.jpg" alt="" align="right" /></a>I&#8217;ve been a happy <a
target="_blank" href="http://subversion.tigris.org/">Subversion</a> user for years. I&#8217;ve kept svn repositories for my <a
target="_blank" href="http://remproject.org/">Master&#8217;s degree work</a>, my personal documents and of course for most of my projects. However, the server-centric nature of Subversion always made me think twice before creating a repository, and not being able to browse repository contents without a specialized client was always a pain in the neck. Not to name the fact that branching in svn is harder than it should be IMHO. <a
target="_blank" href="http://git-scm.com/">Git</a> changed all of that. Creating repositories with Git is not only cheap, it&#8217;s easy and fast, and branching could not be easier. This book was the one that showed me that there was a better way, and now with my <a
target="_blank" href="http://github.com/akosma/">Github account</a>, I can&#8217;t think of any other way to handle any kind of project. This book provided the initial knowledge to get started, and I strongly recommend it to anyone who wants to learn more about Git.</p><h3><a
href="http://www.amazon.com/4-Hour-Workweek-Escape-Live-Anywhere/dp/0307353133%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0307353133">The 4-Hour Workweek: Escape 9-5, Live Anywhere, and Join the New Rich</a></h3><p><a
href="http://www.amazon.com/4-Hour-Workweek-Escape-Live-Anywhere/dp/0307353133%3FSubscriptionId%3D0F0YTN83N46JSX6KDT02%26tag%3Dakosmasoftwar-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0307353133"><img
src="http://ecx.images-amazon.com/images/I/51FSaZaVA3L._SL160_.jpg" alt="" align="left" /></a><a
target="_blank" href="http://www.fourhourworkweek.com/blog/">Tim Ferriss</a> is a strange kind of guy. He comes up with this book and tells you that you are working too much, that having a boss is killing you, and that you should be sipping margaritas in the Caribbean instead. And  then he proceeds to show you how to do it. This book is interesting in many aspects, the first of which is the irreverent tone and the complete faith the guy has in his method. I could not agree with everything he said but I have to agree with the fact that he&#8217;s really convincing. Tim believes in what he says and the book is a really funny one, and I can&#8217;t deny that reading it helped me take the final decision to start <a
target="_blank" href="http://akosma.com/">my own company</a>. So, in any case, beware! This book is dangerous :)</p> ]]></content:encoded> <wfw:commentRss>http://kosmaczewski.net/best-books-of-2009/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Epic Interview: A New Literary Genre in the Tech Section?</title><link>http://kosmaczewski.net/epic-interview-a-new-literary-genre-in-the-tech-section/</link> <comments>http://kosmaczewski.net/epic-interview-a-new-literary-genre-in-the-tech-section/#comments</comments> <pubDate>Sun, 13 Sep 2009 13:58:21 +0000</pubDate> <dc:creator>Adrian</dc:creator> <category><![CDATA[Books]]></category> <category><![CDATA[Opinion]]></category> <category><![CDATA[Technology]]></category> <category><![CDATA[interview]]></category> <category><![CDATA[trend]]></category> <guid
isPermaLink="false">http://kosmaczewski.net/?p=1926</guid> <description><![CDATA[Here&#8217;s a simple recipe: Contact the most important people in some field. Sit down and ask a similar set of questions to each one of them. Record all the interviews and then write them down. Publish the resulting book, usually &#8230; <a
href="http://kosmaczewski.net/epic-interview-a-new-literary-genre-in-the-tech-section/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Here&#8217;s a simple recipe:</p><ol><li>Contact the most important people in some field.</li><li>Sit down and ask a similar set of questions to each one of them.</li><li>Record all the interviews and then write them down.</li><li>Publish the resulting book, usually with great reviews (such as this one).</li></ol><p>This does not constitute, by any means, a new genre; but it&#8217;s certainly a fashionable one in your technical bookstore right now. At least <a
href="http://apress.com/">Apress</a> and <a
href="http://oreilly.com/">O&#8217;Reilly</a> have realized that this simple technique yields epic books.</p><p><a
href="http://kosmaczewski.net/2008/01/23/best-books-of-2007/">I have already blogged about Founders at Work</a>, thus it&#8217;s worth mentioning that <a
href="http://www.codersatwork.com/">Coders at Work</a> (which I&#8217;m reading right now) has just been released. Both books share a similar structure (as well as a similar cover), and both are highly recommendable, with <a
href="http://www.foundersatwork.com/interviews.html">interviews</a> of David Heinemeier Hansson, Steve Wozniak and Paul Buchheit for the first, and Donald Knuth, Joe Armstrong and Brendan Eich for the second.</p><p
align="center"><a
href="http://www.foundersatwork.com/"><img
src="http://kosmaczewski.net/wp-content/uploads/2009/09/founders_work.jpg" alt="founders_work" title="founders_work" width="164" height="246" class="alignnone size-full wp-image-1934" /></a> <a
href="http://www.codersatwork.com/"><img
src="http://kosmaczewski.net/wp-content/uploads/2009/09/coders_work.jpg" alt="coders_work" title="Coders at Work cover" width="167" height="246" class="alignnone size-full wp-image-1930" /></a></p><p>On the other side, O&#8217;Reilly is very well aware of the force conveyed by this kind of books: their <a
href="http://oreilly.com/store/series/theory.html">&#8220;/Theory/In/Practice&#8221; series of books</a> has some gems which, I think, are really worth reading:</p><p
align="center"><a
href="http://oreilly.com/catalog/9780596510046/"><img
src="http://kosmaczewski.net/wp-content/uploads/2009/09/beautiful_code.gif" alt="beautiful_code" title="Beautiful Code cover" width="180" height="236" class="alignnone size-full wp-image-1928" /></a> <a
href="http://oreilly.com/catalog/9780596518028/"><img
src="http://kosmaczewski.net/wp-content/uploads/2009/09/beautiful_teams.gif" alt="beautiful_teams" title="Beautiful Teams cover" width="180" height="236" class="alignnone size-full wp-image-1929" /></a> <a
href="http://oreilly.com/catalog/9780596515171/"><img
src="http://kosmaczewski.net/wp-content/uploads/2009/09/masterminds_programming.gif" alt="masterminds_programming" title="Masterminds of Programming cover" width="180" height="236" class="alignnone size-full wp-image-1932" /></a></p><p>&#8220;Beautiful Code&#8221; features interviews with Brian Kernighan, Charles Petzold and Yukihiro Matsumoto; &#8220;Beautiful Teams&#8221; (already my preferred book for 2009!) features Tim O&#8217;Reilly, Barry Boehm and Grady Booch; finally, &#8220;Masterminds&#8221; has great interviews with Bertrand Meyer, Bjarne Stroustrup, James Gosling, Brad Cox and Anders Hejlsberg.</p><p>I think that the names of the interviewees, in each of the five books, speak for themselves. In all of them, I have found inspiration, advice, tips, humour, awe and enlightenment. The good thing being that, in most cases, you don&#8217;t need a Computer Science degree to read these books; it&#8217;s just a matter of empathy and sociology. Our world is driven by software, and the stories behind its construction are not only interesting, they are also important to understand the cost, the difficulty and the wonder that constitutes a piece of working software. These books are a way to approach the immense complexity of our society.</p><p>I really look forward to read more books of this kind! If I forgot to mention any other similar book, just leave the reference in the comments section below. I&#8217;d love to read your suggestions.</p> ]]></content:encoded> <wfw:commentRss>http://kosmaczewski.net/epic-interview-a-new-literary-genre-in-the-tech-section/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Best books of 2008</title><link>http://kosmaczewski.net/best-books-of-2008/</link> <comments>http://kosmaczewski.net/best-books-of-2008/#comments</comments> <pubDate>Tue, 06 Jan 2009 13:08:30 +0000</pubDate> <dc:creator>Adrian</dc:creator> <category><![CDATA[Books]]></category> <category><![CDATA[Code]]></category> <category><![CDATA[Project Management]]></category> <category><![CDATA[.NET]]></category> <category><![CDATA[Architecture]]></category> <category><![CDATA[C++]]></category> <category><![CDATA[Cocoa]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[Open Source]]></category> <category><![CDATA[Opinion]]></category> <category><![CDATA[politics]]></category> <category><![CDATA[project]]></category> <category><![CDATA[Quality]]></category> <category><![CDATA[Ruby]]></category> <guid
isPermaLink="false">http://kosmaczewski.net/?p=1285</guid> <description><![CDATA[You might remember my beloved mantras: learning a new programming language and reading at least 6 relevant books every year. Following the 2007 edition, here&#8217;s the list of the 8 books I have enjoyed most in 2008, ordered by a &#8230; <a
href="http://kosmaczewski.net/best-books-of-2008/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><img
src="/wp-content/uploads/2009/01/geekonomics.jpg" align="left"/>You might remember my beloved mantras: <strong><a
href="/2006/03/29/a-new-programming-language-every-year/">learning a new programming language</a> and <a
href="/2005/11/05/my-bookshelf-part-i/">reading at least 6 relevant books</a> every year</strong>. Following <a
href="/2008/01/23/best-books-of-2007/">the 2007 edition</a>, here&#8217;s the list of the 8 books I have enjoyed most in 2008, ordered by a purely subjective and absolutely irrational decreasing preference. I strongly recommend all of them!</p><p><strong>Winner: <a
href="http://www.geekonomicsbook.com/">Geekonomics: The Real Cost of Insecure Software</a> by <a
href="http://blog.geekonomicsbook.com/">David Rice</a></strong></p><p><strong>Runner-up: <a
href="http://www.amazon.com/Asshole-Rule-Civilized-Workplace-Surviving/dp/0446526568">The No Asshole Rule: Building a Civilized Workplace and Surviving One That Isn&#8217;t</a> by <a
href="http://bobsutton.typepad.com/">Robert I. Sutton, PhD</a></strong></p><p>And 6 more:</p><ul><li><a
href="http://www.stevemcconnell.com/est.htm">Software Estimation: Demystifying the Black Art</a> by <a
href="http://www.stevemcconnell.com/">Steve McConnell</a></li><li><a
href="http://www.amazon.com/Modern-Design-Programming-Patterns-Depth/dp/0201704315">Modern C++ Design: Generic Programming and Design Patterns Applied</a> by <a
href="http://erdani.org/">Andrei Alexandrescu</a></li><li><a
href="http://www.phaidon.com/Default.aspx/Web/its-not-how-good-you-are-its-how-good-you-want-to-be-9780714843377">It&#8217;s Not How Good You Are, It&#8217;s How Good You Want to Be</a> by <a
href="http://www.paularden.com/">Paul Arden</a></li><li><a
href="http://oreilly.com/catalog/9780596529260/">RESTful Web Services</a> by <a
href="http://www.crummy.com/">Leonard Richardson</a> and <a
href="http://intertwingly.net/blog/">Sam Ruby</a></li><li><a
href="http://oreilly.com/catalog/9780596517748/">JavaScript: The Good Parts</a> by <a
href="http://javascript.crockford.com/">Douglas Crockford</a></li><li><a
href="http://oreilly.com/catalog/9780596529321/">Programming Collective Intelligence: Building Smart Web 2.0 Applications</a> by <a
href="http://blog.kiwitobes.com/">Toby Segaran</a></li></ul><p><span
id="more-1285"></span></p><h3>Geekonomics: The Real Cost of Insecure Software</h3><p>My big winner for 2008. If you don&#8217;t care about software quality (yet), or if you think that machines aren&#8217;t already in charge or our world, this book is for you. This has been one of the most hyped releases of 2008, and indeed, it can send a chill down your spine. Geekonomics is a lively catalog of software glitches and disasters, showing users as &#8220;crash test dummies&#8221;, describing a whole industry built upon &#8220;end user license agreements&#8221;, removing liabilities as no other industry has ever been capable of. Even the world of free and open source software is described with strong criticism.</p><p>Geekonomics sometimes feels like a desperate plea to apply <a
href="http://deming.org/">Deming</a>&#8216;s <a
href="http://www.mftrou.com/edwards-deming.html">Total Quality Management</a> principles in the world of software.</p><p>The book is interesting in several fronts. David Rice pledges for the creation of standards of quality, as well as tightening the requirement for certification of practitioners. His views are based on the United States, describing the legal framework of &#8220;tort law&#8221;, the economic foundations of &#8220;incentives&#8221; for industries, and using comparisons with other economic sectors, particularly with the automotive industry. The book is academic yet entertaining, frightening but instructive, but sometimes falling on the side of sensationalism, in my opinion. I could even say that some of Rice&#8217;s proposals are downright impossible to achieve, given the particular characteristics of the software industry, and the situation of the legal system in other parts of the world.</p><p>In any case, even if I do not particularly agree with all of his views, David Rice is right to emphasize his point strongly, giving concrete proposals, and opening the debate: the book would not have had the same impact if it had been written mildly.</p><p>Geekonomics was enlightening: it made me think about the quality of my own work in a completely different way (and prompted me to talk about it at <a
href="/projects/software-quality-barcamp/">Lausanne&#8217;s 2008 Barcamp</a>). I think that taking a time of introspection, and reading your own code with different eyes is required to realize that we are, as software developers, responsible for much of what is going on in the world. And this is the major contribution of this book.</p><h3>The No Asshole Rule: Building a Civilized Workplace and Surviving One That Isn&#8217;t</h3><p><img
src="/wp-content/uploads/2009/01/no_asshole_rule.jpg" align="right" />Some of my former colleagues will chuckle when they see this entry, because I&#8217;ve flown from a previous job a couple of years ago because of a total, complete, utter, outright and unmitigated asshole. A complete control freak, self-proclaimed genius, irresponsible jackass, who was the reason why 5 people (including me) left the place in less than 3 months.</p><p>(Guys, feel free to leave comments below ;)</p><p>More seriously, in the software industry it&#8217;s common to see that great developers are, more often than not, shy or introverted. This fact, coupled with the Swiss&#8217; legendary attitude of eternal conciliation and conflict avoidance, has the side effect of creating troubled workplaces all over the country. No wonder <a
href="http://www.letemps.ch/emploi/affichearticle.asp?artid=246483">this book made the headlines</a> last month in Switzerland. This is a huge problem which is only being revealed right now.</p><p>In any case, this book is, together with <a
href="/2005/11/20/my-bookshelf-part-iii/">Peopleware</a>, a gem of teambuilding and a real bag of tricks to avoid turnover and burnouts in your company. An absolute read to everyone involved in the creation of workplaces, in every possible industry.</p><h3>Software Estimation: Demystifying the Black Art</h3><p><img
src="/wp-content/uploads/2009/01/estimation.jpg" align="left"/>This book should be a mandatory read for every software developer, in every company, all over the world. It is a true gem, and a book that will become a <a
href="/2005/11/20/my-bookshelf-part-iii/">timeless classic</a>.</p><p>How many times have you been asked to estimate a project? To provide a deadline? To approve an estimation done by someone else? This book starts by enumerating the problems related to estimation, including those related to the definition of the word &#8220;estimation&#8221;, the politics and the economics surrounding and defining what is accepted and required, and the common traps where all of us have stumbled upon at least once. Then it provides a catalog of common estimation methods, from the most obvious to the most complex ones, including a description of their relative drawbacks and benefits.</p><p>McConnell is the author of <a
href="http://www.stevemcconnell.com/cc.htm">Code Complete</a> (which I&#8217;m re-reading these days) and <a
href="http://www.stevemcconnell.com/rd.htm">Rapid Development</a> (which I plan to read soon). This guy knows what he&#8217;s talking about, and he provides all the data required to support his claims. I cannot stress this more: if you are a project manager, a developer, a tester, an architect, or deal with software projects in some uncanny way, you <strong>have</strong> to read this book.</p><h3>Modern C++ Design: Generic Programming and Design Patterns Applied</h3><p><img
src="/wp-content/uploads/2009/01/modern_cpp.jpg" align="right" />I bought this book during the writing of my <a
href="/2008/08/28/master/">Master&#8217;s degree</a> <a
href="http://remproject.org/">dissertation project</a>. I had heard about it before, but since my project involved a lot of C++ template metaprogramming, I thought that the best idea was to check with the real experts. And boy, I&#8217;m happy I did.</p><p>This book goes beyond your common programming grounds, whichever your favorite language is. I personally enjoy writing C++ a lot, but that&#8217;s me, and your mileage may vary. Doing <a
href="http://remproject.org/2008/05/26/activerecord-and-unit-tests/">multiple inheritance mixed with template metaprogramming</a>, however, <a
href="/2008/03/13/templates/">stretches your mind</a> into the realm of what you previously considered esoteric and impossible, and that&#8217;s precisely the kind of readings that take you a long way forward.</p><p>If you are looking for a new way to write your old C++ code, or if you are asking yourself how different are C++ templates from Java or C# generics, read this book. You&#8217;ll find a lot of interesting stuff in it, with explanations related to an existing library (written by the author) called <a
href="http://loki-lib.sourceforge.net/">Loki</a>, which provides the implementation of several patterns explained in the book.</p><h3>It&#8217;s Not How Good You Are, It&#8217;s How Good You Want to Be</h3><p><img
src="/wp-content/uploads/2009/01/good.jpg" align="left"/>This little book (less than 130 pages long) was written by Paul Arden, former creative director of <a
href="http://en.wikipedia.org/wiki/Saatchi_and_Saatchi">Saatchi &amp; Saatchi</a>, a recognized advertising agency (whose &#8220;early growth was also helped by a policy of settling the invoices from small suppliers as late as possible, while promptly paying large, high-profile companies&#8221;, dixit their Wikipedia article. No comments.)</p><p>Paul Arden provides extremely interesting and pragmatic views on creativity, people management, client relationship management and other stuff; if you happen to work in a web or advertising agency, you should read this book. However, as a software developer, I think that many of his views are still applicable to our own activity, particularly when, like me, you&#8217;re beginning your own independent path. It is not always obvious how to deal with situations when you&#8217;re &#8220;in charge&#8221;, and Arden&#8217;s recommendations do help.</p><h3>RESTful Web Services</h3><p><img
src="/wp-content/uploads/2009/01/restful.jpg" align="right" />For years I thought that SOAP was the way to go. And then some <a
href="http://rubyonrails.org/activists">Rails activists</a> started talking about RESTful this, RESTful that, and well, it tickled my curiosity. It all started with <a
href="http://www.ics.uci.edu/~fielding/">Roy Fielding</a>&#8216;s <a
href="http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm">doctoral dissertation about network architectures</a>, followed by all the buzz of Web 2.0 APIs, which in the case of most startups took the form of RESTful APIs, found to be much easier to document, use and maintain than their XML-RPC or SOAP counterparts.</p><p>I read this book because of a requirement of a project where I worked at the beginning of the year, and this led to <a
href="/2008/03/05/django-rest-test-support/">several</a> <a
href="/2008/04/04/django-architecture-approaches/">blog</a> <a
href="/2008/03/26/playing-with-http-libraries/">posts</a> and even <a
href="/projects/objective-c-rest-client/">a project</a>, that are still today quite <a
href="/popular/">popular</a>. I&#8217;ve been using the RESTful approach for other projects, involving .NET, the iPhone and Cocoa on the Mac, and I would have never thought that doing network-based programming could be this fun. Looking backwards, attempts like SOAP and XML-RPC look clunky, adding layers of unneeded complexity for most projects, and creating a higher barrier of entry for new users of an API.</p><h3>JavaScript: The Good Parts</h3><p><img
src="/wp-content/uploads/2009/01/javascript.jpg" align="left"/>Douglas Crockford is head of web development at Yahoo!, and probably the person in the world that knows most about JavaScript. I&#8217;ve been reading <a
href="http://www.crockford.com/">his articles</a> since I started working in my <a
href="/projects/propano/">Propano project</a>, and then <a
href="http://video.yahoo.com/watch/630959/2974197">watching his videos</a> as soon as they became available.</p><p>His views of JavaScript as the <a
href="http://javascript.crockford.com/javascript.html">World&#8217;s Most Misunderstood Programming Language</a> helped me see this (now I think) beautiful language under a new light. And of course, I could not miss reading his short (170 pages) but extremely detailed book. I thoroughly enjoyed it and strongly recommend its reading to anyone dealing with JavaScript in any way.</p><h3>Programming Collective Intelligence</h3><p><img
src="/wp-content/uploads/2009/01/collective_int.jpg" align="right" />I love programming books focusing on solutions rather than on specific features of some language; they provide insight on how to solve problems, showing the mathematical background required to do it. This is one of them.</p><p>This book can be considered a practical handbook on statistics programming, using Python for the code examples, but providing all the required insight and theory required to understand the logic beneath every code bit. The focus on Web 2.0 applications is clear, and this book has helped more developers than the author might ever know. Social sites are the realm of networks, large numbers, big datasets and complex relationships, and the techniques described in this book can help developers get out more information about their databases. Ever wondered how LinkedIn finds out someone you might know? This book has the answer for you.</p><h3>What about you?</h3><p>I would be very pleased if you could leave, in your comments below, the reference to your own preferred books. I am sure I have missed some gems last year, but 2009 is just starting!</p> ]]></content:encoded> <wfw:commentRss>http://kosmaczewski.net/best-books-of-2008/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Adding Manpower</title><link>http://kosmaczewski.net/adding-manpower/</link> <comments>http://kosmaczewski.net/adding-manpower/#comments</comments> <pubDate>Fri, 08 Aug 2008 07:30:42 +0000</pubDate> <dc:creator>Adrian</dc:creator> <category><![CDATA[Architecture]]></category> <category><![CDATA[Books]]></category> <category><![CDATA[Papers]]></category> <category><![CDATA[Project Management]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[process]]></category> <category><![CDATA[productivity]]></category> <category><![CDATA[project]]></category> <guid
isPermaLink="false">http://kosmaczewski.net/?p=1247</guid> <description><![CDATA[Published in 1975, &#8220;The Mythical Man-Month&#8221; is considered an all-time classic in the software engineering field. The book author, Frederick P. Brooks Jr., used his experience as the project manager of the IBM System/360 and its software, the Operating System/360, &#8230; <a
href="http://kosmaczewski.net/adding-manpower/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Published in 1975, &#8220;The Mythical Man-Month&#8221; is considered an all-time classic in the software engineering field. The book author, Frederick P. Brooks Jr., used his experience as the project manager of the IBM System/360 and its software, the Operating System/360, to explain a common set of problem patterns, applicable to other software projects as well.</p><p>One of the most famous citations in the book is the one regarding the consequences of adding human resources to a late project; this article will provide a couple of thoughts about this assertion, and highlight some contrariwise opinions. <span
id="more-1247"></span> <strong>The Mythical Man-Month</strong></p><p>The second chapter of Brooks&#8217; masterpiece is named exactly as the book, &#8220;The Mythical Man-Month&#8221;; the core argument of this chapter is that the most frequent factor of project failure is schedule and time estimation. Brooks states that this is due to the fact that</p><blockquote>Men and months are interchangeable commodities only when a task can be partitioned among many workers <strong>with no communication among them.</strong> This is true of reaping wheat or picking cotton; it is not even approximately true of systems programming.
When a task cannot be partitioned because of sequential constraints, the application of more effort has no effect on the schedule. The bearing of a child takes nine months, no matter how many women are assigned.</blockquote><p>(Brooks, pages 16 &amp; 17)</p><p>The final phrase of the above paragraph is often used as a graphical depiction of the nature and meaning of Brooks&#8217; law. It implies the strong need for communication and integration existing in software projects; being social processes, software requires a strong network of communication between team members, allowing them to coordinate the inherent set of interdependencies that every project has.</p><p>After an interesting analysis of common time overrun situations, Brooks ends this chapter with the following conclusion, which contains the enunciation of the law itself:</p><blockquote>Oversimplifying otrageously, we state Brooks&#8217;s Law: <strong>Adding manpower to a late software project makes it later.</strong> This is then the demythologizing of the man-month. The number of months of a project depend upon its sequential constraints. The maximum number of men depends upon the number of independent subtasks. From these two quantities one can derive schedules using fewer men and more months. (The only risk is product obsolescence.) One cannot, however, get workable schedules using more men and fewer months. More software projects have gone awry for lack of calendar time than for all other causes combined.</blockquote><p>(Brooks, pages 25 &amp; 26)</p><p>This &#8220;law&#8221; is known and cited throughout the industry as an example of a common pattern, observed once and again in different projects all over the world:</p><blockquote><strong>Fact 3: Adding people to a later project makes it later</strong>(&#8230;)
Intuition tells us that, if a project is behind schedule, staffing should be increased to play schedule catch-up. Intuition, this fact tells us, is wrong. The problem is, as people are added to a project, time must be spent on bringing them up to speed.(&#8230;)
Furthermore, the more people there are on a project, the more the complexity of its communication rises.</blockquote><p>(Glass, page 16)</p><p>As a personal experience, I must say that the lecture of this book opened my eyes more than many, many other books. It is a funny read, but also an enlightening one: many anecdotes told by Brooks strangely correspond to my own experience, and this one is no exception. I have seen projects gone unfortunately late because of the simple fact of adding more people; and in one particular case, the project was cancelled altogether. These projects had several factors in common, though:</p><ul><li><strong>Bad documentation, or lack thereof;</strong> the only way for newcomers to the project to know what was going on was interrupting the other developers, disrupting the current operations on the project; I think that a good set of documents, describing both the high-level architecture and the low-level APIs are needed for new developers to jump in and catch up. It&#8217;s maybe not enough, but a good leap forward anyway.</li><li><strong>Lack of architectural vision;</strong> projects that do not have an architect, providing vision and technical leadership to the team, are in my opinion exposed to problems when more developers join the project. The architect can act as a proxy person, guiding new developers while they familiarize themselves with the project, isolating other developers from this task.</li><li><strong>Bad project decomposition in components;</strong> if the system to be developed is sufficiently large, and the decomposition in components is not properly done, the overlap and extended communication paths among team members might affect the whole project negatively. A good decomposition breaks down the whole project in a set of smaller ones, with the corresponding set of interfaces, which brings the whole team to work separately on different subsystems. In these, the risk of getting later for adding manpower is reduced proportionally.</li><li><strong>Bad working conditions;</strong> I positively think that open spaces are a common disease in our industry. Teams working in open spaces suffer more of noise and visual distractions, and this is more evident when new team members join the project.</li></ul><p><strong>Criticism</strong></p><p>However famous, Brooks&#8217; law has had a good deal of criticism as well, regarding the specific characteristics of projects that might be affected in case that new people is assigned to them. The OS/360 project, which served as the basis for Brooks&#8217; work, might not be similar to other projects, and as such, the law would not necessarily apply to them:</p><blockquote>For Brooks’ Law to be true, the amount of training effort required from existing staff must be significant. The amount of effort lost to training must exceed the productivity contributed by new staff when they eventually become productive. (&#8230;)
&#8220;Late&#8221; chaotic projects are likely to be much later than the project manager thinks&#8211;project completion isn’t three weeks away, it’s six months away. Go ahead and add staff. You’ll have time for them to become productive. Your project will still be later than your plan, but that’s not a result of Brooks’ Law. It’s a result of underestimating the project in the first place.(&#8230;)
Controlled projects are less susceptible to Brooks’ Law than chaotic projects. Their better tracking allows them to know when they can safely add staff and when they can’t. Their better documentation and better designs make tasks more partitionable and training less labor intensive. They can add staff later in the project with less risk to the project.</blockquote><p>(McConnell, 1999)</p><p>Scott Berkun gives a more concrete analysis on why the law could be wrong:</p><blockquote><ul><li><strong>It depends who the manpower is.</strong> The law assumes that all added manpower is equal, which is not true.</li><li><strong>Some teams can absorb more change than others.</strong> Some teams are more resiliant to change.</li><li><strong>There are worse things than being later.</strong> (&#8230;) That can be ok if you also get higher quality</li><li><strong>There are different ways to add manpower.</strong> (&#8230;) The more experience everyone has with mid-stream personnel changes, the better.</li><li><strong>It depends on why the project was late to begin with.</strong> (&#8230;) no amount of programming staff modifications will resolve the psychiatric needs of team leaders or the dysfunctions of executives.</li><li><strong>Adding people can be combined with other management action.</strong> (&#8230;) if you’re removing your worst, and most disruptive, programmer and adding one of your best, it can be a reasonable choice.</li></ul></blockquote><p>(Berkun, 2006)</p><p>And what about open source projects? Many of these (Linux, Apache, MySQL) are potentially among the biggest software projects ever undertaken, and they don&#8217;t appear to suffer o fthe problems pictured by Brooks&#8217; law:</p><blockquote>But proponents of open source and free software development, including Linux developers, are not completely satisfied with the Law. Most famously (among geeks at any rate), Eric Raymond in his &#8220;The Cathedral and the Bazaar,&#8221; declared Brooks&#8217; Law obsolete, if not simply limited, saying &#8220;if Brooks&#8217; Law were the whole picture, Linux would be impossible.&#8221;
Although Raymond now says that he has somewhat modified his views or was misunderstood, some still would say he is given to oversimplifying and outrageousness himself. &#8220;I don&#8217;t consider Brooks&#8217; Law &#8216;obsolete&#8217; any more than Newtonian physics is obsolete; it&#8217;s just incomplete. Just as you get non-Newtonian effects at high energies and velocities, you get non-Brooksian effects when transaction costs go low enough. Under sufficiently extreme conditions, these secondary effects dominate the system &#8212; you get nuclear explosions, or Linux.&#8221;</blockquote><p>(Jones, 2000)</p><p><strong>Conclusion</strong></p><p>So far, the discussion seems to be open. There might be a scale factor for projects, which in turn might expose them to be affected by Brooks&#8217; law. I think that research is needed to arrive to a conclusion, even if it will be a statistical one.</p><p>Other important facts highlighted in the book are the &#8220;second system phenomenon&#8221;, the productivity advantage of using high-level languages, and the importance of building a prototype &#8211; &#8220;one to throw away&#8221;. I can only recommend this book to everyone interested in the field of software engineering (which I did in my own review of classic books in this blog:<a
href=" http://kosmaczewski.net/2005/11/20/my-bookshelf-part-iii/"> http://kosmaczewski.net/2005/11/20/my-bookshelf-part-iii/</a> )</p><p><strong>References</strong></p><p>Berkun, S.; &#8220;Exceptions to Brooks’ Law&#8221;, January 11th, 2006, [Internet] <a
href="http://www.scottberkun.com/blog/2006/exceptions-to-brooks-law/">http://www.scottberkun.com/blog/2006/exceptions-to-brooks-law/</a> (Accessed June 8th, 2007)</p><p>Brooks Jr., F. P.; &#8220;The Mythical Man-Month &#8211; Essays on Software Engineering, Anniversary Edition&#8221;, 1995, Addison Wesley, ISBN 0-201-83595-9</p><p>Glass, R. L.; &#8220;Facts and Fallacies of Software Engineering&#8221;, Addison-Wesley, 2003, ISBN 0321117425</p><p>Jones, P.; &#8220;Brooks&#8217; Law and open source: The more the merrier?&#8221;, IBM, May 1st, 2000, [Internet] <a
href="http://www.ibm.com/developerworks/linux/library/os-merrier.html">http://www.ibm.com/developerworks/linux/library/os-merrier.html</a> (Accessed June 8th, 2007)</p><p>McConnell, S.; &#8220;Brooks&#8217; Law Repealed?&#8221;, IEEE Software, November/December 1999 [Internet] <a
href="http://stevemcconnell.com/ieeesoftware/eic08.htm">http://stevemcconnell.com/ieeesoftware/eic08.htm</a> (Accessed June 8th, 2007)</p> ]]></content:encoded> <wfw:commentRss>http://kosmaczewski.net/adding-manpower/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Blow your mind</title><link>http://kosmaczewski.net/blow-your-mind/</link> <comments>http://kosmaczewski.net/blow-your-mind/#comments</comments> <pubDate>Tue, 11 Mar 2008 21:08:13 +0000</pubDate> <dc:creator>Adrian</dc:creator> <category><![CDATA[Books]]></category> <category><![CDATA[Code]]></category> <category><![CDATA[C++]]></category> <guid
isPermaLink="false">http://kosmaczewski.net/2008/03/11/blow-your-mind/</guid> <description><![CDATA[Take a careful look at this: [source:c] include class Gadget { public: void sayHello() const { std::cout &#60;&#60; &#8220;Gadget!&#8221; &#60;&#60; std::endl; } }; class Widget { public: void sayHello() const { std::cout &#60;&#60; &#8220;Widget!&#8221; &#60;&#60; std::endl; } }; template class &#8230; <a
href="http://kosmaczewski.net/blow-your-mind/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Take a careful look at this:</p><p>[source:c]</p><h1>include <iostream></h1><p>class Gadget
{
public:
void sayHello() const
{
std::cout &lt;&lt; &#8220;Gadget!&#8221; &lt;&lt; std::endl;
}
};</p><p>class Widget
{
public:
void sayHello() const
{
std::cout &lt;&lt; &#8220;Widget!&#8221; &lt;&lt; std::endl;
}
};</p><p>template <class
T> class OpNewCreator
{
public:
T* create()
{
std::cout &lt;&lt; &#8220;Using &#8216;new&#8217;: &#8220;;
return new T;
}
};</p><p>template <class
T> class MallocCreator
{
public:
T* create()
{
std::cout &lt;&lt; &#8220;Using &#8216;malloc&#8217;: &#8220;;
void* buf = std::malloc(sizeof(T));
if (!buf) return 0;
return new(buf) T;
}
};</p><p>template <template
<class Whatever> class T, class B>
class Creator : public T<B> {
public:
void exec()
{
B* obj = this->create();
obj->sayHello();
delete obj;
}
};</p><p>typedef Creator<MallocCreator, Widget> Manager;</p><p>int main (int argc, char * const argv[])
{
Manager obj;
obj.exec();
return 0;
}
[/source]</p><p>Try changing &#8220;MallocCreator&#8221; by &#8220;OpNewCreator&#8221; and &#8220;Widget&#8221; by &#8220;Gadget&#8221; in the typedef of line 57, recompile and run; of course you can provide default values, so that</p><p>[source:c:firstline(44)]
&#8230;
template <template
<class Whatever> class T = MallocCreator, class B = Widget>
class Creator : public T<B> &#8230;
[/source]</p><p>so that you just do</p><p>[source:c:firstline(56)]
&#8230;
typedef Creator&lt;> Manager;
&#8230;
[/source]</p><p>I&#8217;ve just started reading <a
href="http://www.informit.com/store/product.aspx?isbn=0201704315">&#8220;Modern C++ Design&#8221; by Andrei Alexandrescu</a> and I&#8217;ve already my head spinning out of orbit. This is amazing (and by giving a quick look at the rest of the book, there&#8217;s even more incredible stuff there)!</p> ]]></content:encoded> <wfw:commentRss>http://kosmaczewski.net/blow-your-mind/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Best books of 2007</title><link>http://kosmaczewski.net/best-books-of-2007/</link> <comments>http://kosmaczewski.net/best-books-of-2007/#comments</comments> <pubDate>Wed, 23 Jan 2008 10:57:32 +0000</pubDate> <dc:creator>Adrian</dc:creator> <category><![CDATA[Books]]></category> <category><![CDATA[Technology]]></category> <category><![CDATA[business]]></category> <category><![CDATA[history]]></category> <guid
isPermaLink="false">http://kosmaczewski.net/2008/01/23/best-books-of-2007/</guid> <description><![CDATA[I have several mantras in my life. One of them is to learn a new programming language every year. Another one is to read at least 6 technology-related books every year. I&#8217;ve already talked about Erlang (and boy that was &#8230; <a
href="http://kosmaczewski.net/best-books-of-2007/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><img
src='/wp-content/uploads/2008/01/tcss.jpg' alt='tcss.jpg' align="left" width="200"/>I have several mantras in my life. One of them is to <a
href="/2006/03/29/a-new-programming-language-every-year/">learn a new programming language every year</a>. Another one is to <a
href="/2005/11/05/my-bookshelf-part-i/">read at least 6 technology-related books every year</a>.</p><p>I&#8217;ve already <a
href="/2007/12/19/erlang/">talked about Erlang</a> (and boy that was the most read article ever in the whole life of this blog! More than 1600 visits just for it!) so now it&#8217;s time to discuss the greatest books I&#8217;ve read in 2007 (ordered by preference, from more to less):</p><ul><li><a
href="http://www.transcendingcss.com/">Transcending CSS</a> by <a
href="http://www.stuffandnonsense.co.uk/">Andy Clarke</a></li><li><a
href="http://www.foundersatwork.com/">Founders at Work</a> by <a
href="http://www.foundersatwork.com/author.html">Jessica Livingston</a></li><li><a
href="http://blogs.msdn.com/oldnewthing/">The Old New Thing</a> by <a
href="http://en.wikipedia.org/wiki/Raymond_Chen">Raymond Chen</a></li><li><a
href="http://www.iwoz.org/book">iWoz</a> by <a
href="http://www.iwoz.org/">Steve Wozniak</a></li><li><a
href="http://www.joelonsoftware.com/articles/BestSoftwareWriting.html">Best Software Writing</a> by <a
href="http://www.joelonsoftware.com/AboutMe.html">Joel Spolsky</a></li><li><a
href="http://www.ericsink.com/bos/Business_of_Software.html">Eric Sink on the Business of Software</a> by <a
href="http://www.ericsink.com/about_author.html">Eric Sink</a></li></ul><p><span
id="more-913"></span></p><h3>Transcending CSS</h3><p><strong>My big winner for this year.</strong> It&#8217;s hard not to recommend this book enough, not only to those that work in the web design industry, but also to those that design, simply put. It&#8217;s a beautiful book. It&#8217;s a pleasure to read. It&#8217;s a surprise, a bliss and a revelation, all in one.</p><p>Andy Clarke, a well-known designer in the UK, who is also now a member of the CSS committee at the W3C, tells us that HTML can and should be semantically correct, and that you can do a lot using the standard tags already available. Stop using those &lt;DIVs&gt; everywhere! You can give your page a meaning to begin with, and then apply a style on top of it. You can find inspiration in everyday life, and you can make all of this a truly cross-browser experience without much effort. Forget about your HTML editor; use Notepad or TextEdit or gedit and discover a new world.</p><p>This book has a deeper meaning and <em>raison d&#8217;être</em>, too; <strong>the web technologies are getting to a point of maturity as of yet unseen.</strong> We can go beyond what we&#8217;ve seen so far, just sticking to standards, making meaningful designs, and caring about the user.</p><p>Absolutely enlightening.</p><h3>Founders at Work</h3><p><img
src='/wp-content/uploads/2008/01/images.jpeg' alt='images.jpeg' align="right" />This book was one of the most hyped ones in 2007. Everyone wrote about it, starting with <a
href="http://www.paulgraham.com/foundersatwork.html">Paul Graham</a>, <a
href="http://blog.guykawasaki.com/2007/03/founders_at_wor.html">Guy Kawasaki</a> or <a
href="http://www.joelonsoftware.com/items/2007/01/30.html">Joel Spolsky</a>. And <a
href="/2007/02/19/craving-to-read-back-to-commuting/">even me</a>!</p><p>Frankly, the book is really worth every bit of the hype that surrounds it. I love computer history books (<a
href="/2005/11/20/my-bookshelf-part-iii/">I already own a few of them</a>) and this one is, together with &#8220;Dealers of Lightning&#8221; the one I liked the most. The stories of how Lotus, Apple, VisiCalc, Firefox, PayPal or the BlackBerry appeared and grew are simply fascinating.</p><p>The book might have had more impact and hype in the entrepreneurial world, but I prefer to see it as a landmark history book (too). I&#8217;ve started working in the 90s, during the dot-com boom, and saw many similar patterns as those described in the book; incredible market value evaluations, products strongly marketed but born dead, and incredible stories of successes that nobody would have thought to be possible. The personal computer revolution of the 70s and the 80s has many similarities with what happened in the web revolution, and also with what happens now during the Web 2.0 hype. These are tremendous waves, that redefine the entire industry. And I think, we&#8217;re doomed to relive these again and again.</p><h3>The New Old Thing</h3><p><img
src='/wp-content/uploads/2008/01/032144030701_aa_scmzzzzzzz_v33963393_.jpg' alt='032144030701_aa_scmzzzzzzz_v33963393_.jpg' width="70" align="left"/><a
href="/2007/08/31/the-old-new-thing/">I&#8217;ve already written about this book</a>, albeit in French :) So I&#8217;ll translate what I&#8217;ve said so far there:</p><p>I&#8217;ve just finished reading The Old New Thing. The author, Raymond Chen, worked in the Windows development team since 1995 (at least) and explains the reasons behind some decisions taken during the design of different versions of Windows, since 1985 to Vista. This book is a compilation of some of the best articles in his <a
href="http://blogs.msdn.com/oldnewthing/">blog</a>.</p><p>And frankly, it&#8217;s hard to believe.</p><p>Windows Vista still has APIs used to run DOS 1.0 applications, just for the pleasure of &#8220;ad infinitum&#8221; backwards compatibility. The names of the Win32 methods are completely cryptic, impossible to remember, but Chen justifies each and every one of these oddities by different historic reasons. The registry contains informations used to change the internal behavior of the memory manager, so that Lotus 1-2-3 version 2 for Windows (1990) could work flawlessly under Vista.</p><p>I ask myself how could M$ allow such a book to be published! It makes me wish to never, ever develop software for Windows ever again, in any programming language. I strongly recommend this book, particularly if you have technical knowledge about the Linux kernel! The descriptions of the internal workings of Windows are impressive, with a level of detail never seen before.</p><h3>iWoz</h3><p><img
src='/wp-content/uploads/2008/01/039306143401_aa240_sclzzzzzzz_v38639789_.jpg' alt='039306143401_aa240_sclzzzzzzz_v38639789_.jpg' width="70" align="right"/>It is hard to argue the fact that Steve Wozniak has invented the personal computer as we know it today. If you had any doubts (even after reading his interview in &#8220;Founders at Work&#8221;), this book will wipe them away completely.</p><p>It is written by Woz himself. Wait, did I say written? This is a told story, that almost becomes a legend at the end of the book. Woz is not modest about his feat; but he does not brag about it either. He talks about his parents, his marriages, his children, Steve Jobs, the Apple I and the Apple ][, with sincerity, humor and ingenuity.</p><p>You do not need to be a fan of Apple to enjoy this book; you just need to use a computer, remember that your parents didn&#8217;t, and ask yourself, how did all of this began?</p><h3>Best Software Writing</h3><p><img
src='/wp-content/uploads/2008/01/bestsoftwarewritingi.PNG' alt='bestsoftwarewritingi.PNG'  width="70" align="left"/>This book holds the &#8220;I&#8221; numeral, but the second version has not yet been published at the time of this writing. This book is interesting in many ways; first of all, it is part of an overall tendency to write blog-based books. Joel Spolsky, Eric Sink, Raymond Chen and others are part of this trend; popular blog posts that become excellent books when put together. This book is a compilation of what Joel found the most interesting during 2004, published in agreement with the respective authors.</p><p>This book is also interesting for another reason: I consider 2004 to be a pivotal year in our industry. Subversion was released that year, as were Rails and Firefox and many other popular packages. Not only that, but the whole Web 2.0 trend can be seen as a rising to the public eye in that precise moment. The book does not explicitly show these trends, but there is an overall feeling on all the best writing for that year, that something was going on. The dot-com boom was finally behind, and new things could happen again.</p><h3>Eric Sink on the Business of Software</h3><p><img
src='/wp-content/uploads/2008/01/images-1.jpeg' alt='images-1.jpeg' align="right"/>Finally, a complete hands-on resource, useful to those seeking to start a software business (yeah, like me :) The author is Eric Sink, founder of <a
href="http://www.sourcegear.com/">SourceGear</a>, maker of <a
href="http://www.sourcegear.com/vault/">Vault</a>, a popular version control system for Windows marketed as a drop-in replacement for SourceSafe. He talks about all the aspects of running a software company: finance, technology choices, tradeoffs, human resources, everything.</p><p>Even if the book is primarily targeted to the US market (which makes some stuff useless in other parts of the world, particularly the legal stuff) I think it is worth a read, and again, Sink&#8217;s a great writer and the book is clear and concise.</p><h3>And what about 2008?</h3><p>This is what I&#8217;ve already started to read this year:</p><ul><li><a
href="http://www.oreilly.com/catalog/cb/">The Cathedral and the Bazaar</a>, by <a
href="http://www.catb.org/~esr/">Eric S. Raymond</a></li><li><a
href="http://www.pragprog.com/titles/jaerlang">Programming Erlang</a>, by <a
href="http://armstrongonsoftware.blogspot.com/">Joe Armstrong</a></li><li><a
href="http://www.pragprog.com/titles/cppsu">Prototype and script.aculo.us</a>, by <a
href="http://www.tddsworld.com/blogs/eapc/">Christophe Porteneuve</a></li></ul><p>Any suggestions for more books welcome! Feel free to leave me a comment below.</p> ]]></content:encoded> <wfw:commentRss>http://kosmaczewski.net/best-books-of-2007/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Starting with Django in Leopard</title><link>http://kosmaczewski.net/starting-with-django-in-leopard/</link> <comments>http://kosmaczewski.net/starting-with-django-in-leopard/#comments</comments> <pubDate>Wed, 09 Jan 2008 13:23:17 +0000</pubDate> <dc:creator>Adrian</dc:creator> <category><![CDATA[Books]]></category> <category><![CDATA[Django]]></category> <category><![CDATA[How to?]]></category> <category><![CDATA[Leopard]]></category> <category><![CDATA[starting]]></category> <guid
isPermaLink="false">http://kosmaczewski.net/2008/01/09/starting-with-django-in-leopard/</guid> <description><![CDATA[As I&#8217;ve written earlier, I&#8217;m playing with Django these days. It&#8217;s a refreshing change, I must say, even if I admit that I prefer Ruby&#8217;s syntax to Python&#8217;s. Of course that&#8217;s just a purely subjective impression (I&#8217;m writing this while &#8230; <a
href="http://kosmaczewski.net/starting-with-django-in-leopard/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><a
href="/2008/01/09/django-leopard-the-utf-8-error/">As I&#8217;ve written earlier</a>, I&#8217;m playing with <a
href="http://www.djangoproject.com/">Django</a> these days. It&#8217;s a refreshing change, I must say, even if I admit that I prefer Ruby&#8217;s syntax to Python&#8217;s. Of course that&#8217;s just a purely subjective impression (I&#8217;m writing this while I try to avoid the rotten tomatoes thrown by angry pythonistas reading this) that does nothing to do with the power of the Python language + framework, which is by all means absolutely impressive.</p><p>In any case, I had to install a working Django environment in my machine, and while following the excellent and free <a
href="http://www.djangobook.com/">Django Book</a> instructions, this is what I did in my Leopard installation to have it up and running (Leopard already comes bundled with Subversion 1.4.4, Python 2.5.1 and SQLite 3.4.0, so you don&#8217;t need to do anything about them): <span
id="more-1045"></span></p><ol><li>Checkout the latest version of Django from its Subversion repository:<br
/> <code>cd ~
svn co http://code.djangoproject.com/svn/django/trunk django_trunk</code> This will create a ~/django_trunk folder in your home directory.</li><li>Edit the .tcshrc file (yes, I use tcsh) with the following instructions: <code>setenv PATH /Users/adrian/django_trunk/django/bin:$PATH
setenv PYTHONPATH /Users/adrian/django_trunk</code> This will make the Django files available to your Python installation.</li><li>Open Terminal.app and cd to your ~/Desktop</li><li><a
href="/2008/01/09/django-leopard-the-utf-8-error/">Follow my instructions about how to fix the bug in Leopard&#8217;s Terminal.app</a>, which can be quite disappointing after all.</li><li>Create a new Django project: <code>django-admin.py startproject [PROJECT_NAME]</code></li><li>Start the development server: <code>python manage.py runserver [IP:PORT] [PORT]</code> By default it listens on the port 8000, so you can browse to <a
href="http://localhost:8000/">http://localhost:8000/</a> to see your fresh new system.</li></li><li>Start the command-line interface (similar to Rails&#8217; &#8220;script/console&#8221;): <code>python manage.py shell</code></li><li>If you follow the <a
href="http://www.djangobook.com/">Django Book</a> instructions, you might find that you cannot use models with &#8220;ImageField&#8221; columns; you need to install first the <a
href="http://www.pythonware.com/products/pil">Python Imaging Library</a> doing the following: <code>curl http://effbot.org/media/downloads/Imaging-1.1.6.tar.gz -o Imaging-1.1.6.tar.gz
tar xvfz Imaging-1.1.6.tar.gz
cd Imaging-1.1.6
python setup.py build
sudo python setup.py install
cd ..
rm Imaging-1.1.6.tar.gz
rm -r Imaging-1.1.6</code></li><li>That&#8217;s all!</li></ol><p>I hope this helps. Doing these steps I could have a working installation, and everything shown in the book worked perfectly well. It&#8217;s an impressive framework! I look forward to learn more about it.</p> ]]></content:encoded> <wfw:commentRss>http://kosmaczewski.net/starting-with-django-in-leopard/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>segunda edicion de &#8220;en torno a la anarquia&#8221;</title><link>http://kosmaczewski.net/enta-segunda-edicion/</link> <comments>http://kosmaczewski.net/enta-segunda-edicion/#comments</comments> <pubDate>Mon, 03 Dec 2007 06:59:22 +0000</pubDate> <dc:creator>Adrian</dc:creator> <category><![CDATA[Act Now]]></category> <category><![CDATA[Argentina]]></category> <category><![CDATA[Books]]></category> <category><![CDATA[hernún]]></category> <category><![CDATA[anarquia]]></category> <guid
isPermaLink="false">http://kosmaczewski.net/2007/12/03/enta-segunda-edicion/</guid> <description><![CDATA[hola, escribo para avisarles que ya está disponible la versión digital del libro segundo de en torno a la anarquía, un texto cuyo libro primero data de 2003 y cuyo libro segundo estoy publicando (por ahora en formato digital) ahora &#8230; <a
href="http://kosmaczewski.net/enta-segunda-edicion/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>hola,</p><p>escribo para avisarles que ya está disponible la versión digital del libro segundo de en torno a la anarquía, un texto cuyo libro primero data de 2003 y cuyo libro segundo estoy publicando (por ahora en formato digital) ahora mismo.</p><p>puede descargarse de <a
href="http://entornoalaanarquia.com.ar">entornoalaanarquia.com.ar</a> o del blog, <a
href="http://hernun.com.ar/blogs/enta">hernun.com.ar/blogs/enta</a></p><p>saludos,
h.</p><p>pd: se agradece la difusión</p> ]]></content:encoded> <wfw:commentRss>http://kosmaczewski.net/enta-segunda-edicion/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> </channel> </rss>
