There's a book I really want that apparently doesn't exist (yet). I wish someone could be persuaded to write it.
It could be called A Field Guide to CPAN, or maybe The Whole CPAN Catalog. Basically, I want to know more about what's available in CPAN, with an emphasis on the subset of modules that are the best/most useful, and I want to be able to learn that without needing to read an entire encyclopedia.
Ideally it would have little sidebars with commentary from some of my Perl heroes. Something I can browse through during the odd minute here and there, and also use as a reference when I want a quick take on the most-popular modules for a particular problem domain, before diving in for more-detailed research at CPAN proper.
I've heard that hfb is working on a CPAN book, and it seems possible that it might serve that purpose. It also seems possible that it will never actually be finished.
I've mentioned my desire to the good people at O'Reilly a few times, but they've apparently decided that given CPAN's kudzu-like nature, it would be impossible to keep such a book up-to-date.
So maybe it should be a Web-based resource, rather than a book. But darn it, I really want it, in whatever form. Just an extra layer of expert opinion, organized by problem domain, on what's worthwhile in CPAN. I'm tired of reinventing (rickety, square) wheels.
Sigh. I know the official answer to this: the information is out there already. I just need to commit some quality time browsing through the available CPAN structure and documentation. So yeah, I'll be doing that. I just wish there was a more efficient solution available.
1: Web Database Applications with PHP & MySQL (0596000413): 1,309
2: Mac OS X: The Missing Manual (0596000820): 1,316
3: Programming Perl (3rd Edition) (0596000278): 2,168
4: Learning Web Design : A Beginner's Guide to HTML, Graphics, and Beyond (0596000367): 2,395
5: Perl Cookbook (1565922433): 3,166
6: The Cgi/Perl Cookbook (0471168963): 3,237
7: Learning Perl, Third Edition (0596001320): 4,294
8: Perl & LWP (0596001789): 5,794
9: Beginning Perl for Bioinformatics (0596000804): 6,633
10: Object Oriented Perl (1884777791): 7,248
11: Programming the Perl DBI (1565926994): 9,320
12: Beginning Perl (1861003145): 26,231
13: CGI Programming 101 (0966942604): 35,074
14: Official Guide to Programming With Cgi.Pm (0471247448): 37,311
15: Running Weblogs with Slash (0596001002): 45,328
16: Data Munging with Perl (1930110006): 45,530
17: Perl for Web Site Management (1565926471): 48,139
This caused me to engage in some soul-searching. People like the book when they actually read it. It fills a real need, and there's an audience out there that would benefit from it. The problem is, that audience just doesn't know about it. And it doesn't seem likely that they're going to find out about it if something dramatic doesn't happen.
Which makes me think back to the conversation I had with Richard Stallman and Bradley Kuhn at the Open Source Conference in San Diego. They encouraged me to join some other O'Reilly authors who have released their books under the GPL. I gave it some thought at the time, but ultimately rejected the idea. After the insane amount of time and effort that went into writing it, it just seemed too risky. I wouldn't want to do something that would potentially weaken the book in the marketplace.
But if the book is pretty much toast in the marketplace, anyway, maybe it's not such a risk. And there's a level on which I'd just like the book to help people, regardless of whether or not I'm compensated financially for it. Also, by GPLing the book, and (probably) sticking its contents up on the Web in some sort of universally-editable format, I could address what is arguably the book's main failing (aside from its intended audience's lack of awareness of it): the fact that the code examples are clearly the product of a self-taught amateur, rather than someone who really understood what he was doing.
Please understand: the book's examples are not bad. Indeed, one of my main motivations in creating the book was to offer better examples than the really horrible stuff that beginning Perl CGI programmers seem to gravitate to, while still giving them accompanying explanations that understood where those users were coming from.
In teaching infants to talk, you don't want to talk babytalk to them, but neither do you want to read them William F. Buckley columns. There's a happy medium, where you talk to them using language that is simple and clear, but correct. My book's Perl code strives to be that, and for the most part I believe it succeeds. There are occasional places, though, where I can see now, with the benefit of the extra programming experience I've picked up, that I could have done things better. I don't doubt that more-experienced programmers could find many more such opportunities for improvement. If the book were released under the GPL, some of those experts might actually be motivated to help improve it.
Anyway, I'm going to think about this some more. Opinions invited.
I got there a little early, and after checking in with the helpful O'Reilly people at the bookstore downstairs I caught up on some email in the "Connectivity Room", which was brim full of Quicksilver G4's with 17-inch LCD displays, all running Jaguar. It was funny to see my latest personal computing setup reflected so precisely.
While answering emails and (as always) gossiping in the Ishar mud, I got to experience pathetic groupie thrills as Tom Christiansen and Damian Conway entered and left the room. Then Mark-Jason Dominus sat down next to me and started answering his email. I was going to say hi, and get a pre-emptive signature from him on my personal copy of Perl for Web Site Management (collecting signatures from all my Perl heroes was my main goal for the evening), but he seemed pretty focused on his tapping, so I left him alone. (And then failed to get his signature later, dammit.) Which leads me to Obsessed Groupie Observation #78: mjd employs an index-fingers-only hunt-and-peck typing style, staring intently at the keyboard the entire time, and, frighteningly, doing at least as well as I do with my 65-wpm touch typing.
Anyway, then I went to the book-signing, which was loads of fun. I had David Ascher, of Learning Python and the new Python Cookbook, on my right side, and Jeff Friedl, Damian Conway, Larry Wall, Jon Orwant, and Tom Christiansen on my left. Definitely Perl groupie heaven. Jeff, Damian, and Larry seemed to be getting the longest lines. There was one too many authors to fit into our stretch of counter, so mostly I hung back, occasionally trading places with David when someone showed up with my book looking for a signature. My favorite "customer" was Dave Cross, since I'd never met him in person before, and it gave me a chance to express my (completely inadequate) thanks for the wonderful review he gave my book, and for all the things he's been doing on behalf of Perl newbies.
Then it was time for my 4-hour drive home, which was something less than loads of fun, coming on top of the 3-hour drive down from my brother-in-law's I'd had that morning. After I got back, I chatted about my experience with the good folks in Ishar; what follows is a transcript of that discussion.
* * *
You return to the keyboard.
You raise your arms, celebrating your victory!
Bundar surprises you with a rousing cheer! You impressed him.
Lucy highfives you!
You smile happily.
Lucy says to you, "how was the autographing?"
You say, "it was cool."
You say, "I didn't have long lines of people waiting for my signature, like the big Perl celebrities I was standing next to, but it was still cool."
You say, "best part of the book signing, for me, was when, after having gotten most of my top Perl heroes to sign the ugly monkey for me, I went over to rms and tried to get him to sign it."
You say, "and he wouldn't, because it had a non-free copyright. But he gave me a 10-minute argument as to why I should pressure O'Reilly to switch the copyright to a truly free one."
Beck says to you, "i would have punched him in the face"
You say to Beck, "he was actually pretty nice and non-confrontational about it."
Arktos says to you, "me too"
Beck says, "i dunno"
You say to Beck, "just believed very strongly in the rightness of his position, and wanted to let me bask in the healing light of his certainty."
Arktos says to you, "i'm a fan of the free copyright right now, but thats because i'm broke"
Beck says, "i'd just be like, man, either give me the autograph or don't, i can read your schpiel online in one of the 500 million places it is"
Arktos says to you, "but thats a fucking piss poor reason not to grant an autograph"
Arktos says to you, "its not like you were asking for sex"
You say to Arktos, "he's nothing if not consistent. I actually found it kind of cool."
Whir says, "who is rms?"
Beck says, "he's the first stage of sleep"
You say to Whir, "richard stallman. founder of the free software foundation, and gnu."
Whir says, "ahh"
Bundar says to you, "Oh, I sold a couple of your books today"
Hiro says to you, "So you got to experience rms first-hand?"
You nod to Hiro.
You say to Bundar, "you _rule_."
Beck chuckles at Arktos.
Whir chuckles at Arktos.
Thrivin smacks Arktos.
You say to Hiro, "I had the same reaction as someone else I just now remembered reading, who wrote about the experience of picking stallman up and escorting him around for a linux usermeet thing: in person, he _is_ a constant salesman for the position he's advocating, but his manner is totally non-pushy."
You say to Hiro, "he's kind of christ-like. and his personal appearance helps him pull it off."
Beck says, "sounds kinda hippie-like"
You say to Beck, "yeah. he hasn't changed appreciably since the sixties, I gather."
You say to Beck, "at least not in his advocacy."
You say to Beck, "he gave off an "I'd be someone it would be okay to hang out with" sort of vibe."
You say to Hiro, "bradley kuhn was with him in the fsf booth. gave me his card, told me to contact him if o'reilly wouldn't grant me a mid-edition switch, as of the next printing (assuming there is one) to a free as in freedom license."
Beck says to you, "i dunno, for someone who can't even do something as simple as sign a book without collapsing into his personal diatribe, seems like it wouldn't be too fun to hang out with him"
You chuckle at Beck.
You say to Beck, "yeah, that's what I'm trying to say. I felt exactly the same way as you going into it, but he changed my mind by the end of the interaction."
You say, "http://www.oreillynet.com/pub/a/oscon2002/thursday_photos1.html"
Whir says, "richard stallman looks like a scary math teacher"
You say, "oh. forgot to mention the 2nd coolest part of the book signing. when it was over, linda mui said, so, any of our books you want? (the book signing was in the bookstore). so I grabbed the new 2nd edition of jeff friedl's regular expressions (burrowing owls) book."
You say, "actually, she grabbed it, and handed it to me."
You say, "linda mui is cool."
You say, "she wanted to give me more, but at that point I had like 6 books in my bag, so I was done. and I actually do have just about every book of theirs I've ever wanted."
You say, "oh, and I asked larry wall if his creating the preferred tool of script kiddies was intentional. he said he was aware going in that in order to create a tool capable of doing great good, it would also be necessary to create a tool that was capable of great evil. he was smiling as he said it."
You say, "I had two different perl book authors, both pretty good ones, inscribe in my book that they wished they'd written it."
You say, "that was nice."
You say, "both had the same initials."
You widen your eyes at Beck.
Whir highfives you!
You smile happily.
Lucy congratulates you.
You say, "the initials were D.C."
You raise an inquisitive brow at Beck.
Beck says, "uhuhu"
Beck says, "linda mui wanted to give you more"
You laugh at Beck.
Whir snickers at Beck.
Beck says, "oh, am i supposed to tell you who D.C. is?"
Beck says, "damian conway and dom christiansen?"
You say to Beck, "1 for 2."
You say to Beck, "damian conway and dave cross."
Beck says, "what did dave cross do?"
You say, "wrote Data Munging with Perl, and has been generally active in promoting the cause of newbie Perl users."
You say to Beck, "damian wrote in my book, To John, How I wish I'd written this book!"
You say, "while dave wrote, It's the book I wanted to write."
You say, "I believe dave was sincere in saying that. I'm sure damian was joking, but it was still a nice inscription."
Beck says, "can i sign your book?"
You say to Beck, "yes, i would be honored."
You say to Beck, "everyone mentioned in the acknowledgements gets to sign the book."
Beck says, "Dear Tommy, It was a good year. Hope you have a good summer! See you later!"
You laugh at Beck.
Lucy chuckles at Beck.
You say, "wow. actually, it might really be in my interest to copyleft my book."
You say, "I can milk it for publicity. like, say, another slashdot story."
You grin evilly.
Avatar says, "copyleft?"
You say to Avatar, "here's my book in full-text form, on computer. you can copy it and modify it and reproduce it as you see fit, provided you keep my copyright intact and don't restrict others from doing the same with your version."
As part of the same spasm of book-promotion activity that led me to beg Dave K. to write and submit that review, I had asked Dave Cross if he would be willing to do the same, and his review is now available for reading at either of these locations:
I feel extremely grateful to both Daves, both for their being willing to take the time to read and write reviews of the book, and for the really nice things they chose to say about it. This is definitely one of the best parts about having written the thing.
You guys rule. Thanks again.
And nothing happened. No one noticed.
Reality is like that, I guess. So I went back to my day job, and time passed, and I had a few minutes to kill yesterday, so I went to Google and looked to see what was up with people referring to my book, and lo and behold, a few people had.
Like hfb, who pointed out its existence to davorg in response to his journal entry proposing a book that is, I think, pretty darn close to what I was trying to do with mine. Sadly, I wasn't paying attention at the time, so I missed my chance to chime in.
(Note to self: If suddenly find self in alternate reality in which not happily married, undesirable, and with no particular reason to think she'd respond at all favorably, remember to propose marriage to hfb.)
And I found a few reviews on the Web. Like this one, which is short but very positive, and this one, which is much more detailed, and finds fault in several areas, while still being positive enough to make me happy.
Meanwhile, my obsessively-monitored rankings at that evil bookseller's site continue to show the book to be largely unpurchased. And I have to think, based on the nice things people have said when they've actually looked at it, that it's just that nobody knows the thing exists, or assumes (as davorg appears to) that it's something different than it actually is. Or maybe it's that its intended audience doesn't obsessively track the latest O'Reilly offerings, like I do.
Oh well. Sigh. Back to reality.