While you read these words, fork yourself a little mindlet and send it off a few years into the future. Imagine it reading a page just like this one - with a little extra something, a computational payload to be processed along with the rest of the content.
The concept is simple enough. The various voluntary computing projects have long since established the core principles of partitioning a huge problem into many smaller problems, shooing them off to thousands of voluntary client computer. As the results trickle in, they are swallowed, digested and - pardon my french - nicely excreted, so as to enlighten the operators, whatever their quest. Although we have found no aliens yet, nor discovered a cure for cancer, the method actually works. A lot of numbers are being crunched that way, each and every day.
The weak link is this voluntary thing. People participating in such programs must consciously decide to do so. Downloading and installing a distributed computing client (such as a screensaver) is trivial and well within the capabilities of the average patron. More often than not, though, it is one of those thing we are likely to put off to some other day. Or completely forget about. In essence, the success (in terms of numbers crunched) of an endeavor like folding@home hinges on communicating the worthiness of the cause to the widest possible audience. On that vehicle called marketing.
So to harness at least a bit of that awe-inspiring potential of a billion computers, we might want to tackle the issue from a different angle. We might put it into banner ads.
In the Browser
Thus satisfied with the state of affairs in the browser, we are left with the minor issues of distributing these cadgets and collating their feedback. The whole business of generating possibly billions of distinct cadgets, disseminating them redundantly across the web, and keeping track of what may or may not return, is daunting in a distinctly darwinian sense.
Sort of like combining Google Adsense and Google Analytics.
Indeed, the constituents of this scheme lies mostly in well trodden territory. While I'm certainly no expert on massively distributed computing, I reckon that the few remaining principles could be fleshed out fairly easily. This isn't exactly MapReduce, since the code and the data are bundled, but it isn't that different, either. Recombining a function with a set of arguments sounds a lot like splicing dynamic content with an HTML template, and how hard is that?
To ease the burden on cadget generators and networks alike, helper libraries might be deployed to a CDN like CacheFile. That way, only the essential computation would have to be generated and send off to the browser.
The resulting cadget would end up along the bitmaps, banner ads, blog rolls and whatever else travels along with modern web pages. It would execute and quietly send back the result.
Sideshow or Big Picture?
To hark back to the issue of banner ads, one might imagine an ecology of computing projects and sponsorship leagues, vying for placements at blogs, portals and corporate websites alike. Personally, I might choose to flag my support for an effort like this - should they ever need some largescale geological analysis - by sporting a cadget banner right here, on this blog.
Who knows, the dreaded Slashdot Effect might well end up being eagerly anticipated by some.