Next release: mail and XMPP; minor updates throughout

I'm throwing every scrap of time I can find at making little updates here and there, and scheduling long sessions to plow through chapter-long tasks. This is entirely the wrong way to go about a large project from a time and energy management perspective, but at least it's some kind of progress.

The draft in flight has a new chapter on XMPP, now split from the chapter on mail which has also been updated. XMPP coverage has been expanded to include all the presence features. I'm taking this opportunity to rewrite and expand all of the downloadable sample code in both Python and Java. (I'll post the new sample code once it's further along.) I've also made a bunch of minor updates throughout, just to close out parts of the gigantic to-do list I made by aggregating all of the release notes from the last two years and sorting them by feature category.

My next priority is to split chapter 3, "Handling Web Requests," into two chapters, one on frontend configuration (URL routing, static files, SSL) and one on application servers (runtime environments, instances, multithreading). The new-feature list for the datastore is huge, and I hope to incorporate most of it in the datastore chapters. I'm planning a new chapter on "Datastore Administration," which will include the recent Admin Console datastore facilities, the entirely rewritten bulk loader, the remote API, and maybe trivial data transformations using MapReduce if I can squeeze it in. (The old bulk loader chapter will be deleted, though I have permission from O'Reilly to post discarded chapters to this website, if that'd interest anyone.)

The App Engine team just recently released ndb, a complete replacement for the db library described by the 1st ed's chapter 7. The DataNucleus App Engine plugin version 2.0 is out, which means chapter 8 also needs some serious attention. The asynchronous APIs and AppStats are important subjects worthy of a chapter. The subject of task queues has more than doubled in size, and transactional tasks are more important than ever and need more coverage. The Django chapter needs a complete rewrite to cover djangoappengine and Django 1.3. And I want new chapters and sample code on the Images and Channel APIs.

I'll have more to say about the schedule later, but this is the general order of the next dozen or so things.