When the webpage loads, its JS environment will contain a
QM object that
will allow other programs to submit jobs to and volunteer to execute jobs from
the official QM servers – for free!
Modern web browsers can often be programmed “externally” to the webpages themselves. For example, browsers may load custom user scripts, or they may be scripted by external programs to run unit tests. These capabilities are not leveraged in any way by the QM browser client. It may or may not run correctly within Web Worker contexts, but the client described in this manual expects to run within the “ordinary” webpage context of a modern web browser, unassisted by applets, extensions, plugins, etc.
For the hardcore software engineers out there, QM’s browser client is available for “installation” with Bower:
$ bower install qm
See http://www.biomedcentral.com/1471-2105/15/176#sec4 for now.
Using volunteers’ machines¶
Two convenience functions,
QM.stop, are provided in order
to control a simple non-blocking (asynchronous) event loop externally. The loop
“fires” approximately once per second, and if appropriate, it runs the
QM.volunteer function. This internal event loop is neither externally
configurable nor necessary for using QM – it simply wraps the
function for convenience, rather than forcing application code to implement its
own non-blocking loop.