Linux 在科学博物馆的应用

作者:Len Kaplan

在过去的几年里,我的儿子和我花费了大量的志愿时间为纽约州伊萨卡的 Sciencenter 创建展览软件。本文讨论了这个项目与其他软件开发项目的相似之处和不同之处,以及使用 Linux 的好处。这不仅关乎 Linux 或软件;还关乎所涉及的过程,以及如果您有机会在这种类型的环境中工作,您可能会遇到的情况。

目标受众

科学博物馆展览软件的设计受众与典型的计算机程序不同,因为软件的使用方式通常也不同。我早期的基于 Microsoft Windows 的展品——Measurement FactoryFabulous Features——是为大约六年级以下的儿童设计的,而基于 Linux 的展品——Sound StudioTraffic Jam——是为五年级到八年级的学生设计的。该软件必须足够简单,以便目标受众能够理解他们在屏幕上看到的大部分内容,以及这些内容与展览的关系。展览中的计算机不一定是展览本身;它可以充当指南,或者仅仅是与真实世界物体一起的另一个“操作工具”。

还需要考虑第二个“受众”,即博物馆工作人员。展厅人员(其中许多是志愿者)不应接受每台计算机的各种怪癖的培训。展览软件和硬件也应该在早上首次通电时自动启动并运行,因为博物馆在晚上关闭时往往会关闭至少一些断路器。相信我,您希望博物馆工作人员喜欢您的展品——如果它使他们的生活变得困难,展品可能会在那里放着一个写着“坏了”的标志。

竞争

当您开发梦想中的展品时,可能最重要的事情要记住:当您将非隐藏式计算机内置到面向年轻参观者的博物馆展品中时,您正在与他们玩过的每一款视频游戏以及他们看过的每一部电视节目或电影竞争。因此,您的展品必须非常酷。

Measurement Factory 很酷,因为参观者可以称体重、测量身高、测试握力、将自己与同龄人进行比较,并在完成后获得证书。

Traffic Jam(图 1-3)很酷,因为参观者可以玩交通灯并防止交通拥堵——或者如果他们愿意,也可以不这样做。

Linux for Science Museums

图 1。

Linux for Science Museums

图 2. 交通拥堵

Linux for Science Museums

图 3. 更改交通灯时间

Sound Studio(图 4-6)让参观者可以使用多轨录音机录制自己和朋友的声音,并玩简单的特效,例如回声。

Linux for Science Museums

图 4。

Linux for Science Museums

图 5. 使用进行录音

Linux for Science Museums

图 6. 使用选择特效

然而,“酷”有一个明确的限制。例如,将“你犯了一个错误”的提示器——声音、动画或其他任何东西——做得太酷不是一个好主意;否则参观者会认为那是目标。不要违背展览的目的。

开发过程

由于教育目标和目标受众,有条不紊的开发过程在这里非常重要。以下一些内容实际上可能相当非正式,但仍然很重要。当然,您的开发周期可能不完全如此。

启动会议:如果您正在构建一个不属于协调展览的独立展品,则可能不会发生这种情况。Tech City 然而,将由大约十几个协调的展品组成,中心主题是工程。因此,举行了一整天的启动会议,讨论项目目标并确定初步重点。我参加过几次这种类型的会议,所有会议都非常值得花费时间。除了了解项目之外,您还将获得一些好主意,并结识可能在以后的过程中有所帮助的人。

头脑风暴:放松一下,甚至不要担心 Linux,直到您想出一些好主意。另一方面,如果您知道可以修改并使其有用的现有应用程序,请提及并记录下来。在考虑您的酷炫想法时,请随时准备一份项目需求清单。这些需求的范围可以从非常简单的“展示一种工程类型”到更困难的“以非结构化的图形方式,使用虚拟操作工具,为小学生演示海森堡不确定性原理”。始终牢记需求,但我可以保证,它们会一直变化到您发货的那一天。

原型构建:此阶段与在其他任何地方构建原型相同,但由于与您合作的人员,它可能更有趣。多年来与我们合作的博物馆人员都很聪明、有创造力,并且对他们的工作充满热情。如果您的展品需要展台原型,请不要对展台原型的外观感到太震惊。可能涉及大量的胶带和纸板。

