1 ポイント 投稿者 GN⁺ 2024-01-15 | 1件のコメント | WhatsAppで共有
  • Citadelは、Calibreが読み取れる電子書籍ライブラリを維持しながら、より良いUXとより高速な体感を目指す電子書籍ライブラリ管理アプリ
  • 中核目標は、Calibreとの後方互換性、使いやすく見栄えの良いインターフェース、Calibreよりはるかに高速で、決してそれより遅くならない性能
  • 現時点では初期段階のソフトウェアのため、バグや機能不足が想定され、クラッシュしたり基本機能が欠けていたり、電子書籍ライブラリを破損させる可能性がある
  • Citadelは電子書籍リーダーでも電子書籍コンテンツエディタでもなく、ファイルは既定のアプリで開き、タイトルのようなメタデータ管理に重点を置く
  • 安定版ビルドはReleases、開発版ビルドはGitHub Actionsから入手でき、開発にはBunRustが必要

Citadelが目指すもの

  • Citadelは電子書籍ライブラリを管理するアプリで、Calibreとの後方互換性を中核前提としている
  • Citadelが変更したライブラリはCalibreで読み取れる必要がある
  • プロジェクトの目標は3つ
    • Calibreとの後方互換性: Citadelが編集したライブラリをCalibreが読み取れること
    • 優れたUX: 使いやすく、見た目も良いこと
    • 性能: Calibreよりはるかに高速に感じられ、決してそれより遅くならないこと

目指していないこと

  • Citadelは電子書籍リーダーではない
    • すでに優れた電子書籍リーダーアプリがあり、Citadelはファイルをユーザーの既定アプリで開く
  • Citadelは電子書籍コンテンツエディタではない
    • タイトルのようなメタデータではなく、電子書籍本文コンテンツを編集する用途であれば代替にはならない
  • Calibreとの100%の機能同等性は目標にしていない
    • 主にプラグイン領域が該当する
    • Calibreの一部高度機能は実装しない可能性がある

現在の状態とダウンロード

  • Citadelは非常に初期の開発段階
    • クラッシュすることがある
    • 基本機能が欠けていることがある
    • 電子書籍ライブラリを破損させる可能性がある
  • CalibreライブラリでCitadelを使う場合は定期的なバックアップが必要
  • 半ば安定したビルドはReleasesから入手できる
  • 開発ビルドはGitHub Actionsから入手できる
  • どのバージョンでも、使用中に発生した問題やクラッシュは報告してほしいとしている

macOSインストール時の注意

  • macOSビルドはまだ署名されていない
  • Citadel.appを直接開くと、ファイルが“damaged”だという警告が表示される
  • ファイルのQuarantine属性を削除すれば解決する

開発とビルド

  • 開発の前提条件はBunRustのインストール
  • パッケージのインストール:
    bun install
    
  • 開発実行:
    bun run dev
    
    # or just bun dev
    
  • Lintとフォーマットのコマンドは以下
    • コード全体のフォーマット: bun format
    • コード全体のフォーマット検査: bun format:check
    • コード全体のLint: bun lint
    • バックエンドのフォーマット: bun format:backend
    • バックエンドのLint: bun lint:backend
    • フロントエンドのフォーマット: bun format:web
    • フロントエンドのLint: bun lint:web
  • バックエンドなしでアプリのプレビューを実行できる
    • Rustバックエンドはないが存在すると仮定するため、エラーが表示される
    bun dev:app
    
  • 本番ビルドは、開発の前提条件を満たしたうえで次のコマンドで作成する
    bun install
    bun run build
    

アップデートと関連プロジェクト

  • Citadelはアプリのアップデートを確認し、要求時にインストールできる
  • 自動アップデート確認はSettingsのAuto updates: On/Offで無効化できる
  • インストールは常に明示的に行われ、UI文言はInstall and restart
  • メンテナー向け設定とリリースワークフローの詳細はdocs/updater-and-releases.mdにある
  • CitadelはCalibreをベンチマークとしており、Calibre redesign Figma prototypeから着想を得ている

