Open edX 2018 Conference

Open edX 2018年会已经在加拿大蒙特利尔举办结束。本次会议带来了不少技术亮点。

https://openedx2018.sched.com/

我们会陆续进行一些技术分享的解读。社区里的其他朋友也会解读各自感兴趣的部分,然后汇总为一个报告,力图为大家展现当前的Open edX技术图景。

Tuesday, May 29

9:00am

So you want to become an Open edX developer? This workshop will provide you with a solid foundation of knowledge for understanding all of Open edX’s moving parts, and how to get started customizing and deploying your own Open edX site.
See the latest slides at https://appsembler.github.io/2018-openedx-developer-workshop/
PDF https://schd.ws/hosted_files/openedx2018/c7/Getting%20Started%20with%20Open%20edX%20Development.pdf

10:40am

1:20pm

3:00pm

Wednesday, May 30

8:30am

10:00am

10:30am

11:00am

12:00pm

1:25pm

2:10pm

2:45pm

3:15pm

4:00pm

5:00pm

Thursday, May 31

9:00am

10:00am

10:45am

11:30am

12:15pm

1:25pm

2:20pm

2:55pm

3:40pm

4:25pm

Open edX社区捐赠计划

社区计划开发高级Open edX课程,提供给捐赠社区的企业学习。目前规划的内容包括:

  • 分布式部署
  • 常见的部署后配置(个性化、安全、购物车等)
  • Xblocks开发
  • 其他实践技巧

捐赠企业将获得一个访问高级课程的账号。更多具体信息请联系我们 info@edustack.org。

捐赠企业

广州英荔教育科技有限公司

 

OpenET系列之一:CAS安装与配置


一、准备工作

CAS的Github:https://github.com/apereo
CAS官方网站:https://apereo.github.io/cas/5.2.x/
服务器信息:Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic x86_64)
JDK版本:1.8.0_141
Tomcat版本:Tomcat8

二、CAS安装

准备好服务器环境后,从GitHub上下载cas-gradle-overlay,目前使用的是CAS-5.0.6版本,所以本文也以该版本为例进行说明。各个版本的CAS在功能上略有不同,大体的部署步骤基本相似,推荐使用5以上的稳定版本。本篇文章不涉及到对CAS的源码进行修改,采用Gradle-overlay的方式进行部署,启动Tomcat后即可直接使用。

进入下载好的CAS目录下,构建CAS

sudo ./gradlew clean build
该命令会从网络下载必要的组件,第一次时间较长,往后就会快很多。

{CAS-dir}/cas/build/libs/cas.war

即为构建好的war包,将该文件复制到

{Tomcat-dir}/webapps/

目录下,重启Tomcat,即可通过浏览器访问

localhost:8080/cas

如果将war包重命名为ROOT.war,则可以直接通过

localhost:8008

访问
注:{CAS-dir}即为下载的CAS目录,{Tomcat-dir}即为Tomcat的安装目录

三、https与数据库连接配置

在{Tomcat-dir}/目录下

sudo vim server.xml

将Tomcat配置上自己的https证书

在{CAS-dir}/目录下

sudo vim cas/build.gradle

dependencies {
compile “org.apereo.cas:cas-server-webapp:${project.’cas.version’}@war”
compile “org.apereo.cas:cas-server-support-jdbc:${project.’cas.version’}”
}

加入jdbc依赖。注意,该依赖包括了大部分数据库的driver,但是没有oracle数据库的,如果需要使用oracle数据库,需要单独下载驱动后放置在

{Tomcat-dir}/webapps/cas/WEB-INF/lib/

目录下

sudo vim {Tomcat-dir}/webapps/ROOT/WEB-INF/classes/application.properties

参考 https://apereo.github.io/cas/5.2.x/installation/Configuration-Properties.html#query-database-authentication
进行配置,包括数据库链接,用户名密码等等。
比较重要的属性有

