Charles Petzold

Crunch Time

April 5, 2006
New York City

Nothing focuses the mind like a solid deadline, and the "all in" manuscript deadline for Applications = Code + Markup is just one month away. (Actually, I'm not quite sure if the deadline is May 5 or May 7, and whether May 7 really means bright-and-early Monday morning on May 8. You'd be surprised what a big difference there is between a Friday deadline and a Monday deadline.)

But it's hard to imagine how much more I can work and still maintain some semblance of a "balanced life." For several months now, I've been consistently putting in 9 AM to 5 PM days for 6 or 7 days a week, and often doing some more hacking in the evenings. Stacks of magazines lie unread and last night I managed just one chapter of A Scanner Darkly before bedtime. Deirdre will be driving up to her house in the Catskills this weekend for some early spring gardening work, so maybe I'll get some major stuff done then. (How pathetic is that? In the absence of adult supervision all I can fantasize about is all-night coding sessions!)

It's shocking, but I'm still rearranging the Table of Contents. Often in laying out a book I'm torn between giving the readers what they want early on in the book (so they don't have to read the whole damn thing) and ordering the material in a coherent building-block structure. I originally wanted my Animation chapter soon after Styling and Templates so people could use animation for controls. Following Animation would be the Transforms chapters and then Geometries and Paths, including Bézier splines. I figured the Transforms chapter could include animating transforms, and the Geometries and Paths chapter could include animating those things.

But the more I worked in that scheme, the worse it became. The tipping point came with discussing the Spline<Type>KeyFrame classes without having the previous background in Bézier splines. And this is a really important topic. To put it bluntly (and to reveal my boomer origins), without using Spline<Type>KeyFrame you haven't made the transition from Lincoln Logs to Erector Sets. I've put together a little program for the book to let you interactively manipulate the two control points and see the result, and it's really helped me. (For example, the control points to mimic free fall are (0.25, 0) and (0.6, 0.2).)

The Table of Contents for Part 2 of the book is all changed now. Now the chapter order is: Geometries and Paths, Transforms, and then Animation. The result of this change is that the Animation chapter is going to be huge, perhaps the longest chapter in the book, with tons of examples. I hope people don't mind.

What's important is not going totally insane trying to finish the book. I recently watched the Life and Times of Anders Hejlsberg video, and he talked about the importance of having a "balanced life" as well. It takes awhile, but you can eventually convince yourself that doing other things helps you do the most important thing (i.e., the book) better.

So this evening, when we take the subway to Carnegie Hall to see Yo-Yo Ma perform three of the Bach Cello Suites, I am going to try my best to enjoy my guilt-free and XAML-free evening, because I know that Thursday's work day will be all the better for it.