Monday, December 8, 2008

The first days in the clouds

Thanks to Ajaxian and many others there was a lot of traffic on my post about the JavaScript-in-the-cloud-system.
The first effect was that the mighty cloud went down all the time. This was largely due to the fact, that the system requires a somewhat long running (100-600 milliseconds) process on the App Engine servers. Google placed very strict quotas on these requests in order to keep their system stable und thus they frequently disabled the application. Marzia suggested on the App Engine group to ask for an increased quota and it looks like Google followed suit. At least the problems seems to have disappeared.

Since this was all just an experiment, I don't really know whether I'll do anything with it. It really seemed to drive people's imaginations, though. Some of this ideas where:
  • Create SETI for JavaScript
  • Start a botnet
  • Calculate PI
  • Use it to build a very parallel (as in every user of the internet) web crawler
  • Build this into Flash banners to put them to good use
In any case the system shows that Joose can really increase JavaScript's productivity. The whole system was created between 01:30 am and 05:30 am which I think is not too much time for something which could also have just not worked.

If anybody is interested in using the system, just drop me a mail malte.ubl (at) or write to the Joose mailing list.


Meno said...

Why pi? We could also try to calculate 42. Or just wast power to tuneup the clima change.
The question is still what to do with this mass of cpu cycles. Which are also very fragmented. And there is no realy control about the packaging/livetime which will increase the server turnarounds.
Looking still for a useful application.

Peter Svensson said...

You could also integrate this into google gears processes, so that whatever someone happen to run as a process will be distributed in the 'bounce cloud', transparently. Build it and they will come :)

Malte said...

One might be able to reduce the problems caused by trust issues by doing redundant calculations on multiple peers.

In the end one could apply all of the concepts used in p2p programming like distributed hash tables to allocate suitable clients for certain tasks or certains subsets of data.

One of the most interesting aspects of this technology is that we are abusing Google's ressources to upgrade clients to something that can be contacted like a server. This could be very useful for all kinds of applications.