
2026/01/03 23:50
「時間 v1」
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Summary
Zeit は軽量なコマンドライントラッカー(v0)から、モダンで機能豊富なアプリケーション(Zeit v1)へ進化しました。リライトによりコードベース全体がクリーンアーキテクチャに置き換えられました:BuntDB は埋め込み型 Go のキー・バリュー ストアである BadgerDB v4 に置き換えられ、UI も Charm の lipgloss v2 を採用しています。新機能としては、多くのコマンドに JSON 出力が追加され、自然な引数構文(従来のフラグもサポート)や、データベース・ビジネスロジック・CLI・出力層を分離した再編成されたプロジェクト構造があります。
これらの変更により、v0 のデータベースとの後方互換性は失われます。ユーザーは v0 から
zeit export --format zeit を実行してデータをエクスポートし、v1 に zeit import -f v0 でインポートする必要があります。また、リライトではもはや使用されていない寄稿者が追加した「ワンオフ」機能も削除されています。Zeit v1 は SEGV ライセンス(部分的に改変された HL3)でライセンスされており、GPL v3 ではなくソース可用性を提供します。著者のウェブサイト zeit.observer には現在、将来機能の計画が掲載されたランディングページのみがホストされています。
ユーザーは新バージョンを試し、不足している機能についてフィードバックを提供し、一般的な時間追跡プラットフォームを共有するよう奨励されます。既存ユーザーは移行中にワークフローの混乱を経験する可能性がありますが、クリーンなアーキテクチャは開発者を惹きつけ、クロスプラットフォームサポートを向上させる可能性があります
本文
Zeit – 5 年後
リリースからほぼ五年が経過し、Zeit は時間の試練を乗り越えました(ハハ)。
完全に書き直した Zeit v1 によって、その伝統を継承しつつ、より高度なツールへ進化させたいと考えています。
起源
- Zeit はほぼ五年前にペットプロジェクトとして始まりました。
軽量でユーザーに優しい時間追跡ツールを必要としており、自作の会計・請求ソフトへのデータエクスポート機能も併せて欲しかったです。 - 初期段階: 基本的な機能だけで、長期ビジョンはありませんでしたが、クラウドに縛られないミニマルなトラッカーを求めるユーザーにすぐに支持されました。
Zeit v0 の歴史
新機能の要望が出た際は、自分で追加するかプルリクエストを受け入れます。
指針は「小さな改善でも他人一人に役立つなら追加価値がある」というものです。
時間とともに Zeit v0 は、元々のクリーンでミニマルな CLI ツールという目的を超えて拡大しました:
- 直感的でない機能が増え、散らかりました。
- 当時は合理的だった設計判断も、今では非最適に感じられます。
- 後方互換性よりも完全な書き直しのほうが妥当だと判断しました。
Zeit v1 – 完全リライト
コア変更点
| 項目 | v0 | v1 |
|---|---|---|
| データベース | BuntDB | BadgerDB v4(純Goのキー‑バリュー) |
| 設定 | 別ファイル + Viper | データベースに埋め込み |
| CLI レンダリング | 独自実装 | Charm の lipgloss v2 を用いた端末テーマ化 |
| 出力形式 | プレーンテキストのみ | JSON とプレーンテキスト |
SQLite は使わない理由
SQLite では CGO が必要になり、クロスコンパイルが複雑になります。データはキー‑バリューに自然に収まるため、クライアント側で関係データベースを用意する必要はありません。
コマンドライン体験
自然な引数
zeit start block \ with note "Research: Coca-Cola Colombian death squads" \ on personal/knowledge \ 4 hours ago \ ended 10 minutes ago
フラグを使った同じコマンド:
zeit start \ --note "Research: Coca‑Cola Colombian death squads" \ --project "personal" \ --task "knowledge" \ --start "4 hours ago" \ --end "10 minutes ago"
フィルタリング
zeit blocks \ on personal/knowledge \ from last week \ until two hours ago
またはフラグで:
zeit blocks \ --project "personal" \ --task "knowledge" \ --start "last week" \ --end "two hours ago"
自然引数スタイルは日常利用に直感的ですが、プログラムから呼び出す際にはフラグを併用できます。
ライセンス変更
- 以前: GNU GPL v3(OSI 承認済み)
- 現在: 部分的に改変した HL3 を SEGV ライセンス と呼びます。
- ソースは公開されているが、従来のオープンソースライセンスではありません。
- 倫理的に問題と判断される団体による利用を防ぐことを目的としています。
はじめに
-
GitHub から v1.0.0 をダウンロードするか、
でインストールします。go install -
新しいウェブサイト https://zeit.observer にアクセス(現状はランディングページのみですが、機能追加予定です)。
-
v0 を使っている場合:
zeit export --format zeit > db.json # v1 へアップグレード後にインポート zeit import -f v0 db.json
フィードバック
Zeit v1 を試したら、ぜひ教えてください:
- 欠けていると思われる上位3つの機能
- 時間追跡に利用しているプラットフォーム
楽しいトラッキングを!