cas.authn.jdbc.query[0].sql=SELECT 密码字段 FROM table WHERE 用户名字段=?
cas.authn.jdbc.query[0].healthQuery= cas.authn.jdbc.query[0].url=
cas.authn.jdbc.query[0].dialect= cas.authn.jdbc.query[0].user=
cas.authn.jdbc.query[0].password= cas.authn.jdbc.query[0].driverClass=

配置好后,注释掉最后一行

cas.authn.accept.users=casuser::Mellon

重启Tomcat,重新访问即可通过数据库内的用户名密码登录。

四、Service Management配置

我们采用Service Management管理需要通过CAS登录的应用服务,并且使用json方式存储这些服务的信息。
从GitHub上下载cas-management-overlay,在{CAS-Management}目录下执行

sudo vim pom.xml

添加依赖

<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-json-service-registry</artifactId>
<version>${cas.version}</version>
</dependency>

保存后执行

sudo ./build.sh run
生成的.war文件位于

{CAS-Management}/target

在{CAS-dir}/目录下

sudo vim cas/build.gradle
添加依赖

compile “org.apereo.cas:cas-server-support-json-service-registry:${project.‘cas.version’}”

将新生成的两个.war文件放入{Tomcat}/webapps目录下,通过

localhost:8080/cas-management

访问应用管理。其配置文件位于

/etc/cas/

目录下。

轻量级Open edX数据分析系统的设想

Open edX包含一个数据分析系统Insights。它包含三个组件:

  • Pipeline,用于将LMS的log文件归集到Hadoop进行计算,并把计算结果写入Mysql。
  • DataAPI,用于将Mysql中的分析结果输出给Insights使用。
  • Insights,用于展示分析结果。

目前是一个重量级的系统。针对的是edx.org这种千万级别的用户网站产生的数据。大量的log被输送到Hadoop进行离线计算用来展示。因此对于小规模的Open edX部署,数万人级别的用户,这样的计算太繁琐。

我们计划开发一个轻量级的数据分析系统。有两个主要方向:

  • 使用python计算来取代hadoop,实现一个基于pandas的pipeline。还在insights里面展现
  • 直接在Inistructor Dashboard里面加入分析展现。可以看整个课程,或者单个学生的学习分析

这两个系统会全部开源。有兴趣一起研究的朋友可以参与。

Open edX Ginkgo.2 OVA镜像文件下载

镜像基于官方文档制作。去掉了Insights和AnalyticsAPI。

https://openedx.atlassian.net/wiki/spaces/OpenOPS/pages/146440579/Native+Open+edX+Ubuntu+16.04+64+bit+Installation

 

  • 硬件配置 1CPU/4G RAM/500G HD
  • Ubuntu用户 edustack,密码 edustack.org
  • 没有生成随机密码,各种系统服务都使用默认密码。仅用于开发测试。

下载地址

http://202.196.166.180/downloads/%E5%AE%9E%E9%AA%8C%E8%BD%AF%E4%BB%B6/%E9%95%9C%E5%83%8F/edustack-ginkgo2.ova

百度网盘

https://pan.baidu.com/s/1qZ8QIsO 密码:fxaz

https://pan.baidu.com/s/1sngEEoX 密码:1s29

运维文档

https://openedx.atlassian.net/wiki/spaces/OpenOPS/pages/60227913/Managing+OpenEdX+Tips+and+Tricks

https://openedx.atlassian.net/wiki/spaces/OpenOPS/pages/19662636/How-to+articles

https://openedx.atlassian.net/wiki/spaces/OpenOPS/pages/88375372/Common+Issues+and+How+to+Fix+Them

开发文档

https://openedx.atlassian.net/wiki/spaces/OpenDev/overview

 

Open edX Ginkgo 中文语言包

项目地址 https://github.com/eduStack/ginkgo.zh-CN

在Transifex语言包基础上进行了修正和补充。经过验证没有语法错误。

安装方法:

1 加载edxapp环境

sudo -H -u edxapp bash
source /edx/app/edxapp/edxapp_env
cd /edx/app/edxapp/edx-platform

2 下载语言包

git clone https://github.com/eduStack/ginkgo.zh-CN

