by Christophe, Sander, & Lore
Retreat 2020
Find this tutorial (and more) on https://github.com/gestaltrevision/Reproducible_workflow_tutorial
from IPython.display import YouTubeVideo
YouTubeVideo('Og847HVwRSI')
(Partial) solutions:
Hardware/software (browser) heterogeneity and feature support (old versions, old hardware)
(Note: speed of internet is usually not an issue: once (down)loaded, it runs locally).
Avoiding variability:
Despite the mentioned problems, direct comparisons often show similar quality data and many classic psychology findings replicate with reasonably high fidelity. In practice, whether web experiments are a good idea will depend on your research question(s) and methods.
Many tools exist, most are pretty recent. Some are builders (graphical point-and-click interface, wysiwyg), some also provide the coding libraries for more flexibility. Some are client-side only ('front-end'), others (usually commercial ones) provide integrated solutions (server space for deploying and storing data). Some 'natural selection' of the field still has to happen. New, more succesful tools may pop up.
This can be overwhelming, but it is intrinsic to working on new frontiers (+ competition is good in software). Don't take my choices as gospel. Choose based on your needs. For me the tool needs to be:
Integrated (commercial) frameworks with more limited experiment building capabilities (but they might be sufficient for your needs)
Agnostic to frontend experiment building (js) tools. Tools for deploying and sharing your experiments. Noncommercial, developed by researchers.
Most basic option: Vanilla javascript from scratch: most flexible but time-consuming, technically challenging. Building your own timeline, data structures and stimuli. Only for experienced (or ambitious) web developers. Js is an ugly, bastardized language (especially if you come from python, R fans are already used to some self-flagellation ;-) but you'll learn to love it because of its powers and expressivenes in the browser.
These are free, open source js libraries and all include a builder. They provide a timeline/scheduler and tools for controlling the flow of an experiment and an (extensible) set of stimuli.
Find the demo in https://github.com/gestaltrevision/Reproducible_workflow_tutorial/onlineExp