@淘 开源的Open edX的Ecommerce配置及本地支付接口

本文内容由@淘 老师开发及开源,请移步http://www.heyuantao.cn看全部内容。

以下内容为转载

关于OpenEdx的Ecommerce的配置

OpenEdx项目中的ecommerce和edx-platform是两个独立的组件,两个组建部署后通过Web API接口相互调用和访问数据。ecommerce的目的是为了取代edx-platform中自带的购物车,这样使得课程购买和课程播放管理相互独立,程序更容易维护。

OpenEdx的官网有如何安装ecommerce组件的介绍,单这个仅仅适用于开发版本。在安装OpenEdx的时候ecommerce一般会直接安装上,但仍需要配置。所涉及到的配置文件有edx-platform的lms.env.json、lms.auth.json和ecommerce的ecommerce.yml(/edx/etc/ecommerce.yml)文件的配置。主体过就是配置两个组件的oauth2功能。

Continue reading

基于Nginx实现RTMP/HLS视频服务器

首先名词解释

RTMP

实时消息协议英语:Real-Time Messaging Protocol,缩写RTMP)也称实时消息传输协议,是最初由Macromedia为通过互联网Flash播放器与一个服务器之间传输流媒体音频视频和数据而开发的一个专有协议。Macromedia后被Adobe Systems收购,该协议也已发布了不完整的规范供公众使用。

RTMP协议有许多变种:

  1. 默认使用TCP端口1935的纯粹(plain)协议。
  2. RTMPS,通过一个TLS/SSL连接传输RTMP。
  3. RTMPE,使用Adobe自有安全机制加密的RTMP。虽然实现的细节为专有,但该机制使用行业标准的密码学原函数。[1]
  4. RTMPT,用HTTP封装以穿透防火墙。RTMPT通常在TCP通信端口80和443上使用明文请求来绕过大多数的公司流量过滤。封装的会话中可能携带纯粹的RTMP、RTMPS或RTMPE数据包。
  5. RTMFP, 使用UDP而非TCP的RTMP,取代RTMP Chunk Stream。Adobe Systems开发了安全的实时媒体流协议包,可以让最终用户直接地相互连接(P2P)。

虽然RTMP的主要动机是成为一个播放Flash视频的协议,但它也用于其他一些应用程序,如Adobe LiveCycle Data Services ES

HLS

HTTP Live Streaming(缩写是HLS)是一个由苹果公司提出的基于HTTP流媒体网络传输协议。是苹果公司QuickTime XiPhone软件系统的一部分。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的extended M3U (m3u8) playlist文件,用于寻找可用的媒体流。

HLS只请求基本的HTTP报文,与实时传输协议(RTP)不同,HLS可以穿过任何允许HTTP数据通过的防火墙或者代理服务器。它也很容易使用内容分发网络来传输媒体流。

苹果公司把HLS协议作为一个互联网草案(逐步提交),在第一阶段中已作为一个非正式的标准提交到IETF。2017年8月,RFC 8216发布,描述了HLS协议第7版的定义。[1]

 

Nginx对这两种视频模式提供了支持。HLS部分可见 https://nginx.org/en/docs/http/ngx_http_hls_module.html,RTMP部分可见 https://github.com/arut/nginx-rtmp-module,这部分是非官方的。

单点登录系统CAS5.0.x配置与部署

本文由@iflab-FZ贡献

cas5.0版本采用gradle-over-lay的形式部署。外加界面的简单定制,验证码,cas-management的配置。

由于是凭着之前配置的印象来写文章,难免会有疏漏,欢迎指正。

首先简介CAS。cas是耶鲁大学研发的一套单点登录系统,为多个应用进行统一的用户认证提供了很好地解决方案。它在https协议下,以安全的方式对用户的合法性进行认证,同时与需要用户认证的各应用进行交互,使多个应用共用一套程序进行统一认证。

以下是部署cas可能会用到的网站:

https://apereo.github.io/cas/5.1.x/index.html
Github:https://github.com/apereo
Maillist:https://www.mail-archive.com/cas-user@apereo.org/Continue reading

