http://qs321.pair.com?node_id=134361

Dear fellow Monks,
A few days ago I downloaded the latest merlyn's speech from DDJ web site (after a hint from this node), and enjoyed 58 minutes of geek talk with fascinating details about Perl's origin and present status. Very entertaining and informative. Also from my view of a non-native speaker, a surprising example of clarity. Even though merlyn speaks faster than I usually like to follow, his talk is really easy to understand. Moreover, since he praises PerlMonks in highly elogiative words, he made me feel on the right side of the technical community. Bravo!
Towards the end of the speech, merlyn triggered my immagination about quality of technical books. He mentioned that, while a plethora of excellent Perl books are available, there are several ones containing serious mistakes and misleading information. He did not expose the names, though, for fear of being accused of unfair competition, I believe.
These remarks made me think that such info should be made public. Technical books cost good money, and even though I have a job that allows me not to go broke after a foolish expense, the side damage of trusting one of such books could be a costly mistake.
It is not difficult to come across a bad book, even if you are an IT professional and an experienced reader. You can get it as a gift from somebody who doesn't know anything about computers but was convinced by the publisher's review, for example. You can buy it from the net, after reading an exciting review by some moron who apparently mistook the book for something else. Or, sometimes, you know the author from previous books that you have read and trust him to give you the same quality in his latest works. What you don't know is that the author might have had a row with his publisher and decided to retire in meditation, while the book was finished by the publisher's nephew who once attended a seminar on VB and now he feels qualified to discuss the merits of Perl because 'they are basically the same thing, Uncle, aren't they?'
Whatever the reason that brought an awful book into your house, what can you do? Throwing it up to the highest shelf or down to the basement will help healing your ego, but is is not going to keep fellow programmers from making the same mistake. Donating to the local library could be a first step, since people are always suspicious of brand new books with a stamp "Thanks to the gracious generosity of Joseph GoodHeart Jr. Esq."
But what we should really do is scream at the top of our lungs "This book sucks!", so loud that nobody interested could miss the message.

So far, I was lucky in my choice. I was relieved to see that all the ten Perl books in my shelves enjoy positive reviews in this very site. I am a cautious buyer, and if I have the chance of physically browsing the book in a real world bookstore I go rarelly mistaken. But I went through some of the above scenarios for other subjects, IT and other, whenever the circumstances kept me away from the tangible bookstores, and now, as I feel the urgency of keeping my knowledge up-to-date, I would really like to avoid some nasty surprises, especially if some of the Monks could share useful information on this respect. I am working in a place where physical bookstores are just a dream, and the net is all I have got.
As for pointing out bad books, I understand the caution of an author of popular books, who could not afford the risk of a public inimity in the publishing circles. However, there are many ways of conveying the "Don't buy that book!" message. Maybe passing factual information, privately, to somebody who doesn't have a manuscript waiting in a drawer, could allow the information to be spread throughout the Perl community, saving wannabe Perl programmers the embarassment of starting with the wrong foot.
From my side, whenever I could, I have always tried to share my misfortune with others.
I think that explicit "inverse advertising" based on factual information, such as bad grammar, broken scripts, lack of security, could be safely established in our environment and would be beneficial for most of the Perl community.

And all the above leads to this open proposal.
What about setting a voting page for books and articles? So far, we can only give our evaluation to a review if somebody has written it. If the average Monk doesn't have the time or the skills to write a complete review, but just wants to point out a few horrible things that happened to find out at his/her own expenses, (s)he should be able to do so with a "--" and a quick note.
Does anybody share my view?
 _  _ _  _  
(_|| | |(_|><
 _|       

Replies are listed 'Best First'.
Re: Reviewing bad books.
by grep (Monsignor) on Dec 26, 2001 at 14:09 UTC
    Check out reviews by Tom Christiansen. I think he is somewhat kind, but otherwise right on the mark. It's also a little dated.

    grep
    grep> cd pub 
    grep> more beer
    
Re (tilly) 1: Reviewing bad books.
by tilly (Archbishop) on Jan 04, 2002 at 06:26 UTC
    Schwern used to have a great checklist online called the Perl Book Litmus Test. While rather unscientific, it was an easily taught test which manages to catch a frightening fraction of bad books. Since the site he had it on is now dead, hopefully he won't object to my posting it here. Just open the index and answer the following questions:
    • localtime Does it state that it returns the number of years since 1900? Does it mention that when used in scalar context it returns a nicely formated date?
    • srand Check how it uses srand(). Does it warn you to call it only once in a given program? (If srand is never mentioned, that's okay)
    • Number of elements in an array Does it say that an array will return its number of elements in scalar context, or does it use $num = $#array + 1;
    • flock Does it discuss and use flock instead of lockfiles? (ie. setting some .lock file instead of using flock()) Its okay if file locking is never discussed at all.
    Grab a Perl book and try it. Wasn't that easy? It is a useful test, but too easy. It is perfectly possible to pass this test but still suck. However most bad books will fail it.

    For a more involved discussion on how to tell good from bad I would recommend reading Choosing a Perl Book by Simon Cozens.

      The Perl Book Litmus Test disappeared along with the rest of my original site when my old company, Arena Networks, went out of business and sold off its servers. But thanks to Gnat and The Internet Archive's Way Back Machine IT HAS RETURNED!
      --
      
      Michael G Schwern 	Just Another Stupid Consultant
      schwern@pobox.com	http://www.pobox.com/~schwern/
      
      I think this is very useful advice.
      It doesn't solve the problem of blindly buying from the net, for which I am entirely at the mercy of the reviewers, but it can make me more proficient at evaluating a book when I can lay my hands on it.
      Thanks.
       _  _ _  _  
      (_|| | |(_|><
       _|   
      

      Schwern has some parts (but, alas, not all) of his website available via pobox.com/~schwern/, mostly a reference to his latest module, Ima::Moron. The Perl Book Litmus Test is discussed on use Perl;, here by koschei.

      perl -MHTTP::Daemon -MHTTP::Response -MLWP::Simple -e ' ; # The $d = new HTTP::Daemon and fork and getprint $d->url and exit;#spider ($c = $d->accept())->get_request(); $c->send_response( new #in the HTTP::Response(200,$_,$_,qq(Just another Perl hacker\n))); ' # web
(shockme) Re: Reviewing bad books.
by shockme (Chaplain) on Dec 26, 2001 at 22:23 UTC
    I think this is a great idea. I really like the thought of every Perl book having its own reputation within the PM community.

    If things get any worse, I'll have to ask you to stop helping me.

Re: Reviewing bad books.
by vladb (Vicar) on Dec 27, 2001 at 21:47 UTC
    With current voting/Experience system in place, I think it shouldn't be of any difficulty to set something like that up. For one, you might start at it by simply creating a new user with a name suggestive of a book you'd like others to comment on. I know this is a crazy idea, but at the least it _is_ one ;D.

    Another approach would be to actually create a book review user (a dummy user who wouldn't care about loosing XP here and there) and write up nodes for each book. Than, a book's value could be estimated from corresponding node (where the book is discussed etc). Again, this is one of the works solutions ;D, yet it is one!

    Finally, we might petition vroom to set up a voting 'booth' for books. Hack, I (or any other monk who feels like it) could write a script to do that and post it on my vladb.perlmonk.org site. Or we could even have it go under book.perlmonk.org. ;-)


    "There is no system but GNU, and Linux is one of its kernels." -- Confession of Faith