A few days ago, a user e-mailed me a bug report for
LibraryHippo. For the previous 55 days, she'd been
receiving the same (erroneous) morning e-mail about what library
materials she had due. However, when she checked her family's account
summary on the web page, it was correct.

How We Got Here - Cloning …

Last time I presented a truly horrible prime number generator I was using for Project Euler problems. Then I presented a revamped generator that used trial division. By adding various refinements to the generator, we saw the time required to generate primes less than 107 shrink from hours to …

From time to time, I find myself caught up in the heady world of Project Euler. It's almost like playing Professor Layton or some other puzzle-solving game - mathematical or programming brain teasers, served in bite-sized pieces.

If you look at the Project Euler problems for any length of time, you'll …

I'm a fan of Test-driven development, and automated testing in general. As such, I’ve been trying ensure that the LibraryHippo code has an adequate set of automated tests before deploying new versions.

After hearing about the release of Google's App Engine SDK 1.3.1, I rushed out to try the new Appstats Event Recorder to help profile LibraryHippo. I didn't expect great things, as I'm generally happy with the performance, with one notable exception, but I was curious about the tool …

LibraryHippo's main function is fetching current library account status for patrons. Since I have no special relationship with any of the libraries involved, LibraryHippo web scrapes the libraries' web interfaces.

The library websites issue cookies and redirects, so I needed to do something to augment the URL Fetch Python …