BeanHub:Beancountベースの会計ソフトウェア開発の3年間の軌跡

2025-03-05

データセキュリティと自動化への情熱から、著者は3年間かけてBeancountをベースとした会計ソフトウェアBeanHubを開発しました。その設計の中心は「ファイルファースト」という考え方で、すべての操作はデータベースではなくテキストファイル上で行われ、データのオープン性と長期的なアクセス可能性が保証されています。この過程では15個のプロジェクトをオープンソース化し、大規模な監査可能なGitリポジトリの構築や、ユーザーがアップロードしたファイルの安全な処理といった課題を克服しました。販売や競合というプレッシャーの中でも、著者は品質を優先し、チュートリアルやコミュニティ構築を通じてユーザーエクスペリエンスを向上させ、最終的に有料ユーザーを獲得し、「ファイルファースト」アプローチの長期的価値を実証しました。

続きを読む
開発

NixOSでNvidia GPU対応のベアメタルKubernetesクラスタ構築:ウサギの巣穴冒険記

2025-03-02

著者は、機械学習フレームワークMAZEのスケールアップを目指し、3台のミニPCと1台の引退したワークステーションからなるKubernetesクラスタでNvidia GPUサポートを有効化しようとしました。これは予想以上に困難で、Nvidiaデバイスプラグインの設定、NixOS環境の複雑さ、PKI証明書のデプロイなどの課題がありました。最終的に成功し、NixOS、Ansible、Sopsを使ったKubernetesクラスタのデプロイ経験と、CRI、CDI、nvidia-container-toolkitなどの技術への深い理解を共有しています。また、オープンソースプロジェクトのパッチ適用とビルドを簡素化するツールnix-playgroundを開発し、デバッグにGrok 3を活用しました。その過程で、PyCharmとWSL NixOSの連携問題やKubernetes RuntimeClassの設定などの課題にも直面しました。アリスの冒険のようなこの旅は、著者の優れた実行力と問題解決能力を際立たせています。

続きを読む
開発

ソフトウェアエンジニアのCADと3Dプリンティングの旅:過剰設計されたウェブカメラライザー

2024-12-16

ベテランソフトウェアエンジニアは、仮想世界のプログラミングに飽き足らず、現実世界で何かを作りたいと願いました。彼はBambu Lab X1C 3Dプリンターを入手し、すぐに3Dプリントを習得しました。その後、Fusion 360 CADソフトウェアの学習を始め、その制約の概念がiOSのUI制約と似ていること、パラメトリックCAD設計が関数型プログラミングと共通点が多いことに気づきました。彼の最初のプロジェクトは、ウェブカメラが画面を塞いでしまう問題を解決するための、過剰設計されたウェブカメラライザーです。このプロジェクトを通じて、彼は3DプリントとCAD設計の楽しさを味わうだけでなく、設計段階で製造、材料などの詳細を考慮する必要性を深く理解しました。

続きを読む