1件のコメント

 
GN⁺ 2024-01-15
Hacker News のコメント
  • 「Calibre Web のような既存プロジェクトに貢献せず、なぜ新しいアプリを作ったのか?」という質問が出るかもしれないが、答えは単に作りたかったから
    今は趣味プロジェクトなので、既存プロジェクトを拡張するより、たとえ粗削りでも楽しくソフトウェアを作ることに関心がある。Citadel は Calibre と後方互換になるよう設計されているので、Calibre Web も引き続き使える
    バックエンドも Calibre と接するコードを別ライブラリとして分離してあり、将来的には他のプロジェクトでも使えるようにしたい。Calibre ライブラリ CLI も可能そう

    • ハッカーフォーラムでさえ、こういう説明をしなければならないのは少し残念。John Carmack の卒業式スピーチで好きな一節を思い出す:
      「多くの分野では、車輪を再発明するなという言葉がほとんど常識のように受け止められている。だが時には、それでもやってみることを勧めたい。その過程だけでも人はより良くなり、結局はより良い車輪もそうして生まれる。人々がただ試してみるからだ。」
      https://www.youtube.com/watch?v=YOZnqjHkULc
    • UI をゼロから書き直すことを主導するのも、はるかに大きな作業になりそう
      Calibre は機能を知っていても使うのがかなり苦痛で、祖父母にも技術に詳しい人にも勧めにくい
    • 「今は趣味プロジェクト」という言葉に、初期の Linus Torvalds の雰囲気が少し残っている: 「ただの趣味で、gnu のように大きくプロフェッショナルなものにはならないだろう」[0]
      それでもプロジェクトがうまくいくことを願っている
      [0] https://www.cs.cmu.edu/~awb/linux.history.html
    • Calibre は電子書籍管理機能という点では強力だが、利用体験や開発者の観点では満足したことがない。Web からアクセスするホスティングライブラリとして設計されたことはなく、個人的には体験が非常に良くない
      もっとオープンで現代的で、ホスティングライブラリを念頭に置いた堅実な競合があれば、すぐに乗り換えると思う
    • 「自分のニーズに合わず、バックエンドを完全に書き直す必要がある」と言えばよさそう。望むアプリの方向性が既存のものとこれほど違うなら、こうした選択をわざわざ正当化する必要はないと思う
  • ときどき、Calibre の見た目がもう少し良ければ、人々はそのすごさに気づいただろうと思う。正直そこまで悪くはなく、個人的には好きだが、人々は外観を乗り越えられないようだ

    • Calibre はものすごく遅く、不安定。大きなライブラリ、たとえば100GB 規模を入れるのに文字どおり数週間かかり、少しずつ分けて追加しなければならなかった
      何度もクラッシュし、処理があまりに遅かったので別のマシンに移した。Web インターフェースで検索してみたが、それも非常に遅かった
      直感的でない UI は言うまでもない。ライブラリの役割を担うというわりには、実際の図書館式の著者の五十音順/アルファベット順リストにもはるかに及ばない
    • 私が直面している問題は、Calibre が電子書籍 2万冊以上で完全に破綻すること
      大半の人は10〜300冊程度だろうというのは理解しているが、私はいくつかの大規模ライブラリを Calibre で使おうとして、本当に耐えられなかった
      SQLite に固執する判断も助けにならない。2016年ごろに PR を開いたが、メンテナーはデータベース層を変更したり差し替え可能にしたりすることにかなり強く反対していた
    • 単に見た目だけでなく、全体の UI/UX を指しているなら同意する。Calibre は非常に強力で機能の多いアプリだが、直感的でなく野暮ったい UI が足を引っ張っている
    • 悪くないのではなく、実際に悪い。公共図書館のようなものを管理し、あらゆる細部を制御したいなら良いかもしれないが、個人ライブラリを保存したい程度なら、毎回「X はどうすればいい?」が多すぎる
      しかも数秒で calibre-web コンテナを立ち上げて、きれいな UI と OPDS を得られるのに、なぜわざわざその「美的感覚」を我慢しなければならないのか分からない
    • ライトな電子書籍読者の立場としては大いに同意する。Calibre にデザイナーチームがいたなら、はるかに人気があり広く使われていたと思う
      直感的ではなく、UI/UX はかなり悪い。強力なアプリケーションがよく抱える呪いをそのまま抱えているほうだ
      それでも今日もう一度使ってみて、慣れられるか見てみるつもり。特に上級ユーザーにとっては、無料製品として本当に素晴らしい
  • 良いプロジェクト。Calibre の機能は好きだけど、UI には自分もかなりもどかしさを感じていて、Apple Music 以前の iTunes と iBooks を混ぜたようなインターフェイスをデザインし始めた
    まだ画面を1つ作っただけだが、ここで見られる: https://www.figma.com/file/m8qaYbPSnxiFPDPbuYtz2w/Calibre-re...
    核心的な問いは、Calibre の主要機能を macOS ネイティブのように感じられる UI でどう見せられるかだった
    クロスプラットフォームを目指さないなら、時間ができたときに Rust バックエンドと組み合わせた SwiftUI アプリとして作ってみることもできそう
    Calibre の開発に追随して保守するのは難しいかもしれないが、面白い趣味プロジェクトに見える

  • 昨日気づいたのだが、Ubuntu 22.04 で Kobo リーダーを接続したあと、/media/oakhaven/koboreader のマウントポイントにある root/ ディレクトリへ epub をそのままコピーすればよい。すると端末の本の一覧に表示される
    なぜか Kobo に本を入れるのは複雑だと思い込んでいて、ノートPCから Kobo へ本を移すときは Calibre だけを使っていた
    Calibre に他の機能がたくさんあるのは知っているが、インターフェイスが気に入らなかったし、もう Calibre や似たようなアプリを使わなくて済むようになってよかった

    • 数年前に Kindle ではなく Kobo を買った理由の1つがまさにこれだった。接続すると普通の USB マスストレージ としてマウントされ、ファイルをコピーすればよい
      特別な形式も不要で、ePub のような標準形式がきちんと動く
      だから Kindle がどうして今もあれほど人気なのか不思議だった。先行者効果なのかもしれないが、ePub と PDF を読めない電子書籍リーダーは、MP3 と AAC を再生できないオーディオプレーヤーのように感じる
    • 電子書籍リーダーへ移す前に、epub を kepubify [1] に一度通すことをおすすめする
      [1]: https://pgaskin.net/kepubify/
    • 設定したのはかなり前だが、ssh でも同期できるので、無線でディレクトリを再帰的に同期できる
      自分はまず USB で本を入れ、日刊ニュースや追加の本は rsync で同期していたと思う。一部のコンテンツは自動収集やメール購読のように自動生成されてディレクトリに入り、購入後に新しい本をコピーするように手動で入れたものもあった
      実際にはそこまで複雑な問題ではないが、Calibre は本を特定のフォルダ構造へコピーする以外にも、はるかに多くのことをしている
    • それができると知ったときはかなり驚いた。Calibre が何か特別なことをしているのだと思っていた。だから Citadel には「フォルダへコピー」機能がある。電子書籍を外部ドライブへコピーできる
      単にフォルダを開いてコピー/貼り付けするより本当に簡単なのかは分からないが、Citadel は端末にどの本があるかを検出するときに Calibre が使う メタデータファイル を更新するので、フォルダ内の全ファイルを読まなくて済む
    • Kobo は使うのにアカウントが必要なのか? それとも買って epub をそのディレクトリに入れれば、そのまま読めるのか?
  • 良さそう。ちょうど先週 Calibre をもう一度使ってみようとして、あの UI というブラックホールにはまった。UI/UX 作業を寄付しようかとも考えたが、数年がかりのプロジェクトになりそうだった
    代わりに、このプロジェクトの UI/UX を手伝えるかもしれない

    • 何年も見てきた限りでは、Calibre プロジェクトは改善をおおむね歓迎していないという印象がある。Kovid Goyal はすでに自分が望むものを手にしていて、別の何かが欲しいならフォークして自分で保守する必要がありそう
      彼は素晴らしい仕事を成し遂げたが、非常に強い好みを持つ人の1人なので、他の人が作業すると言っても、あることには素早く、恣意的で、妙に敵対的になることがある
    • 自分は Calibre UI が気になるほど長くは使わない。数か月に一度、最大10分ほど使うだけ。Epub を取り込み、メタデータを更新し、端末へ送る
      数か月間本を読んで、また取り込みの流れを繰り返す
    • 別の見方をすると、自分は Calibre UI で困ったことがなく、たいてい素早く効率的にやりたいことを終えられる
      純粋に気になるのだが、Calibre ほど機能が豊富で、それをはるかに優れていて簡単な形で提供している ネイティブのスマートフォンアプリ の例はあるのか?
  • 趣味プロジェクトを実際にリリースした点が良い。見た目もすっきりしている。そして calibre CLI は間違いなく歓迎されそう。メニューを5段階もクリックして入っていくのは嫌なので
    「リーダー」と「エディター」領域が明示的な目標ではないなら、Citadel がユーザーに実際に何をしてくれるのかが気になる。主に本を見て、並べ替えて、クリックするためのポータルなのか? もっと多くの機能を構想したロードマップはあるのか?

    • 私の Calibre の主な用途は、epub を一か所に集め、時々電子書籍リーダーと同期することだった。本を追加するときは、タイトルや ISBN などの メタデータ を取得する必要がある
      Citadel は本のタイトル、著者、将来的にはタグやカスタム列のようなメタデータ編集をサポートしており、すでに一部サポートしている。これは確実。デバイス同期も時間が経てば入るだろうし、オンラインソースからメタデータをダウンロードする機能も追加される予定
      ただし、本の内容を編集したり、内蔵の電子書籍リーダーを入れたりする計画はない。すでに優れた電子書籍アプリやデバイスは多く、epub 編集はコレクション管理に比べて一般的に使われるものではないと思う
      ロードマップはないが、フィードバックやアイデアは常に歓迎している
      追加で、形式変換や DRM 解除のような機能もおそらく入ると思う。理想的にはクレートやプラグインとして実装し、拡張をより簡単にしたい
    • Calibre CLI は本のコレクション管理を意味しているようだが、本の変換だけが目的なら、Calibre にはすでに ebook-convert という CLI がある。epub、pdf、azw3、mobi など複数のファイル形式をサポートしている
      例:
      ebook-convert file.epub file.azw3
  • 本当に格好よく見えるので、試してみるつもり。皮肉なことに、最近同じスタック、つまり Rust + Tauri + Svelte でオーディオブック管理用のデスクトップアプリを作った
    興味のある人がいるかもしれないので宣伝すると: https://gitlab.com/fonner/audiobook-locker#audiobook-locker

    • 素晴らしい。私も以前いくつかのプロジェクトで Tauri を少し触ったことがある
      このプロジェクトに Svelte と Tauri を選んだ理由が気になる。すでに慣れていたのか?
    • インスピレーションを得るために、このプロジェクトを見てみる予定
  • 余談だけど、この実行方法で一日が楽しくなった
    bun dev -- -- -- -- --server ...

    • 何が起きているのか気になってきた
  • 興味深い。私もしばらくの間、似たようなアイデアで似たプロジェクトに取り組み始めたが、ネイティブアプリではなく SvelteKit とブラウザ を選んだ
    https://github.com/project-kiosk/kiosk
    完成させるほどモチベーションを長く維持できていない

    • 良さそう。作業を続けてほしいし、使ってみたい
  • Citadel についての短い記事: https://denhoff.ca/posts/replacing-calibre