第一次审查:这是您第一次展示您的原型以供评论的地方。如果参与该过程的成年人认为您的展品没有您认为的那么酷,请不要担心。请记住,大多数成年人的想法与孩子不同。非正式地将您的原型展示给一些目标年龄段的孩子。

目标测试:这可能是构建展品中最有趣的部分。这是第一次,也可能是第二次和第三次,将其设置为供博物馆参观者尝试,以便您和其他人可以观察结果。预计会经历几次这个过程。需要考虑的重要问题包括:展品对参观者有吸引力吗?参观者在展品前停留多久?几个参观者一起使用它吗?参观者是否学到了您试图教授的内容?参观者是否按照您的意愿使用展品?参观者能否成功地弄清楚如何使用展品?它是否吸引了正确的年龄段?

您或许可以在参观者试用您的展品后采访他们,或者博物馆工作人员可能会这样做并将结果报告给您。这可能是您将收到的最有价值的信息;孩子们可能非常诚实。

专业评估:有些公司专门评估博物馆展览等教育项目。如果您的展品是作为国家科学基金会 (NSF) 资助的一部分而构建的,则很可能会由其中一家公司进行评估。我们只有机会与其中一家公司 Inverness Research Associates 打交道,但发现他们的评论非常有帮助。如果您有机会,请观察他们工作——您会学到很多东西。

修订,包括代码清理:与原型构建步骤一样,这与在其他任何地方的情况类似。花时间添加额外的注释并清理任何临时代码是非常值得的。博物馆软件往往会积累额外的碎片。如果您将来需要修改您的软件,那么现在花费的额外时间可能会在以后获得更大的回报。在这个阶段,您的展品中非计算机部分的精美版本可能也在构建中。

部署:同样,这与其他任何地方没有太大区别,尽管您需要牢记此类项目的交钥匙和免维护要求。如果您的软件是作为大型展览的一部分交付的,请记住博物馆工作人员此时会非常忙碌,因此请尽可能让他们轻松。 Tech City 的系统部署最终包括设置系统(四个目标,外加一个备用)、在每个系统上安装 Linux,以及使用我们已经准备好的 CD-ROM 进行测试(请参阅下面的“技巧和窍门”部分)。

硬件选择

您的软件可能必须在闲置的旧 PC 上运行,或者在专门为该项目捐赠的最新一代机器上运行。或者,如果您幸运的话——至少从 Linux 驱动程序的角度来看——您将获得一台上一代机器。

如果您能够指定可交付的硬件,请保守一点;尝试从交钥匙系统的角度来看待这个问题,而不是从办公室桌面的角度来看待。经过良好调试的硬件和驱动程序可能比最新最好的设备对您更有价值,并且通过使用速度稍慢的处理器和显卡来节省几度的机柜温度,可能会防止六个月后在遥远博物馆炎热的夏日发生故障。不要吝啬系统散热。如果可以,请指定高质量的风扇,并确保构建展台(如果有)的人员提供足够的空气流入和流出计算机。

Tech City 软件部署在捐赠的 Hewlett-Packard Vectra 400 上,每台都配备 1GHz PIII 处理器、带有板载显卡的 i810 芯片组和 20GB 硬盘。我们还在每台机器上添加了一张 Sound Blaster 16 PCI 声卡,因为 Sound Studio 需要全双工声卡或两张没有该功能的声卡。每个系统都配备了一台 19 英寸显示器,也是由 Hewlett-Packard 捐赠的。

工具和库选择

在不了解您的项目的情况下,我无法推荐特定的工具和库。我甚至不会尝试向您推荐实现语言。但是,我可以提出一些对我们有用的指导原则。

经验丰富的开发人员可能已经听说过这一点,但如果现有软件包接近您完成特定任务所需的功能,请考虑修改和使用它。Traffic Jam 用户界面分布在四个窗口中——交通显示、密度设置、控制和其他信息。我们使用 GTK+ 是因为它具有广泛的主题功能,并且出于同样的原因使用了 icewm 窗口管理器。但是,我们确实需要稍微修改后者。

