"`
4 | * from the given `stat`.
5 | *
6 | * @param {Object} stat
7 | * @return {String}
8 | * @api private
9 | */
10 |
11 | exports.etag = function(stat) {
12 | return '"' + stat.size + '-' + Number(stat.mtime) + '"';
13 | };
14 |
15 | /**
16 | * decodeURIComponent.
17 | *
18 | * Allows V8 to only deoptimize this fn instead of all
19 | * of send().
20 | *
21 | * @param {String} path
22 | * @api private
23 | */
24 |
25 | exports.decode = function(path){
26 | try {
27 | return decodeURIComponent(path);
28 | } catch (err) {
29 | return -1;
30 | }
31 | };
32 |
33 | /**
34 | * Escape the given string of `html`.
35 | *
36 | * @param {String} html
37 | * @return {String}
38 | * @api private
39 | */
40 |
41 | exports.escape = function(html){
42 | return String(html)
43 | .replace(/&(?!\w+;)/g, '&')
44 | .replace(//g, '>')
46 | .replace(/"/g, '"');
47 | };
--------------------------------------------------------------------------------
/node_modules/express/node_modules/send/node_modules/mime/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2010 Benjamin Thomas, Robert Kieffer
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/node_modules/express/test.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Module dependencies.
4 | */
5 |
6 | var express = require('./')
7 | , app = express()
8 |
9 | app.get('/:foo?/:bar?', function(req, res){
10 | console.log(req.params);
11 | });
12 |
13 |
14 | app.post('/:foo?/:bar?', function(req, res){
15 | console.log(req.params);
16 | });
17 |
18 |
19 | app.listen(5555);
20 | console.log('listening on 5555');
21 |
--------------------------------------------------------------------------------
/node_modules/json2csv/.idea/.name:
--------------------------------------------------------------------------------
1 | json2csv
--------------------------------------------------------------------------------
/node_modules/json2csv/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/node_modules/json2csv/.idea/json2csv.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/node_modules/json2csv/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | false
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/node_modules/json2csv/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/node_modules/json2csv/.idea/scopes/scope_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/node_modules/json2csv/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/node_modules/json2csv/.npmignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 | .tm_properties
4 | server.*
5 | published
--------------------------------------------------------------------------------
/node_modules/json2csv/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - 0.8
--------------------------------------------------------------------------------
/node_modules/json2csv/History.md:
--------------------------------------------------------------------------------
1 | 2.1.0 / 2013-06-11
2 | ==================
3 |
4 | * quote titles in the first row
5 |
6 | 2.0.0 / 2013-03-04
7 | ==================
8 |
9 | * err in callback function
10 |
11 | 1.3.1 / 2013-02-20
12 | ==================
13 |
14 | * fix stdin encoding
15 |
16 | 1.3.0 / 2013-02-20
17 | ==================
18 |
19 | * support reading from stdin [#9](https://github.com/zeMirco/json2csv/pull/9)
20 |
21 | 1.2.0 / 2013-02-20
22 | ==================
23 |
24 | * support custom field names [#8](https://github.com/zeMirco/json2csv/pull/8)
25 |
26 | 1.1.0 / 2013-01-19
27 | ==================
28 |
29 | * add optional custom delimiter
--------------------------------------------------------------------------------
/node_modules/json2csv/Makefile:
--------------------------------------------------------------------------------
1 | test:
2 | ./node_modules/.bin/mocha --reporter spec
3 |
4 | .PHONY: test
--------------------------------------------------------------------------------
/node_modules/json2csv/node_modules/async/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2010 Caolan McMahon
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/node_modules/json2csv/node_modules/async/component.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "async",
3 | "repo": "caolan/async",
4 | "description": "Higher-order functions and common patterns for asynchronous code",
5 | "version": "0.1.23",
6 | "keywords": [],
7 | "dependencies": {},
8 | "development": {},
9 | "main": "lib/async.js",
10 | "scripts": [ "lib/async.js" ]
11 | }
12 |
--------------------------------------------------------------------------------
/node_modules/json2csv/node_modules/cli-table/.npmignore:
--------------------------------------------------------------------------------
1 | lib-cov
2 | node_modules
3 |
--------------------------------------------------------------------------------
/node_modules/json2csv/node_modules/cli-table/History.md:
--------------------------------------------------------------------------------
1 |
2 | 0.2.0 / 2012-10-21
3 | ==================
4 |
5 | * test: avoid module dep in tests
6 | * fix type bug on integer vertical table value
7 | * handle newlines in vertical and cross tables
8 | * factor out common style setting function
9 | * handle newlines in body cells
10 | * fix render bug when no header provided
11 | * correctly calculate width of cells with newlines
12 | * handles newlines in header cells
13 | * ability to create cross tables
14 | * changing table chars to ones that windows supports
15 | * allow empty arguments to Table constructor
16 | * fix headless tables containing empty first row
17 | * add vertical tables
18 | * remove reference to require.paths
19 | * compact style for dense tables
20 | * fix toString without col widths by cloning array
21 | * [api]: Added abiltity to strip out ANSI color escape codes when calculating cell padding
22 |
23 | 0.0.1 / 2011-01-03
24 | ==================
25 |
26 | Initial release
27 |
--------------------------------------------------------------------------------
/node_modules/json2csv/node_modules/cli-table/Makefile:
--------------------------------------------------------------------------------
1 |
2 | test:
3 | @NODE_ENV=test ./node_modules/.bin/expresso $(TESTFLAGS) test/*.test.js
4 |
5 | test-cov:
6 | @TESTFLAGS=--cov $(MAKE) test
7 |
8 | .PHONY: test test-cov
9 |
--------------------------------------------------------------------------------
/node_modules/json2csv/node_modules/cli-table/examples/table.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Module requirements.
4 | */
5 |
6 | // this line is only needed if you refuse to use npm
7 | require.paths.unshift(__dirname + '/../support/colors');
8 |
9 | var Table = require('../lib/cli-table');
10 |
11 | /**
12 | * Example.
13 | */
14 |
15 | var table = new Table({
16 | head: ['First', 'Last', 'Email', 'Twitter']
17 | , chars: {
18 | 'top': '-'
19 | , 'top-mid': '-'
20 | , 'top-left': '-'
21 | , 'top-right': '-'
22 | , 'bottom': '-'
23 | , 'bottom-mid': '-'
24 | , 'bottom-left': '-'
25 | , 'bottom-right': '-'
26 | , 'left': '|'
27 | , 'left-mid': '|'
28 | , 'mid': '-'
29 | , 'mid-mid': '-'
30 | , 'right': '|'
31 | , 'right-mid': '-'
32 | }
33 | , colWidths: [14, 10, 25, 17]
34 | });
35 |
36 | table.push(
37 | ['Guillermo', 'Rauch', 'rauchg@gmail.com', 'rauchg']
38 | );
39 |
40 | console.log(table.toString());
41 |
--------------------------------------------------------------------------------
/node_modules/json2csv/node_modules/cli-table/index.js:
--------------------------------------------------------------------------------
1 |
2 | module.exports = require('./lib/cli-table');
3 |
--------------------------------------------------------------------------------
/node_modules/json2csv/node_modules/cli-table/node_modules/colors/MIT-LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2010 Marak Squires http://github.com/marak/say.js/
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining
4 | a copy of this software and associated documentation files (the
5 | "Software"), to deal in the Software without restriction, including
6 | without limitation the rights to use, copy, modify, merge, publish,
7 | distribute, sublicense, and/or sell copies of the Software, and to
8 | permit persons to whom the Software is furnished to do so, subject to
9 | the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be
12 | included in all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/node_modules/json2csv/node_modules/cli-table/node_modules/colors/ReadMe.md:
--------------------------------------------------------------------------------
1 | colors.js - get color and style in your node.js console like what
2 |
3 |
4 |
5 | var sys = require('sys');
6 | var colors = require('./colors');
7 |
8 | sys.puts('hello'.green); // outputs green text
9 | sys.puts('i like cake and pies'.underline.red) // outputs red underlined text
10 | sys.puts('inverse the color'.inverse); // inverses the color
11 | sys.puts('OMG Rainbows!'.rainbow); // rainbow (ignores spaces)
12 |
13 | colors and styles!
14 | - bold
15 | - italic
16 | - underline
17 | - inverse
18 | - yellow
19 | - cyan
20 | - white
21 | - magenta
22 | - green
23 | - red
24 | - grey
25 | - blue
26 |
27 |
28 | ### Authors
29 |
30 | #### Alexis Sellier (cloudhead) , Marak Squires , Justin Campbell
31 |
--------------------------------------------------------------------------------
/node_modules/json2csv/node_modules/cli-table/node_modules/colors/example.js:
--------------------------------------------------------------------------------
1 | var sys = require('sys');
2 | var colors = require('./colors');
3 |
4 | sys.puts('Rainbows are fun!'.rainbow);
5 | sys.puts('So '.italic + 'are'.underline + ' styles! '.bold + 'inverse'.inverse); // styles not widely supported
6 | sys.puts('Chains are also cool.'.bold.italic.underline.red); // styles not widely supported
--------------------------------------------------------------------------------
/node_modules/json2csv/node_modules/commander/.npmignore:
--------------------------------------------------------------------------------
1 | support
2 | test
3 | examples
4 | *.sock
5 |
--------------------------------------------------------------------------------
/node_modules/json2csv/node_modules/commander/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - 0.4
4 | - 0.6
5 |
--------------------------------------------------------------------------------
/node_modules/json2csv/node_modules/commander/Makefile:
--------------------------------------------------------------------------------
1 |
2 | TESTS = $(shell find test/test.*.js)
3 |
4 | test:
5 | @./test/run $(TESTS)
6 |
7 | .PHONY: test
--------------------------------------------------------------------------------
/node_modules/json2csv/node_modules/commander/index.js:
--------------------------------------------------------------------------------
1 |
2 | module.exports = require('./lib/commander');
--------------------------------------------------------------------------------
/node_modules/json2csv/node_modules/commander/node_modules/keypress/test.js:
--------------------------------------------------------------------------------
1 |
2 | var keypress = require('./')
3 | keypress(process.stdin)
4 |
5 | if (process.stdin.setRawMode)
6 | process.stdin.setRawMode(true)
7 | else
8 | require('tty').setRawMode(true)
9 |
10 | process.stdin.on('keypress', function (c, key) {
11 | console.log(0, c, key)
12 | if (key && key.ctrl && key.name == 'c') {
13 | process.stdin.pause()
14 | }
15 | })
16 | process.stdin.on('mousepress', function (mouse) {
17 | console.log(mouse)
18 | })
19 |
20 | keypress.enableMouse(process.stdout)
21 | process.on('exit', function () {
22 | //disable mouse on exit, so that the state is back to normal
23 | //for the terminal.
24 | keypress.disableMouse(process.stdout)
25 | })
26 |
27 | process.stdin.resume()
28 |
29 |
--------------------------------------------------------------------------------
/node_modules/json2csv/test/fixtures/in-quotes.json:
--------------------------------------------------------------------------------
1 | [
2 | {"a string": "with a description"},
3 | {"a string": "with a description and \"quotes\""}
4 | ]
--------------------------------------------------------------------------------
/node_modules/json2csv/test/fixtures/in.json:
--------------------------------------------------------------------------------
1 | [
2 | { "carModel" : "Audi", "price" : 10000, "color" : "blue" }
3 | , { "carModel" : "BMW", "price" : 15000, "color" : "red" }
4 | , { "carModel" : "Mercedes", "price" : 20000, "color" : "yellow" }
5 | , { "carModel" : "Porsche", "price" : 30000, "color" : "green" }
6 | ]
7 |
--------------------------------------------------------------------------------
/node_modules/json2csv/test/fixtures/out-fieldNames.csv:
--------------------------------------------------------------------------------
1 | "Car Model","Price USD"
2 | "Audi",10000
3 | "BMW",15000
4 | "Mercedes",20000
5 | "Porsche",30000
--------------------------------------------------------------------------------
/node_modules/json2csv/test/fixtures/out-quotes.csv:
--------------------------------------------------------------------------------
1 | "a string"
2 | "with a description"
3 | "with a description and ""quotes"""
--------------------------------------------------------------------------------
/node_modules/json2csv/test/fixtures/out-reversed.csv:
--------------------------------------------------------------------------------
1 | "price","carModel"
2 | 10000,"Audi"
3 | 15000,"BMW"
4 | 20000,"Mercedes"
5 | 30000,"Porsche"
--------------------------------------------------------------------------------
/node_modules/json2csv/test/fixtures/out-selected.csv:
--------------------------------------------------------------------------------
1 | "carModel","price"
2 | "Audi",10000
3 | "BMW",15000
4 | "Mercedes",20000
5 | "Porsche",30000
--------------------------------------------------------------------------------
/node_modules/json2csv/test/fixtures/out.csv:
--------------------------------------------------------------------------------
1 | "carModel","price","color"
2 | "Audi",10000,"blue"
3 | "BMW",15000,"red"
4 | "Mercedes",20000,"yellow"
5 | "Porsche",30000,"green"
--------------------------------------------------------------------------------
/node_modules/json2csv/test/fixtures/out.tsv:
--------------------------------------------------------------------------------
1 | "carModel" "price" "color"
2 | "Audi" 10000 "blue"
3 | "BMW" 15000 "red"
4 | "Mercedes" 20000 "yellow"
5 | "Porsche" 30000 "green"
--------------------------------------------------------------------------------
/node_modules/redis/.npmignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/node_modules/redis/benches/hiredis_parser.js:
--------------------------------------------------------------------------------
1 | var Parser = require('../lib/parser/hiredis').Parser;
2 | var assert = require('assert');
3 |
4 | /*
5 | This test makes sure that exceptions thrown inside of "reply" event handlers
6 | are not trapped and mistakenly emitted as parse errors.
7 | */
8 | (function testExecuteDoesNotCatchReplyCallbackExceptions() {
9 | var parser = new Parser();
10 | var replies = [{}];
11 |
12 | parser.reader = {
13 | feed: function() {},
14 | get: function() {
15 | return replies.shift();
16 | }
17 | };
18 |
19 | var emittedError = false;
20 | var caughtException = false;
21 |
22 | parser
23 | .on('error', function() {
24 | emittedError = true;
25 | })
26 | .on('reply', function() {
27 | throw new Error('bad');
28 | });
29 |
30 | try {
31 | parser.execute();
32 | } catch (err) {
33 | caughtException = true;
34 | }
35 |
36 | assert.equal(caughtException, true);
37 | assert.equal(emittedError, false);
38 | })();
39 |
--------------------------------------------------------------------------------
/node_modules/redis/benches/re_sub_test.js:
--------------------------------------------------------------------------------
1 | var client = require('../index').createClient()
2 | , client2 = require('../index').createClient()
3 | , assert = require('assert');
4 |
5 | client.once('subscribe', function (channel, count) {
6 | client.unsubscribe('x');
7 | client.subscribe('x', function () {
8 | client.quit();
9 | client2.quit();
10 | });
11 | client2.publish('x', 'hi');
12 | });
13 |
14 | client.subscribe('x');
15 |
--------------------------------------------------------------------------------
/node_modules/redis/benches/reconnect_test.js:
--------------------------------------------------------------------------------
1 | var redis = require("../index").createClient(null, null, {
2 | // max_attempts: 4
3 | });
4 |
5 | redis.on("error", function (err) {
6 | console.log("Redis says: " + err);
7 | });
8 |
9 | redis.on("ready", function () {
10 | console.log("Redis ready.");
11 | });
12 |
13 | redis.on("reconnecting", function (arg) {
14 | console.log("Redis reconnecting: " + JSON.stringify(arg));
15 | });
16 | redis.on("connect", function () {
17 | console.log("Redis connected.");
18 | });
19 |
20 | setInterval(function () {
21 | var now = Date.now();
22 | redis.set("now", now, function (err, res) {
23 | if (err) {
24 | console.log(now + " Redis reply error: " + err);
25 | } else {
26 | console.log(now + " Redis reply: " + res);
27 | }
28 | });
29 | }, 100);
30 |
--------------------------------------------------------------------------------
/node_modules/redis/benches/stress/codec.js:
--------------------------------------------------------------------------------
1 | var json = {
2 | encode: JSON.stringify,
3 | decode: JSON.parse
4 | };
5 |
6 | var MsgPack = require('node-msgpack');
7 | msgpack = {
8 | encode: MsgPack.pack,
9 | decode: function(str) { return MsgPack.unpack(new Buffer(str)); }
10 | };
11 |
12 | bison = require('bison');
13 |
14 | module.exports = json;
15 | //module.exports = msgpack;
16 | //module.exports = bison;
17 |
--------------------------------------------------------------------------------
/node_modules/redis/benches/stress/pubsub/pub.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var freemem = require('os').freemem;
4 | var profiler = require('v8-profiler');
5 | var codec = require('../codec');
6 |
7 | var sent = 0;
8 |
9 | var pub = require('redis').createClient(null, null, {
10 | //command_queue_high_water: 5,
11 | //command_queue_low_water: 1
12 | })
13 | .on('ready', function() {
14 | this.emit('drain');
15 | })
16 | .on('drain', function() {
17 | process.nextTick(exec);
18 | });
19 |
20 | var payload = '1'; for (var i = 0; i < 12; ++i) payload += payload;
21 | console.log('Message payload length', payload.length);
22 |
23 | function exec() {
24 | pub.publish('timeline', codec.encode({ foo: payload }));
25 | ++sent;
26 | if (!pub.should_buffer) {
27 | process.nextTick(exec);
28 | }
29 | }
30 |
31 | profiler.takeSnapshot('s_0');
32 |
33 | exec();
34 |
35 | setInterval(function() {
36 | profiler.takeSnapshot('s_' + sent);
37 | console.error('sent', sent, 'free', freemem(), 'cmdqlen', pub.command_queue.length, 'offqlen', pub.offline_queue.length);
38 | }, 2000);
39 |
--------------------------------------------------------------------------------
/node_modules/redis/benches/stress/pubsub/run:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | node server.js &
3 | node server.js &
4 | node server.js &
5 | node server.js &
6 | node server.js &
7 | node server.js &
8 | node server.js &
9 | node server.js &
10 | node --debug pub.js
11 |
--------------------------------------------------------------------------------
/node_modules/redis/benches/stress/pubsub/server.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var freemem = require('os').freemem;
4 | var codec = require('../codec');
5 |
6 | var id = Math.random();
7 | var recv = 0;
8 |
9 | var sub = require('redis').createClient()
10 | .on('ready', function() {
11 | this.subscribe('timeline');
12 | })
13 | .on('message', function(channel, message) {
14 | var self = this;
15 | if (message) {
16 | message = codec.decode(message);
17 | ++recv;
18 | }
19 | });
20 |
21 | setInterval(function() {
22 | console.error('id', id, 'received', recv, 'free', freemem());
23 | }, 2000);
24 |
--------------------------------------------------------------------------------
/node_modules/redis/benches/stress/rpushblpop/pub.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var freemem = require('os').freemem;
4 | //var profiler = require('v8-profiler');
5 | var codec = require('../codec');
6 |
7 | var sent = 0;
8 |
9 | var pub = require('redis').createClient(null, null, {
10 | //command_queue_high_water: 5,
11 | //command_queue_low_water: 1
12 | })
13 | .on('ready', function() {
14 | this.del('timeline');
15 | this.emit('drain');
16 | })
17 | .on('drain', function() {
18 | process.nextTick(exec);
19 | });
20 |
21 | var payload = '1'; for (var i = 0; i < 12; ++i) payload += payload;
22 | console.log('Message payload length', payload.length);
23 |
24 | function exec() {
25 | pub.rpush('timeline', codec.encode({ foo: payload }));
26 | ++sent;
27 | if (!pub.should_buffer) {
28 | process.nextTick(exec);
29 | }
30 | }
31 |
32 | //profiler.takeSnapshot('s_0');
33 |
34 | exec();
35 |
36 | setInterval(function() {
37 | //var ss = profiler.takeSnapshot('s_' + sent);
38 | //console.error(ss.stringify());
39 | pub.llen('timeline', function(err, result) {
40 | console.error('sent', sent, 'free', freemem(),
41 | 'cmdqlen', pub.command_queue.length, 'offqlen', pub.offline_queue.length,
42 | 'llen', result
43 | );
44 | });
45 | }, 2000);
46 |
47 | /*setTimeout(function() {
48 | process.exit();
49 | }, 30000);*/
50 |
--------------------------------------------------------------------------------
/node_modules/redis/benches/stress/rpushblpop/run:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | node server.js &
3 | #node server.js &
4 | #node server.js &
5 | #node server.js &
6 | node --debug pub.js
7 |
--------------------------------------------------------------------------------
/node_modules/redis/benches/stress/rpushblpop/server.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var freemem = require('os').freemem;
4 | var codec = require('../codec');
5 |
6 | var id = Math.random();
7 | var recv = 0;
8 |
9 | var cmd = require('redis').createClient();
10 | var sub = require('redis').createClient()
11 | .on('ready', function() {
12 | this.emit('timeline');
13 | })
14 | .on('timeline', function() {
15 | var self = this;
16 | this.blpop('timeline', 0, function(err, result) {
17 | var message = result[1];
18 | if (message) {
19 | message = codec.decode(message);
20 | ++recv;
21 | }
22 | self.emit('timeline');
23 | });
24 | });
25 |
26 | setInterval(function() {
27 | cmd.llen('timeline', function(err, result) {
28 | console.error('id', id, 'received', recv, 'free', freemem(), 'llen', result);
29 | });
30 | }, 2000);
31 |
--------------------------------------------------------------------------------
/node_modules/redis/benches/stress/speed/00:
--------------------------------------------------------------------------------
1 | # size JSON msgpack bison
2 | 26602 2151.0170848180414
3 | 25542 ? 2842.589272665782
4 | 24835 ? ? 7280.4538397469805
5 | 6104 6985.234528557929
6 | 5045 ? 7217.461392841478
7 | 4341 ? ? 14261.406335354604
8 | 4180 15864.633685636572
9 | 4143 ? 12954.806235781925
10 | 4141 ? ? 44650.70733912719
11 | 75 114227.07313350472
12 | 40 ? 30162.440062810834
13 | 39 ? ? 119815.66013519121
14 |
--------------------------------------------------------------------------------
/node_modules/redis/benches/stress/speed/plot:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | gnuplot >size-rate.jpg << _EOF_
4 |
5 | set terminal png nocrop enhanced font verdana 12 size 640,480
6 | set logscale x
7 | set logscale y
8 | set grid
9 | set xlabel 'Serialized object size, octets'
10 | set ylabel 'decode(encode(obj)) rate, 1/sec'
11 | plot '00' using 1:2 title 'json' smooth bezier, '00' using 1:3 title 'msgpack' smooth bezier, '00' using 1:4 title 'bison' smooth bezier
12 |
13 | _EOF_
14 |
--------------------------------------------------------------------------------
/node_modules/redis/benches/stress/speed/size-rate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/node_modules/redis/benches/stress/speed/size-rate.png
--------------------------------------------------------------------------------
/node_modules/redis/benches/sub_quit_test.js:
--------------------------------------------------------------------------------
1 | var client = require("redis").createClient(),
2 | client2 = require("redis").createClient();
3 |
4 | client.subscribe("something");
5 | client.on("subscribe", function (channel, count) {
6 | console.log("Got sub: " + channel);
7 | client.unsubscribe("something");
8 | });
9 |
10 | client.on("unsubscribe", function (channel, count) {
11 | console.log("Got unsub: " + channel + ", quitting");
12 | client.quit();
13 | });
14 |
15 | // exercise unsub before sub
16 | client2.unsubscribe("something");
17 | client2.subscribe("another thing");
18 | client2.quit();
19 |
--------------------------------------------------------------------------------
/node_modules/redis/examples/auth.js:
--------------------------------------------------------------------------------
1 | var redis = require("redis"),
2 | client = redis.createClient();
3 |
4 | // This command is magical. Client stashes the password and will issue on every connect.
5 | client.auth("somepass");
6 |
--------------------------------------------------------------------------------
/node_modules/redis/examples/backpressure_drain.js:
--------------------------------------------------------------------------------
1 | var redis = require("../index"),
2 | client = redis.createClient(null, null, {
3 | command_queue_high_water: 5,
4 | command_queue_low_water: 1
5 | }),
6 | remaining_ops = 100000, paused = false;
7 |
8 | function op() {
9 | if (remaining_ops <= 0) {
10 | console.error("Finished.");
11 | process.exit(0);
12 | }
13 |
14 | remaining_ops--;
15 | if (client.hset("test hash", "val " + remaining_ops, remaining_ops) === false) {
16 | console.log("Pausing at " + remaining_ops);
17 | paused = true;
18 | } else {
19 | process.nextTick(op);
20 | }
21 | }
22 |
23 | client.on("drain", function () {
24 | if (paused) {
25 | console.log("Resuming at " + remaining_ops);
26 | paused = false;
27 | process.nextTick(op);
28 | } else {
29 | console.log("Got drain while not paused at " + remaining_ops);
30 | }
31 | });
32 |
33 | op();
34 |
--------------------------------------------------------------------------------
/node_modules/redis/examples/eval.js:
--------------------------------------------------------------------------------
1 | var redis = require("../index"),
2 | client = redis.createClient();
3 |
4 | redis.debug_mode = true;
5 |
6 | client.eval("return 100.5", 0, function (err, res) {
7 | console.dir(err);
8 | console.dir(res);
9 | });
10 |
11 | client.eval([ "return 100.5", 0 ], function (err, res) {
12 | console.dir(err);
13 | console.dir(res);
14 | });
15 |
--------------------------------------------------------------------------------
/node_modules/redis/examples/extend.js:
--------------------------------------------------------------------------------
1 | var redis = require("redis"),
2 | client = redis.createClient();
3 |
4 | // Extend the RedisClient prototype to add a custom method
5 | // This one converts the results from "INFO" into a JavaScript Object
6 |
7 | redis.RedisClient.prototype.parse_info = function (callback) {
8 | this.info(function (err, res) {
9 | var lines = res.toString().split("\r\n").sort();
10 | var obj = {};
11 | lines.forEach(function (line) {
12 | var parts = line.split(':');
13 | if (parts[1]) {
14 | obj[parts[0]] = parts[1];
15 | }
16 | });
17 | callback(obj)
18 | });
19 | };
20 |
21 | client.parse_info(function (info) {
22 | console.dir(info);
23 | client.quit();
24 | });
25 |
--------------------------------------------------------------------------------
/node_modules/redis/examples/file.js:
--------------------------------------------------------------------------------
1 | // Read a file from disk, store it in Redis, then read it back from Redis.
2 |
3 | var redis = require("redis"),
4 | client = redis.createClient(),
5 | fs = require("fs"),
6 | filename = "kids_in_cart.jpg";
7 |
8 | // Get the file I use for testing like this:
9 | // curl http://ranney.com/kids_in_cart.jpg -o kids_in_cart.jpg
10 | // or just use your own file.
11 |
12 | // Read a file from fs, store it in Redis, get it back from Redis, write it back to fs.
13 | fs.readFile(filename, function (err, data) {
14 | if (err) throw err
15 | console.log("Read " + data.length + " bytes from filesystem.");
16 |
17 | client.set(filename, data, redis.print); // set entire file
18 | client.get(filename, function (err, reply) { // get entire file
19 | if (err) {
20 | console.log("Get error: " + err);
21 | } else {
22 | fs.writeFile("duplicate_" + filename, reply, function (err) {
23 | if (err) {
24 | console.log("Error on write: " + err)
25 | } else {
26 | console.log("File written.");
27 | }
28 | client.end();
29 | });
30 | }
31 | });
32 | });
33 |
--------------------------------------------------------------------------------
/node_modules/redis/examples/mget.js:
--------------------------------------------------------------------------------
1 | var client = require("redis").createClient();
2 |
3 | client.mget(["sessions started", "sessions started", "foo"], function (err, res) {
4 | console.dir(res);
5 | });
--------------------------------------------------------------------------------
/node_modules/redis/examples/monitor.js:
--------------------------------------------------------------------------------
1 | var client = require("../index").createClient(),
2 | util = require("util");
3 |
4 | client.monitor(function (err, res) {
5 | console.log("Entering monitoring mode.");
6 | });
7 |
8 | client.on("monitor", function (time, args) {
9 | console.log(time + ": " + util.inspect(args));
10 | });
11 |
--------------------------------------------------------------------------------
/node_modules/redis/examples/multi2.js:
--------------------------------------------------------------------------------
1 | var redis = require("redis"),
2 | client = redis.createClient(), multi;
3 |
4 | // start a separate command queue for multi
5 | multi = client.multi();
6 | multi.incr("incr thing", redis.print);
7 | multi.incr("incr other thing", redis.print);
8 |
9 | // runs immediately
10 | client.mset("incr thing", 100, "incr other thing", 1, redis.print);
11 |
12 | // drains multi queue and runs atomically
13 | multi.exec(function (err, replies) {
14 | console.log(replies); // 101, 2
15 | });
16 |
17 | // you can re-run the same transaction if you like
18 | multi.exec(function (err, replies) {
19 | console.log(replies); // 102, 3
20 | client.quit();
21 | });
22 |
23 | client.multi([
24 | ["mget", "multifoo", "multibar", redis.print],
25 | ["incr", "multifoo"],
26 | ["incr", "multibar"]
27 | ]).exec(function (err, replies) {
28 | console.log(replies.toString());
29 | });
30 |
--------------------------------------------------------------------------------
/node_modules/redis/examples/psubscribe.js:
--------------------------------------------------------------------------------
1 | var redis = require("redis"),
2 | client1 = redis.createClient(),
3 | client2 = redis.createClient(),
4 | client3 = redis.createClient(),
5 | client4 = redis.createClient(),
6 | msg_count = 0;
7 |
8 | redis.debug_mode = false;
9 |
10 | client1.on("psubscribe", function (pattern, count) {
11 | console.log("client1 psubscribed to " + pattern + ", " + count + " total subscriptions");
12 | client2.publish("channeltwo", "Me!");
13 | client3.publish("channelthree", "Me too!");
14 | client4.publish("channelfour", "And me too!");
15 | });
16 |
17 | client1.on("punsubscribe", function (pattern, count) {
18 | console.log("client1 punsubscribed from " + pattern + ", " + count + " total subscriptions");
19 | client4.end();
20 | client3.end();
21 | client2.end();
22 | client1.end();
23 | });
24 |
25 | client1.on("pmessage", function (pattern, channel, message) {
26 | console.log("("+ pattern +")" + " client1 received message on " + channel + ": " + message);
27 | msg_count += 1;
28 | if (msg_count === 3) {
29 | client1.punsubscribe();
30 | }
31 | });
32 |
33 | client1.psubscribe("channel*");
34 |
--------------------------------------------------------------------------------
/node_modules/redis/examples/simple.js:
--------------------------------------------------------------------------------
1 | var redis = require("redis"),
2 | client = redis.createClient();
3 |
4 | client.on("error", function (err) {
5 | console.log("error event - " + client.host + ":" + client.port + " - " + err);
6 | });
7 |
8 | client.set("string key", "string val", redis.print);
9 | client.hset("hash key", "hashtest 1", "some value", redis.print);
10 | client.hset(["hash key", "hashtest 2", "some other value"], redis.print);
11 | client.hkeys("hash key", function (err, replies) {
12 | if (err) {
13 | return console.error("error response - " + err);
14 | }
15 |
16 | console.log(replies.length + " replies:");
17 | replies.forEach(function (reply, i) {
18 | console.log(" " + i + ": " + reply);
19 | });
20 | });
21 |
22 | client.quit(function (err, res) {
23 | console.log("Exiting from quit command.");
24 | });
25 |
--------------------------------------------------------------------------------
/node_modules/redis/examples/sort.js:
--------------------------------------------------------------------------------
1 | var redis = require("redis"),
2 | client = redis.createClient();
3 |
4 | client.sadd("mylist", 1);
5 | client.sadd("mylist", 2);
6 | client.sadd("mylist", 3);
7 |
8 | client.set("weight_1", 5);
9 | client.set("weight_2", 500);
10 | client.set("weight_3", 1);
11 |
12 | client.set("object_1", "foo");
13 | client.set("object_2", "bar");
14 | client.set("object_3", "qux");
15 |
16 | client.sort("mylist", "by", "weight_*", "get", "object_*", redis.print);
17 | // Prints Reply: qux,foo,bar
--------------------------------------------------------------------------------
/node_modules/redis/examples/subqueries.js:
--------------------------------------------------------------------------------
1 | // Sending commands in response to other commands.
2 | // This example runs "type" against every key in the database
3 | //
4 | var client = require("redis").createClient();
5 |
6 | client.keys("*", function (err, keys) {
7 | keys.forEach(function (key, pos) {
8 | client.type(key, function (err, keytype) {
9 | console.log(key + " is " + keytype);
10 | if (pos === (keys.length - 1)) {
11 | client.quit();
12 | }
13 | });
14 | });
15 | });
16 |
--------------------------------------------------------------------------------
/node_modules/redis/examples/subquery.js:
--------------------------------------------------------------------------------
1 | var client = require("redis").createClient();
2 |
3 | function print_results(obj) {
4 | console.dir(obj);
5 | }
6 |
7 | // build a map of all keys and their types
8 | client.keys("*", function (err, all_keys) {
9 | var key_types = {};
10 |
11 | all_keys.forEach(function (key, pos) { // use second arg of forEach to get pos
12 | client.type(key, function (err, type) {
13 | key_types[key] = type;
14 | if (pos === all_keys.length - 1) { // callbacks all run in order
15 | print_results(key_types);
16 | }
17 | });
18 | });
19 | });
20 |
--------------------------------------------------------------------------------
/node_modules/redis/examples/unix_socket.js:
--------------------------------------------------------------------------------
1 | var redis = require("redis"),
2 | client = redis.createClient("/tmp/redis.sock"),
3 | profiler = require("v8-profiler");
4 |
5 | client.on("connect", function () {
6 | console.log("Got Unix socket connection.")
7 | });
8 |
9 | client.on("error", function (err) {
10 | console.log(err.message);
11 | });
12 |
13 | client.set("space chars", "space value");
14 |
15 | setInterval(function () {
16 | client.get("space chars");
17 | }, 100);
18 |
19 | function done() {
20 | client.info(function (err, reply) {
21 | console.log(reply.toString());
22 | client.quit();
23 | });
24 | }
25 |
26 | setTimeout(function () {
27 | console.log("Taking snapshot.");
28 | var snap = profiler.takeSnapshot();
29 | }, 5000);
30 |
--------------------------------------------------------------------------------
/node_modules/redis/generate_commands.js:
--------------------------------------------------------------------------------
1 | var http = require("http"),
2 | fs = require("fs");
3 |
4 | function prettyCurrentTime() {
5 | var date = new Date();
6 | return date.toLocaleString();
7 | }
8 |
9 | function write_file(commands, path) {
10 | var file_contents, out_commands;
11 |
12 | console.log("Writing " + Object.keys(commands).length + " commands to " + path);
13 |
14 | file_contents = "// This file was generated by ./generate_commands.js on " + prettyCurrentTime() + "\n";
15 |
16 | out_commands = Object.keys(commands).map(function (key) {
17 | return key.toLowerCase();
18 | });
19 |
20 | file_contents += "module.exports = " + JSON.stringify(out_commands, null, " ") + ";\n";
21 |
22 | fs.writeFile(path, file_contents);
23 | }
24 |
25 | http.get({host: "redis.io", path: "/commands.json"}, function (res) {
26 | var body = "";
27 |
28 | console.log("Response from redis.io/commands.json: " + res.statusCode);
29 |
30 | res.on('data', function (chunk) {
31 | body += chunk;
32 | });
33 |
34 | res.on('end', function () {
35 | write_file(JSON.parse(body), "lib/commands.js");
36 | });
37 | }).on('error', function (e) {
38 | console.log("Error fetching command list from redis.io: " + e.message);
39 | });
40 |
--------------------------------------------------------------------------------
/node_modules/redis/lib/parser/hiredis.js:
--------------------------------------------------------------------------------
1 | var events = require("events"),
2 | util = require("../util"),
3 | hiredis = require("hiredis");
4 |
5 | exports.debug_mode = false;
6 | exports.name = "hiredis";
7 |
8 | function HiredisReplyParser(options) {
9 | this.name = exports.name;
10 | this.options = options || {};
11 | this.reset();
12 | events.EventEmitter.call(this);
13 | }
14 |
15 | util.inherits(HiredisReplyParser, events.EventEmitter);
16 |
17 | exports.Parser = HiredisReplyParser;
18 |
19 | HiredisReplyParser.prototype.reset = function () {
20 | this.reader = new hiredis.Reader({
21 | return_buffers: this.options.return_buffers || false
22 | });
23 | };
24 |
25 | HiredisReplyParser.prototype.execute = function (data) {
26 | var reply;
27 | this.reader.feed(data);
28 | while (true) {
29 | try {
30 | reply = this.reader.get();
31 | } catch (err) {
32 | this.emit("error", err);
33 | break;
34 | }
35 |
36 | if (reply === undefined) {
37 | break;
38 | }
39 |
40 | if (reply && reply.constructor === Error) {
41 | this.emit("reply error", reply);
42 | } else {
43 | this.emit("reply", reply);
44 | }
45 | }
46 | };
47 |
--------------------------------------------------------------------------------
/node_modules/redis/lib/to_array.js:
--------------------------------------------------------------------------------
1 | function to_array(args) {
2 | var len = args.length,
3 | arr = new Array(len), i;
4 |
5 | for (i = 0; i < len; i += 1) {
6 | arr[i] = args[i];
7 | }
8 |
9 | return arr;
10 | }
11 |
12 | module.exports = to_array;
13 |
--------------------------------------------------------------------------------
/node_modules/redis/lib/util.js:
--------------------------------------------------------------------------------
1 | // Support for very old versions of node where the module was called "sys". At some point, we should abandon this.
2 |
3 | var util;
4 |
5 | try {
6 | util = require("util");
7 | } catch (err) {
8 | util = require("sys");
9 | }
10 |
11 | module.exports = util;
12 |
--------------------------------------------------------------------------------
/node_modules/underscore/.npmignore:
--------------------------------------------------------------------------------
1 | test/
2 | Rakefile
3 | docs/
4 | raw/
5 | index.html
6 | underscore-min.js
7 |
--------------------------------------------------------------------------------
/node_modules/underscore/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - 0.8
4 | notifications:
5 | email: false
6 |
--------------------------------------------------------------------------------
/node_modules/underscore/CNAME:
--------------------------------------------------------------------------------
1 | underscorejs.org
2 |
--------------------------------------------------------------------------------
/node_modules/underscore/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | ## How to contribute to Underscore.js
2 |
3 | * Before you open a ticket or send a pull request, [search](https://github.com/jashkenas/underscore/issues) for previous discussions about the same feature or issue. Add to the earlier ticket if you find one.
4 |
5 | * Before sending a pull request for a feature, be sure to have [tests](http://underscorejs.org/test/).
6 |
7 | * Use the same coding style as the rest of the [codebase](https://github.com/jashkenas/underscore/blob/master/underscore.js).
8 |
9 | * In your pull request, do not add documentation or re-build the minified `underscore-min.js` file. We'll do those things before cutting a new release.
10 |
--------------------------------------------------------------------------------
/node_modules/underscore/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative
2 | Reporters & Editors
3 |
4 | Permission is hereby granted, free of charge, to any person
5 | obtaining a copy of this software and associated documentation
6 | files (the "Software"), to deal in the Software without
7 | restriction, including without limitation the rights to use,
8 | copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the
10 | Software is furnished to do so, subject to the following
11 | conditions:
12 |
13 | The above copyright notice and this permission notice shall be
14 | included in all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
18 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23 | OTHER DEALINGS IN THE SOFTWARE.
24 |
--------------------------------------------------------------------------------
/node_modules/underscore/README.md:
--------------------------------------------------------------------------------
1 | __
2 | /\ \ __
3 | __ __ ___ \_\ \ __ _ __ ____ ___ ___ _ __ __ /\_\ ____
4 | /\ \/\ \ /' _ `\ /'_ \ /'__`\/\ __\/ ,__\ / ___\ / __`\/\ __\/'__`\ \/\ \ /',__\
5 | \ \ \_\ \/\ \/\ \/\ \ \ \/\ __/\ \ \//\__, `\/\ \__//\ \ \ \ \ \//\ __/ __ \ \ \/\__, `\
6 | \ \____/\ \_\ \_\ \___,_\ \____\\ \_\\/\____/\ \____\ \____/\ \_\\ \____\/\_\ _\ \ \/\____/
7 | \/___/ \/_/\/_/\/__,_ /\/____/ \/_/ \/___/ \/____/\/___/ \/_/ \/____/\/_//\ \_\ \/___/
8 | \ \____/
9 | \/___/
10 |
11 | Underscore.js is a utility-belt library for JavaScript that provides
12 | support for the usual functional suspects (each, map, reduce, filter...)
13 | without extending any core JavaScript objects.
14 |
15 | For Docs, License, Tests, and pre-packed downloads, see:
16 | http://underscorejs.org
17 |
18 | Underscore is an open-sourced component of DocumentCloud:
19 | https://github.com/documentcloud
20 |
21 | Many thanks to our contributors:
22 | https://github.com/jashkenas/underscore/contributors
23 |
--------------------------------------------------------------------------------
/node_modules/underscore/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/node_modules/underscore/favicon.ico
--------------------------------------------------------------------------------
/node_modules/underscore/index.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./underscore');
2 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "experimentr",
3 | "description": "captures input for data visualization studies",
4 | "version": "0.0.1",
5 | "private": true,
6 | "dependencies": {
7 | "csv": "0.2.x",
8 | "d3": "^3.5.16",
9 | "express": "3.x",
10 | "json2csv": "2.x",
11 | "redis": "0.8.x",
12 | "underscore": "~1.5.1"
13 | },
14 | "scripts": {
15 | "start": "node app.js"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/public/css/main.css:
--------------------------------------------------------------------------------
1 | @import url(https://fonts.googleapis.com/css?family=PT+Sans:400,400italic,700,700italic);
2 |
3 | * {
4 | color: #333;
5 | font-family: "PT Sans", sans-serif;
6 | }
7 |
8 | body {
9 | margin: 1em auto 4em auto;
10 | width: 960px;
11 | }
12 |
13 | #experimentr {
14 | margin: 4em auto 1em auto;
15 | width: 720px;
16 | }
17 |
18 | #control {
19 | margin-top: 1em;
20 | }
21 |
22 | #next-button {
23 | float: right;
24 | }
25 |
26 | .placeholder {
27 | color: steelblue;
28 | font-weight: bold;
29 | }
30 |
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Survey
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
21 |
--------------------------------------------------------------------------------
/public/modules/consent/blocked-workers.json:
--------------------------------------------------------------------------------
1 | [
2 | "banned",
3 | "A2KJFH8QSCARQA"
4 | ]
5 |
--------------------------------------------------------------------------------
/public/modules/consent/index.js:
--------------------------------------------------------------------------------
1 | (function() {
2 | var data = {}
3 | , workers = null;
4 |
5 | init();
6 |
7 | function init() {
8 | experimentr.hideNext();
9 |
10 | // load previous workers file
11 | d3.json('modules/consent/blocked-workers.json', function(err, d) {
12 | workers = d;
13 | d3.select('#workerId').attr('disabled', null);
14 | });
15 |
16 | d3.selectAll('#workerId')
17 | .on('keypress', function() { data.workerId = this.value.trim().toUpperCase(); })
18 | .on('blur', function() { data.workerId = this.value.trim().toUpperCase(); });
19 |
20 | d3.select('#consentYes').on('click', experimentr.next);
21 |
22 | d3.select('#checkId').on('click', validate);
23 | }
24 |
25 | function validate() {
26 | if( data.workerId ) {
27 | experimentr.addData(data);
28 |
29 | if( workers.indexOf(data.workerId) == -1 ) {
30 | d3.select('#consentYes').attr('disabled', null);
31 | } else {
32 | d3.select('#invalidMessage').style('display', 'inline');
33 | }
34 | }
35 | }
36 |
37 | }());
38 |
39 |
--------------------------------------------------------------------------------
/public/modules/self-assessment-manikin/img/sam-arousal-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/self-assessment-manikin/img/sam-arousal-1.png
--------------------------------------------------------------------------------
/public/modules/self-assessment-manikin/img/sam-arousal-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/self-assessment-manikin/img/sam-arousal-2.png
--------------------------------------------------------------------------------
/public/modules/self-assessment-manikin/img/sam-arousal-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/self-assessment-manikin/img/sam-arousal-3.png
--------------------------------------------------------------------------------
/public/modules/self-assessment-manikin/img/sam-arousal-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/self-assessment-manikin/img/sam-arousal-4.png
--------------------------------------------------------------------------------
/public/modules/self-assessment-manikin/img/sam-arousal-5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/self-assessment-manikin/img/sam-arousal-5.png
--------------------------------------------------------------------------------
/public/modules/self-assessment-manikin/img/sam-valence-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/self-assessment-manikin/img/sam-valence-1.png
--------------------------------------------------------------------------------
/public/modules/self-assessment-manikin/img/sam-valence-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/self-assessment-manikin/img/sam-valence-2.png
--------------------------------------------------------------------------------
/public/modules/self-assessment-manikin/img/sam-valence-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/self-assessment-manikin/img/sam-valence-3.png
--------------------------------------------------------------------------------
/public/modules/self-assessment-manikin/img/sam-valence-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/self-assessment-manikin/img/sam-valence-4.png
--------------------------------------------------------------------------------
/public/modules/self-assessment-manikin/img/sam-valence-5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/self-assessment-manikin/img/sam-valence-5.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/1.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/10.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/10a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/10a.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/10b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/10b.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/10c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/10c.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/10d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/10d.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/10e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/10e.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/11.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/11a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/11a.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/11b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/11b.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/11c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/11c.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/11d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/11d.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/11e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/11e.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/12.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/12a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/12a.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/12b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/12b.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/12c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/12c.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/12d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/12d.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/12e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/12e.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/13.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/13a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/13a.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/13b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/13b.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/13c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/13c.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/13d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/13d.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/13e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/13e.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/14.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/14a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/14a.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/14b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/14b.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/14c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/14c.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/14d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/14d.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/14e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/14e.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/15.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/15a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/15a.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/15b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/15b.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/15c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/15c.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/15d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/15d.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/15e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/15e.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/16.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/16a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/16a.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/16b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/16b.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/16c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/16c.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/16d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/16d.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/16e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/16e.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/17.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/17a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/17a.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/17b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/17b.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/17c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/17c.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/17d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/17d.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/17e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/17e.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/18.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/18.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/18a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/18a.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/18b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/18b.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/18c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/18c.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/18d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/18d.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/18e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/18e.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/19.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/19.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/19a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/19a.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/19b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/19b.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/19c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/19c.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/19d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/19d.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/19e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/19e.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/1a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/1a.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/1b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/1b.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/1c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/1c.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/1d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/1d.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/1e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/1e.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/2.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/20.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/20a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/20a.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/20b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/20b.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/20c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/20c.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/20d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/20d.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/20e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/20e.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/2a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/2a.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/2b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/2b.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/2c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/2c.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/2d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/2d.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/2e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/2e.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/3.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/3a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/3a.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/3b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/3b.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/3c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/3c.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/3d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/3d.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/3e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/3e.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/4.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/4a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/4a.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/4b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/4b.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/4c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/4c.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/4d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/4d.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/4e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/4e.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/5.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/5a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/5a.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/5b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/5b.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/5c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/5c.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/5d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/5d.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/5e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/5e.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/6.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/6a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/6a.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/6b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/6b.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/6c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/6c.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/6d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/6d.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/6e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/6e.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/7.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/7a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/7a.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/7b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/7b.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/7c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/7c.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/7d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/7d.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/7e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/7e.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/8.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/8a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/8a.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/8b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/8b.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/8c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/8c.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/8d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/8d.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/8e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/8e.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/9.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/9a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/9a.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/9b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/9b.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/9c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/9c.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/9d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/9d.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/9e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/9e.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/divider.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/divider.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/sample.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/sample.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/sample_answer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/sample_answer.png
--------------------------------------------------------------------------------
/public/modules/spatial/img/spacer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codementum/experimentr/5103247bf2ef88239fe6a67fb2123fda56347c02/public/modules/spatial/img/spacer.png
--------------------------------------------------------------------------------
/public/modules/spatial/spatial-rest.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Spatial Test
5 |
6 |
7 |
8 | Take a break... (if you need one)
9 |
10 |
11 | Click next when you are ready to continue to Section II.
12 |
13 |
14 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/redis.conf:
--------------------------------------------------------------------------------
1 | appendonly yes
2 | bind 127.0.0.1
3 |
--------------------------------------------------------------------------------