免费搭建一个在线心理学实验的终极攻略

各位看官好,本期小编将系统介绍如何搭建一个在线心理学实验的后端(也就是数据收集的服务端),之前小编曾经简要介绍过各种在线心理学实验前端(也就是客户端)的编写工具(如Gorilla,jspsych等),并且也提到了在线实验后端的解决方案(如一些挂载在线实验的平台:如Gorilla、Pavlovia等等)。

这里首先简要科普一下什么是”前端”和”后端”。简单来说:

网页上给用户(被试)看的、操作的就是前端;

用户看不到的,而开发者(研究者)能看到的保存和处理数据的就是后端(服务端)。

关于在线实验前端的编写可以查看本公众号之前的推文:

然而,之前介绍的这些平台大多需要按照被试的数量来支付佣金。当然,如果你所在的高校同这些平台有合作,则可能省掉这部分费用。但Gorilla和Pavlovia的主要服务器节点都部署在英国,即使国内科研人员所在的高校跟这些平台有合作,使用体验可能依然不佳。那么如何规避这些平台的不足自建一个免费的在线实验的后端数据收集平台呢

本文将分别按照国内和国外两种网络环境,给出除了主流的Gorilla、Pavlovia等平台之外的在线实验后端详细解(sheng)决(qian)方案,并逐个分析这些解决方案的优缺点。

01

国外在线实验的解决方案

1.1使用谷歌firebase

简介:

谷歌旗下的firebase能帮助开发者快捷方便的部署Web应用和移动app应用的服务端(没错,开发安卓app也可以),而不需要系统学习后端开发的技能。小型应用(比如小型在线实验)使用免费套餐完全够用。它可以配合jspsych、labjs使用,也可以尝试使用psychopy导出的html文件进行挂载(未探索过,有兴趣的小伙伴可以探索一下,原则上应该走得通)。在线行为实验的运行主要使用了firebase的网页挂载和即时数据库功能。

具体攻略:

优缺点:

优点:

缺点:

1.由于访问数据库的密钥是以明文形式储存在网页代码中,如果不加处理,被试只需要按F12,找到网页代码的apikey部分,就可以通过curl访问、修改、删除你的数据库数据了(可以通过禁用F12解决)。就是红线所示的一串代码:

2.firebase使用的是Nosql(非关系型)数据库,导出的数据是JSON格式,对新手不大友好,不过R中有大量解析JSON格式数据的包可以解决这个问题。

3.需要编写额外代码进行被试参与实验的控制(比如识别一个被试是否多次参加了实验)

1.2JATOS的免费平台

简介:

JATOS是一个免费开源的专业在线行为实验的建立工具。近期他们提供了免费使用JATOS服务器的机会。后文我会详细介绍如何用JATOS搭建在线实验的后端。

优缺点:

优点:专业人员为你的实验挂载保驾护航,专业级别的服务器,而且免费。同时JATOS本身具有强大的被试实验控制能力。

缺点:要提交申请,可能要和其他同行竞争有限的机会。

02

国内在线实验的解决方案

2.1firebase在国内的替代品leancloud

虽然firebase用不了,但是国内依然有提供类似firebase的服务商:Leancould。他们也提供了免费套餐,只不过免费套餐有一些限制(如,每天强制6小时休眠挂载的网页)。我们同样可以免费使用leancloud的网页挂载和免费Nosql数据库。

具体攻略:

(与firebase如出一辙)

2.数据库如何使用:

优点:参见firebase

缺点:除了firebase的缺点,多了每天6小时的强制休眠。

2.2使用个人电脑搭建服务器后端

(这种方法其实也可以在国外的网络环境下使用)

这里主要使用了内网穿透技术。简单来说,内网穿透就是通过第三方服务器同时连接你的电脑内网和外部互联网,让外网能够连接到你的内网中来。这样你在本地建立的网页文件就可以被外网的用户浏览到。此外,我将演示如何使用JATOS搭建一个在线实验的后端,以及如何运作这个后端。

这里我们需要用到三个工具:

jspsych(用于编写在线实验客户端),

JATOS(用于部署在线实验服务端),

ngrok(用于联通外网和内网)。

首先你需要用jspsych写好一个在线实验的网页,然后在网页的html代码中中导入jatos.js文件

具体步骤:

然后对之前写好的在线实验代码做微调,具体步骤如下:

1.在jspsych.init之前嵌套jatos.onload。具体代码如下:

