Spent the bulk of the day on two projects. The first was eliminating stalls in the scanning process where the scanner is processing huge numbers of modems. Previously I was using a batching mechanism (actually, multiple batching mechanisms) that was (were) rather fragile and required lots of testing for each mechanism.
Started off looking for a Twisted tool that would let me do the operation, but couldn't find anything in the docs that looked promising, so I coded one up myself. It worked fairly well, but every once in a while it would do a double callback for the whole system... not a huge problem, but annoying. This evening, Itamar pointed out the (new) DeferredSemaphore, which makes the pattern much simpler, though it does given up the built-in "how far have you come" feature I was using.
In the middle there, I pretty much finished implementing a major 2.0 feature, one that should sell at least a couple of units all by itself.