9作者: stgr_codes5 个月前原帖
嗨,HN,我想分享我用Go编写的第一个(微不足道的)项目:一个小型命令行工具,可以显示带有标语的动画兔子。 我想学习Go,并需要一个小而有趣的项目来实践这门语言以及构建和分发命令行工具的过程。我之前在JavaScript中构建过类似的工具,所以我认为将其移植到Go是一个很好的学习练习。 这对我来说是一次深入Go基础知识的探索,从包结构和命令行标志解析到为不同平台构建可执行文件(在我的JavaScript项目中从未做过这些)。 我开始理解为什么Go受到如此赞誉:与其他语言相比,它的标准库非常庞大。在这个过程中,有一件事让我印象深刻,那就是在某个时刻我决定自己开发一个功能(而在JavaScript的原始项目中我选择使用外部库),在这里,借助标准库提供的机会,我想“为什么不试着自己创建这个功能呢?”结果成功了!在JavaScript版本中我使用了Node.js的“log-update”,而在这里我写了一个专门的包。 我知道这有点傻,但我可以想象它被用来为构建脚本增添一些乐趣,或者突出重要的日志消息,甚至只是让同事微笑。如果你已经安装了Go,安装起来非常简单: ``` go install github.com/fsgreco/go-bunny-sign/cmd/bunnysign@latest ``` 由于我对Go还很陌生,我非常欢迎任何关于代码、项目结构或Go最佳实践的反馈。README中也列出了我计划的下一步,比如添加测试和更好地设置CI。 感谢你们的关注!
1作者: ryjo5 个月前原帖
嘿,HN!CLIPS1wm 是一个用 CLIPS 编写的 X11 窗口管理器,这是我在过去几年中选择的编程语言。它基于 1wm 提供的功能,1wm 是一个用 C 编写的极简窗口管理器。 我受到 HN 上关于 1wm 的帖子启发,决定写这个项目。当时被 1wm(当时称为 mwm)的简单性所打动,因此我重新整理了之前开始的 CLIPS X11 库,并在过去几周里在我的 Lubuntu 虚拟机上将 CLIPS1wm 作为我的主要窗口管理器。 为什么选择 CLIPS?使用类似 Rete 的算法,规则、事实和实例可以让你开箱即用地获得缓存、索引和模式匹配,而不需要手动编写循环。CLIPS 是用 C 编写的,因此与 X11 的集成非常方便。最后,CLIPS 对于基于事件的窗口管理器来说速度足够快;我还用它开发过实时性能导向的应用程序。 我写这个的目的是希望能广泛传播 CLIPS,所以请尝试一下,或者仅仅查看 CLIPS1wm.multifield.clp、CLIPS1wm.fact.clp 和 CLIPS1wm.instance.clp 文件中的实现。 让我知道我应该尝试引入哪些 X11 功能!