Self-publishing a book, Part 1: Why and How
Nobody that reads this blog can have missed that I’ve written a book and self-published it. It’s been a long and interesting journey, and I think I should share some of the experience.
The book started out of necessity. Not mine, but the community’s. There was no good documentation on how to port to Python 3, and I realized that if it was going to be made, I had to do it, and that it would be a crazy amount of work. So I wondered if there was any way I could recuperate some of that in money. The idea I had was to write a series of 3-5 articles in Python Magazine, and then merge those articles with some appendices and forewords and things into a small book. I shipped this idea to Brandon Rhodes, the editor of the magazine, and since Python Magazine had a limited time of exclusivity on their articles, it turned out to work fine. I could write the articles, and after their exclusivity ran out, also publish them as a book.
So I started writing, around December 2009 if I remember correctly. During spring 2010 I had finished and delivered three articles, but by then Python Magazine had effectively ceased publication and the articles were never published.
At this time I started looking for publishers, as I now believed I could actually deliver a book. It’s a short book, but nevertheless, it’s a book. Most publishers, like O’Reilly, will pay out advances, and as such they will only accept your book if they believe in it. So they require you to fill out these long applications full of questions. As it would probably take me days just to fill out these applications and come up with answers to most of their questions (that I felt often didn’t apply) I decided that major publishers probably weren’t the right thing for me.
I also talked to Packt Publishing. I’ve reviewed several of their books here, and they have several times mailed me if I want to write a book, often on weird topics that they think have a market, like “Zope Configuration”. I said that I’ve worked with Zope for 10 years and have no idea what “Zope Configuration” means. Packt first said no to my book, as they didn’t want to publish a book that was likely to be less than 200 pages long. Then they said maybe, can you please write it in Microsoft Word using our templates? I said that I couldn’t. I wanted the examples to be tested, meaning that using Word was out. I needed a format that was basically text.
The option that lay ahead then was self-publishing. This also had the benefit of making it possible to use Creative Commons, something I wanted. After talking to Chris McDonough, who self-published his BFG (now Pyramid) book via CreateSpace, I decided to use CreateSpace as well. CreateSpace has the benefit of being owned by Amazon, and hence you get a much better deal when selling books via Amazon.com from them, then from other self-publishing print houses, and quite a lot of sales will come from Amazon.com.
So I went with CreateSpace, and I wrote the book in Restructured Text, and used Sphinx and LaTeX to create a PDF output of the book, and I used GIMP to make a PDF cover, using an image of an albino Burmese Python I found on flickr.com by using their creative commons search. Brett Cannon was nice enough to write a foreword which added a nice touch of authority to the book and makes it sound like I know what I’m talking about.
But although I had the text, there was a long path to having a book. In Part 2 I’ll write a bit about the toolchain I used and the technical problems I had.Part 2: My tool chain