单点登录系统CAS的委托(Delegation)认证配置

本文由@iflab-FZ贡献

关于如何在一台服务器上部署中央认证系统(CAS)的方法在之前的文章中已经介绍过了

*以下方法与配置依旧基于CAS5.0.x,不同版本可能配置方式与属性稍有差异

由于之前学校的新生数据同步较慢,需要一个学期左右的时间才能同步到CAS的数据库,所以这就造成了新生无法在入学之后及时使用部分服务和应用,例如使用edx进行在线学习等等。

因为之前部署的CAS使用的是gradle-overlay方式,所有的配置都是通过修改配置文件来完成的,为了避免直接修改线上稳定运行的CAS的配置文件,想到还有另一台服务器安装了新的测试版的CAS,所以决定让测试版的服务器连接自己建立的数据库,作为现行CAS的委托认证服务器对新生的账号进行认证。

具体参考了这篇 说明文档

Continue reading

Open edX Hawthorn.1 发布

https://open.edx.org/blog/all-about-hawthorn

Hawthorn中文为山楂树,是Open edX的第8个版本。Edx于8月4日发布了第一个H版本。可以通过 https://github.com/edx/edx-platform/tree/open-release/hawthorn.1访问这个版本。其他组件也有这个版本号。

The Hawthorn release includes a number of enhancements to the Learner profiles, the ORA component, the Files & Uploads page in Studio and many others. In addition, given many changes to privacy laws around the world (for example, the European Union General Data Protection Regulation (GDPR)), this release also includes privacy-related updates such as a user retirement feature that removes data in response to user requests for deletion . Further highlights are below:

Continue reading

在软件开发课程中使用开源软件(一)

传统软件开发课程中一般使用小型、简单的项目来进行训练,学习者接触不到真实的软件项目。在课程中引入开源软件可以改善这个问题。有大量的开源软件,不同领域、规模、复杂度;展示真实世界问题的成熟度和广度;著名的开源软件是由积极的全球社区和开发者来维护的。

在教学中,给予学生选择开源软件项目的自由是很重要的。也要考虑项目和课程的适配。参与开源软件不止提高了技术能力,还提高了社交能力。课程的时间限制会对学生参与项目造成影响。

目前这个领域关注的问题有:如何选择适当的项目(不宜过于大和复杂,也不宜过小和简单),项目的规模是学生参与的明显障碍;使用的项目应当有活跃的问题跟踪,使用版本控制系统,有代码审查;每个项目至少要有一位导师;学生评分机制,评分可以基于个人努力,包括实施、排错、测试,还有架构,评分也可以基于团队(演讲,代码分析)和个人(代码审查,项目参与)。

如何选择一个好的开源软件项目?给学生选择的自由度,但要注意项目的活跃程度、流行程度、相关性;项目维护人员的响应速度对学生完成任务很重要;寻找一个导师,例如项目里的人员。

学生接触开源软件的好处。接触真实的项目,提高技术能力;接触到当前流行的技术和工具;获得对不同框架和API的经验;在和社区沟通中学习和发展社交技巧;在开源项目中掌握的工作能力可以为真实工作做准备;开源软件项目可以激励学生,做贡献使人感觉良好;增加个人简历的专业背景,更容易获得工作机会;新一代的学生对于真实项目更感兴趣,有助于老师提高课程效果。

使用开源软件的挑战。如何选择项目是一个问题,需要识别学生可以完成的任务,列出一个清单;寻找项目、理解代码、寻找做什么是正确的、提交和接受审查、放到项目中,这都是学生面临的阻碍;时间是一个问题,如何让学生更快的参与项目。

开源编程游戏codecombat

项目网站 https://codecombat.com/

项目代码 https://github.com/codecombat/codecombat

CodeCombat是一个让学生通过玩游戏学习计算机科学的平台。

