Stay Curious!

Progress on High Performance MySQL 3rd Edition

A few people have asked me how it’s going, so I thought I’d just share it with everyone. Things are going great. I’m writing much more quickly than I thought I would be, and as a result I’m finding I have time to do more changes than I thought I could, which makes me happy. I should be finished drafting the chapters by the end of the year.

In particular, the faster than expected pace is giving me a chance to address one of the big weaknesses of the second edition. In many places, the second edition is a collection of facts and experiences. It says what and why, but it doesn’t convey a process or method, and it doesn’t teach you how to think about things and apply the results to situations beyond what the book covers. I’m finding a number of key areas to remedy that: performance optimization, profiling, indexing, high availability, scalability, and so on. I’m adding an explanation of the principles and consequences, and actually showing real case studies selected from the most interesting customer issues I’ve seen at Percona. These illustrate the process or method I explain, and then I wrap that up by pointing out the key bits and reinforcing why they’re important.

I’m also adding chapter summaries. Summaries are hard to write. They should synthesize, not restate, the main points, and they should organize the reader’s thoughts for the transition to the next chapter. I hope I’m doing a good enough job at this, but it’s bound to be better than the second edition, which didn’t have summaries.

Detailed outlining is saving me. After writing the second edition, I realized that I’d spent about four times as much time rewriting as I did writing. This time I did a lot of outlining before I went to the writing stage, down to the level of individual thoughts and the relationship between them – nearly prose level, but not quite. Prose is much harder to reorganize and cut-and-paste than bullet points, because it requires correct grammar. Outlining doesn’t have to be grammatically correct. The effort I put into outlining in exhaustive detail is definitely paying off. When I find a section or chapter that I want to rewrite instead of just updating, and I didn’t plan for that, I back off and go back to the outlining. It’s so much more efficient. For example, I just caught myself starting to spin my wheels on partitioning, which is a section that I decide to rewrite to convey a how-to-think approach instead of what-to-think. I noticed the inefficiency, went to the outline in a text file, came back to the chapter, and ended up finishing it very quickly.

Finally, and I never thought I’d say this, but I’m using Microsoft Word and it’s making my life easier. The copyeditors use Word, and I knew I was going to have to use something that reads and writes .doc files eventually, so I decided to just use Word all the way through. I threw up a virtualbox with Windows XP, went out and bought a copy of Word 2010 for $150 or so, and installed it. It runs great in the virtual machine, and it is so much better than Open Office it’s not even in the same league. It works very well, with a lot of features that really do enhance my productivity. It isn’t Free Software, but maybe I’m growing up and coming to terms with the real world: sometimes getting things done is more important than principles, and $150 is less valuable than the time I’m saving. (I knew that I definitely was not going to use Open Office this time around, no matter what. I was planning on plain-text and Vim. But Word is actually more productive, I believe, by the time I factor in the interaction with the editors and other back-and-forth.)

Posted on Wed, Oct 12, 2011. Approximately 700 Words.

Databases Writing