惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

I
Intezer
S
Schneier on Security
AI
AI
C
CXSECURITY Database RSS Feed - CXSecurity.com
The Hacker News
The Hacker News
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
C
Cyber Attacks, Cyber Crime and Cyber Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Threat Research - Cisco Blogs
PCI Perspectives
PCI Perspectives
www.infosecurity-magazine.com
www.infosecurity-magazine.com
G
GRAHAM CLULEY
V
Vulnerabilities – Threatpost
Forbes - Security
Forbes - Security
L
Lohrmann on Cybersecurity
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Help Net Security
Help Net Security
A
Arctic Wolf
T
Troy Hunt's Blog
Scott Helme
Scott Helme
T
The Exploit Database - CXSecurity.com
S
Security @ Cisco Blogs
T
Threatpost
The Cloudflare Blog
月光博客
月光博客
Cyberwarzone
Cyberwarzone
S
Security Affairs
M
MIT News - Artificial intelligence
Simon Willison's Weblog
Simon Willison's Weblog
WordPress大学
WordPress大学
人人都是产品经理
人人都是产品经理
Application and Cybersecurity Blog
Application and Cybersecurity Blog
AWS News Blog
AWS News Blog
The Register - Security
The Register - Security
H
Hacker News: Front Page
P
Privacy International News Feed
Cisco Talos Blog
Cisco Talos Blog
Know Your Adversary
Know Your Adversary
宝玉的分享
宝玉的分享
V
V2EX
F
Fortinet All Blogs
罗磊的独立博客
B
Blog RSS Feed
腾讯CDC
P
Proofpoint News Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Hacker News - Newest:
Hacker News - Newest: "LLM"
博客园 - Franky
Security Latest
Security Latest

夜行人

回家路上 第一期的直播演示项目 震动检测器 正能量 在线参观CodeLab Neverland 发布 CodeLab Adapter 3.3.1 DynamicTable 之 纸糊方向盘 CodeLab DynamicTable: 一个可实施的技术方案 CodeLab Insight 发布 Alpha 版 情人节 Home Assistant 周报 && IoT 周报 (02) Joplin: 关注隐私的 Evernote 开源替代软件 浏览器的未来与 Web 传感器 Home Assistant 周报 && IoT 周报 (01) 百宝箱(01) 论自由 介绍 WebThings Home Assistant 周报 && iot 周报 (00) 百宝箱(00) 毛姆读书心得 传世之作 周末徒步 CodeLab Adapter ❤️ Jupyter/Python 航班 躲雨 夏令营途中 [译]思想--作为一种技术 The future of coding 美国之行 三门问题的程序模拟 从Python转向Pharo https://blog.just4fun.site/post/iot/iot-open-source-projects/ Python异步编程笔记 https://blog.just4fun.site/post/iot/iot-open-source-hardware-community/ 万物积木化开发者社区 CodeLab ❤️ Blender Scratch3技术分析之云变量 API(第7篇) [译]对管道(Pipes)的偏爱 [译]提出正确的问题比得到正确答案更重要 蓝牙设备与Scratch3.0 创建你的第一个Scratch3.0 Extension Scratch3技术分析之项目内部数据(第6篇) Scratch3技术分析之社区 API(第5篇) Scratch3技术分析之User API(第4篇) Scratch3技术分析之项目主页API(第3篇) Scratch3技术分析之静态资源API(第2篇) Scratch3.0、micro:bit与Windows7 https://blog.just4fun.site/post/iot/zerynth-vs-micropython/ 核聚变、方所与半宅空间 可视化编程为何是个糟糕的主意 codelab.club周末聚会 关于codelab.club '下一件大事'是一个房间 Hungry Robot - Eat everything 编程作为一种思考方式 今日简史 史蒂夫·乔布斯传 罗素自选文集 https://blog.just4fun.site/post/edx/tianjin-scratch-ai/ https://blog.just4fun.site/post/edx/richie-cms-openedx/ 徒步武功山 WebUSB与micro:bit 积木化编程与3D场景 夜宿武功山顶 scratch3-adapter接入优必选Alpha系列机器人 https://blog.just4fun.site/post/edx/video-migration-note/ scratch3-adapter重构笔记 https://blog.just4fun.site/post/edx/edx-community-members/ 两种硬件编程风格的比较 使用micro:bit自制PPT翻页笔 柏拉图对话集 scratch3.0 + micro:bit 七月电影放映计划 非营利组织的管理 Screenly--用树莓派让任何屏幕变为可编程的数字标牌 以最佳实践开始你的Django项目 micro:bit与事件驱动 为Scratch3.0设计的插件系统(上篇) OCR应用一例 近两年读过的一些好书 blockly开发之使用python驱动浏览器中的turtle(2) 牛顿新传 文学理论入门 逻辑的引擎 人生的意义 blockly开发之生成并运行js代码(1) blockly开发之hello world(0) micro:bit使用笔记 神器之Termux https://blog.just4fun.site/post/iot/micropython-notes/ Cozmo what is this Scratch的前世今生 下段旅程 我行在远方 爆裂 途中杂记 https://blog.just4fun.site/post/edx/open-edx-startup/ cozmo系列之入门 - 有性格且可编程的机器人 PaperWeekly开发笔记 创业二三事
关于XBlocks
2015-07-13 · via 夜行人

