The Design of the Book
In early 2000, Frank Willison, then Editor-in-Chief of
O'Reilly & Associates, Inc., contacted me (David
Ascher) to find out if I wanted to write a book. Frank had been the
editor for Learning Python, which I cowrote with
Mark Lutz. Since I had just taken a job at what was then considered a
Perl shop (ActiveState), I didn't have the bandwidth
necessary to write another book, and plans for the project were
gently shelved. Periodically, however, Frank would send me an email
or chat with me at a conference regarding some of the book topics
we'd discussed. One of Frank's
ideas was to create a Python Cookbook, based on
the concept first used by Tom Christiansen and Nathan Torkington with
the Perl Cookbook. Frank wanted to replicate the
success of the Perl Cookbook, but he wanted a
broader set of people to provide input. He thought that, much as in a
real cookbook, a larger set of authors would provide for a greater
range of tastes. The quality, in his vision, would be ensured by the
oversight of a technical editor, combined with
O'Reilly's editorial review
process.
Frank and Dick Hardt, ActiveState's CEO, realized
that Frank's goal could be combined with
ActiveState's goal of creating a community site for
open source programmers, called the ActiveState
Programmer's Network (ASPN). ActiveState had a
popular web site, with the infrastructure required to host a wide
variety of content, but it wasn't in the business of
creating original content. ActiveState always felt that the open
source communities were the best sources of accurate and up-to-date
content, even if sometimes that content was hard to find.
The O'Reilly and ActiveState teams quickly realized
that the two goals were aligned and that a joint venture would be the
best way to achieve the following key objectives:
Creating an online repository of Python recipes by Python programmers
for Python programmers
Publishing a book containing the best of those recipes, accompanied
by overviews and background material written by key Python figures
Learning what it would take to create a book with a different
authoring model
At the same time, two other activities were happening. First, I and
others at ActiveState, including Paul Prescod, were actively looking
for "stars" to join
ActiveState's development team. One of the
candidates being recruited was the famous (but unknown) Alex
Martelli. Alex was famous because of his numerous and exhaustive
postings on the Python mailing list, where he exhibited an unending
patience for explaining Python's subtleties and joys
to the increasing audience of Python programmers. He was unknown
because he lived in Italy and, since he was a relative newcomer to
the Python community, none of the old Python hands had ever met
him�their paths had not happened to cross back when Alex lived
in the U.S., when he was working for IBM Research and
enthusiastically using and promoting other high-level languages.
ActiveState wooed Alex, trying to convince him to move to Vancouver.
We came quite close, but his employer put some golden handcuffs on
him, and somehow Vancouver's weather
couldn't compete with Italy's. Alex
stayed in Italy, much to my disappointment. As it happened, Alex was
also at that time negotiating with O'Reilly about
writing a book. Alex wanted to write a cookbook, but
O'Reilly explained that the cookbook was already
signed. Later, Alex and O'Reilly signed a contract
for Python in a Nutshell.
The second ongoing activity was the creation of the Python Software
Foundation. For a variety of reasons, best left to discussion over
beers at a conference, everyone in the Python community wanted to
create a non-profit organization that would be the holder of
Python's intellectual property, to ensure that
Python would be on a legally strong footing. However, such an
organization needed both financial support and buy-in from the Python
community to be successful.
Given all these parameters, the various parties agreed to the
following plan:
ActiveState would build an online cookbook, a mechanism by which
anyone could submit a recipe (i.e., a snippet of Python code
addressing a particular problem, accompanied by a discussion of the
recipe, much like a description of why one should use cream of tartar
when whipping egg whites). To foster a community of authors and
encourage peer review, the web site would also let readers of the
recipes suggest changes, ask questions, and so on.
As part of my ActiveState job, I would edit and ensure the quality of
the recipes. (Alex Martelli joined the project as a co-editor as the
material was being prepared for publication.)
O'Reilly would publish the best recipes as the
Python Cookbook.
In lieu of author royalties for the recipes, a portion of the
proceeds from the book sales would be donated to the Python Software
Foundation.
|