Yes – pause is on a lot of wishlists. :-)
An advanced cookbook might be a good thing – but that's not quite the same as an API (application programmer's interface). What I am thinking about is a way to leverage the power of the community of developers who fold. If done properly, this could take some pressure off the UW coding team, and it could result in real enhancements that the entire community could benefit from. The cookbook seems a perfect place for this, since it doesn't involve the scoring algorithm or other aspects of foldit that might entice cheaters.
One possibility for sharing would be to simply open-source the cookbook. But there are gotchas here, and depending upon the current codebase this has the potential of making more work for the developers – reviewing many many code submissions, trying to decide what to incorporate.
That's why I suggested setting up an API. If the cookbook is set apart from the main body of foldit code by a simple and well-defined series of calls, such as
Calls From Foldit:
apiDisplayCookbook – call the cookbook module
Calls To Foldit:
apiLoadScript
apiSaveScript – returns info on syntax errors, if they exist
apiRunScript
apiShareScript
apiRunScript
apiExitCookbook
I'm not sure if this is the right list, but it gives the general idea. My guess is that many folks will write Lua code to create cookbooks, and that many of these will be shared with the community. Folks who use Eclipse or some other development environment may also develop really cool interfaces to foldit.
There will be those who wish to share their results, and therein lies the rub. How do you ensure the quality of these submissions? Once you open up code to the community, sharing cannot be prevented, and there is an element of danger in downloading unreviewed code. A web area where code is shared and reviewed (akin to the current recipe area) might mitigate this, along with a requirement that all source code must be submitted.
A few trusted and dedicated members of the foldit community – and I would imagine that there are dozens to choose from – might be enlisted to review and recompile Lua submissions prior to allowing them to be shared in binary form. This makes the barrier to downloading unreviewed code high enough that the bulk of the foldit community would not bother with it. And it would prevent someone from sharing a compiled version with some hidden "features" not shown in the source code.
The web page would probably need certain caveats:
1) Be careful of untested code.
2) This is a community supported web project. If your submission takes months to be reviewed, or if it never gets reviewed at all, we are sorry. But look at the bright side: you now have a recipe book of your own design, and it has made your folding life better.