News flash: I had a semi-brilliant brainstorm and spent a few hours tonight completely rewriting the Recent Episodes function. Now, it runs as a once-a-day background cron job (around midnight) which sucks up about 20-30 seconds of realtime, but no more. This new routine generates static HTML pages which represent the recent episodes. Now the web server can hand them back with no extra effort at all (no spawning a CGI, etc). This solves the problem with Recent Episodes, by and large, although it means the "Recent" part is a little off now - it will only show episodes that were recent at midnight the night before, not recent when you look at the web page.

Obviously, this strategy won't work with a treeview, though. Still pondering that one.