上周,我们庆祝了 Hack Week 的第 20 届。在此期间,我们应该将工作时间投入到任何我们想要的项目中:它可以与您的日常工作相关,您想学习的东西,或者只是一个疯狂的实验。由您决定。但想法是促进协作和创新。而且它不限于 SUSE;openSUSE 社区欢迎加入我们。

在这篇博文中,我们想分享 YaST 团队成员正在进行的一些项目,即使它们与 YaST 无关(其中一些确实无关)。如果您对其中任何一个感兴趣,我们鼓励您加入讨论。

YaST Rake 任务:在本地运行 GitHub Actions

让我们从实际与 YaST 相关的项目开始。Ladislav Slezak 为 Yast::Rake 带来了一些很棒的东西,该包为 YaST 开发人员提供了有用的助手,用于我们的日常任务,例如运行测试套件、提交新软件包版本等。

现在,容器是 Yast::Rake 的一级公民,因此可以直接在容器上运行 YaST 客户端,甚至更好的是,可以在本地运行 GitHub Actions。如果您有兴趣,应该阅读 Ladislav 在邮件列表上的公告

使用 Sorbet 类型检查 YaST

Martin Vidner 一直致力于使用 Sorbet(Ruby 的渐进式类型检查器)为 YaST 带来类型检查。YaST 是一个相当大且旧的项目,并且考虑到 Ruby 的动态特性,我们经常收到由拼写错误、错误的方法名称等引起的错误报告。

目前,我们可以检查 yast2-ruby-bindings.rpm 的很大一部分和 yast2.rpm 的一小部分,这是一个重要的进步。但是,如果您想了解更多关于这个有希望的项目的信息,请不要犹豫查看 项目页面

QDirStat:查找被挂载覆盖的文件

QDirStat 是一个非常不错的应用程序,可以帮助您了解磁盘空间的使用情况,从而保持文件系统的清洁和整洁。QDirStat 的作者和维护者 Stefan Hundhammer 进行了广泛的研究,以查找被挂载覆盖的文件。这些文件的问题在于它们会占用磁盘空间,但无法访问。

因此,Stefan 撰写了 一份详细的文档,介绍了该问题,包括一个 不错的脚本,可以帮助您寻找被覆盖的文件。

gfxboot2:启动加载程序的图形界面

Steffen Winterfeldt 是我们在系统启动方面(以及 基于堆栈的语言 :wink:)的专家之一。在本届 Hack Week 期间,他决定在 gfxboot2 上工作,这是原始 gfxboot 的重写,他用 C 语言维护它。如果您不知道,gfxboot 是 openSUSE 安装介质启动时您看到的图形菜单背后的软件。

如果您有兴趣,请阅读 项目 README,因为它包含有用的信息和一张猫的图片。 :smiley:

gfxboot2

UCMT:统一配置管理工具

Josef Reidinger 正在探索一个有趣的概念:统一配置管理工具。该工具允许您配置本地系统并将配置导出到多台机器。这是一种从本地到 1:N 管理的便捷方式。

等等,听起来像是另一个 软件配置管理 工具,不是吗?好吧,并非如此。UCMT 位于这些工具之上,并且能够以 SaltAnsible 等工具可以使用的方式编写配置。此外,计划提供其他功能,例如外观良好的用户界面和插件系统。

想了解更多?那么,请查看 项目仓库,因为它包含许多想法、用例甚至一个屏幕录像。毕竟,一张图胜过千言万语。

UCMT in action

追踪马匹

也许这是最原创的项目。Michal Filka 开始研究一种用于动物的低功耗 GPS 追踪器,尽管目前他针对的是马匹。他发现了当前解决方案的几个问题,因此决定研究替代方案。

该项目仍处于研究阶段,但值得阅读 他的笔记。最初,他考虑使用 RFID,但最近,他决定采用基于 Arduino 的解决方案,并添加 GPS 或 GPRS 芯片。甚至 Android 应用程序也在他的路线图上!

即使我们大多数人没有马 :smiley:,我们仍然迫不及待地想看看这个项目在未来如何发展。

玩转 WebAssembly

最后,团队的其余成员(Áncor González、David Díaz、Imobach González、Jose Iván López 和 Knut Andersen)决定花 Hack Week 的时间玩转 WebAssemblyRust 编程语言JavaScript

项目的主要目标是验证 WebAssembly 承诺在多个环境中重用相同的编译代码是否属实。为此,他们决定编写一个简化的数据模型,表示网络配置,将其编译为 WebAssembly,并尝试从这两个环境中对其进行使用。

他们了解到事情并不那么简单,您需要为每个平台保留单独的绑定。因此,最终,使用 JavaScript 绑定进行 Web 开发,并使用基于 FFI 的绑定进行本地系统开发可能更好。

顺便说一下,他们借此机会 Glimmer,一个有趣的 DSL 框架,用于用 Ruby 编写 GUI 应用程序。

结束语

我们确信,对于组织者来说,这次 Hack Week 颇具挑战性,因为他们需要规避 COVID-19 疫情带来的限制。但我们认为他们做得很好!我们在 Work Adventure 中与同事见面很有趣,我们享受了社交时间,通过 Rust Bootcamp 学到了很多,并且设法分享了我们的项目并相互协作。

非常感谢所有参与者!