Last summer I received a letter from a publisher at Apress asking if I would be interested in serving as technical reviewer for a book about Leopard. A technical reviewer reads the book as it comes from the author and notes any mistakes. Since I’d been using Leopard since the first beta, and am a big fan of technical books in general, it seemed like a fun way to make a few bucks and add a line to my gedanken résumé.
After a while, the publisher asked if I would mind upgrading to co-author. So, I contributed a few chapters and now there’s a book out there with my name on it. If you follow me on Twitter, you’ve probably seen my frequent tweets about “my book.” It’s not my book, insofar as I’m just the secondary author, but it is my book in the sense that it’s the only book with my name on it.
“Mac OS X Leopard: Beyond the Manual”
The book is aimed at people who need help with Leopard, but are already experienced computer users — switchers, upgraders, and the like. I wrote the chapters on networking, automation, and development. I also wrote the most of the chapter on iChat.
Most technical authors I’ve spoken to describe it as a mixed experience, and for me it was no different. It’s a lot of work in a very short amount of time, and much of it involves going over the same text over and over and over again until every little thing you loved becomes tiresome. Working with a co-author, especially wearing an editorial hat, opened the door for a lot of bickering, and ultimately led to my realization that no one likes a critic.
Then there’s the pain of being disabused youthful fantasies of authorship. When I was a kid, writing a book was between winning the lottery and patenting something on the list of ways to financial freedom. Get your name on a book and it’s all pipes and smoking jackets. Not so, especially with technical books. An individual title doesn’t sell all that many copies, which is why publishers churn out so many of them. Certainly technical reviewing could be a lucrative hobby, but books, even more than software, need to be a labor of love.
One of the first things I remember Wil telling me is that technical books are essentially useless, because the people who know what they’re talking about don’t have time to write books, so the people who do write books, it follows, are not the ones from whom you should seek advice.
That weighed heavily on my mind as I began this project. Surely there are exceptions. I don’t think anyone’s going to consider “Mac OS X Internals: A Systems Approach” evidence of Amit Singh’s incompetence.
What did not weigh heavily on my mind was that I was already working on a project full time, a little something called Delicious Library 2. My thought was, I could spend the day writing code until that part of my brain was tired, then I could work on the book until that part of my brain was tired. Like a bodybuilder who works his arms to exhaustion, then moves on to his legs, I’d get more done and sleep like a baby.
It was a perfect plan with one little flaw.
It turns out, the part of the brain that writes code and the part of the brain that writes books about code are the same, or at least, are closely enough related that by the time I was done with one, I had no brain left for the other. As such, writing the book became a tremendous drain as I eschewed days off, free time, side projects, vacations and sleep to make room for writing.
I was also forced to pull back from the project. Originally, the idea was that after I’d finished the chapters I wrote, I’d pick up additional chapters, possibly even becoming the primary author. Instead, I had to apologize, explain my misjudgment, and limit myself to the chapters I had initially committed to.
The lesson here is that I can only have one major project at a time, and writing a book is a major project. Next time I’ll either take a hiatus to work on the book, or I’ll do something without a set deadline that is fun enough to be a pleasurable way to spend a day off.
Which is not to say this book wasn’t any fun. I actually had a blast writing the iChat chapter, which was not one of my original chapters, and which I’m not even sure I got paid for. Not to put too fine a point on it, it’s a classic of western literature. It’s got a narrative, character-driven plot, which is to say, it’s full of lemurs. Oh yes, my friends, I am willing to go on record as saying that this chapter alone has more lemurs than any other technical book ever.
Another fun aspect of writing this book was being able to give a little back to all those great little apps that have made my daily computing experience so much better. Inside you will find screenshots and mentions of NetNewsWire, BBEdit, Transmit, Coda, Checkout, and otx. My only regret was that I couldn’t drop a reference to VoodooPad, and not for lack of trying. I actually got in a bit of trouble for what was taken as blatant pimpery and was forced to cut back.
I also have shout outs to Daring Fireball, the Madagascar Fauna Group, and (if you look really carefully) Cats on Racks. You can also see some screenshots of Delicious Library 2, which was a rare commodity at the time, as well as my first ever .app, a Java game called Lemur Poker I wrote my wife for her birthday. Aside from being a halfway decent implementation of video poker, it features custom lemur-based card graphics created in Photoshop by yours truly. I’m simultaneously proud and embarrassed.
Then there are the jokes.
Most technical books are pretty dry, which is a shame, because computers are much easier to deal with if you keep your sense of humor. This is true for programmers as well as users. To that end I dosed out quite a few bon mots, in the text, in the sample code, and particularly in the figures. Here are a few of my favorites:
-
In the halcyon days of yore, where Spam was just a delicious luncheon meat and the Internet was just a military research project, a computer scientist named Les Earnest wrote a program that would take an e-mail address and “point out” who it belonged to .... When the Internet opened for general use, people soon found less earnest uses for Finger, and the protocol was eventually abandoned. The tool still exists, but mainly as a way to generate the words Connection refused.
-
-
Unfortunately, AirPort’s ad hoc networking doesn’t support WPA, so you’re stuck with easily cracked WEP encryption instead. Try not to talk about too many state secrets over an ad hoc network.
-
-
My personal favorite is the NSZombie class, which turns your deallocated objects into undead monsters that moan horribly if you try to send them messages.
-
-
Sal Soghoian is Apple’s product manager for automation and is generally recognized as a, if not the, foremost expert on AppleScript and Automator. We can also personally attest that he is a character.
-
-
Hanaan’s critically acclaimed work will walk you step by step from automation neophyte to AppleScript master. It also makes a great footstool, on account of being huge.
And, of course, my favorite paragraph in the whole book:
-
AppleScript Language Guide: This is Apple’s official documentation on AppleScript and quite possibly the oldest document on the entire Internet. Apple keeps saying it is going to update this as part of Leopard’s AppleScript improvements, but it hasn’t happened yet. We can understand the reluctance. With contributions by such notable minds as Mark Twain, Alexander Hamilton, and Sir Isaac Newton, this document is practically a national treasure.
The best part is in the front.
Perhaps the best thing about writing a book is the front matter. That is to say, the little “about the author” and “acknowledgements” sections. Here are mine:
-
About the Author
-
Mike Lee, the World’s Toughest Programmer, has been bending computers to his will since the mid ‘90s. As majordomo of Delicious Monster Software, he spends most of time working on Delicious Library or answering support email. His next project is a non-profit software company dedicated to raising money and awareness for Madagascar and the world’s few remaining lemurs.
-
-
Mike and his wife are originally from Honolulu, but currently live in Seattle where they are raising two cats. Mike’s hobbies include weightlifting, single malts, and fire.
-
-
Acknowledgments
-
I’d like to thank my wife, Mary, for keeping me sane, my friend Lucas for keeping me sincere, and my mentor, Wil, for giving me a chance to write Macintosh software for living. Thanks to everyone at Apress for letting me be involved in this project, with extra special thanks to Scott to putting up with my abuse. Thanks to everyone at Apple, especially the evangelists.
-
-
Thanks to Greg and Ann-Marie for giving me the strength to take on a Buick and win.
-
-
Finally, thanks to Rich, Cabel, Steven, Robert, Dirk, Brent, Gus, Daniel, Joe, and the rest of the development community. Thanks for for accepting me as one of your own and constantly inspiring me to strive for greatness.
So was it worth it?
Yeah, but not so much for the money as for the bragging rights. That’s not to say I feel like I’m any great shakes for writing a book, but among non-programmers, the book carries more weight than just about anything else. This is doubly true of people like my mother and grandparents, who have no idea what I do for a living. A book is something they can understand, maybe even show off a little. “Oh, your grandson’s a doctor? That’s pretty good, but has he written a book?”
Then of course, there’s one very simple, but very effective, line I have now earned the right to use. Imagine this: I’m chatting with some tool about Mac OS X. They try to assert some nonsense and I am forced to disagree. Now I can say, “eh, what do I know? I just wrote the book on the subject, literally.”
All of that stuff is great, but you want to know the one thing that made me want to write to this book? The one thing that kept me going when things got rough? I’ll tell you: it was the chance to give this demo:
If you’d like to check it out for yourself, maybe as a gift for a switcher in your life, it’s available on Amazon. I’ve actually hacked up a link so you can buy it via the Madagascar Fauna Group. It doesn’t cost you any extra, but it earns them a little referral bonus: