## Keifu:一个终端 Git 可视化工具
Keifu 是一个基于 Rust 的终端 UI 工具,用于可视化 Git 提交图。它提供了一个更清晰、颜色编码的 `git log --graph` 替代方案,使导航项目历史更轻松。
主要功能包括可视化提交图、详细的提交信息(消息、更改的文件)以及基本的 Git 操作,如分支创建/删除、检出和拉取。它专为窄终端窗口设计,并依赖 Unicode 进行显示 – 不需要图像协议。
导航是通过键盘驱动的,具有直观的快捷键,用于在提交之间移动、切换分支和搜索。Keifu 会自动检测 Git 仓库,并支持最多 500 个提交。它显示未提交的更改,并有效地处理多个分支指向同一个提交的情况。
安装通过克隆 GitHub 仓库后使用 `cargo install` 即可轻松完成。
手工制作社区,受“Handmade Hero”启发,质疑为什么现代软件在硬件性能不断提升的情况下,却感觉臃肿且缓慢。虽然这通常与“底层编程”相关联,但核心问题并非*仅仅*是贴近硬件的编码,而是软件构建在有缺陷的基础之上——语言、框架和平台的“堆栈”。
作者以Simone Giertz的“Truckla”(一辆改装成皮卡的特斯拉Model 3)为例说明:出色的执行并不能拯救一个根本上存在缺陷的想法。同样,糟糕的软件堆栈无法通过令人印象深刻的工程来克服,正如新Reddit相对于旧Reddit的迟缓性能所证明的那样。
问题不在于缺乏熟练的程序员,而在于选择范围有限以及倾向于在现有且通常存在问题的系统*之上*构建。一个更健康的软件环境需要探索更低层次,以创建更好的工具和平台。然而,由于糟糕的工具和文档,目前底层编程令人沮丧。
最终目标并非*停留在*底层,而是利用这些知识来构建一种*新的*高级体验——一种高效、强大且易于访问的体验,最终扩展行业内的创新。
## 重现Wii新闻频道,提供本地新闻
该项目详细介绍了在任天堂Wii的新闻频道上显示当前本地新闻的努力,尽管任天堂已经停止了这项服务多年。作者成功地修改了原始新闻频道,使其从自定义服务器而非任天堂获取数据,并构建了一个系统来生成兼容的新闻文件。
该过程涉及使用Go语言和`wadlib`库提取和修改新闻频道的核心文件。关键在于将原始任天堂URL的HTTP请求重定向到自定义服务器。为了生成新闻数据,作者fork并修改了开源的WiiLink的`NewsChannel`项目,以从波多黎各报纸“El Nuevo Día”获取文章。
通过使用AWS Lambda和EventBridge,实现了自动的每小时更新,以生成并将必要的二进制文件上传到S3存储桶。这包括使用RSA密钥对文件进行签名,并仔细注意Wii所需的文件命名约定。
最终结果是一个功能齐全的新闻频道,显示最新的本地新闻,展示了自制软件和社区努力延长复古游戏机寿命的力量。该项目很大程度上依赖于Wii自制软件社区的工作,包括RiiConnect24、WiiLink和wiibrew.org。