CodeCombat 是一个开源的社区项目,上百名玩家创建了各种关卡,给我们的源代码添砖加瓦,添加新功能、修复Bug、测试、甚至是将其翻译为50种语言。职员、贡献者以及网站本身都在分享创意并奋斗中成长,这就是开源社区的力量。此网站在众多开源项目之上建立,我们为表感恩,也将网站开源奉献给社区,给好奇源码的玩家提供探索和实验的项目。每个人都能加入CodeCombat社区!看一下我们的贡献者页面了解更多信息。

我们的游戏编程课程尤其适用于教室教学的需求。无编程经验的教师也可轻松授课。

编程是一种魔法。这是一种从想象中创造万物的能力。我们开始了 CodeCombat 这个项目,是为了让学习者通过编写代码感受到他们指尖上的魔力。

同时,他们也能迅速学习,因为学习的方式变快了。学习就像是对话而不是阅读枯燥的手册。我们想将这种对话带给每所学校和每个学生,因为每个人都应有机会学习编程的魔法。

为什么通过游戏来学习编程很重要?

游戏是鼓励交流、发现、试错的媒介。好的游戏能够让玩家学习到技能,正如学生在学习过程中所做的那样。

游戏能提供奖励高效的奋斗” –这种奋斗能为学习提供动力并富有激励性,而不单调乏味。

当将基于游戏的学习方式与传统教学方式比较时,区别毋庸置疑:游戏能帮助学生记住知识,集中精力,以及取得更高成就.

游戏同时提供实时反馈,使得学生调整他们的解决方法,并且从整体理解概念,而不局限于“正确”或者“错误”的答案。

一个伟大的游戏不仅仅是勋章和成就。它包括了玩家的旅程,设计良好的关卡,以及用帮助和信心迎接挑战的能力。

CodeCombat是一款这样的游戏:它通过我们的完善的代码引擎,给玩家提供帮助和信心,使得初学者和高级学生都可以编写合适、有效的代码。

课程可用如下语言:JavaScript,Python,还有Java(即将推出!)

开源分布式社交网络Mastodon

项目网站 https://joinmastodon.org/

源代码 https://github.com/tootsuite/mastodon

https://kevq.uk/how-does-mastodon-work/

今年早些时候曾经设想过一个新型的社交网络。当前社交网络的形式高度一致化,发布文字和图片和视频、赞、评论、关注、加好友、聊天。各种不同垂直方向的社交网络本应从用户需求出发设计不同的产品形态,但因为创造力的匮乏以及抄袭成风,最后都采用了同一形式。最重要的一点,社交网络的用户对自己的数据没有所有权,数据发布后无法导出到本地,无法导出到其他网络。在一个社交网络上发布了数百数千内容后,如果社交网络环境变得糟糕或者不可用,用户就陷入一个进退两难的境地,个人数据面临丢失的巨大损失。更不用论隐私数据的滥用以及网络广告。

区块链技术代表业界和用户对去中心化的重视。个人对数据的所有权会成为社交网络的一个必要特征。因此当@种瓜 推荐Mastodon时,我看到了开源社区对去中心化和用户数据所有权的一个回答。

From WikiPedia

Mastodon(官方中文译万象,网民又称长毛象)是一个免费开源去中心化分布式微博客社交网络。它的用户界面和操作方式跟推特类似,但是整个网络并非由单一机构运作,却是由多个由不同营运者独立运作的服务器联邦方式交换数据而组成的去中心化社交网络。每个Mastodon的营运站点被称为“实体(Instance)”,用户可到任何开放登记的实体登记,任何一个实体上的用户可以与其他实体上的用户沟通。用户在推特中发布的内容称为“推文”,而在 Mastodon 中发布的内容则称为“嘟文(Toot)”,用户可以调整隐私设置限制嘟文被其他人或实体读取或查看。Mastodon吉祥物是一个棕色或灰色的长鼻目,描绘成正在使用平板电脑智能手机

此服务试图透过定位成独立运作的小型社群,而不是由上而下的审查。如同Twitter,Mastodon支持用户间直接、私密的消息,但与Twitter张贴的“推文”不同,Mastodon的“嘟文”可以是:对用户、用户的追踪者私密,对特定实体、或透过实体网络公开。联邦式的Mastodon实体组成联邦世界