Skip to content

Commit 525b7f5

Browse files
committed
首页细节调整,联系我们;视频补充完整;博客格式调整”
1 parent a21ca5b commit 525b7f5

38 files changed

+637
-350
lines changed

blog/2019-05-28-hola.md

Lines changed: 0 additions & 11 deletions
This file was deleted.

blog/3.5-release.md

Lines changed: 252 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,252 @@
1+
---
2+
title: 发布 CodeLab Adapter 3.5
3+
date: 2020-08-14
4+
author: CodeLab
5+
Slug: release-3-5
6+
tags: ["CodeLab"]
7+
categories: ["CodeLab"]
8+
---
9+
10+
> 维也纳生物学家康拉德·洛伦茨发现,某种鹅会跟随蛋壳打碎时所遇到的第一个活动物体,仿佛那是它们的母亲,甚至在它们面对真正的母亲时,还是继续这样做。取代其父母亲的摹仿装置,仅仅由两块圆的像它们父母亲的头和身体的大致轮廓的硬纸板或金属片构成。“借助这样的摹仿装置,我们能使自己进入某些动物的生活场景。认识到这个世界的奇妙之处,对于一个头脑敏锐的人来说是一种动人的甚至惊心骇目的经验。这实在的奇迹般的、咄咄逼人的特点给人留下一种印象,在它面前,我们关于自然的一切旧观念和旧概念都必定土崩瓦解” -- 波普尔《猜想与反驳》
11+
12+
3.5 包含以下更新。
13+
14+
<!--truncate-->
15+
16+
# 重大更新
17+
18+
## 社区创作平台
19+
20+
> Projects, Passion, Peers, Play
21+
22+
3.5 中,将使用[CodeLab 社区](https://scratch.codelab.club)[创作平台](https://scratch.codelab.club/projects/editor/)将作为 Scratch 入口,方便大家分享和保存项目。
23+
24+
![](https://adapter.codelab.club/img/6595d0c70dbcb62dc01e576286279432.png)
25+
26+
![](https://adapter.codelab.club/img/97dcd007177acbc6b737ca3192cf6a25.png)
27+
28+
在 Adapter UI 中点击即可进入社区创作平台,注册后可以在线保存和分享作品,记得不要把密钥分享出去哦
29+
30+
![](https://adapter.codelab.club/img/0be9a646ff7a1c81957192951cffa05c.png)
31+
32+
ps: 在近期,[旧的创作平台](http://scratch3v3.codelab.club/)依然可用。
33+
34+
## 让 CodeLab Adapter 摹仿 Scratch Link
35+
36+
> 模仿是最大的致敬
37+
38+
### Scratch Link UI
39+
40+
Scratch 的 UI 界面有一些设计元素,让用户能够轻松地连接物理外设。
41+
42+
如果你曾使用 Scratch Link 将 microbit/乐高 接入 Scratch,一定知道我说的**轻松**是什么意思。
43+
44+
![](https://adapter.codelab.club/img/e9e736ec5eb804cf0c3ab80217adac50.png)
45+
46+
Scratch UI 为方便用户使用 Scratch Link 连接设备做了许多优秀设计, 从设备扫描
47+
48+
![](https://adapter.codelab.club/img/9feb365be692464299ea4186b6c850ba.png)
49+
50+
到设备发现
51+
52+
![](https://adapter.codelab.club/img/e8526456c74d18bc4421e3e46e3acf7b.png)
53+
54+
从连接设备:
55+
56+
![](https://adapter.codelab.club/img/f9240f00b2068c99d45317718c4e353e.png)
57+
58+
到断开连接/重连设备
59+
60+
![](https://adapter.codelab.club/img/726295eb1633b17460f65691e945256a.png)
61+
62+
帮助信息也有考虑:
63+
64+
![](https://adapter.codelab.club/img/bbc03e0dd92672618275bf64d80e95bd.png)
65+
66+
这些对于减少入门者掉眼泪很有帮助。
67+
68+
### 摹仿 Scratch Link
69+
70+
通过让 CodeLab Adapter 摹仿 Scratch Link,我们可以重用 Scratch 里优秀的 UI 元素。
71+
72+
如果我们接纳 Alan Kay 的观点,从生物学视角看待软件系统,这种策略就很容易理解,正如引言里康拉德·洛伦茨的发现: 一切都是信号。 Alan Kay 将这个想法表述为 :
73+
74+
> [The big idea is messaging](https://wiki.c2.com/?AlanKayOnMessaging)
75+
76+
CodeLab Adapter 的设计理念受此启发, 表述为:
77+
78+
> Everything Is a Message (EIM)
79+
80+
关于 Scratch Link UI 的一些技术细节 我之前在[分析 scratch3.0 与 micro:bit 的通信](https://blog.just4fun.site/post/%E5%B0%91%E5%84%BF%E7%BC%96%E7%A8%8B/scratch3-microbit-analysis/)有谈及。
81+
82+
在 3.5 中,我们在 [usb microbit](https://adapter.codelab.club/extension_guide/microbit/)[microbit radio](https://adapter.codelab.club/extension_guide/microbit_radio/)里实施了这个想法:
83+
84+
![](https://adapter.codelab.club/img/443ca8f702f12723b7794bdd5df4ddef.png)
85+
86+
未来我们会将其他硬件/软件连接方式也陆续迁移到这种连接方式中,以便降低入门操作门槛。
87+
88+
如果你对细节有更多兴趣,其中一个插件的源码已经公开在[scratch3_usb_microbit](https://github.com/CodeLabClub/scratch3_usb_microbit), 参考这个源码,大家可以以这种方式接入任何开放硬件。
89+
90+
---
91+
92+
此外, 值得一提的是,除了兼容 Scratch Link UI ,我们也将继续保留 CodeLab Scratch 可编程的接入方式:
93+
94+
![](https://adapter.codelab.club/img/40f96ab879b4ab95bb3fb505588dc4a0.png)
95+
96+
这种想法的核心是把"连接"能力也看作积木,这样做的好处是所有功能都 **平坦/透明** 地交给用户,让他们以[一致的方式](https://blog.just4fun.site/post/%E7%BC%96%E7%A8%8B/design-principles-behind-smalltalk/)思考。
97+
98+
这两种方式将并存,大家可以任选一种连接来设备。新手用户建议使用 Scratch UI 的连接方式。
99+
100+
## 易用性
101+
102+
这个版本对易用性的提升主要围绕**减少困惑**
103+
104+
### 不一致的菜单按钮
105+
106+
有不少使用者提到 CodeLab Adapter 的 WebUI 的菜单栏令人困惑:
107+
108+
> 为什么有的按钮要点击文字,而有的按钮只要点到按钮框就行
109+
110+
![](https://adapter.codelab.club/img/8302679cbd062724c9766bf43a2c487c.png)
111+
112+
原因是之前我们把超链接(需要点到文字)和按钮做了不同的处理,但在 UI 上却没有区分它们,这令人困惑。目前我们将两者都处理为按钮,只需要**点到按钮框就行**
113+
114+
### 加载提示
115+
116+
在有些电脑上 Web UI 打开后,服务进程还没有完全启动完成,看起来是断开状态,像软件故障,目前我们添加了提示信息。
117+
118+
### 启动速度缓慢
119+
120+
> 过早优化是万恶之源 -- Donald Knuth《计算机编程艺术》
121+
122+
许多用户提到过这个问题,我们目前已经开始重视这个问题。我们将其视为优化问题。在 3.5 中添加了 app 运行时间检测,为每个关键的启动阶段都打上了时间戳,可以在 info.log 里看到启动生命周期。有了这些数据后,我们将在接下来的版本中持续迭代优化。
123+
124+
启动时间慢的原因主要有两个:
125+
126+
1. Pyinstaller 的机制决定的(Adapter 基于 Pyinstaller 打包)
127+
2. 内部服务的启动策略
128+
129+
两者都与架构有关,我们计划在分析清楚运行时数据之后,再做针对性优化。
130+
131+
## 新增插件
132+
133+
### Aqara
134+
135+
![](https://adapter.codelab.club/img/a5f4e4e85ae1aff532980473c8041067.png)
136+
137+
上周末在 Aqara 新的办公室待了大半天,与 Aqara 开放平台工程师、CEO、几位董事以及其他的小伙伴碰了个面,一起讨论在 本月 18-19 号的 **Aqara Home 中国服务商大会**上 使用 CodeLab 创作平台做哪些有趣的演示,以及后续的合作可能: `Aqara(绿米)智能家居用户(尤其是孩子)可在 CodeLab 创作平台上对智能设备进行编程,让人们将智能家庭改造为魔法世界吧!`
138+
139+
由于采用了云云对接,可以方便 C 端用户 0 成本上手使用它。
140+
141+
CodeLab Neverland 里使用了不少的 Aqara 设备,我们基于这些设备构建了许多好玩的实验:
142+
143+
欢迎来到霍格沃茨:
144+
145+
<video width="50%" src="https://adapter.codelab.club/video/wand.mp4" controls="controls"></video>
146+
147+
在 Scratch 中构建控制房间里一切事物的 Siri:
148+
149+
<video width="80%" src="https://adapter.codelab.club/video/1593328552202841.mp4" controls="controls"></video>
150+
151+
下班打个响指关闭所有电灯
152+
153+
<video width="80%" src="https://adapter.codelab.club/video/turnofflight_byfinger.mp4" controls="controls"></video>
154+
155+
使用魔杖打开窗帘:
156+
157+
<video width="80%" src="https://adapter.codelab.club/video/1576905337206766.mp4" controls="controls"></video>
158+
159+
训练一个 AI 管家,它了解你的生活习惯,当你打开书时,自动为你把书房的灯打开;当你合上书思考时,为你关闭电灯,让你沉浸在黑暗中思考:
160+
161+
<video width="80%" src="https://adapter.codelab.club/video/读书与思考.mp4" controls="controls"></video>
162+
163+
更多有趣案例参考:[gallery](https://adapter.codelab.club/user_guide/gallery/)
164+
165+
### 使用方式
166+
167+
![](https://adapter.codelab.club/img/6f6fc565cbcff4105784b448c628c307.png)
168+
169+
#### 获取 token
170+
171+
点击`打开绿米授权`积木,将打开登陆页面,使用 Aqara 账号登陆后,将获得一个 token。
172+
173+
#### 连接到云
174+
175+
之后将 token 复制到**连接**积木里, 运行它即可。
176+
177+
![](https://adapter.codelab.club/img/d9aefea95691b05581de0c8382168af4.png)
178+
179+
#### hello world
180+
181+
构建一个入门程序: 当小猫被点击时,将灯泡打开
182+
183+
![](https://adapter.codelab.club/img/ca0019da61b7c540b340665bed5c0c5e.png)
184+
185+
### Aqara_scene
186+
187+
Aqara_scene 插件主要面向开发者(诸如 Aqara 开放平台的工程师)(可在插件市场下载), 它的目标是展示 CodeLab Adapter 插件系统的灵活性。
188+
189+
源码在这里:[extension_Aqara_scene](https://github.com/CodeLabClub/codelab_adapter_extensions/blob/master/extensions_v3/extension_Aqara_scene.py), 这儿展示的是如何基于 CodeLab Adapter 的插件机制,轻松将开放平台 API 连接到 Scratch 中。
190+
191+
附上[Scratch demo](https://scratch3v3.codelab.club/?sb3url=https://adapter.codelab.club/sb3/Scratch-Aqara-scene.sb3)
192+
193+
### 聊天机器人
194+
195+
> 当我沉默的时候,我觉得很充实,当我开口说话的时候就感到了空虚 -- 鲁迅《野草》
196+
197+
我们将聊天机器人**从图灵机器人替换为腾讯闲聊**
198+
199+
[聊天机器人](https://adapter.codelab.club/Scratch_Projects/%E8%81%8A%E5%A4%A9%E6%9C%BA%E5%99%A8%E4%BA%BA/)[EIM Monitor](https://adapter.codelab.club/extension_guide/eim_monitor/)的一个用例,大家可以根据文档操作,使用 Python 将任何聊天机器人 api 接入到 Scratch 中。
200+
201+
这个例子很好的展示了我们在 Python 入门教育的思路: 让 Scratch 和 Python 彼此增强,一开始就去做一些好玩的东西(real playing). CodeLab 近期将开始构建 Python 入门教程,依然会沿袭《Mindstorms》的理念。
202+
203+
### [GameShell](https://adapter.codelab.club/extension_guide/GameShell/)
204+
205+
> 夏日黄昏 西瓜电扇 游戏机
206+
207+
觊觎 [GameShell](https://www.clockworkpi.com/) 很久, 身边许多 geek 朋友也都被它种草。 很开心收到[clockworkpi 团队(拥有惊人创意和热情的团队)](https://forum.clockworkpi.com/t/almost-every-thing-you-want-to-know-about-clockwork-gameshell/4350)赠送的 GameShell 设备。
208+
209+
这是昨天收到的 GameShell 实物:
210+
211+
![](https://adapter.codelab.club/img/WechatIMG1601.jpeg)
212+
213+
CodeLab 即刻切换到了游戏机厅模式:
214+
215+
![](https://adapter.codelab.club/img/WechatIMG1602.jpeg)
216+
217+
完美运行 CodeLab Adapter :
218+
219+
![](https://adapter.codelab.club/img/WechatIMG1606.jpeg)
220+
221+
将 GameShell 接入 CodeLab Adapter 之后, 我们将其用作 CodeLab 可编程空间的控制手柄:
222+
223+
<video width="80%" src="https://adapter.codelab.club/video/1597283986388211.mp4" controls="controls"></video>
224+
225+
<video width="80%" src="https://adapter.codelab.club/video/1597283973481982.mp4" controls="controls"></video>
226+
227+
在 GameShell 运行一个自定义 APP: [gameshell_node](https://github.com/wwj718/gameshell_node)
228+
229+
按下 `Start`,允许新的 client 连接,发现与连接机制基于 [NetworkZero](https://adapter.codelab.club/extension_guide/NetworkZero/)。消息传递机制基于: [外部系统 -> Scratch](https://adapter.codelab.club/user_guide/%E4%B8%8E%E5%A4%96%E9%83%A8%E7%B3%BB%E7%BB%9F%E9%80%9A%E4%BF%A1/#-scratch)
230+
231+
之后在 Scratch 里与之交互: [Scratch GameShell](https://scratch3v3.codelab.club/?sb3url=https://adapter.codelab.club/sb3/Scratch-gameshell-key.sb3)
232+
233+
## 插件增强
234+
235+
- 为 usb microbit 添加 Scratch Link 风格的连接机制
236+
- 为 radio microbit 添加 Scratch Link 风格的连接机制
237+
238+
## bug 修复
239+
240+
> 或然的东西(eikos)不是不可避免地会出现,而只是在大多数场合下会出现的东西 -- 波普尔《猜想与反驳》
241+
242+
- 解决多个 microbit 共存的问题
243+
- 为 NetworkZero 发送信息添加超时机制
244+
- 修复 extension_Yanshee put_motions 参数错误
245+
246+
# 开始使用
247+
248+
[下载最新 Adapter](https://adapter.codelab.club/user_guide/install/)
249+
250+
# 参考
251+
252+
- [分析 scratch3.0 与 micro:bit 的通信](https://blog.just4fun.site/post/%E5%B0%91%E5%84%BF%E7%BC%96%E7%A8%8B/scratch3-microbit-analysis/)

blog/3_3_1-release.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ EIM Monitor 致力于在灵活与简易之间取得一个平衡,让新手能
9292

9393
### Yanshee 插件
9494

95-
![](https://www.ubtechedu.com/Uploads/image/20181119/5bf267e6c6ccc.png)
95+
<!--![](https://www.ubtechedu.com/Uploads/image/20181119/5bf267e6c6ccc.png)-->
9696

9797
[Yanshee](https://www.ubtechedu.com/show-59.html) 是一个开源人形机器人教学平台, 面向高中和大学生开发,提供专业开源学习软件。
9898

blog/A-new-definition-of-Computational-Thinking.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ date: 2019-06-26
55
tags: ["programming"]
66
---
77

8-
{/*转载自 适应bootstrap的*/}
8+
<!--转载自 适应bootstrap的-->
99
<div className="alert alert-success">原文地址:<a href="https://computinged.wordpress.com/2019/04/29/what-is-computational-thinking-its-the-friction-that-we-want-to-minimize/">A new definition of Computational Thinking</a>
1010
, 翻译: 廖曼江(CodeLab志愿者)
1111
</div>
@@ -36,7 +36,8 @@ David说:
3636

3737
还有许多其他“思维”声称可以为学生提供关键技能。正如 [耶鲁大学这篇有趣的文章](https://news.yale.edu/2019/03/26/math-not-computer-science-was-grace-hoppers-first-language) 指出的那样,海军上将Grace Hopper可能更多地支持“数学思维”而不是“计算思维”。 诸如“分解”或“抽象”之类的技能包含在计算思维的许多定义中(例如[这篇博客](https://geekyteacher.blog/2018/06/04/computational-thinking-decomposition/)),而且在计算中确实需要这些技能。但这些技能最初属于数学、工程和科学,我认为这些学科的教师可能更适合教授这些技能并衡量它们。计算可以在学习分解和抽象方面发挥重要作用,但这些技能并不只属于计算或计算思维类。那么,计算的独特之处是什么呢?
3838

39-
### 人机交互与计算思维之间的张力{/*紧张关系*/}
39+
### 人机交互与计算思维之间的张力
40+
<!--紧张关系-->
4041

4142
在我生活的计算机科学方面,我的研究领域是人机交互。我在CHI, DIS, CSCW, VL/HCC和UIST上发表过文章。Cuny,Snyder和Wing的定义很难让我与人机交互研究员协调一致。人机交互研究的目的是为了“表征问题及其解决方案,从而使解决方案能够以一种由信息加工媒介有效执行的形式来表示。”以将用户必须学习的知识最小化,人机交互正试图让用户更容易用计算机思考他们想要考虑的事情。计算思维是关于你需要用计算机思考什么的思维。
4243

blog/Background-On-How-Children-Learn.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ date: 2019-06-26
55
tags: ["programming"]
66
---
77

8-
{/*转载自 适应bootstrap的*/}
8+
<!--转载自 适应bootstrap的-->
99
<div className="alert alert-success">原文地址:<a href="http://www.squeakland.org/resources/articles/article.jsp?id=1003">Background On How Children Learn</a>
1010
, 作者: Alan Kay, 翻译: 杨柳青(CodeLab志愿者)
1111
</div>

blog/CodeLab-Adapter-love-Jupyter-python.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ tags: ["programming"]
2323

2424
我们想到Jupyter + CodeLab Adapter。活动结束回到酒店洗完澡,做了个原型:
2525

26-
<video width="600px" src="/video/jupyter_scratch.mp4" controls="controls"></video>
26+
<video width="600px" src="https://www-old.codelab.club/video/jupyter_scratch.mp4" controls="controls"></video>
2727

2828
对应源码(调整后):
2929

@@ -68,7 +68,7 @@ Jupyter是目前最理想Python/数据分析/人工智能的编程教育环境
6868
CodeLab Adapter 1.0致力于将万物带入Scratch,实现`education as life`的目标。CodeLab Adapter 2.0则将万物带入到Python教育中。物联网、人工智能、开源硬件,你现在可以使用Python在Jupyter中与这些东西交互。
6969

7070
### 机器人教学
71-
<video width="600px" src="/video/jupyter_vector.mp4" controls="controls"></video>
71+
<video width="600px" src="https://www-old.codelab.club/video/jupyter_vector.mp4" controls="controls"></video>
7272

7373
涉及的代码如下:
7474

@@ -128,12 +128,12 @@ for i in range(3):
128128
![](/img/notebook_js_python_5dd7081e.png)
129129

130130

131-
{/*
131+
<!--
132132
# 没有display不刷新,只运行一次
133133
# 注意 流的问题
134134
# 从摄像头取照片
135135
# 硬件相关 adapter js通道 python运行
136-
*/}
136+
-->
137137

138138

139139
# 参考

blog/CodeLab-Adapter-v2.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@ tags: ["programming"]
3131

3232
### Jupyter/Python & Scratch
3333

34-
<video width="600px" src="/video/jupyter_scratch.mp4" controls="controls"></video>
34+
<video width="600px" src="https://www-old.codelab.club/video/jupyter_scratch.mp4" controls="controls"></video>
3535

3636
使用 CodeLab Adapter v2,用户可以在 Jupyter 中编写 Python 代码,并与 Scratch 互操作。
3737

3838
### 谁动了我的糖果
3939

40-
<video width="600px" src="/video/toio_candy.mp4" controls="controls"></video>
40+
<video width="600px" src="https://www-old.codelab.club/video/toio_candy.mp4" controls="controls"></video>
4141

4242
使用 CodeLab Adapter v2 的物体追踪插件(OpenCV)实时检测物体,将数据传递给 Scratch,最终在积木里编写程序逻辑,进而让 toio 小方块拥有视觉能力!
4343

@@ -47,13 +47,13 @@ CodeLab Adapter v2 可以将任何 Python 程序整合到自身中。这个例
4747

4848
当你妈妈进入房间的时候,只见你在聚精会神地阅读《理想国》,只是不知为何你喜欢用《权利的游戏》的片头曲作为背景乐。
4949

50-
<video width="600px" src="/video/python_neverland.mp4" controls="controls"></video>
50+
<video width="600px" src="https://www-old.codelab.club/video/python_neverland.mp4" controls="controls"></video>
5151

5252
这个例子展示的是“当有人推门时,屏幕自动切换到阅读界面”,在 10 行 Python 代码内,为整个生活空间编程。CodeLab Adapter v2 让 Python 入门充满趣味。
5353

5454
### cube symphony
5555

56-
<video width="600px" src="/video/cube%20symphony.mp4" controls="controls"></video>
56+
<video width="600px" src="https://www-old.codelab.club/video/cube%20symphony.mp4" controls="controls"></video>
5757

5858
用实体与空间交互,将桌面的物体当作系统 UI,实现类似[Dynamicland](https://dynamicland.org/)空间里交互效果。
5959

@@ -67,9 +67,9 @@ CodeLab Adapter 是由[CodeLab](https://www.codelab.club/)构建的基础项目
6767

6868
在 CodeLab Adapter 驱动的空间里,你可以与万物沟通,你可以让神经网络识别出你的身体部位,进而制作一个体感游戏, 或是通过算法让整个空间变得智能。你可以在朋友生日那天,在 Ta 进门的一刻,将手中的魔杖一挥,在空中划一个字母 L 的轨迹,瞬间,点亮房间里五彩的灯光。在这儿,你将轻松做出这样的魔杖。
6969

70-
<video width="300px" src="/video/wand.mp4" controls="controls"></video>
70+
<video width="300px" src="https://www-old.codelab.club/video/wand.mp4" controls="controls"></video>
7171

72-
<video width="300px" src="/video/tello_leapmotion.mp4" controls="controls"></video>
72+
<video width="300px" src="https://www-old.codelab.club/video/tello_leapmotion.mp4" controls="controls"></video>
7373

7474
更多的[演示案例](/user_guide/gallery/)
7575

@@ -200,7 +200,7 @@ CodeLab Adapter v2 是一种分布式设计。
200200

201201
拿前头展示过的一个例子来说:
202202

203-
<video width="600px" src="/video/python_neverland.mp4" controls="controls"></video>
203+
<video width="600px" src="https://www-old.codelab.club/video/python_neverland.mp4" controls="controls"></video>
204204

205205
在这个例子中, 用户在电脑上,使用 Python 编程,却可以与 Neverland 整个空间交互,驱动 Neverland 的程序跑在树莓派中。如此一来用户的客户端无需任何配置,即可进入编程教学。
206206

blog/CodeLab冒险记(一).md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ slug: "david-p1"
5858

5959
<br />
6060

61-
<img src="/img/boxsand0.jpg" alt="/img/boxsand.jpg" style={{zoom: "120%"}} />
61+
<img src="/img/boxsand.jpg" alt="/img/boxsand.jpg" style={{zoom: "120%"}} />
6262

6363
<br />
6464

0 commit comments

Comments
 (0)