当然,请仔细阅读您想要借用的代码的许可证。尊重作者的意愿,不要为博物馆造成任何责任。与硬件选择一样,保守一点是好事。如果您真的不需要工具或库的最新版本中提供的功能,请不要急于安装它——已知的错误比未知的错误更容易解决。不要忘记维护和项目生命周期;您或其他人将来可能需要修改此项目。语言或库的非发布版本现在可能看起来很棒且稳定,但两年后它可能会大相径庭且有些不兼容。甚至 g++ 在我编写 Traffic Jam 的 Linux 原型版本到交付最终软件的四年间也发生了变化。

最后,我冒险建议您在选择 Linux 发行版时也应该保守一点。最新最好的版本可能非常适合您的桌面,但同样,可靠性在现场更为重要。我们在 Debian 3.0r0 发布后不久就选择了它作为我们的最终系统部署,但由于 Debian 以保守发行版而闻名,我们对这个决定感到满意。

技巧和窍门

以下是我们遇到的一些问题以及我们如何解决这些问题。这些解决方案可能不是最佳的,但它们对我们来说效果很好。

问题:我们如何将系统设置为交钥匙系统?它们必须自动启动到展览软件中;无需用户干预。博物馆工作人员还必须能够根据需要轻松更新软件。

解决方案:我们通过将 CD-ROM 应用程序目录挂载到(覆盖)展览主目录(例如 /home/techcity)之上,并在启动时自动以该用户身份登录来解决这个问题。如果不存在相应的 CD-ROM——每个部署 CD 仅包含一个展览的软件——控制台会显示一条消息,要求用户将其放入,然后重新启动。(虽然参观者无法访问,但每个计算机的机柜中都有一把键盘。)重新启动监视器监视 FIFO,以查找 R 以重新启动系统或 Q 以退出,尽管我们也考虑以其他方式使用它。请参阅清单 1,了解描述此过程的伪代码,清单 2 了解我们的自动启动文件,清单 3 了解示例 .xinitrc。

清单 1. 交钥匙应用程序启动的伪代码

清单 2. 文件 599xx-mytechcity,插入到 /etc/rc2.d 中以排序展览软件启动

问题:这种类型的应用程序通常需要微调。我们是如何完成的?

清单 3. Sound Studio 应用程序 .xinitrc 文件

解决方案:我们的第一个想法是使用基于 Windows .ini 文件的配置文件格式。这适用于 Sound Studio,但不适用于 Traffic Jam。后者除其他外,还需要定义多种车辆类型,这使得 XML 轻松表示同一类的多个实例的能力非常有用。我的儿子编写了一个 C 库,旨在在 xmllib2 之上运行,这使我们的软件能够将各种元素作为树访问——换句话说,基于文档中该元素的路径。

清单 4 显示了 Traffic Jam 配置文件的 DTD 的一部分,清单 5 包含文件的相关部分。清单 6 是用于加载车辆物理特性的代码的一部分——请注意 Cfg 如何指向围绕先前提到的库函数包装的 C++ 对象。

清单 4. Traffic Jam 配置文件 DTD 的车辆定义部分

清单 5. Traffic Jam 配置文件的车辆定义部分

清单 6. 从 XML 配置文件加载车辆物理常数

问题:如何处理窗口管理器安全性?参观者不应能够退出软件、调出其他应用程序、移动窗口等。

解决方案:我们发现在早期测试期间,当参观者可以访问键盘时,他们非常擅长找到退出应用程序的方法。我们通过配置文件和代码更改 icewm 来禁用弹出菜单、窗口移动和窗口大小调整来解决这个问题。此外,这两个展品都不需要使用键盘,因此在正常操作期间键盘会放在展台内部。

结论

教育软件可能不适合您的口味,但如果适合,请尝试找到一个科学博物馆来帮助。他们喜欢看到新面孔,他们总是可以利用帮助,我可以保证您会得到比您付出的更多的回报。

我要感谢纽约州伊萨卡 Sciencenter 的工作人员和志愿者,感谢他们运营着一家出色的博物馆并鼓励人们跳出框框思考;请访问他们的网站 www.sciencenter.org

鸣谢

照片由纽约州伊萨卡 Sciencenter 提供。

Linux for Science Museums
电子邮件:lkaplan@dreamscape.com

Len Kaplan 从小型计算机像冰箱一样大的时候就开始编程。除了 Linux 之外,他还对嵌入式系统着迷,并喜欢在业余时间玩火车模型。可以通过 lkaplan@nlzero.com 联系 Len。

加载 Disqus 评论