jatos.onLoad(function(){

jsPsych.init({

//...

});

2.加上一个回调函数以上传被试的数据文件(这里复制粘贴黄色部分即可)。

之后需要下载ngrok这个工具,下载地址:

然后在ngrok的官方网站上注册一个账号:

然后将文件解压,并打开文件夹中的loader.bat文件

打开之后可以看到下面有一个IP地址和端口号(9000),然后我们ctrl+c复制这个地址和端口号并粘贴到浏览器中(这个命令行界面不要关闭,最小化即可)。

JATOS的登陆界面就出现了,这里的初始账号密码都是admin,然后我们点击进入JATOS:

接着我们就进入了JATOS的主要操作界面,可以看到左边红框框是已经装载的实验(第一次安装这里应该是空的),而上方的红框则是需要用到的功能。

首先点击+NewStduy添加一个新实验,如下图,其中title和directoryname(在线实验html文件夹的文件名)必填:

最后点击Create即可.之后左边会出现刚刚建立的新实验,点击这个新实验,会弹出如下界面:

之后我们点击Components--+New,填写title和HTMLfilepath(也就是在线实验网页文件的文件名)

这样我们的实验就加载进了JATOS。

这样在线实验的前后端就基本部署完成了,接下来我们通过ngrok进行内网穿透。

打开命令行工具(cmd),使用cd“d(ngrok安装的盘):\ngrok所在的文件目录”修改工作目录。

修改工作目录后如下图:

接着我们可以将刚才的地址去掉/test再黏贴到浏览器地址栏,就可以登陆到JATOS了。

可以看到这时的JATOSlogo已经没有了local字样,说明外网能成功访问到这个页面了。

接下来我们点击刚才已经部署好的实验,再点击Woker&Batchmanager,你会看到如下界面:

点击下拉箭头:

优点:免费,方便,而且依托JATOS的被试控制

缺点:免费版的ngrok第三方服务器部署在美国,网速可能比较慢,只能支持较少被试同时进行实验

写在最后的需知:

虽然这篇推文提到了一些免费的建立在线实验的方法,但是免费搭建的在线实验限制较多,且稳定性可能不够(比如有较多被试同时参与你搭建的在线实验,由于带宽不够造成数据流失,没能上传到数据库)。故本人建议免费搭建平台可以用来做一些小项目或者预实验。但是如果你所在的研究团队有这方面专业的支持,还是应当寻求专业帮助。毕竟一分钱一分货嘛。就像某互联网大佬的曾经说过的:

THE END
1.在线实验,让计算机教学灵活高效他们都在这里 他们在这里开设了专属实验室 teacherZheng 已发布1门课程 郑老师 辽宁师范大学 已发布1门课程 lizhijun_os 已发布1门课程 孟宁 已发布3门课程 Linux中国 已发布4门课程 异步社区 已发布22门课程 机械工业出版社 已发布4门课程 清华大学出版社 https://www.shiyanlou.com/labs/
2.全国中小学实验在线平台由教育部基础教育司主办,中国教育装备行业协会和教育部教育技术与资源发展中心支持的《关于举办第九届全国中小学实验教学说课活动的通知》已于2023年5月15日发布https://www.syzx-edu.com/
3.智能实验室课程类型 全部 虚拟仿真实验课 线上实验课 线上线下混合式实验课 课程状态 全部 最新课程 即将上线 结束课程 公开课 液晶器件制备及电光效应测量虚拟… 张亚萍中国石油大学(华东) 进行至146周14726 从减数分裂到试管婴儿 付超山西医科大学 进行至158周4751 大学物理实验线上实验课 冯中营太原工业学院 进行至14https://www.ilab-x.com/cloud
4.蚁景网安实验室蚁景网安实验室提供在线实验与课程,包含web安全\渗透测试\密码学应用\软件安全\CTF挑战\漏洞挖掘等多方面的内容,大量靶场实战提升操作能力,助你快速成长https://www.hetianlab.com/
5.51OpenLab51OpenLab是一站式ICT创新服务平台,以“共学、共研、共创”为使命,连接和服务ICT产学研链条,提供实验平台、培训认证、测试验证、项目对接、众包研发、成果转化等多元服务,促进基础设施、信息、人才和技术等资源的流通、共享和合作,构筑开放融合的产业创新生态。https://www.51openlab.com/
6.Lab远程在线实验平台采用互联网+、现代通信、虚拟仪器和嵌入式测试技术,把电源、信号源、示波器、万用表等测试仪表与被测电路集成在一起,将原来必须在实验室里进行的实验项目搬到了网上,且不受时间地点限制。支持学生线下线上实验,即学生既能在实验平台上用传统方法做线下实验,又能通过网络在客户端浏览器做线上实验,智http://www.ieeolab.com/
7.恒点MOOLMOOL(Massive Open Online Labs)是“大规模在线开放实验室”的英文简称,是一种全新实验室模式。恒点MOOL云平台结合VR虚拟现实、网络协同技术,采用先进的软件定义网络与共享硬件资源思想,解决了传统实验室在时间、空间与实验内容等限制,能快速构建复杂度高、隔离性强的各http://www.hdmool.com/
8.中小学实验在线水的电解和氢氧混合气爆鸣的微型实验 乙醇与金属钠的反应 电解 海带中碘元素的存在 菲林实验(乙醛和新制氢氧化铜悬浊液的反应) 运动的合成与分解 画出振动图像 研究平抛运动 伽利略斜面实验 探究求合力的方法 制作动物细胞模型 植物蒸腾作用主要发生在叶片 http://shiyan360.cn/
9.喵星实验室一款专为九年级学生打造的虚拟物理实验工具,它集成了高度仿真的实验环境和直观便捷的操作界面,旨在帮助学生通过虚拟实践深入理解和掌握物理原理,提升实验技能和科学探究能力。 产品特色 教材匹配 覆盖九年级物理教材中的所有实验内容,通过大量的实操实验练习,使得实验课学习达标,帮助学生更好地掌握实验技能。 https://lab.101.com/
10.在线实验资源实验室安全教育 学科竞赛 下载 经济管理实验中心统筹安排各类在线实验资源,根据开课计划动态调整: 序号课程(实验)名称类型在线链接 1基础会计模拟实践实践环节EPC:http://10.64.56.61:8095/ 2财会综合模拟实践实践环节http://10.64.56.93:3050/ukt_css/ https://sem.shmtu.edu.cn/zxsy/list.htm
11.深信服在线实验平台深信服aTrust_替换SSL VPN场景实验 5.0 60min 269 AC- 接入认证 5.0 60min 1327 EDS创建集群实验 5.0 30min 878 HOL自由平台 4.0 240min 2785 深信服aTrust_自适应认证场景实验 3.0 90min 3294 深信服aTrust_远程办公接入场景实验 4.0 90min 3754 深信服aTrust_部署实验 https://hol.sangfor.com.cn/
12.关键迭代:可信赖的线上对照实验(豆瓣)本书基于近些年实验领域的研究成果和实践经验,对实验的方法和应用做了很好的全景式描述,是一本兼顾系统性的方法论和基于实战的经验法则的书籍。根据微软、亚马逊、谷歌和领英每年运行的两万多个对照实验,作者以示例和建议的方式向学生和业内人士分享了自己的实践经验,指出了需要避免的陷阱,并深入探讨了一些进阶专题,可以https://book.douban.com/subject/35434195/
13.计算机组成原理实验6:指令总线运用实验四、 指令总线手动在线实验 1、将系统状态设置为“手动”、“在线”。 2、指令寄存器IR字打入 拨动“I/O输入输出单元”开关向指令寄存器IR置数,操作步骤如下: 3、指令寄存器IR偶字节打入 拨动“I/O输入输出单元”开关向指令寄存器IR置数,操作步骤如下: https://blog.csdn.net/HXBest/article/details/119972921
14.IT在线教育HRTechChina.com除此之外还为企业和学校提供的IT技术在线实训云服务。由于IT技术更新快,企业对程序员技能的培养一直都很重视,之前很多企业是请讲师来公司授课培训,但因为缺乏动手练习,员工只能对技术有个初步了解,很难深入学习。实验楼企业版是为每家企业开设在线实训专区,围绕实验楼的线上项目课程为员工定制实训学习计划、提供在线实验http://news.hrtechchina.com/tag/it%E5%9C%A8%E7%BA%BF%E6%95%99%E8%82%B2/
15.首次用于大规模在线系统AI&大模型ChanghuaPei评估我们进行了离线和在线实验,结果表明我们的方法明显优于最先进的方法。在线 A/B 测试表明,我们的方法实现了更高的点击率和更高的实际系统收益。 重排序模型公式 在这一部分中,我们首先给出一些关于如何学习推荐系统的排序和重新排序方法的初步知识。然后阐述了本文要解决的问题。本文使用的符号见表 1。 https://www.infoq.cn/article/a1tj74y7V2EKFikKYcwv/
16.fpga虚拟结合在线实验平台·FPGA 在线实验可与线下的硬件开发板或实验箱形成互补,学生使用线下硬件开发板或实验箱开发和测试电路,提交到线上 FPGA 在线实验平台完成考核。 典型案例 山东大学计算机学院 山东大学计算机学院通过 FPGA 在线实验平台开展《计算机组成原理》实验,学生需提交自行设计的CPU到实验平台,由实验平台自动完成打分。 https://www.educg.net/fpga.html