将下载的po文件拷贝到conf/locale/zh_CN /LC_MESSAGES

3 检查翻译

cd /edx/app/edxapp/edx-platform
i18n_tool validate -l zh_CN

执行后在conf/locale/zh_CN /LC_MESSAGES输出.dup和.prob文件,文件中指出翻译错误的地方。

4 编译翻译文件

paver i18n_fastgenerate

paver i18n_fastgenerate和paver i18n_generate的区别在于,paver i18n_generate会首先paver i18n_extract然后编译,而paver i18n_fastgenerate会直接编译。

5 重启edX服务,重启Nginx,清除浏览器缓存。

Open edX开源合作模式的构想

基于http://edustack.org/2017/11/11/open-edx-community-china/的思考,我们设想了几种个人和企业集中力量办事情的方式:

  • 个人社区经费捐助机制
  • 企业社区经费捐助机制
  • 调研设计国内的公共需求
  • 根据需求设计阶段目标,组织项目组开发
  • 资源汇集,包括企业贡献开源代码,个人贡献的技术文章
  • 国内版镜像的协同开发

建立协作型技术社区的设想

这个想法起源了很久,最近英荔的朋友又提了出来。

最早的设想来自于与种瓜的交流,即Open edX这么复杂的系统,如果要在国内应用,需要不同的公司进行开源社区式的协作。因为整个链条内并没有大公司,即使是教育大公司,也往往只是要作为项目使用而不是参与研发。因此如果一些公用的需求和特性可以集合若干个小公司的力量来研发,整体是有协同效应的。技术型的公司可以保留自己独有的技术特性;内容型的公司则更不必在乎技术的共享。

因此我们有了一些最初的设想,可以看这里  https://github.com/edx/edx-platform/wiki/localization-and-development-in-china

经过了一两年的时间之后,Open edX在国内的应用在持续缓慢的增长,这一点从QQ群的人数看的出来。使用者大概分为几类:平台型企业、技术服务型企业、自用型企业、高校研究者(教师学生)、个人开发者。面临的问题依然在部署、配置、使用、本地化、功能扩展、二次开发方法当中。

因此,作为一个社区,为了促进软件的使用,需要提供的内容包括

  • 文档,包括安装、配置、使用的本地化文档
  • 语言,即高度可用的本地语言翻译
  • 本地化特性,即国内普遍需要的一些特性的开发和开源
  • Xblocks,通用的教学扩展组件

而经过和种瓜、英荔的沟通,行业内的企业可以协作的方式包括

  • 捐助社区经费
  • 提供人手参与工作
  • 贡献开源代码
  • 以技术Blog的方式分享知识
  • 参与国内版镜像的开发

而社区需要做的包括

  • 组织人手进行文档的编写
  • 组织人手进行文档的翻译
  • 协调人员进行公共需求的开发
  • 公开透明的使用捐助的经费
  • 以好的方式进行协作成果的发布

开源软件社区本身在国内也处在快速发展中,可以相信Open edX的国内社区也比以前有更好的发展机会。我们将和更多的公司、学校进行沟通,实现一个良好开源社区的构想。

国内第一家Open edX云平台服务商E-ducation

Open edX除了可以自己部署外,还有一些服务商提供了saas方案。

本月,广州的英荔团队也推出了国内的Open edX SAAS平台e-ducation。英荔加入了符合中国用户习惯的设计和修改,对国内机构组织的在线学习与培训需求提供了可立即使用的SaaS解决方案。

E-ducation(www.e-ducation.cn)是广州英荔教育科技有限公司旗下的互联网产品,面向有志开展互联网学习的组织提供基于SaaS的在线学习培训平台。E-ducation基于edX开源项目进行二次开发,涵盖视频、习题、文档、在线辅导、直播、学习报告等多种功能,支持全平台使用。在自有课程基础上,组织更可引入英荔教育优质的商业管理课程,借此帮助组织管理者有效整合学习资源。E-ducation致力于满足组织的个性化学习需求,为组织成员带来高效便捷的学习体验,提升组织综合竞争力;让组织走在全民学习时代的前端,以学习栽培人才、创造价值,以学习促进创新与变革。