机制,而不是策略 –《Unix编程艺术》

偶尔收到一些开发者邮件说,想扩展edx平台本身的功能,其中多数的需求,其实都可以通过XBlock来实现,我就建议说你去看看XBlock吧,这种做法很可能也是移植性最好而侵入性最小的。

我前前后后写了三四个XBlock组件了,对这一块还算熟悉,最近想写XBlock相关的文章,将自己的经验进行归纳,也方便给后来者做个参考。如果能帮助到你,就太棒了

XBlock对这样一些团队/创业项目会特别有益,他们有很明确的业务场景(教育相关),使用edX作为基础平台,他们针对某些教育内容/科目,有一套自己的教学方案,使用这套方案优化了教学流程本身,诸如能对学生进行引导或是让其进入沉浸式学习

那么这样的团队很多时候其实不需要从零开始打造一个自己的教学平台,而是以edx为基础,使用XBlock,打造自己的学习组件即可。这样一来在免费享用edx平台本身通用而强大特性的同时,又满足自己的定制需求。

XBlock是个很庞杂的东西,而这个项目又在持续演进中,文档不仅不够完整,还不够稳定。要弄清楚它是个什么东西,可以用来干什么,都有哪些特性,并不容易,下边我们就针对这几个问题入手。文章的最后我会把相关资料整理汇总

在此之前我先发表下我的观点,不客观,不中立,带有强烈感情色彩 :)

#我的观点 我觉得它是edX最好的设计之一,通过引入一种开放的机制,让课程组件体系保持了扩展性。

edx不像大多数平台,假设自己完全知道用户的需求,据此打造一个“完备”而封闭的平台,宣称为你准备好了“你一定喜欢的东西”,这种封闭而愚蠢的做法,苹果和微软似乎都很偏好,国内公司更不必说。当他们说你能这样做的时候,多数情况是说你只能这样做。

开放不只是一种品味,它本身是一种聪明的策略。

#那么它是什么东西 XBlock的自我描述是

XBlock courseware component architecture

也就是说它是课程组件体系。课程组件是edx中很核心的一部分,这个不难理解,edx平台的学习内容都由课程组件来呈现,如果你在edx中制作过课程,应该知道我在说什么。

而Xblock是用于建造课件的东西

我们在edx中创建一门课程的时候,往往是叠加课程组件的过程,诸如播放控件,问题控件,论坛控件。先前的这些既有控件,叫做xmodule,后来课程团队觉得需要重构这部分,于是

We are developing a second-generation API for these components called XBlocks.

###和LTI的区别 那么有人可能要问,他和LTI(Learning Tools Interoperability)的区别是什么。毕竟LTI也能对LMS进行扩展呀

先介绍下LTI,LTI标准可以让远程的工具和内容被嵌入LMS学习管理系统中,edx也支持LTI。

两者的区别主要由以下几点

  • XBlocks是Python语言层级的API,他是一个具体可用的实现,而不是标准,诸如你可以轻易的使用XBlocks来为你的课程组件提供存储功能
  • XBlocks可以用来包装LTI,你可以打造一个LTI XBlock
  • 最后,XBlocks是可直接部署在edx中的,作为一个python库的形式,而不像LTI需要跑起整个镜像来提供服务

###XBlock与djangpapp的区别 关于这一点官方在xblock的介绍中说的很清楚了

XBlocks are like miniature web applications: they maintain state in a storage layer, render themselves through views, and process user actions through handlers.

XBlocks differ from web applications in that they render only a small piece of a complete web page.

#可以用来干什么 当然是用来打造你自己的课程组件啦。至于都可以做出那些花样,可以参考既有的组件,又或是wiki里列出的第三方组件:List of XBlocks

#有哪些特性 在此主要说说在技术层面上的特性

  • 提供数据存储功能,数据存在Mysql
  • 有很好的权限控制机制
  • xblock中允许调用平台既有组件(这样一来你可以想象有多强大了)
  • xblock之间可以通信
  • xblock可以作为django app安装,来提供更强大的功能

#相关资料 ##相关源码库

##文档

##案例引导

##XBlock第三方组件汇总

##安装与配置


至于开发相关的东西,放在之后的文章里介绍

文章作者 种瓜

上次更新 2015-07-13