Version 2.0 (very beta)

This new version of the experiment introduces communication. It uses a
node.js server to push data between two participants. Version 2 is also
massively tidier: the giant index.php has been modularized into 20-odd
chunks. Lots of the code has also been rewritten in CSS and jQuery!!
Full feedback

Modified the feedback design so that both participants receive feedback
about what the other did. There’s also less emphasis on right or wrong.
Also replaced the $canvas_width and $canvas_hight variables with a
single $canvas_size variable.
Standardized tab length

Standardized tab length to two spaces across all files
Updated style of error pages
Feedback time

Separated the global parameter $feedback_time into
$mini_test_feedback_time and $communication_feedback_time so that each
can be set independently.
Modularized JavaScript

functions.js and nodeClient.js have been separated into separate .js
files specific to the called pages. Therefore, a given page will only
need to load the relevant JavaScript functions.
Upgraded to jQuery 2

N.B. jQuery 2 does not support Internet Explorer prior to version 9.
Updated JavaScript syntax to jQuery

I’ve now updated most of the JavaScript to jQuery syntax for cleaner,
more consistent code.
Fixed bug in detecting press of the Enter key
Error page

Added separate HTML file to define the error page. Includes a
Flatlander sad face.
Moved set validation

The check that is done to check that $mini_test_frequency is a divisor
of $set_size is now done at the validation stage and prevents the
experiment from continuing if the condition is not met.
AND OR bug

Goddamn logic! The OR should have been an AND. Added a few comments to
explain what’s going on.
Even image size

Cropped the image size to an even width and height so that it works
better as an @2x graphic.
Explanation of the matcher array

Added comments to explain what’s going on
Improved map documentation

Added more detailed commentary to explain how the map works.
Tidied up commentary
Modifications to the communication instructions

British “take it in turns” = American “take turns”. British people are
okay with either, so changed to American style. Clarified the final
instruction, as it could be interpreted as “don’t press the I’m ready
button until your partner’s ready”.
Commentary and error page links
Removed unnecessary comment
Tidied up commentary

Also made some changes to the way that openFile() and writeFile() work
– e.g. openFile() should not need to obtain an exclusive lock on a
file. I suspect this might need a bit more work… is this really a safe
way to read and write data?