I want to pull feeds for multiple online services (e.g. Tumblr, Google Reader, Delicious) and aggregate them into a single feed to display on my site. I know of services like YQL or Yahoo! Pipes which will combine feeds, but sometimes those services are too slow. I was wondering what the best method would be if I wanted to run this on my own server (using JavaScript or PHP)? Ideally, I would cache the results to cut down on processing.
I'd say that remote services like google feed api work perfectly and I doubt your own implementation will be any better that Google's?
With the Feed API, you can download any public Atom, RSS, or Media RSS feed using only JavaScript, so you can easily mash up feeds with your content and other APIs like the Google Maps API.
If you really want to do it on your own server, you could use libs like simplepie
This answer doesn't actually solve the programming question here, but: You already mentioned Google Reader in there, but in my opinion, Google Reader itself would be quite useful as an aggregator for all your personal feeds you are using. Delicious, Tumblr and others all provide RSS feed for easy use in Google Reader, and Google Reader, with it's RSS feed itself, can be used by offline RSS feed readers. As Google Reader is querying pages pretty much live, it wouldn't be that that slow.
JavaScript, as I see it, wouldn't work unless you actually open your site in the browser. Using JS and PHP doesn't seem to solve your "Too slow" problem, it might actually add up to it. You might need an additional service on your server to run in the background (using Perl, Python, Java, anything with a good XML API), but I wouldn't recommend PHP or JS for acquiring Data.
hope that helped somehow