BeanHub:一个基于Beancount的自动化会计软件的三年开发历程

2025-03-05

作者出于对数据安全和自动化效率的追求,三年磨一剑,开发了BeanHub——一款基于开源Beancount的会计软件。它以“文件优先”理念为核心,所有操作都在文本文件上进行,而非数据库,保障数据开放性和长期可用性。过程中,作者开源了15个项目,并克服了构建大规模可审计Git仓库、安全处理用户上传文件等技术挑战。虽然面临销售和竞争压力,但作者坚持高质量,并通过教程和社区建设提升用户体验,最终获得了付费用户,证明了“文件优先”理念的长期价值。

阅读更多
开发

在NixOS上搭建支持Nvidia GPU的Kubernetes集群:一场兔子洞冒险

2025-03-02

作者为了扩展其名为MAZE的机器学习框架,尝试在其由三个迷你PC和一台旧工作站组成的Kubernetes集群中启用Nvidia GPU。这个过程远比预期艰难,作者经历了一系列挑战,包括Nvidia设备插件的配置、NixOS环境下的复杂性以及PKI证书的部署。最终,他成功运行了集群,并分享了使用NixOS、Ansible和Sops部署Kubernetes集群的经验,以及对CRI、CDI、nvidia-container-toolkit等技术的深入理解。他还开发了一个名为nix-playground的工具,用于简化开源项目的代码修改和构建过程,并利用Grok 3辅助调试。过程中,作者也遇到了其他问题,例如PyCharm无法打开WSL NixOS项目,以及Kubernetes RuntimeClass的配置。整个过程如同爱丽丝梦游仙境般跌宕起伏,展现了作者强大的执行力和解决问题的能力。

阅读更多
开发 Nvidia GPU

软件工程师的CAD和3D打印之旅:一个过度设计的摄像头支架

2024-12-16

一位资深软件工程师,厌倦了虚拟世界的编程,渴望在现实世界中创造。他入手了Bambu Lab X1C 3D打印机,并迅速掌握了3D打印技巧。随后,他开始学习Fusion 360 CAD软件,惊讶地发现其约束概念与iOS UI约束类似,参数化CAD设计也与函数式编程异曲同工。他的第一个项目是一个过度设计的摄像头支架,旨在解决摄像头遮挡屏幕的问题。这个项目不仅让他体验了3D打印和CAD设计的乐趣,也让他深刻认识到设计中需要考虑制造、材料等细节。

阅读更多
开发