我最近参加了在佐治亚州亚特兰大举行的 MIL-OSS(“军事开源软件”)2011 年工作组(WG)/会议。议题包括开源假肢项目、将政府资助的软件作为 OSS 发布、用 Python 替代 MATLAB、“开放技术档案协议”(OTDP)、使用 SELinux 限制用户、对 DoD 关于 OSS 政策的解释、Charlie Schweik 关于什么使 OSS 项目成功的研究等等。一些人在会议上开始开发一个对讲机 Android 应用程序。如果您好奇,这是一份会议摘要。
MIL-OSS 2011
首先,是一些一般性评论。如果这次会议可以作为参考,那么将 OSS 引入政府(包括军事)系统正变得越来越容易。OSS 已经在许多地方使用,但通常是“不问,不说”,并且仍然存在许多愚蠢的官僚障碍,阻止在应该使用或至少考虑使用 OSS 的地方使用它。但是有很多成功案例,幻灯片标题如“我们如何成功”。
虽然会议有严肃的目的,但所有活动都在良好的幽默氛围中进行。所有参与者都获得了山姆大叔的 MIL-OSS 海报(上面写着“我希望你开源!”)。会议的主题是电影 战争游戏;每个战争游戏彩蛋的第一个发现者将获得一个愚蠢的 80 年代风格的奖品(例如 Atari T 恤)。
正如 MIL-OSS 2011 年演示文稿列表所示,我做了三个演讲
- 公开发布为美国政府开发的开源软件 (OSS)。本演示文稿解释了政府或承包商何时可以公开发布软件,作为开源软件,如果该软件是使用美国政府资金开发的。本演示文稿总结了我的论文 公开发布为美国政府开发的开源软件(另请参阅 Kane McLean 对这篇论文的单页摘要,“OSS 可发布性快速参考”,该摘要已发给每位会议参与者)。我认为这是一个重要的话题。数十亿美元被用于开发软件,但大多数时候,纳税人(为此付费的人)没有获得好处。事实证明,该软件通常可以发布;这是这些拜占庭式规则的解码环。这可以带来令人难以置信的好处。例如,DoD 资助了创建互联网的工作,然后将其关键 TCP/IP 协议的实现作为 OSS 发布。互联网极大地惠及了 DoD,事实上,它惠及了整个世界。(是的,它有要求的战争游戏彩蛋。幻灯片 15 说“与有 OSS 经验的人交谈”——彩蛋在支持要点中,“问:它在做什么?答:它在学习!”)
- 为什么 GPL 可能不会毁灭宇宙。这个半开玩笑的演讲试图反驳一些关于 GNU 通用公共许可证 (GPL) 的愚蠢的、过分的恐惧。我认为任何演示文稿都不会糟糕,如果它包括哥斯拉、飞碟、僵尸和一张写着“如果你编写开源程序,你就是在编写共产主义!”的海报。
- HOST 经验教训(与 Tom Dunn 合著)。这总结了对各界人士关于在政府中使用或开发开放技术(包括开源软件)的障碍的采访。
最近飓风艾琳的过境使会议变得复杂。该地区本身很好,但有些人难以飞入。第一天的整个日程都推迟了,以便演讲者可以到达(使用重新安排的航班)。这可能是当时情况下最好的做法——这基本上就像临时的时区变更——但这意味着我当天的一个演讲(为什么 GPL 可能不会毁灭宇宙)是在晚上 9:10。我甚至不是最后一位演讲者。哎呀。会议开始时,大约有 15 位演讲者仍未到达,但除了一位之外,所有人都设法在他们必须发言之前到达了。
以下是一些关于演讲的笔记
- Andy Henshaw (GTRI) 就“替代 MATLAB:科学家和工程师的 Python 工具”发表演讲。他的基本观点是“在很多情况下,Python 是 MATLAB 的良好替代品。”虽然 Python 本身并不快,但它通常用作粘合剂,密集的数据处理由手工制作的库完成。他专注于(并讨论了)NumPy、SciPy、matplotlib 和 ipython 库。他还讨论了 MATLAB 用户的 MATLAB 和 Python 之间的差异。在 Matlab 中,基本类型是矩阵,它使用基于 1 的索引,‘*’表示矩阵乘法,函数调用使用按值传递和延迟复制。相比之下,在使用这些库的 Python 中,基本类型是多维数组,它使用基于 0 的索引,‘*’表示元素级乘法(使用 dot() 进行矩阵乘法或使用矩阵类),函数调用使用按引用传递。
- 我了解了关于 AdaCore(制作 GNAT pro、SPARK Pro 和 Code Peer 的公司)的有趣的事情。他们没有单独的支持组织——他们的工程师直接提供支持,因为支持实际上是他们销售的产品。
- Maj Wilson/Kane McLean 讨论了改变文化。他们认为,大脑具有两个同时工作的独立决策功能:情感思维和理性思维。情感思维就像一头大象;它是不合逻辑且坚定的,强调完成任务,并且具有心理“肌肉记忆”。理性思维就像一个骑师;它是合乎逻辑且理性的,强调组织,但通常无法“下马”,并且进行长期/战略规划。你需要说服两者,所以你应该尝试缩小变化,塑造清晰的前进道路,并重复有效的方法。他们认为,大型官僚机构的文化变革来自顶部(“云端”)和底部(“基层”);阻力通常来自中间。那么,变革的解决方案是“播种云端”和“培育基层”。
- Winston Messer 和 Nick Bollweg 推介了“开放技术档案协议”(OTDP)。基本上,他们希望每个 OSS 项目都在其网站上放置一个小型的 XML 文件,以便各种搜索系统可以了解更多关于其项目的信息。这样,每个项目都可以更新自己的信息。
- David Egts (Red Hat) 解释了“SELinux 用户限制”——RHEL 6 中的一项新功能,可以轻松地使用 SELinux 限制用户。只需安装包含 semanage 工具的“policycoreutils-python”软件包,该工具可以让您更精确地控制特定用户可以做什么。
- Alex S. Voultepsis 解释了情报界 (IC) 如何使用人们想要使用的工具构建内部基础设施;在绝大多数情况下,他们使用 OSS 来做到这一点。例如,Intellipedia 是使用 MediaWiki 实现的,MediaWiki 是运行 Wikipedia 的同一软件。
- Dan Risacher 讨论了 DoD 2009 年 10 月 16 日关于开源软件的备忘录。他指出,我们有一个“政府知识产权结”:“政府规则旨在使项目经理能够控制他们的项目,而不是使其能够共享。”解开这个结的一种方法是明确表示软件将作为 OSS 发布;然后每个人都知道规则是什么。他想成为一名“开发者倡导者”——DoD 需要能够比其对手更快地创新。
- John Kuniholm 介绍了“开源假肢项目”。他失去了一部分手臂,并解释了制作假肢的一些复杂性。一个关键需求是非常好的开源 CAD 工具。这是一个普遍问题,并非军方或政府独有——目前这些工具价格极其昂贵,在情况改变之前,廉价 3D 打印机的承诺将更难实现。
- Charlie Schweik 一直在对 OSS 项目进行大量定量研究,以确定是什么将成功的项目与被放弃的项目区分开来。他预计很快会有一本关于这个主题的书!在启动阶段,关键因素是:通过行动领导、清晰的愿景和明确的目标。其他因素包括项目营销;项目融资;知识连续性;成为一个多开发者项目。一旦项目启动,一个真正关键的因素是获得一名开发者(然后在稍后获得更多开发者)。存在许多相互矛盾的说法,例如,有些人说小组更好(Brooks),有些人说大组更好(Linus 定律),或者规模无关紧要;他的数据表明 Linus 定律是正确的。面对面的沟通似乎不如以前那么重要,这归因于更好的沟通技术。他收集了更多信息;我期待看到整个过程。
- 一件很棒的事情是,每个人都有动力立即实际解决问题。已经有一个官方的 DoD 开源软件 (OSS) 常见问题解答 (FAQ),但需要一个不太正式的 FAQ,因此在会议期间,创建了一个新的 MIL-OSS OSS FAQ。在最后一天,各种软件开发人员和军方人员之间进行了讨论,特别是关于军事需求。军事情况和飓风等灾难中的一个真正问题是集中式通信系统会失效。在很短的时间内,人们突然开发了一个 OSS 对讲机应用程序,用于 Android 并将其托管在 github 上。
许多讨论围绕着在没有密码的情况下使身份验证/授权工作的问题,特别是使用现在几乎所有西方政府(如 DoD CAC 卡)广泛使用的身份证。尽管有些时候可以工作,但在任何系统(OSS 或非 OSS)上使其工作都非常痛苦,并且它们很脆弱。Dmitri Pal (Red Hat) 的演讲“CAC 和 Kerberos 从愿景到现实”讨论了一些问题以及可能改进的方法。OpenSSH 开发人员对每个人都用于身份证书的 X.509 标准持积极的敌意;我同意 OpenSSH 人员的观点,即 X.509 很笨拙,但那是每个人都在使用的,不支持 X.509 意味着 openssh 对他们来说毫无用处。每个读卡器都与其他读卡器不兼容,因此每次出现新型号时,都必须编写驱动程序,并且通常仍然无法工作(将此与 USB 键盘进行比较,即使通过 KVM 切换器,USB 键盘每次都能“正常工作”)。我认为需要成立一个小组,也许是“无密码的简单授权”小组,目标是制定标准并构建 OSS 组件,以便系统默认情况下(也许通过安装一个软件包)可以轻松地使用 PKI 和其他系统,并使其每次都能“正常工作”。无论客户端、服务器(依赖方)还是第三方身份验证器/授权服务器在使用中。
如果您对更多关于 OSS 和美国国防部 (DoD) 的个人想法感兴趣,另请参阅 FLOSS Weekly #160,Randal Schwartz 和 Simon Phipps 对 David A. Wheeler 的采访。更多信息的优秀通用站点是 MIL-OSS 网站和 DoD CIO 自由开源软件 (FOSS) 站点。
还有更多工作要做,但已经发生了很多事情。
2 条评论