Tuesday, March 1, 2011

Book Launch: One Month On (stats and lessons)

My book: Clever Algorithms: Nature-Inspired Programming Recipes launched just over one month ago on January 26th 2011. I thought I would briefly summarize what happened, and some findings and lessons I've realized over that time.

I had planned the book launch to be on my 30th Birthday. My birthday happens to fall on an Australian public holiday, which meant I could spend the day doing marketing activities.

I came home the day before and wrote check lists of things I needed to do before launch, during the launch, and marketing things to do after launch. Typical things like emailing and posting to social media.

I actually prepared the final PDF late on the night before (25th) and posted a quiet tweet before hitting the hay. I awoke to mayhem. Apparently one or more twitter follows had posted the link to reddit (at least 5 subreddits) and hackernews. I downed a coffee and rapidly followed my checklist that included a blog post and message to my collected email list. I then spent the rest of the day (and the rest of the week) participating in conversations around the book on social networking sites.

I expected some minor interest from ruby hackers and Artificial Intelligence enthusiasts. Instead I received a what felt like a landslide of interest. Feedback was overwhelmingly positive, and I completely underestimated the potential for useful contribution even at this late stage, which included:
  • Typo and grammar suggestions
  • Bug reports and fixes
  • Tweaks and fixes to the HTML version of the book
  • Book ports to ePub (iPad) and mobi (kindle)
The books website (hosted on a free Heroku account) got hammered and stood up nicely. Some numbers (24th Jan to 24th Feb Google Analytics time (UTC?)) include:
  • 58,167 Visits
  • 106,619 Pageviews
  • Top Referrers: stumbleupon, reddit, rubyinside, news.ycombinator, twitter
Most of the traffic came from reddit and hackernews during the launch, although the continued big numbers from stumbleupon is surprising to me. Two additional things happened that resulted in large numbers: Yukihiro Matsumoto (father of Ruby) tweeted about the book and Ruby Inside posted on the book.

The book was launched simultaneously in Paperback ($19.99 USD), PDF (Free), and as an HTML website (Free). The paperback and PDF were made available through Lulu. Sadly, LuLu does not track the number of PDF downloads, so I cannot provide a number although I expect it is many hundreds or even thousands.
  • Paperbacks Sold: 79 (so not just my friends and family!)
  • PDFs Downloaded: uncounted hundreds or thousands?
Since launch I have organized distribution of the book through Amazon.com and Google Books, both of which should appear sometime in the next month.

Some comments from Ruby programmers shortly after launch were that the sample code is not very 'Ruby-like'. I tried to explore this a little, and posted a complete algorithm listing on the newly launched Code Review Stack Exchange site. I learned a lot from this experience, although I think the so-called generic Ruby code provided may make the text more accessible to non-Ruby programmers. I need to think on this some more.

By far the coolest outcome of the book launch was receiving a book from my Amazon wish-list (Carl Sagan's COSMOS). It was totally out of the blue, and came with the message to the effect of "thanks for clever algorithms". People are awesome!

All of the content for the book (except for the cover) was made available since before the launch of the book as an opensource github project. Since launching the project, the stats for the project have also shot up:
  • Watchers: 289
  • Forks: 17
  • Views at launch: ~1665
I hope more people get involved and we see a Python version, ports to new platforms and media, and/or new algorithms added to the corpus.

Five things I think I might do differently next time include:
  • Provide content as a website from day one. This allows the google juice to build up over a much longer period likely resulting in more collected emails for candidate readers/buyers on launch day.
  • Email more blogs. I mailed a few, including RubyInside, but I could have emailed a lot more. Specifically, I'd focus on Ruby groups - they're just so excited and active! 
  • Present at language interest groups. I had some offers and turned them down due to other commitments. I should have thought of this and actively organized it weeks before the book launch (hand out free copies, etc...).
  • Code review from language expert prior to launch. I tried to organize this, but my plans fell through. I should not have let this slip, making it an acceptance criteria of the project. The amount of language specific magic in the code needs to be managed though.
  • Unit test all code from day one. I wrote all of the unit tests at the end of the project, rather than as I completed each algorithm. This was a hell of a lot of work at the end. Doing it from day one might result is continuous improvement over the course of the project, especially if people besides me are looking at them.
Finally, as per a tweet the other day:
Purchase Clever Algorithms: Nature-Inspired Programming Recipes with 15% off using the coupon code IDES305 (offer ends March 3rd 2011)

0 comments: