With my parents watching the baby, I went down to some local coffee shops to get some work done. Uncomfortable seating and glaring sunshine aside, I managed to make a few changes that should improve the way notifications are handled.

Some feeds were timing out on download. The default timeout was 20 seconds, and this was too short for some that just sat there and did nothing. This was particularly egregious when the webpage was only partially downloaded — we didn’t detect the timeout and so we were seeing all kinds of major changes when the real problem was just a slow feed. Well, now we can detect timeouts when we download. [For the techies among you: we use PHP’s internal curl calls to attempt the download. These occasionally fail for no good reason, and when that happens we spawn an external curl process at the unix command line. Detecting timeouts-after-partial-downloads for these latter calls was missing.].

Finally, we added a few new fields to the subscriptions table. Instead of just tracking the last time a subscription had an email sent, we now also track the last time it changed (which can vary with your filter settings) and the last time we checked it for updates (since subscription checking can happen on a different schedule than the underlying feed).