1 poin oleh GN⁺ 2024-01-15 | 1 komentar | Bagikan ke WhatsApp
  • Citadel adalah aplikasi pengelola pustaka ebook yang bertujuan menghadirkan UX yang lebih baik dan kesan penggunaan yang lebih cepat, sambil tetap mempertahankan pustaka ebook yang bisa dibaca oleh Calibre
  • Sasaran utamanya adalah kompatibilitas mundur dengan Calibre, antarmuka yang mudah digunakan dan enak dilihat, serta performa yang jauh lebih cepat daripada Calibre dan tidak pernah terasa lambat
  • Saat ini masih berupa perangkat lunak tahap awal, sehingga bug dan kekurangan fitur dapat terjadi; aplikasi bisa crash, fitur dasar mungkin belum ada, atau pustaka ebook bisa rusak
  • Citadel bukan pembaca ebook maupun editor konten ebook; file dibuka dengan aplikasi default, dan fokusnya adalah pengelolaan metadata seperti judul
  • Build stabil tersedia di Releases, build pengembangan tersedia di GitHub Actions, dan pengembangan membutuhkan Bun serta Rust

Apa yang ingin dilakukan Citadel

  • Citadel adalah aplikasi untuk mengelola pustaka ebook, dengan kompatibilitas mundur terhadap Calibre sebagai premis utama
  • Pustaka yang dimodifikasi oleh Citadel harus bisa dibaca oleh Calibre
  • Tujuan proyek ini ada tiga
    • Kompatibilitas mundur dengan Calibre: pustaka yang diedit oleh Citadel harus bisa dibaca oleh Calibre
    • UX yang baik: harus mudah digunakan dan enak dilihat
    • Performa: harus terasa jauh lebih cepat daripada Calibre, dan sama sekali tidak boleh lebih lambat

Hal yang tidak dilakukan

  • Citadel bukan pembaca ebook
    • Sudah ada aplikasi pembaca ebook yang bagus, dan Citadel membuka file dengan aplikasi default pengguna
  • Citadel bukan editor konten ebook
    • Jika kebutuhannya adalah mengedit isi teks ebook, bukan metadata seperti judul, ini bukan pengganti
  • Tidak menargetkan kesetaraan fitur 100% dengan Calibre
    • Ini terutama berlaku pada area plugin
    • Ada kemungkinan beberapa fitur lanjutan Calibre tidak akan dibuat

Status saat ini dan unduhan

  • Citadel berada pada tahap pengembangan yang sangat awal
    • Bisa crash
    • Fitur dasar mungkin belum ada
    • Bisa merusak pustaka ebook
  • Jika menggunakan Citadel pada pustaka Calibre, backup rutin diperlukan
  • Build yang setengah stabil dapat diperoleh dari Releases
  • Build pengembangan dapat diperoleh dari GitHub Actions
  • Pengguna diminta melaporkan isu atau crash yang terjadi saat memakai versi apa pun

Catatan instalasi macOS

  • Build macOS masih belum ditandatangani
  • Jika membuka Citadel.app secara langsung, akan muncul peringatan bahwa file “damaged”
  • Masalah ini dapat diselesaikan dengan menghapus atribut Quarantine pada file

Pengembangan dan build

  • Prasyarat pengembangan adalah memasang Bun dan Rust
  • Instalasi paket:
    bun install
    
  • Menjalankan mode pengembangan:
    bun run dev
    
    # or just bun dev
    
  • Perintah lint dan format adalah sebagai berikut
    • Format seluruh kode: bun format
    • Pemeriksaan format seluruh kode: bun format:check
    • Lint seluruh kode: bun lint
    • Format backend: bun format:backend
    • Lint backend: bun lint:backend
    • Format frontend: bun format:web
    • Lint frontend: bun lint:web
  • Pratinjau aplikasi dapat dijalankan tanpa backend
    • Error akan ditampilkan karena backend Rust diasumsikan ada meskipun sebenarnya tidak ada
    bun dev:app
    
  • Build produksi dibuat dengan perintah berikut setelah prasyarat pengembangan terpenuhi
    bun install
    bun run build
    

Pembaruan dan proyek terkait

  • Citadel dapat memeriksa pembaruan aplikasi dan memasangnya saat diminta
  • Pemeriksaan pembaruan otomatis dapat dinonaktifkan di Settings melalui Auto updates: On/Off
  • Instalasi selalu dilakukan secara eksplisit, dengan teks UI Install and restart
  • Pengaturan maintainer dan detail workflow rilis ada di docs/updater-and-releases.md
  • Citadel menjadikan Calibre sebagai titik acuan, dan terinspirasi oleh Calibre redesign Figma prototype