之前国外已经有若干成熟的SAAS服务商,如 edunext 、 appsembleredcast等。

eduNEXT是一家成立于2013年的公司,当时edX公司跃然而至,开放了开源edX平台。我们的信念是,更好的在线学习既是可能的,也是非常需要的,而学习和教育是正确的,有真正的改善生活的力量。我们完全致力于开发和推广Open edX技术,为全球提供高质量的教育提供最好的技术。我们的在线学习专家团队已经在Open edX相关项目中工作超过4年,为各种各样的项目提供软件即服务托管解决方案,咨询服务,技术集成,内容创建以及专业电子学习解决方案和基础设施。在线教育,培训和评估活动在世界各地。

 

当开放edX在2012年发布时,我们很快意识到这个在线学习平台的无限潜力。我们也知道,作为一个开放源代码的平台,Open edX为各种学习需求提供了创新机会。作为最早的Open edX开拓者之一,Appsembler已经与来自世界各地的客户合作,了解他们的目标,并使Open edX平台适应他们的需求。早期,我们认识到客户面临的问题模式。培训师和教育工作者希望为学生和课程作者提供灵活,经济高效,可扩展且易于使用的解决方案。但最重要的是,他们需要一个解决方案,使他们能够把精力放在最重要的事情上 – 为学习者创造和提供在线学习体验。今天,我们是一个通过倾听客户而建立起来的软件公司。我们已经采用了多年的Open edX专业知识,并将其打包成一个易于使用的平台,使您能够快速创建和部署Open edX站点。凭借无与伦比的客户支持,全球托管和99.95%的服务器正常运行时间,Appsembler为全球的公司和大学提供在线学习支持。

 

EdCast是一个用于统一发现,知识管理和个性化学习的支持智能云的知识云。其获奖平台由财富500强公司和政府机构在全球范围内使用,解决内部,内部和隐性知识源内容碎片化的发现,处理和推荐问题。 EdCast的解决方案包括其学习体验平台(LXP),SalesU销售支持套件以及GuideMe的多语言应用内内容制作工具,其中包括GE,HPE,Dell EMC和埃森哲在内的高瞻远瞩公司正在使用这些工具。EdCast的管理团队拥有建立大规模转型技术解决方案的良好记录,并热衷于为全球各地的组织提高企业知识共享,培训和学习经验。

在Open edX推出5年之际,国内终于出现了业务级别的Open edX SAAS平台,这是值得高兴的事情。而且英荔也有积极意愿对开源社区做自己的贡献,这是一个正规公司的商业道德体现。对于Open edX的AGPL V3许可证来说,不分公司大小,涉及的代码均需开源。但正是国内这种只榨取价值,不付出回报,公然违背版权的普遍行为,让开源在中国步履维艰。封闭而不开源,实际上是削弱自己实力,国外的OpenCraft、Appsembler都是Open edX开源的积极参与者。

E-ducation分基础版和专业版,两个版本都能使用全部功能。基础版永久免费,支持50个以内的学习账号,适合初创型组织和团队。超过50个账号使用,需升级专业版,按账号数量梯级收费,配赠专业课程制作工具,不限空间、流量。非营利公益组织和慈善机构可无账号限制地免费使用。可访问e-ducation.cn了解更多信息。

开源少儿编程之路

少儿编程是近期的一个热门话题。其实在国内,很早前就有很多中小学在开设编程兴趣班。80年代曾经在小学用AppleII编写过Basic。但那时候多是为了兴趣和比赛,而非必须。

随着计算机科技在全行业全世界的普及,编程教育正在变成一种必须。

https://www.csteachers.org/page/standards

https://developers.google.com/blockly/

http://microbit.org/

http://scratched.gse.harvard.edu

https://medium.com/mit-media-lab/scratch-google-next-generation-of-programming-blocks-for-kids-5f377ec9ff0