You haven’t heard much from me this week, but it isn’t just because I’ve been lazy. I just haven’t had much to say; I’ve only really being doing two things: Going through technical reviews for the Functional programming in R book I recently sold to Apress—it should be out in May according to Amazon but I’ve also been told April—and reading through the proofs for Beginning data science in R.
Of these two tasks, the former wasn’t much work. The technical review mostly checks if the code in the book works, but since I write the books in RMarkdown, I check it each time I compile the books, so I know it works. I mostly just had to clarify a few examples and rewrite a sentence here and there.
Going through the proofs is a lot more work. There is nothing complicated about it, I just have to proofread, but that takes time when you are going through an entire book. It has, of course, already been proofread by the publisher, but there are always some issues. Mostly it was with the math-formatting—I was surprised to see that one equation was typeset as the raw LaTeX had made it through their proofreader, and I had to fix a few equations here and there they had typeset incorrectly—and fixing figures. The latter was the main annoyance. I wasn’t aware until the proofreading that all figures would be published in grayscale—and they were all colour figures when I submitted the book—and while they could transform the figures, I did have to update a bunch of them that their reformatting didn’t handle well. That also meant changing some of the code and description here and there.
I have to go through the proofs of the functional programming book next month, but that should be much easier. It is only about a quarter as long, for one thing, and all the figures are already black-and-white from when I made the Amazon paperback, so I don’t need to remake any figures. Also, there are no equations in that book, so there shouldn’t be any issues with that either.
Anyway, as far as I know, I should be done with the proofs for the data science book now and it should be on its way to the printer. But then, I also thought I was done Thursday evening and then got an email Friday morning with more figures to fix, so there might be a few more issues. I hope not, though. I really want to be done with proofreading for a while now.
This morning, then, I reformatted the PDF for Meta-programming in R to make a paperback on Amazon. I have submitted the book now and am just waiting for their review-process before it goes up. I haven’t really sold many paperbacks on Amazon, but since it is free and very little extra work—just reformatting a few lines the flow too far into the margin and reducing figure sizes if they do—I might as well publish paperbacks together with the Kindle versions of books.
If you do want the paperback, though, you should get it before I sell the book. Earlier, you could get the functional programming book for $9.99. When it gets published by Apress it will be $24.99.
I’m still debating with myself about whether to put the meta-programming book under Kindle Select. I haven’t sold any copies on iBooks or Gumroad, and I have only sold three copies on Leanpub through my birthday discount and a Valentine’s discount they held. The sales I have are through Amazon anyway, and by making the book exclusive there, I can make discounts and limited-time free books.
I have no idea if these offers actually improve sales, though. When The Beginner’s Guide to GitHub was free, a lot of people downloaded it—it became the #1 free book in Software Development—but I have no idea what that does to future sales. I do tell myself that giving away books makes it more likely that people will later buy other books, though. I know that works for me. I often get free books from authors I don’t know, and if I like them, I start buying their books. I’m not just getting the first in a series for free and then the rest; if I like an author, I tend to get a lot of books.
I’m told, though, that reviews matter more. For the GitHub book, I’ve only gotten two. One on Amazon and one on Goodreads.
Thanks, Alex and Peter. (Full disclosure: I actually know Peter—I studied with him and we are friends, although we see each other far too rarely).
If you have read any of my books, please do give me a review. Good or bad, doesn’t matter, let me know what you think. Of course, I would prefer positive reviews, but if you hated a book, let me know why. I can only learn from it which will improve future books.
In the coming weeks I will try to sell my Object-oriented programming in R book and the meta-programming book to Apress. I think they are one or two chapters short, each, to really make a good printed book, but I will ask them what they think or what they would suggest for other chapters—I am also very interested in hearing what you think should or could be added. For ebooks, I prefer short, focused books, but for printed books they need to be a little longer.
With all the editing and formatting going on, I haven’t been writing anything the last week, but last week I got started on a genetics book. I will tell you about that project at a later time. I’m also getting back to writing on a thesis on ancestral population genomics, but I have been working on that on and off for ages so we will see if that ever becomes a thing. I will focus on those for the coming weeks, though.
After that, I think I should get back to writing about R, and the plan is to either write about algorithms and data structures or how to build statistical models. The latter of these two won’t make a full book. I will describe how to make a model matrix and give some examples of models, I think, but I can’t fill a hundred pages even on that, so it will probably never be a good printed book. It could be a good, short ebook. For a book on algorithms and data structures, I want to make an R package with the stuff I describe, so I will probably try to get that done before I start writing about it. I’m not entirely sure how to approach it, but I will give it some thought over the coming weeks. But I could see the use for a package to supplement such a book, so that, at least, I think I will need to make.
The R books I write right now are part of a series I call Advanced Statistical Programming in R, and I kinda like to have books in a series. They won’t be once they are in the hands of Apress—I have discussed this with them, but they have their own series—but it helps me think about which books to write and how to write them. With the Beginner’s Guide to GitHub, I also feel like writing a Beginner’s Guide… series. The Advanced Statistical Programming in R focuses on, well, this should be obvious from the title, advanced programming topics in R. The Beginner’s Guide series would instead be short tutorials to various tools.
I like both forms of books, but they would be very different to write—but both series would be fun to write. I’m just not entirely sure which topics to cover in such a tutorial series. One tool I’m thinking about describing is pandoc. That is the tool I use for writing my books—ironically, though, the only book I’ve written without using pandoc was the Beginner’s Guide to GitHub. That was formatted directly in Ulysses. If I write such a book, I would essentially just describe the workflow I use for my own books, but I think that could help people get started with writing using pandoc for formatting PDF and ebooks.
Other topics for Beginner’s Guides could be an R tutorial—after all, I’m writing a lot about R anyway—or maybe a Beginner’s Guide to Travis. I am not sure. I’m brainstorming ideas right now, but in any case, such books would be some months in the future with the other projects I’m working on, so I am not thinking too hard about it just yet.
I would love to hear what you think, though.
If I write such Beginner’s Guides, though, they will be pure ebooks, short, and put on Kindle Select so I can offer them for free each Kindle Select period (which I think is 90 days). They would be the old drug-dealer gambit of offering something for free to get people hooked, and then drag them into the harder drugs which would be the more advanced books.
For the Advanced Statistical Programming in R series, one future book I’m thinking about is on optimising R code. How to profile and tricks for speeding up code, maybe with a bit on writing key algorithms in C/C++. Here, the thought would be to take some key algorithms, maybe taken from the algorithms and data structures book, and speed them up. I haven’t thought too deeply about it, but something like that might be useful for people.
I would also like to write about data science again, but after selling the data science book to Apress I can’t write competing books, so there is a limit to what I can do there. It would have to put the focus very differently. Maybe write about various machine learning algorithms. I don’t know. I haven’t thought too deeply about it; it would be far in the future in any case—I have plenty of other projects to do before I return to that.
Anyway, I will finish this update here. The reason you haven’t heard anything from me recently is that I have been finishing proofs and reviews of books, not that I have been entirely lazy. There is just very little interesting to say about the last phases of finishing up books. The exciting parts are writing them. Just as it is much more interesting to write code than testing it. Proofreading and testing are just as important topics, but not where the excitement is.