2nd Edition is Draft Complete

I just submitted the last of the sections for the 2nd edition of PGAE, which means I get to say it is "draft complete." There's still editing and testing to do—drafting got a little hectic in the weeks running up to the deadline—but the outline is final and there's text everywhere. Early Release subscribers will get an update notification in the next week or so. The production process takes a couple of months, then the final edition will ship in late September or early October.

The rough PDFs that I can generate using O'Reilly's author tools puts this draft at 497 pages, not counting the table of contents. At least 50% of that is new or rewritten material. The actual page count of the printed book will vary slightly, but my recollection is the draft PDF comes pretty close.

What's new: The entire book has been updated for Python 2.7, multithreading, and the High Replication datastore. There's new material on recently added datastore features, including cursors, projection queries, and cross-group transactions. The task queues chapter has been extended with common use patterns and new features. The chapters on memcache, URL Fetch, email, and XMPP have been almost entirely rewritten from scratch for new features and better organization. Topics of all-new chapters include app configuration, instances, the Blobstore, request logs, and optimization techniques with asynchronous APIs and AppStats. And yes, the Django chapter is all new as well (though django-nonrel only gets a small discussion, as you can actually do quite a bit without it).

Inevitably, there wasn't enough time to do everything I wanted. Any feature currently marked as "experimental" or otherwise not fully launched ("Trusted Tester") does not have extensive coverage in the book. That includes the Go runtime. The new and hugely useful Python data library ndb, which came out a few months ago in release 1.6.4, I left out because I didn't feel I could do it justice in the time remaining in the schedule. Backends are not covered, partly because of the announcement made at I/O 2012 that the layout of the feature will be changing (though its basic features will not). A few older features like the Images and Channel services were low priorities because they don't contribute to the larger themes of the book, though I'm not opposed to adding self-contained chapters in a future edition.

While I'm testing and editing in the next few weeks, I'll also be working on new downloadable sample code. I'm hoping to have that ready by the street date (late September). As always, the sample code will be free to download even if you didn't buy the book.

Here's the 2nd edition chapter list:

  • Chapter 1: Introducing Google App Engine
  • Chapter 2: Creating an Application
  • Chapter 3: Configuring an Application
  • Chapter 4: Request Handlers and Instances
  • Chapter 5: Datastore Entities
  • Chapter 6: Datastore Queries
  • Chapter 7: Datastore Transactions
  • Chapter 8: Datastore Administration
  • Chapter 9: Data Modeling with Python
  • Chapter 10: The Java Persistence API
  • Chapter 11: The Memory Cache
  • Chapter 12: Large Data and the Blobstore
  • Chapter 13: Fetching URLs and Web Resources
  • Chapter 14: Sending and Receiving Email Messages
  • Chapter 15: Sending and Receiving Instant Messages with XMPP
  • Chapter 16: Task Queues and Scheduled Tasks
  • Chapter 17: Optimizing Service Calls
  • Chapter 18: The Django Web Application Framework
  • Chapter 19: Managing Request Logs
  • Chapter 20: Deploying and Managing Applications