你知道吗......? LWN.net是一份由订阅者支持的出版物;我们依靠订阅者来维持整个运作。 请通过购买订阅来帮助我们,让LWN继续在网上运行。 |
开源软件有一个包容性的问题,需要一些创新的方法来解决。 但是,Andrew "bunnie" Huang在他快速发展的linux.conf.au 2018演讲中说,如果我们不解决这个问题,我们可能会发现我们在不久的将来有更大的问题。 他改善这种状况的方法是使技术更容易获得--通过使人们能够在纸上创建电子电路并为其编写代码。
黄晓明首先问道,为什么我们应该关心使技术更加包容。 开源软件的力量来自于包容性;这种力量是如此强大,以至于我们可以(引用Chris DiBona的话)声称,如果没有开源软件,我们所知的互联网就不会存在。 作为一个工程师,他认为这很好,但他有一个担忧:这意味着用户群现在包括政客。
政客们的问题是,他们可能会看到开源软件的开放性,并得出结论,随机的人,其中一些人可能是罪犯,可以进入公共基础设施。 这的确会导致事情出错的可能性。 leftpad()的惨败就是一个例子。 但还有更可怕的例子,比如罪犯在NPM库中打错字,试图将恶意软件植入他人的应用程序。
黄还提到了他在XScreenSaver中遇到的一个定时炸弹,它开始抱怨说它太老了,需要升级。 这并不是一个恶意的行为;开发者只是找到了一种方式,说他已经厌倦了Debian不提供更新的代码,并使用该代码来试图强制改变。 在Debian bug-tracker的讨论中,Jamie Zawinski(XScreenSaver的作者)描述了他与用户的互动,这些用户显然告诉他"但我不知道如何从源代码编译,herp derp我吃浆糊
"。 对黄来说,这样的交流清楚地表明,被开源软件授权的 "所有人 "实际上是一个小型的精英群体。 很少有人知道如何从源代码编译程序。
他问道,如果某个开发者放了一个令人厌恶的警告,在每个安卓手机上弹出,会发生什么? 这可能是一个善意的行为,但它会让很多人不高兴,并显示出这个小团体有多大的权力。 这反过来又会导致政治家们提出,例如,程序员应该受到监管,并制定一个担保要求。 有人可能会说,这样的事情显然不会通过,但民主是个棘手的东西,有很多事情不顺利的例子。 他列举了美国废除网络中立性、"英国脱欧 "决定和最近的美国总统选举。 他警告说,人们不能指望荒谬的事情不会通过。
如果看一下选民对技术理解的人口统计,情况就很可怕了。 很少有人真正了解技术;在这方面,最底层的50%的人几乎不能在网络浏览器中输入一个搜索查询。 远低于50%的选民有资格就技术问题投票。 因此,他问道,我们真的想把网络中立性、监控、DRM、修复权、开源软件,甚至是表情符号选择等问题付诸表决吗? 其结果基本上是随机的。
如果没有使人们理解它的那种包容性,开源在政治上是无能为力的,但几乎100%的人都依赖它。 我们需要政府帮助执行我们的许可证,我们也需要社会支持我们的工作。 他说,如果我们相信开源软件是重要的,我们就需要授权给更多的人去保护和维持它。
高效的包容性
也就是说,逐一教人编码是一个低效的过程;他心中的工程师希望优化这一努力。 这促使他审视现在技术界的人口统计,他得出结论,我们错过了社会的一半--技术界的女性很少。 如果我们能让她们参与进来,我们可以一举将我们的社区规模扩大一倍。
目前,女性在计算机工程领域获得11%的学位,而在计算机科学领域仅有不到16%的学位。 女性在计算机科学系的代表性很差,比物理学或数学还差。 他说,这是一个 "专属的男孩俱乐部"。 有人可能会问这是否是一个文化问题,他认为是的;他注意到,例如在中国,性别平衡要好得多。 因此,他得出的结论是,我们没有根本的理由不能让更多人参与。
其他人也做了同样的事情。 卡内基-梅隆大学(Carnegie-Mellon University)的一项努力[PDF]改变了计算机科学课程中的方法,并在五年内将女性参与率从10%提高到40%。 在哈维-马德大学,女性的毕业率在五年内从12%提高到45%。 因此,有可能使事情变得更好。
黄晓明从这些努力中得出的关键见解是,计算机科学项目假定学生在开始学习材料之前就已经知道了。 医学项目并不期望新生已经做过手术,法律项目也不期望他们参加过审判,但计算机科学项目期望学生在进门时就能用类似C语言编写复杂的代码。 任何没有在年轻时决定学习计算机的人都会做出反应,断定这个领域不适合他们。
阻止女性学习技术的偏见从年轻时就开始了。 根据这项研究[PDF],超过60%的建筑套件礼物是给男孩的(在这项研究中,9%给了女孩,其余的不详)。 像卡内基-梅隆大学和哈维-马德大学这样的大学已经通过创造一个柔和的入门通道来应对,不需要假设对这个领域有很多熟悉的人,因此,他们已经成功地包括了更多的人。 做到这一点并不神秘,我们只是需要让它更容易开始。
用纸质电路改变文化
黄的方法是试图改变围绕电子学的文化,特别是通过在纸上构建电路而不是使用面包板来做到这一点。 纸张是基底,导电胶带用于连接,而电路元件则是用胶带或焊接的。 其结果比任何面包板上的电路更接近真实的电路板;它展示了面包板上不会出现的电线交叉等问题。 这使得纸质电路在最终完成后更容易转移到真正的电路板上。 纸质电路也很灵活--从字面上看,它们可以被整合到一本弹出式图书中。
纸质电路还有其他优点。 例如,它们同时兼容表面贴装和通孔元件,而面包板只能处理后者。 他指出,纸本身就支持注释--它们可以简单地写在基材上。 它很薄、很平、很轻,而且基底是自由的;而面包板没有这些属性。 另一方面,面包板不需要焊接,元件可以重复使用,这就是为什么面包板在教育环境中往往受到青睐。
焊接问题是大规模采用纸质电路的关键障碍之一。 事实上,表面贴装元件也很棘手;它们往往很小,在纸质电路上很难正确定位。 因此,Huang与在这一领域做了大量工作的Jie Qi会面,并提出了创造带有元件的贴纸的想法,这些元件可以很容易地应用于纸质电路。 他们认为,这将使整个想法更加平易近人。
Huang和Qi在Crowd Supply上进行了一次推销,以筹集一些资金来发展这个想法。 他们把目标定在很容易实现的1美元,只是想看看他们会得到什么;当时间用完时,已经有超过10万美元的认捐。 这使他们陷入了一个 "意外创业 "的境地,他们必须以某种方式使其成为一个适当的公司。 他们决定的第一件事是,他们不会提供 "粉化 "或淡化的技术。 相反,他们将提供严格的技术,而且是可获得的和有趣的。 设计和技术将被看作是平等的,每一项都有价值。
最初资助这项工作的人有67%是男性。 但在chibitronics.com上购买产品的客户有74%是女性,而Amazon.com的客户也接近这个数字。 随着时间的推移,女性的数量一直在增长;现在78%的客户是女性。 黄晓明说,他希望再让事情变得更加平衡,让更多的男性参与进来,但他觉得让这些女性都来玩这个技术,是一件积极的事情。
爱上编码
下一步是超越电路,将编码加入其中;这是 "爱编程 "项目的驱动力。 这个项目背后也有一些创始原则。 一个是工程和设计同样重要。 我们倾向于在一个单一的轴线上衡量成就,但这可能排除那些在该轴线上不擅长的人。 通过结合工程和艺术,有可能创造一个二维空间,有很多方法让人们脱颖而出。
熟悉感是 "爱编程 "的另一个核心部分。 对大多数人来说,纸是一种熟悉的材料。 它也很有表现力,允许电路被做成各种有趣的艺术作品。 但纸也是一种技术材料,具有许多吸引人的特点。
最后,简单性是一个关键的目标;需要有很少的障碍才能开始使用。 这导致了一些有趣的挑战:例如,如何将编译好的C代码输入微控制器? 默认情况下,这是一个困难的过程,需要用户弄清楚一些细节,比如他们的串行端口被命名为什么。 这是令人沮丧的,能够做到这一点并不能使任何人比其他人更好。 因此,他们试图找到一个通用的界面,让每个人都能轻松使用。
在这一探索中,他们得出结论,计算机上的端口经常变化,但人类往往多年来保持不变。 特别是,他们仍然有眼睛和耳朵。 因此,几乎每台设备上都有一个音频插孔--除非你得到一个现代手机,试图将你锁定在一个DRM生态系统中,而你已经放弃了你的声音端口,他说。 声音能够携带数据,所以 "爱编码 "利用它来上传编译的代码。 这段代码从音频端口播放出来,进入设备。 其结果是少数可以用手机编程的微控制器之一。
还有许多其他挑战需要克服。 组件贴纸经历了几代人的设计,直到问题被解决。 将微控制器连接到纸质电路的问题最终通过将其连接到一个塑料夹子上得到解决。 结果是一个可用的控制器,适合于教室使用。 该课程必须从一开始就进行开发;它从有趣的人物开始,以平易近人的方式介绍了编码概念。 它提出了一个观点:代码并不可怕。
这本书自然可以在CC-BY-SA许可证下下载[PDF]。 所有的代码和硬件设计都可以在Chibitronics的GitHub页面上找到。 我们鼓励每个人都来看看,让它变得更好。
细节
黄花了几分钟的时间谈论硬件的工作原理。 声音是用AFSK调制方式传输的;它采用了像老式调制解调器一样的两个音调。 这些频率相对较高,但被选择为 "MP3可存活"。 微控制器上的解调器是基于linmodem的;当运行时,它需要65%的可用CPU时间,没有留下多少时间给其他东西。
挑选微控制器需要一些工作。 它需要便宜,开源友好,有一个数字信号处理器,一个模数转换器,等等。 在看了许多候选产品后,他们选择了Kinetis MKL02Z32VFK4。 它有一个48MHz的Cortex M0+处理器("哈哈,它不会受到Meltdown的影响"),和32KB的闪存。 该处理器在批量购买时成本不到1美元,而且没有签署保密协议的文件。 不过,获胜的功能是一个快速的GPIO端口;它用于USB低速仿真,使控制器可以作为USB键盘使用。
一个普通的音频插孔太大,无法安装到微控制器上,所以需要另一个解决方案。 最后,他们创造了一个混合USB电缆,通过第5个针脚传输音频。 在这条电缆上没有返回主机的通道,所以微控制器没有办法要求重新传输损坏的数据。 相反,主机会将整个数据传输三次。
微控制器的操作系统是基于ChibiOS,这是一个独立的项目,与Chibitronics无关;"Chibi "在日语中是 "小而可爱 "的意思。 大部分需要的支持代码已经被添加到ChibiOS中,以尽量减少从主机下载的代码大小。 整个系统在 "儿童的耐心约束 "下运行,这意味着下载的代码必须足够小,以便在儿童感到厌烦之前到达并运行。 最小的程序被压缩到大约256字节的代码。
黄说,"爱编程 "不仅仅是为孩子们准备的;它旨在成为一个完整的 "从新手到创业者 "的课程。 因此,举例来说,线程是课程的一部分。 他指出,线程很容易(但并发性很难)。 硬件的选择也是为了 "适合中国"。 在美国销售的套件通常包括在美国可以买到的部件,但在中国却买不到;这使得原型电路很难进入生产阶段。 爱编程使用在中国可以买到的部件,避免了围绕新部件重新设计电路的需要。
体验层 "可以在ltc.chibitronics.com找到。 有很多例子是现成的。 对于那些可能在键盘上找不到大括号的最小的孩子来说,与微软的合作导致了makecode.chibitronics.com的出现,在那里可以使用视觉块语言来创建程序。
结论
Huang最后重申,分享源代码只是迈向包容性的第一步。 说 "我推给了Git "是被动攻击式的包容性。 拓展到更广阔的世界是一个更大的项目,但它是一个重要的项目;开源软件是建立在包容性之上的。 它不是一个 "提交和忘记 "的东西,它是关于拉动、合并、分叉和接受新想法。 他说,无论如何,我们必须让社会上更多的人理解和重视开源软件,否则社会可能会提出自己的价值,而结果是我们不喜欢的。
这个演讲的视频可以看。
[你的编辑感谢Linux基金会和linux.conf.au为他参加这次活动提供的帮助。
这篇文章的索引条目 | |
---|---|
会议 | linux.conf.au/2018 |
(登录后可发表评论)