Preface
Why Write This Book?
At parties, people no longer give me a blank stare when I tell
them I work in open source software. "Oh, yes — like Linux?"
they say. I nod eagerly in agreement. "Yes, exactly! That's what I
do." It's nice not to be completely fringe anymore. In the past, the
next question was usually fairly predictable: "How do you make money
doing that?" To answer, I'd summarize the economics of free software:
that there are organizations in whose interest it is to have certain
software exist, but that they don't need to sell copies, they just
want to make sure the software is available and maintained, as a tool
instead of as a rentable monopoly.
The next question is not always about money, though. The
business case for open source softwareThe terms "open
source software" and "free software" are essentially synonymous in
this context; they are discussed more in . is no longer so
mysterious, and even non-programmers already understand — or at
least are not surprised — that there are people employed at it
full time. Instead, the next question is often "Oh, what's
that like?"
I didn't have a satisfactory answer ready, and the harder I
tried to come up with one, the more I realized how complex a topic it
really is. Running a free software project is not exactly like
running a business (imagine having to constantly negotiate the nature
of your product with a group of random people of diverse motivations
and interests, most of whom you've never met!).
Nor, for various reasons, is it exactly like running a
traditional non-profit organization, nor a government. It has
similarities to all these things, but I have slowly come to the
conclusion that free software is sui
generis. There are many things with which it can be
usefully compared, but none with which it can be equated. Indeed,
even the assumption that free software projects can be "run" is a
stretch. A free software project can be started,
and it can be influenced by interested parties.
But its assets cannot be made the property of any single owner, and as
long as there are people somewhere — anywhere — interested in
continuing it, it can never be unilaterally shut down. Everyone has
infinite power; everyone has no power. It's an interesting situation.
That is why I wanted to write this book in the first place, and,
a decade later, wanted to update it. Free software projects have
evolved a distinct culture, an ethos in which the liberty to make the
software do anything one wants is a central tenet. Yet the result of
this liberty is not a scattering of individuals each going their own
separate way with the code, but enthusiastic collaboration and frequent compromise.
Indeed, competence at cooperation itself is one of the most highly valued
skills in free software. To manage these projects is to engage in a
kind of hypertrophied cooperation, where one's ability not only to
work with others but to come up with new ways of working together can
result in tangible benefits to the software and the community that develops it. This book attempts to
describe the techniques by which this may be done. It is by no means
complete, but it is at least a beginning.
Good free software is a worthy goal in itself, and I hope that
readers who come looking for ways to achieve it will be satisfied with
what they find here. But beyond that I also hope to convey something
of the sheer pleasure to be had from working with a motivated team of
open source developers, and from interacting with users in the
wonderfully direct way that open source encourages. Participating in
a successful free software project is a deep pleasure, and ultimately
that's what keeps the whole system going.
Who Should Read This Book?
This book is meant for managers and software developers who are
considering starting an open source project, or who have started one
and are wondering what to do now. It should also be helpful for
people who just want to participate in an open source project but have
never done so before.
The reader need not be a programmer, but should know basic
software engineering concepts such as APIs, source code, compilers, and
patches.
Prior experience with open source software, as either a user or
a developer, is not necessary. Those who have worked in free software
projects before will probably find at least some parts of the book a
bit obvious, and may want to skip those sections. Because there's
such a potentially wide range of audience experience, I've made an
effort to label sections clearly, and to say when something can be
skipped by those already familiar with the material.
Sources
Much of the raw material for the first edition of this book came
from five years of working with the Subversion project (http://subversion.apache.org/).
Subversion is an open source
version control system, written from scratch, which was intended to (and did for a while) replace
CVS as the de facto version control
system of choice in the open source
community.Subversion was eventually supplanted by Git,
one of several systems that implement "distributed version control",
a style of working that is better suited to collaborative development
than Subversion's centralized model. The project was
started by my employer, CollabNet (http://www.collab.net/), in early 2000,
and thank goodness
CollabNet understood right from the start how to run it as a truly
collaborative, distributed effort. We got a lot of
developer buy-in early on; today the majority of developers on the
project are not CollabNet employees.
Subversion is in many ways a classic example of an open source
project, and I ended up drawing on it more heavily than I originally
expected. This was partly a matter of convenience: whenever I needed
an example of a particular phenomenon, I could usually call one up
from Subversion right off the top of my head. But it was also a
matter of verification. Although I am involved in many other free software
projects to varying degrees, and talk to colleagues
involved in many more, one quickly realizes when writing for print
that all assertions need to be fact-checked. I didn't want to make
statements about events in other projects based only on what I could
read in their public discussion archives. If someone were to try
that with Subversion, I knew, she'd be right about half the time and
wrong the other half. So when drawing inspiration or examples from a
project with which I didn't have direct experience, I tried to first
talk to an informant there, someone I could trust to explain what was
really going on.
While Subversion was my full time job from 2000-2006, I've been
involved in free software for more than twenty-five years. Other projects and organizations that have influenced
this book include:
The GNU Emacs text editor project at the Free
Software Foundation.
Concurrent Versions System (CVS), which I worked on
intensely in 1994–1995 with Jim Blandy and was
involved with intermittently for a few years afterwards.
The collection of open source projects known as the
Apache Software Foundation, especially the Apache Portable
Runtime (APR) and Apache HTTP Server.
The Launchpad.net project at Canonical, Ltd.
Code for America and O'Reilly Media, which gave me
an inside view on open source civic technology development
starting in 2010, and kindly kept me in the loop after I
became a full-time consultant at Open Tech Strategies, LLC
around 2012.
The many open source anti-surveillance and
censorship-circumvention tools supported by the Open
Internet Tools Project (OpenITP.org) and by the Open
Technology Institute at the New America Foundation.
Checkbook NYC, the municipal financial transparency
software released by the New York City Office of the
Comptroller.
The Arches Project, an open source geospatial web
application for inventorying and helping protect cultural
heritage sites (e.g., historic buildings, archaeological
sites, etc), created by the Getty Conservation Institute
and World Monuments Fund.
OpenOffice.org / LibreOffice.org, the Berkeley
Database from Sleepycat, and MySQL Database; I have not been
involved with these projects personally, but have observed
them and, in some cases, talked to people there.
Likewise various projects at the Mozilla Corporation,
including but not limited to the Firefox web browser.
GNU Debugger (GDB) (likewise).
The Debian Project (likewise).
The Hypothes.is Project (likewise).
This is far from a complete list. Many of the client
projects I work with through our consulting practice at Open Tech
Strategies, LLC have also influenced this book, and like most open source
programmers, I keep loose tabs on a variety of different projects of
interest to me, just to have a sense of the general state of things.
I haven't named all of them here, but they are mentioned in the text
where appropriate.
Acknowledgements
For the first edition (2005)
This book took four times longer to write than I thought it
would, and for much of that time felt rather like a grand piano
suspended above my head wherever I went. Without help from many
people, I would not have been able to complete it while staying
sane.
Andy Oram, my editor at O'Reilly, was a writer's dream. Aside
from knowing the field intimately (he suggested many of the topics),
he has the rare gift of knowing what one meant to say and helping one
find the right way to say it. It has been an honor to work with him.
Thanks also to Chuck Toporek for steering this proposal to Andy right
away.
Brian Fitzpatrick reviewed almost all of the material as I wrote
it, which not only made the book better, but kept me writing when I
wanted to be anywhere in the world but in front of the computer. Ben
Collins-Sussman and Mike Pilato also checked up on progress, and were
always happy to discuss — sometimes at length — whatever topic
I was trying to cover that week. They also noticed when I slowed
down, and gently nagged when necessary. Thanks, guys.
Biella Coleman was writing her dissertation at the same time
I was writing this book. She knows what it means to sit down and
write every day, and provided an inspiring example as well as a
sympathetic ear. She also has a fascinating anthropologist's-eye view
of the free software movement, giving both ideas and references that I
was able use in the book. Alex Golub — another anthropologist
with one foot in the free software world, and also finishing his
dissertation at the same time — was exceptionally supportive early
on, which helped a great deal.
Micah Anderson somehow never seemed too oppressed by his own
writing gig, which was inspiring in a sick, envy-generating sort of
way, but he was ever ready with friendship, conversation, and (on at
least one occasion) technical support. Thanks, Micah!
Jon Trowbridge and Sander Striker gave both encouragement and
concrete help — their broad experience in free software provided
material I couldn't have gotten any other way.
Thanks to Greg Stein not only for friendship and well-timed
encouragement, but for showing the Subversion project how important
regular code review is in building a programming community. Thanks
also to Brian Behlendorf, who tactfully drummed into our heads the
importance of having discussions publicly; I hope that principle is
reflected throughout this book.
Thanks to Benjamin "Mako" Hill and Seth Schoen, for various
conversations about free software and its politics; to Zack Urlocker
and Louis Suarez-Potts for taking time out of their busy schedules to
be interviewed; to Shane on the Slashcode list for allowing his post
to be quoted; and to Haggen So for his enormously helpful comparison
of canned hosting sites.
Thanks to Alla Dekhtyar, Polina, and Sonya for their unflagging
and patient encouragement. I'm very glad that I will no longer have
to end (or rather, try unsuccessfully to end) our evenings early to go
home and work on "The Book."
Thanks to Jack Repenning for friendship, conversation, and a
stubborn refusal to ever accept an easy wrong analysis when a harder
right one is available. I hope that some of his long experience with
both software development and the software industry rubbed off on this
book.
CollabNet was exceptionally generous in allowing me a flexible
schedule to write, and didn't complain when it went on far longer than
originally planned. I don't know all the intricacies of how
management arrives at such decisions, but I suspect Sandhya Klute, and
later Mahesh Murthy, had something to do with it — my thanks to
them both.
The entire Subversion development team has been an inspiration
for the past five years, and much of what is in this book I learned
from working with them. I won't thank them all by name here, because
there are too many, but I implore any reader who runs into a
Subversion committer to immediately buy that committer the drink of
their choice — I certainly plan to.
Many times I ranted to Rachel Scollon about the state of the
book; she was always willing to listen, and somehow managed to make
the problems seem smaller than before we talked. That helped a
lot — thanks.
Thanks (again) to Noel Taylor, who must surely have wondered why
I wanted to write another book given how much I complained the last
time, but whose friendship and leadership of Golosá helped keep
music and good fellowship in my life even in the busiest times.
Thanks also to Matthew Dean and Dorothea Samtleben, friends and
long-suffering musical partners, who were very understanding as my
excuses for not practicing piled up. Megan Jennings was constantly
supportive, and genuinely interested in the topic even though it was
unfamiliar to her — a great tonic for an insecure writer. Thanks,
pal!
I had four knowledgeable and diligent reviewers for this book:
Yoav Shapira, Andrew Stellman, Davanum Srinivas, and Ben Hyde. If I
had been able to incorporate all of their excellent suggestions, this
would be a better book. As it was, time constraints forced me to pick
and choose, but the improvements were still significant. Any errors
that remain are entirely my own.
My parents, Frances and Henry, were wonderfully supportive as
always, and as this book is less technical than the previous one, I
hope they'll find it somewhat more readable.
Finally, I would like to thank the dedicatees, Karen Underhill
and Jim Blandy. Karen's friendship and understanding have meant
everything to me, not only during the writing of this book but for the
last seven years. I simply would not have finished without her help.
Likewise for Jim, a true friend and a hacker's hacker, who first
taught me about free software, much as a bird might teach an airplane
about flying.
For the second edition (2023)
The acknowledgements for the second edition of this book include
more people and, undoubtedly, more unintentional omissions. If your
name should be here but is not, please accept my apologies (and let me
know, because we can at least fix the online copy).
Andy Oram of O'Reilly Media once again went above and beyond the
call of duty as an editor. He read closely and made many excellent
recommendations; his expertise both in expository writing in general
and in open source in particular were apparent in all his comments. I
can't thank him enough, and the book is much improved for his
attention.
James Vasile has been my friend and colleague for well over a decade
now, yet not a week goes in which I don't learn something new from
him. Despite having a busy job — I know firsthand,
because we're business partners — and young children at
home, he unhesitatingly volunteered to read through the manuscript and
provide feedback. Money can't buy that, and even if it could, I could
never afford James. Thanks, pal.
Cecilia Donnelly is both a wonderful friend and was a supremely
capable Open Source Specialist at the Open Tech Strategies office in
Chicago. It's a delight to be working with her, as our clients know
too, and her clear thinking and sharp observations have influenced
many parts of this book.
Karen Sandler has been unfailingly supportive, and provided
thoughtful and patient discussion about many of the topics (and even
some of the specific examples) in this book. As with James, I usually
learn something from Karen when we talk about free software, and when
we talk about other things too.
Bradley Kuhn's name appears several times in the commit logs for
this book, because he provided highly expert feedback on multiple
occasions, in one case practically writing the patch himself. As I
wrote in the log message for one of the commits, he is someone "whose
contributions to free software have been immeasurable and whose
dedication to our shared cause is a constant inspiration".
Karen and Bradley both work at the Software Freedom Conservancy
(https://sfconservancy.org/).
If you like this book and you want to help free software, donating to
the Conservancy is a fine first step. It's also a fine second
step.
Ben Reser provided a super-detailed and expert review of Chapters
6 and 7 that resulted in many improvements. Ben, thank you so much.
Michael Bernstein not only provided some detailed feedback
during the interregnum between the first and second editions, he also
helped a lot with organizing the Kickstarter campaign that made the
latter possible. Thank you, Michael.
Danese Cooper always keeps me on my toes, and in particular
brought me the message (which I was not at first willing to hear) that
innersourcing can work as a means of helping
organizations learn open source practices and eventually produce open
source software themselves. Thanks for that, Danese, and much
else.
Between the two editions, I spent a very educational stretch of
time working at O'Reilly Media, Code for America / Civic Commons
(while ensconced in the Open Plans office in New York City, thanks to
their very kind offer of desk space), and the New America Foundation
as Open Internet Tools Project Fellow. Much of what I learned through
that work ended up in the book, and in addition to the organizations
themselves I thank Tim O'Reilly, Jen Pahlka, Andrew McLaughlin, Philip
Ashlock, Abhi Nemani, Nick Grossman, Chris Holmes, Frank Hebbert, and
Andrew Hoppin for the ideas and perspectives they shared.
Sumana Harihareswara and Leonard Richardson have given frank and
helpful commentary about various open source goings-on over the years;
the book is better for their input, and I am the better for their
friendship.
Eben Moglen at the Software Freedom Law Center (https://softwarefreedom.org/)
taught me a lot about how to look at free software as a large-scale
social and economic phenomenon, and about how companies view free
software. He also provided a private working space on a few occasions
when it really made a difference. Thank you, Eben.
I do not understand how Dr. David A. Wheeler makes time to
answer my occasional questions when he is in demand from so many other
people as well, but he does, and his answers are always spot-on and
authoritative. Thanks as always, David.
Breena Xie's interest in open source led swiftly to trenchant
questions about it. Those questions were helpful to me in thinking
through certain topics in the book, but so was her patience on those
occasions when the book demanded more time than it should have (by
which I mean "than I said it would"). Thank you, Breena.
Many thanks to Radhir Kothuri and the rest of the HackIllinois
2017 crew, who provided a very timely motivational boost when they
proposed doing a print run of the new edition for their event at the
University of Illinois at Urbana-Champaign, Illinois in February 2017.
I appreciate the vote of confidence in the book, and hope the
HackIllinois attendees will be pleased with the results.
Camille Bégnis of http://neodoc.biz/ provided expert DocBook help in real time
one day, solving a long-standing technical problem in the online
version of the book that I'd been unable to fix for years. Merci
beaucoup, Camille.
My friend Jason A. Owen also provided timely and wonderfully
thorough help with some DocBook formatting issues and with the build
process, and is the reason it is now possible to generate PDFs of this
book suitable for printing on different page sizes. Independently of
that, Jason has been a valued collaborator on many open source
projects, and raises standards wherever he's involved. Thank you,
Jason.
Near the end of the preparation of the second edition, I
realized that the text badly needed a complete read-through, for typos
of the sort that can't easily be caught by automated means, and for
various expressive infelicities that I knew had crept in but couldn't
detect myself. Corin Duey undertook this task with good cheer and
magnificent attention to detail, and the book is noticeably improved
as a result. Corin, thank you so much.
The hardest part of these acknowledgements is realizing there
will never be enough space to do justice to all the knowledge people
have shared in the decade and a half since the first edition came out. I've been
working in open source the whole time since then, and have had
illuminating conversations with many clients, partners, interviewees,
expert consultants, and fellow travelers; some of them have
occasionally sent in concrete improvements to the book, too. I can't
imagine what this new edition would be without the benefit of that
collective mind, and will try to list some of those people below. I'm
sure the list is incomplete, and I apologize for that. For what it's
worth, I used a program to randomize the order, and accepted its first
output:
Nithya Ruff,
Jenn Brandel,
Joseph Lorenzo Hall,
Ben Wyss,
Kit Plummer,
Mark Atwood,
Vivien Deparday,
Sebastian Benthall,
Martin Michlmayr,
Derek Eder,
Hyrum Wright,
Stefano Zacchiroli,
Dan Risacher,
Stephen Walli,
Simon Phipps,
Francis Ghesquiere,
Sanjay Patil,
Tony Sebro,
Matt Doar,
Deb Nicholson,
Jon Phillips,
David Robinson,
Nathan Toone,
Alolita Sharma,
Jim McGowan,
Florian Effenberger,
Brian Warner,
Cathy Deng,
Allison Randal,
Ariel Núñez,
Jeremy Allison,
Thorsten Behrens,
Deb Bryant,
Zaheda Bhorat,
Holly St. Clair,
Jeff Ubois,
Dustin Mitchell,
Dan Schultz,
Luis Villa,
Jon Scott,
Dave Neary,
Mike Milinkovich,
Wolf Peuker,
Paul Holland,
Keith Casey,
Christian Spanring,
Bishwa Pandey,
Scott Goodwin,
Vivek Vaidya,
David Eaves,
Ed Sokolowski,
Chris Aniszczyk,
David Hemphill,
Emma Jane Hogbin Westby,
Ben Sheldon,
Guy Martin,
Michael Downey,
Charles-H. Schulz,
Vitorio Miliano,
Paul Biondich,
Richard Fontana,
Philip Olson,
Leslie Hawthorn,
Harlan Yu,
Gerard Braad,
Daniel Shahaf,
Matthew Turk,
Mike Hostetler,
Waldo Jaquith,
Jeffrey Johnson,
Eitan Adler,
Mike Linksvayer,
Smiljana Antonijevic,
Brian Aker,
Ben Balter,
Conan Reis,
Dave Crossland,
Nicole Boone,
Brandon Keepers,
Leigh Honeywell,
Tom "spot" Callaway,
Andy Dearing,
Scott Clark,
Tina Coleman,
William A Rowe Jr.,
Matthew McCullough,
Stuart Gill,
Robert Soden,
Chris Tucker,
Noel Hidalgo,
Mark Galassi,
Chris DiBona,
Gerhard Poul,
Christopher Whitaker,
James Tauber,
Justin Kestelyn,
Nadia Eghbal,
Mel Chua,
Tony Wasserman,
Robert Douglass,
Simone Dalmasso,
John O'Nolan,
Tom Marble,
Patrick Masson,
Arfon Smith,
Forest Gregg,
and Molly de Blanc.
The 2nd edition rewrite was funded through a Kickstarter
campaign. The response to that campaign was swift and generous, and
I'm immensely grateful to all the people who pledged. I hope they
will forgive me for taking almost four times longer than expected to
finish the revisions. Every backer of the campaign is acknowledged
below, using the name they provided via Kickstarter. The list is in
either ascending or descending order by pledge size, but I'm not going
to say which, because a little mystery should be retained in these
matters:
Pablo,
Cameron Colby Thomson,
Bethany Sumner,
Michael Lefevre,
Maxim Novak,
Adrian Smith,
Jonathan Corwin,
Laurie Voss,
James Williams,
Chris Knadler,
Zael,
Kieran Mathieson,
Teresa Gonczy,
Poramate Minsiri,
j. faceless user,
Michael,
Isaac Davis aka Hedron A. Davis,
James Dearing,
Kyle Simpson,
Laura Dragan,
Hilary Mason,
Tom Smith,
Michael Massie,
Erin Marchak,
Micke Nordin,
Xavier Antoviaque,
Michael Dudley,
Raisa,
Paul Booker,
Jack Moffitt,
Aaron Shaw,
maurine stenwick,
Ivan Habunek,
G. Carter Stokum,
Barry Solow,
mooware,
Harish Pillay,
Jim Randall,
Holger S.,
Alan Joseph Williams,
Erik Michaels-Ober,
David Parker,
Nick,
Niko Felger,
Fred Trotter,
Dorai Thodla,
William Theaker,
Hans Bakker,
Brad,
Bastien Guerry,
Miles Fidelman,
Grant Landram,
Michael Rogers,
mostsignificantbit,
Olivier Berger,
Fernando Masanori Ashikaga,
Naomi Goldenson,
Brian Fitzpatrick,
Eric Burns,
Mark V. Albert,
micah altman,
Richard Valencia,
Cody Bartlett Heisinger,
Nick Grossman,
cgoldberg,
Mike Linksvayer,
Simon Phipps,
Yoshinari Takaoka,
Christian Spanring,
Ross M Karchner,
Martin Karlsson,
Kaia Dekker,
Nóirín Plunkett,
Emma Jane,
Helior Colorado,
Fred Benenson,
George V. Reilly,
Lydia Pintscher,
Noel Hidalgo,
Albert White,
Keng Susumpow,
Mattias Wingstedt,
Chris Cornutt,
Zak Greant,
Jessy Kate Schingler,
James Duncan Davidson,
Chris DiBona,
Daniel Latorre,
Jeremiah Lee Cohick,
Jannis Leidel,
Chris Streeter,
Leonard Richardson,
Terry Suitor,
Trevor Bramble,
Bertrand Delacretaz,
John Sykora,
Bill Kendrick,
Emmanuel Seyman,
Paolo Mottadelli,
Gabriel Burt,
Adrian Warman,
Steve Lee,
Andrew Nacin,
Chris Ballance,
Ben Karel,
Lance Pollard,
richardj,
Brian Land,
Jonathan Markow,
Kat Walsh,
Jason Orendorff,
Jim Garrison,
Jared Smith,
Sander van der Waal,
Karen Sandler,
Matt Lee,
John Morton,
Frank Warmerdam,
Michael R. Bernstein,
John Yuda,
Jack Repenning,
Jonathan Sick,
Naser Sharifi,
Cornelius Schumacher,
Yao-Ting Wu,
Camille Acey,
Greg Grossmeier,
Zooko Wilcox-O'Hearn,
Joe,
Anne Gentle,
Mark Jaquith,
Ted Gould,
James Schumann,
Falkvinge,
Schuyler Erle,
Gordon Fyodor Lyon,
Tony Meyer,
Salvador Torres,
Dustin J. Mitchell,
Lindy Klein,
Dave Stanton,
Floyd DCosta,
Agog Labs,
Adrià Mercader,
KIMURA Wataru,
Paul Cooper,
alexML,
Stefan Heinz,
maiki,
BjornW,
Matt Soar,
Mick Thompson,
mfks,
Sebastian Bergmann,
Michael Haggerty,
Stefan Eggers,
Veronica Vergara,
Bradley Kuhn,
Justin Tallant,
dietrich ayala,
Nat Torkington,
David Jeanmonod,
Randy Metcalfe,
Daniel Kahn Gillmor,
George Chamales,
Erik Möller,
Tim Schumacher,
Koichi Kimura,
Vanessa Hurst,
Daniel Shahaf,
Stefan Sperling,
Gunnar Hellekson,
Denver Gingerich,
Iliana Weller,
adam820,
Garance Drosehn,
Philip Olson,
Matt Doar,
Brian Jepson,
J Aaron Farr,
Mike Nosal,
Kevin Hall,
Eric Sinclair,
Alex Rudnick,
Jim Brucker,
PEI-HAN LEE,
Michael Novak,
Anthony Ferrara,
Dan Scott,
Russell Nelson,
Frank Wiles,
Alex Gaynor,
Julian Krause,
termie,
Joel McGrady,
Christian Fletcher Smith,
Mel Chua,
William Goff,
Tom Liesenfeld,
Roland Tanglao,
Ross Gardler,
Gervase Markham,
Ingo Renner,
Rochelle Lodder,
Charles Adler,
Dave Hylands,
Daryn Nakhuda,
Francois Marier,
Kendric Evans,
Greg Price,
Carlos Martín Nieto,
Greg Stein,
Glen Ivey,
Jason Ray,
Ben Ubois,
Landon Jones,
Jason Sperber,
Brian Ford,
Todd Nienkerk,
Keith Casey,
Leigh Honeywell,
Aaron Jorbin,
Christoph Hochstrasser,
Miguel Ponce de Leon,
Dave Neary,
Eric Lawrence,
Dirk Haun,
Brian Burg,
Brandon Kraft,
Praveen Sinha,
ML Cohen,
Christie Koehler,
Ethan Jucovy,
Lawrence S Kemp,
Justin Sheehy,
Jonathan Polirer,
Ronan Barzic,
Greg Dunlap,
Darcy Casselman,
Jeremy G Kahn,
Sam Moffatt,
James Vasile,
Simon Fondrie-Teitler,
Mario Peshev,
Alison Foxall,
Jim Blandy,
Brandon Satrom,
Viktor Ekmark,
Tor Helmer,
Jeff Ubois,
Gabriela Rodriguez,
James Tait,
Michael Parker,
Stacy Uden,
Peter Martin,
Amy Stephen,
James Tauber,
Cameron Goodale,
Jessica,
Ben Sheldon,
Forest Gregg,
Ken McAuliffe,
Marta Rybczynska,
Sean Taylor,
John Genego,
Meeuw,
Mark MacLennan,
Kennis Koldewyn,
Igor Galić,
Henrik Dahlström,
Jorren Schauwaert,
Masahiro Takagi,
Ben Collins-Sussman,
Decklin Foster,
Étienne Savard,
Fabio Kon,
Ole-Morten Duesund,
Michael Downey,
Jacob Kaplan-Moss,
Nicola Jordan,
Ian Sullivan,
Roger W Turner,
Justin Erenkrantz,
Isaac Christoffersen,
Deborah Bryant,
Christopher Manning,
Luis Villa,
Judicaël Courant,
Leslie Hawthorn,
Mark R. Hinkle,
Danese Cooper,
Michael Tiemann,
Robert M. Lefkowitz,
Todd Larsen,
T Foote,
Ben Reser,
Dave Camp,
Scott Berkun,
Garrett Rooney,
Dinyar Rabady,
Damien Wyart,
Seth Schoen,
Rob Brackett,
Aisha,
Winnie Fung,
Donald A. Lobo,
Dan Robles,
Django Software Foundation,
Mark Atwood,
Krux Digital,
Stephen Walli,
Dave Crossland,
Tina,
and Thorsten Behrens.
Thank you all.
Disclaimer
The thoughts and opinions expressed in this book are my own.
They do not necessarily represent the views of clients, past
employers, partners, or the open source projects discussed herein.
Any errors that remain despite the efforts of the people mentioned in
the acknowledgements are my own as well.