1 komentar

 
GN⁺ 2024-01-15
Komentar Hacker News
  • Mungkin akan muncul pertanyaan, “Mengapa membuat aplikasi baru alih-alih berkontribusi ke proyek yang sudah ada seperti Calibre Web?”, dan jawabannya adalah karena memang ingin membuatnya
    Saat ini ini adalah proyek hobi, jadi dibanding memperluas proyek yang sudah ada, saya lebih tertarik membuat software dengan cara yang menyenangkan meski hasilnya masih kasar. Citadel dirancang agar kompatibel ke belakang dengan Calibre, jadi Calibre Web juga tetap bisa digunakan
    Di backend, kode yang bersentuhan dengan Calibre juga sudah dipisahkan menjadi library tersendiri, dan nantinya ingin dibuat agar bisa dipakai proyek lain juga. CLI untuk library Calibre sepertinya juga mungkin

    • Agak disayangkan bahwa bahkan di forum hacker pun penjelasan seperti ini harus diberikan. Saya teringat kutipan favorit dari pidato wisuda John Carmack:
      “Di banyak bidang, nasihat untuk tidak menciptakan ulang roda hampir diterima sebagai akal sehat. Namun sesekali saya ingin menyarankan: lakukan saja. Prosesnya saja akan membuat Anda menjadi lebih baik, dan pada akhirnya roda yang lebih baik pun lahir dengan cara itu. Karena orang-orang sekadar mencobanya.”
      https://www.youtube.com/watch?v=YOZnqjHkULc
    • Memimpin penulisan ulang UI dari nol juga sepertinya pekerjaan yang jauh lebih besar
      Calibre cukup menyakitkan untuk digunakan meski sudah tahu fiturnya, sehingga sulit direkomendasikan baik kepada kakek-nenek maupun orang yang melek teknologi
    • Dari kalimat “saat ini ini adalah proyek hobi” masih terasa sedikit nuansa awal Linus Torvalds: “hanya hobi, tidak akan sebesar dan seprofesional gnu” [0]
      Meski begitu, semoga proyeknya berjalan baik
      [0] https://www.cs.cmu.edu/~awb/linux.history.html
    • Calibre memang kuat dalam hal fitur manajemen ebook, tetapi saya tidak pernah puas dari sisi pengalaman pengguna maupun pengembang. Ia tidak pernah dirancang sebagai library ter-host yang diakses lewat web, dan secara pribadi pengalaman saya sangat buruk
      Kalau ada pesaing yang solid, lebih terbuka, modern, dan memikirkan library ter-host, saya rasa saya akan langsung pindah
    • Sepertinya cukup mengatakan “ini tidak sesuai dengan kebutuhan saya dan backend-nya harus ditulis ulang sepenuhnya.” Kalau arah aplikasi yang diinginkan berbeda sejauh ini dari yang sudah ada sekarang, menurut saya pilihan seperti ini tidak perlu terlalu dibenarkan
  • Kadang saya berpikir kalau Calibre tampilannya saja lebih bagus, orang-orang mungkin akan menyadari betapa hebatnya aplikasi itu. Sejujurnya tidak seburuk itu dan secara pribadi saya menyukainya, tetapi orang-orang tampaknya tidak bisa melewati tampilan luarnya

    • Calibre sangat lambat dan tidak stabil. Untuk memasukkan library besar, misalnya sekitar 100GB, secara harfiah butuh beberapa minggu, dan harus ditambahkan sedikit demi sedikit
      Aplikasinya terus crash dan prosesnya sangat lambat sampai saya memindahkannya ke mesin terpisah. Saat mencoba mencari lewat antarmuka web, itu juga sangat lambat
      Belum lagi UI yang tidak intuitif. Untuk sesuatu yang berperan sebagai library, bahkan masih jauh tertinggal dari daftar penulis berdasarkan urutan alfabet seperti di perpustakaan sungguhan
    • Masalah yang saya alami adalah Calibre benar-benar ambruk pada lebih dari 20 ribu ebook
      Saya paham kebanyakan orang mungkin hanya punya sekitar 10–300 buku, tetapi saya mencoba memakai Calibre untuk beberapa library besar dan benar-benar tidak sanggup bertahan
      Keputusan untuk tetap bersikeras memakai SQLite saja juga tidak membantu. Sekitar 2016 saya membuka PR, tetapi maintainer cukup keras menolak mengubah lapisan database atau membuatnya bisa diganti
    • Kalau yang dimaksud bukan sekadar estetika, melainkan keseluruhan UI/UX, saya setuju. Calibre adalah aplikasi yang sangat kuat dan kaya fitur, tetapi UI-nya yang tidak intuitif dan kikuk menjadi penghambat
    • Bukan sekadar tidak buruk; sebenarnya memang buruk. Kalau Anda mengelola sesuatu seperti perpustakaan umum dan ingin mengontrol setiap detail, mungkin itu cocok, tetapi kalau hanya ingin menyimpan library pribadi, terlalu sering muncul pertanyaan “bagaimana cara melakukan X?”
      Selain itu, dalam beberapa detik saja kita bisa menjalankan container calibre-web dan mendapatkan UI yang rapi serta OPDS, jadi saya tidak tahu mengapa harus bersusah payah menoleransi “estetika” itu
    • Sebagai pembaca ebook ringan, saya sangat setuju. Kalau Calibre punya tim desainer, saya rasa aplikasi itu akan jauh lebih populer dan digunakan secara luas
      Tidak intuitif dan UI/UX-nya cukup buruk. Ia mengalami kutukan yang sering dialami aplikasi-aplikasi kuat
      Meski begitu, hari ini saya akan mencobanya lagi dan melihat apakah saya bisa membiasakan diri. Terutama untuk pengguna mahir, ini benar-benar produk gratis yang luar biasa
  • Proyek yang bagus. Aku suka fitur-fitur Calibre, tapi aku juga cukup frustrasi dengan UI-nya, jadi aku mulai mendesain antarmuka yang terasa seperti perpaduan antara iTunes sebelum Apple Music dan iBooks
    Sejauh ini baru satu layar yang dibuat, tapi bisa dilihat di sini: https://www.figma.com/file/m8qaYbPSnxiFPDPbuYtz2w/Calibre-re...
    Pertanyaan utamanya adalah bagaimana menampilkan fitur-fitur utama Calibre dalam UI yang terasa native di macOS
    Kalau tidak menargetkan lintas platform, saat ada waktu mungkin bisa dibuat sebagai aplikasi SwiftUI dengan backend Rust
    Mengikuti pengembangan Calibre dan memeliharanya mungkin sulit, tapi ini terlihat seperti proyek hobi yang menarik

  • Kemarin aku baru sadar, di Ubuntu 22.04 setelah menghubungkan reader Kobo, cukup salin epub begitu saja ke direktori root/ di mount point /media/oakhaven/koboreader. Setelah itu akan muncul di daftar buku perangkat
    Entah kenapa aku mengira memasukkan buku ke Kobo itu rumit, dan selama ini hanya memakai Calibre saat memindahkan buku dari laptop ke Kobo
    Aku tahu Calibre punya banyak fitur lain, tapi aku tidak suka antarmukanya, dan sekarang senang karena tidak perlu lagi memakai Calibre atau aplikasi serupa

    • Ini salah satu alasan aku membeli Kobo alih-alih Kindle beberapa tahun lalu. Saat dicolokkan, perangkat itu ter-mount seperti USB mass storage biasa, lalu tinggal salin file
      Tidak perlu format khusus, dan format standar seperti ePub berjalan dengan baik
      Karena itu aku heran bagaimana Kindle bisa tetap begitu populer. Mungkin karena efek first-mover, tapi e-reader yang tidak bisa membaca ePub dan PDF terasa seperti pemutar audio yang tidak bisa memutar MP3 dan AAC
    • Sebelum memindahkan epub ke e-reader, aku sarankan menjalankannya sekali lewat kepubify [1]
      [1]: https://pgaskin.net/kepubify/
    • Sudah lama sejak aku menyiapkannya, tapi sinkronisasi juga bisa dilakukan lewat ssh, jadi direktori bisa disinkronkan secara rekursif secara nirkabel
      Seingatku aku memasukkan buku terlebih dulu lewat USB, lalu menyinkronkan berita harian dan buku tambahan dengan rsync. Sebagian konten dibuat otomatis dan masuk ke direktori, seperti hasil pengumpulan otomatis atau langganan email, dan sebagian lagi dimasukkan manual seperti menyalin buku baru setelah dibeli
      Sebenarnya ini bukan masalah yang sangat rumit, tapi Calibre melakukan jauh lebih banyak hal selain menyalin buku ke struktur folder tertentu
    • Aku cukup terkejut saat tahu itu bisa dilakukan. Kukira Calibre melakukan sesuatu yang khusus. Karena itu Citadel punya fitur "salin ke folder". E-book bisa disalin ke drive eksternal
      Aku tidak tahu apakah itu benar-benar lebih mudah daripada sekadar membuka folder lalu copy/paste, tapi saat Citadel mendeteksi buku apa saja yang ada di perangkat, ia memperbarui file metadata yang dipakai Calibre sehingga tidak perlu membaca semua file di folder
    • Apakah Kobo memerlukan akun untuk digunakan? Atau bisa langsung dibeli, memasukkan epub ke direktori itu, lalu membacanya?
  • Kelihatan bagus. Baru minggu lalu aku mencoba memakai Calibre lagi dan tersedot ke lubang hitam UI-nya. Aku sempat berpikir untuk menyumbangkan pekerjaan UI/UX, tapi rasanya itu akan menjadi proyek bertahun-tahun
    Sebagai gantinya, mungkin aku bisa membantu UI/UX proyek ini

    • Dari pengamatan selama bertahun-tahun, aku mendapat kesan bahwa proyek Calibre pada umumnya tidak terlalu menyambut perbaikan. Kovid Goyal sudah punya apa yang ia inginkan, dan kalau menginginkan sesuatu yang berbeda, sepertinya harus melakukan fork lalu memeliharanya sendiri
      Ia telah melakukan pekerjaan yang luar biasa, tapi ia termasuk orang dengan selera yang sangat kuat, sehingga untuk beberapa hal ia bisa cepat, sewenang-wenang, dan anehnya bermusuhan meski orang lain menawarkan diri untuk mengerjakannya
    • Aku tidak memakai Calibre cukup lama sampai UI-nya terasa mengganggu. Setiap beberapa bulan sekali, paling lama sekitar 10 menit. Mengimpor Epub, memperbarui metadata, lalu mengirimnya ke perangkat
      Setelah membaca buku selama beberapa bulan, aku mengulangi proses impor itu lagi
    • Sebagai sudut pandang lain, aku tidak pernah mengalami masalah dengan UI Calibre dan biasanya bisa menyelesaikan hal yang kuinginkan dengan cepat dan efisien
      Jujur aku penasaran, apakah ada contoh aplikasi smartphone native yang sekaya fitur Calibre tetapi menyajikannya dengan cara yang jauh lebih baik dan mudah?
  • Senang melihat proyek hobi yang benar-benar dirilis. Tampilannya juga rapi. Dan calibre CLI jelas sepertinya akan disambut baik. Saya tidak suka harus mengeklik masuk lewat lima tingkat menu
    Kalau area "pembaca" dan "editor" memang bukan tujuan eksplisitnya, saya penasaran apa yang sebenarnya Citadel lakukan untuk pengguna. Apakah terutama portal untuk melihat, mengurutkan, dan mengeklik buku? Apakah ada roadmap yang membayangkan lebih banyak fitur?

    • Penggunaan utama Calibre saya adalah mengumpulkan epub di satu tempat, dan sesekali menyinkronkannya dengan e-reader. Saat menambahkan buku, perlu mengambil metadata seperti judul dan ISBN
      Citadel mendukung, dan sebagian sudah mendukung, penyuntingan metadata seperti judul buku, penulis, serta nantinya tag dan kolom khusus. Itu sudah pasti. Sinkronisasi perangkat juga akan masuk seiring waktu, dan fitur mengunduh metadata dari sumber online juga akan ditambahkan
      Namun tidak ada rencana untuk menyunting isi buku atau memasukkan e-reader bawaan. Sudah ada banyak aplikasi dan perangkat e-book yang bagus, dan menurut saya penyuntingan epub tidak digunakan sesering manajemen koleksi
      Tidak ada roadmap, tetapi kami selalu terbuka untuk masukan dan ide
      Selain itu, fitur seperti konversi format dan penghapusan DRM mungkin juga akan masuk. Idealnya saya ingin mengimplementasikannya sebagai crate atau plugin agar lebih mudah diperluas
    • Sepertinya Calibre CLI yang dimaksud adalah manajemen koleksi buku, tetapi kalau yang diinginkan hanya konversi buku, Calibre sudah punya CLI bernama ebook-convert. Mendukung berbagai format file seperti epub, pdf, azw3, mobi, dan lainnya
      Contoh:
      ebook-convert file.epub file.azw3
  • Terlihat sangat keren dan saya berencana mencobanya. Ironisnya, baru-baru ini saya membuat aplikasi desktop untuk manajemen audiobook dengan stack yang sama, yaitu Rust + Tauri + Svelte
    Sekadar promosi kalau ada yang tertarik: https://gitlab.com/fonner/audiobook-locker#audiobook-locker

    • Keren. Saya juga dulu sempat sedikit mencoba Tauri di beberapa proyek
      Saya penasaran kenapa memilih Svelte dan Tauri untuk proyek ini. Apakah sudah familier dengannya?
    • Saya akan melihat proyek ini untuk mencari inspirasi
  • Agak di luar topik, tapi cara menjalankan ini membuat hari saya jadi lebih menyenangkan
    bun dev -- -- -- -- --server ...

    • Saya jadi penasaran apa yang sebenarnya terjadi
  • Menarik. Saya juga sempat mulai mengerjakan proyek serupa dengan ide yang mirip, tetapi memilih SvelteKit dan browser alih-alih aplikasi native
    https://github.com/project-kiosk/kiosk
    Saya belum bisa mempertahankan motivasi cukup lama untuk menyelesaikannya

    • Kelihatannya bagus. Saya harap terus dikerjakan, dan ingin mencobanya
  • Tulisan singkat tentang Citadel: https://denhoff.ca/posts/replacing-calibre