1 puan yazan GN⁺ 2024-01-15 | 1 yorum | WhatsApp'ta paylaş
  • Citadel, Calibre’ın okuyabileceği bir e-kitap kütüphanesini korurken daha iyi UX ve daha hızlı bir kullanım hissi hedefleyen bir e-kitap kütüphanesi yönetim uygulamasıdır
  • Temel hedefleri Calibre geriye dönük uyumluluğu, kullanımı kolay ve iyi görünen bir arayüz, Calibre’dan çok daha hızlı ve asla daha yavaş olmayan performanstır
  • Şu anda erken aşama yazılım olduğu için hata ve özellik eksikleri beklenmelidir; çökebilir, temel işlevler eksik olabilir veya e-kitap kütüphanenize zarar verebilir
  • Citadel bir e-kitap okuyucu veya e-kitap içerik düzenleyicisi değildir; dosyaları varsayılan uygulamayla açar ve başlık gibi metadata yönetimine odaklanır
  • Kararlı derlemeler Releases’tan, geliştirme derlemeleri GitHub Actions’tan alınabilir; geliştirme için Bun ve Rust gerekir

Citadel’in yapmaya çalıştığı şey

  • Citadel, e-kitap kütüphanelerini yönetmeye yarayan bir uygulamadır ve Calibre ile geriye dönük uyumluluğu temel varsayım olarak alır
  • Citadel’in değiştirdiği kütüphaneler Calibre tarafından okunabilmelidir
  • Projenin üç hedefi vardır
    • Calibre geriye dönük uyumluluğu: Citadel’in düzenlediği kütüphaneleri Calibre okuyabilmelidir
    • İyi UX: Kullanımı kolay olmalı ve iyi görünmelidir
    • Performans: Calibre’dan çok daha hızlı hissettirmeli ve asla daha yavaş olmamalıdır

Yapmadıkları

  • Citadel bir e-kitap okuyucu değildir
    • Zaten iyi e-kitap okuyucu uygulamaları vardır; Citadel dosyaları kullanıcının varsayılan uygulamasında açar
  • Citadel bir e-kitap içerik düzenleyicisi değildir
    • Başlık gibi metadata değil de e-kitap gövde içeriğini düzenlemek istiyorsanız bir alternatif değildir
  • Calibre ile %100 özellik eşitliği hedeflemez
    • Bu, ağırlıklı olarak eklenti alanı için geçerlidir
    • Calibre’ın bazı ileri seviye özelliklerini geliştirmeme olasılığı vardır

Mevcut durum ve indirme

  • Citadel çok erken geliştirme aşamasındadır
    • Çökebilir
    • Temel işlevler eksik olabilir
    • E-kitap kütüphanenize zarar verebilir
  • Citadel’i Calibre kütüphanenizle kullanacaksanız düzenli yedekleme gerekir
  • Yarı kararlı derlemeler Releases üzerinden alınabilir
  • Geliştirme derlemeleri GitHub Actions üzerinden alınabilir
  • Hangi sürüm olursa olsun, kullanım sırasında karşılaşılan sorunların veya çökmelerin bildirilmesi istenir

macOS kurulumunda dikkat edilmesi gerekenler

  • macOS derlemesi henüz imzalı değildir
  • Citadel.app doğrudan açılırsa dosyanın “damaged” olduğuna dair bir uyarı gösterilir
  • Dosyanın Quarantine özniteliği kaldırılarak çözülebilir

Geliştirme ve derleme

  • Geliştirme ön koşulları Bun ve Rust kurulumudur
  • Paket kurulumu:
    bun install
    
  • Geliştirme modunda çalıştırma:
    bun run dev
    
    # or just bun dev
    
  • Lint ve format komutları şöyledir
    • Tüm kodu formatlama: bun format
    • Tüm kod formatını kontrol etme: bun format:check
    • Tüm kodu lint’leme: bun lint
    • Backend formatlama: bun format:backend
    • Backend lint’leme: bun lint:backend
    • Frontend formatlama: bun format:web
    • Frontend lint’leme: bun lint:web
  • Uygulama önizlemesi backend olmadan çalıştırılabilir
    • Rust backend’i yoktur ama var olduğu varsayıldığı için hata gösterilir
    bun dev:app
    
  • Production derlemesi, geliştirme ön koşulları sağlandıktan sonra şu komutlarla oluşturulur
    bun install
    bun run build
    

Güncellemeler ve ilgili projeler

  • Citadel, uygulama güncellemelerini denetleyebilir ve istendiğinde kurabilir
  • Otomatik güncelleme denetimi Settings içindeki Auto updates: On/Off bölümünden devre dışı bırakılabilir
  • Kurulum her zaman açıkça başlatılır; UI metni Install and restart şeklindedir
  • Bakımcı ayarları ve sürüm yayımlama iş akışı ayrıntıları docs/updater-and-releases.md içinde yer alır
  • Citadel, Calibre’ı referans noktası olarak alır ve Calibre redesign Figma prototype’tan ilham almıştır

1 yorum

 
GN⁺ 2024-01-15
Hacker News yorumları
  • “Calibre Web gibi mevcut projelere katkıda bulunmak yerine neden yeni bir uygulama yaptın?” sorusu gelebilir; yanıtım sadece yapmak istediğim için
    Şimdilik bu bir hobi projesi; mevcut projeyi genişletmektense, kaba saba da olsa keyif alarak yazılım üretmekle daha çok ilgileniyorum. Citadel, Calibre ile geriye dönük uyumlu olacak şekilde tasarlandı; bu yüzden Calibre Web’i kullanmaya devam etmek de mümkün.
    Backend’de Calibre ile temas eden kodu da ayrı bir kütüphane olarak ayırdım; ileride başka projelerde de kullanılabilir hale getirmeyi düşünüyorum. Bir Calibre kütüphanesi CLI’ı da mümkün gibi görünüyor.

    • Bir hacker forumunda bile böyle bir açıklama yapmak zorunda kalınması biraz üzücü. John Carmack’in mezuniyet konuşmasındaki sevdiğim bir söz aklıma geliyor:
      “Pek çok alanda tekerleği yeniden icat etmeyin demek neredeyse genel kabul görmüş bir akıl gibi görülür. Ama bazen yine de bunu yapmanızı tavsiye etmek isterim. Sırf o süreç bile sizi daha iyi yapar; sonunda daha iyi tekerlekler de böyle ortaya çıkar. Çünkü insanlar sadece dener.”
      https://www.youtube.com/watch?v=YOZnqjHkULc
    • UI’ı baştan yazma işine öncülük etmek de çok daha büyük bir iş olurdu gibi geliyor.
      Calibre, özelliklerini bilseniz bile kullanması epey acı veren bir şey; bu da ister büyükanne-büyükbabama, ister teknolojiden anlayan birine olsun önermeyi zorlaştırıyor.
    • “Şimdilik bir hobi projesi” sözünde biraz erken dönem Linus Torvalds havası var: “Sadece bir hobi, gnu gibi büyük ve profesyonel olmayacak” [0]
      Yine de projenin başarılı olmasını dilerim.
      [0] https://www.cs.cmu.edu/~awb/linux.history.html
    • Calibre e-kitap yönetimi özellikleri açısından güçlü bir oyuncu, ama kullanıcı deneyimi ya da geliştirici tarafında beni hiç tatmin etmedi. Web’den erişilen barındırılan bir kütüphane olarak tasarlanmış değil ve kişisel olarak deneyimim çok kötü.
      Daha açık, modern ve barındırılan kütüphane fikrini baştan hesaba katan sağlam bir rakip olsa hemen ona geçerim.
    • “İhtiyaçlarıma uymuyor ve backend’i tamamen yeniden yazmam gerekiyor” demek yeterli olurdu bence. İstediğiniz uygulamanın yönü mevcut olanlardan bu kadar farklıysa, bu tercihi özellikle gerekçelendirmeye gerek yok diye düşünüyorum.
  • Bazen Calibre sadece daha iyi görünseydi insanların ne kadar müthiş olduğunu fark edeceğini düşünüyorum. Açıkçası o kadar da kötü değil ve kişisel olarak seviyorum, ama insanlar dış görünüşün ötesine geçemiyor gibi.

    • Calibre aşırı yavaş ve dengesiz. Büyük bir kütüphaneyi, örneğin 100GB ölçeğinde bir arşivi içe aktarmak kelimenin tam anlamıyla haftalar sürdü; küçük parçalara bölüp eklemek zorunda kaldım.
      Sürekli çöküyordu ve süreç o kadar yavaştı ki ayrı bir makineye taşıdım. Web arayüzünde arama yapmayı denedim; o da çok yavaştı.
      Sezgisel olmayan UI’dan bahsetmiyorum bile. Kütüphane işlevi gördüğü söylenen bir şey için, gerçek bir kütüphanedeki yazar adına göre alfabetik listeleme seviyesine bile yaklaşamıyor.
    • Benim yaşadığım sorun, Calibre’nin 20 binden fazla e-kitapta tamamen dağılması.
      Çoğu kişinin 10–300 kitap civarında olacağını anlıyorum, ama ben birkaç büyük kütüphaneyi Calibre ile kullanmaya çalıştım ve gerçekten dayanamadı.
      Yalnızca SQLite’ta ısrar etme kararı da yardımcı olmuyor. 2016 civarında bir PR açmıştım, ama bakımcı veritabanı katmanını değiştirmeye ya da değiştirilebilir hale getirmeye oldukça sert şekilde karşı çıktı.
    • Sadece estetikten değil, tüm UI/UX’ten bahsediyorsanız katılıyorum. Calibre çok güçlü ve özellik açısından zengin bir uygulama, ama sezgisel olmayan, kaba UI’ı ayağına dolanıyor.
    • Kötü değil demek doğru değil; gerçekten kötü. Bir kamu kütüphanesi gibi bir şeyi yönetiyor ve tüm ayrıntılar üzerinde denetim istiyorsanız iyi olabilir, ama sadece kişisel kütüphanenizi saklamak istiyorsanız her seferinde “X’i nasıl yapacağım?” sorusu fazla oluyor.
      Üstelik birkaç saniyede bir calibre-web konteyneri ayağa kaldırıp temiz bir UI ve OPDS elde edebiliyorken, neden özellikle o “estetik anlayışa” katlanmak gerektiğini bilmiyorum.
    • Hafif bir e-kitap okuru olarak büyük ölçüde katılıyorum. Calibre’nin bir tasarımcı ekibi olsaydı çok daha popüler ve yaygın kullanılırdı diye düşünüyorum.
      Sezgisel değil ve UI/UX’i oldukça kötü. Güçlü uygulamaların sık yaşadığı laneti aynen yaşıyor.
      Yine de bugün tekrar deneyeceğim ve alışıp alışamayacağıma bakacağım. Özellikle ileri düzey kullanıcılar için ücretsiz bir ürüne göre gerçekten harika.
  • Güzel proje. Calibre’in özelliklerini seviyorum ama arayüzü beni de epey bunaltıyor; bu yüzden Apple Music öncesi iTunes ile iBooks’un karışımı gibi bir arayüz tasarlamaya başladım
    Şimdilik yalnızca tek bir ekran yaptım ama buradan görülebilir: https://www.figma.com/file/m8qaYbPSnxiFPDPbuYtz2w/Calibre-re...
    Temel soru, Calibre’in ana özelliklerini macOS’e yerelmiş gibi hissettiren bir arayüzde nasıl gösterebileceğimizdi
    Çapraz platform hedeflenmiyorsa, vaktim olduğunda bunu Rust arka ucu olan bir SwiftUI uygulaması olarak da yapmayı deneyebilirim
    Calibre geliştirmesini takip edip bakımını yapmak zor olabilir ama eğlenceli bir hobi projesi gibi görünüyor

  • Dün fark ettim ki Ubuntu 22.04’te Kobo okuyucuyu bağladıktan sonra epub dosyalarını /media/oakhaven/koboreader bağlama noktasındaki root/ dizinine doğrudan kopyalamak yeterli. Sonra cihazın kitap listesinde görünüyorlar
    Nedense Kobo’ya kitap yüklemenin karmaşık olduğunu sanıyordum ve dizüstünden Kobo’ya kitap aktarırken sadece Calibre kullanıyordum
    Calibre’in birçok başka özelliği olduğunu biliyorum ama arayüzünü sevmiyordum; artık Calibre ya da benzer bir uygulama kullanmak zorunda olmamak güzel

    • Birkaç yıl önce Kindle yerine Kobo almamın nedenlerinden biri tam da buydu. Bağlayınca sıradan bir USB yığın depolama aygıtı gibi bağlanıyor; dosyaları kopyalamak yeterli
      Özel bir biçim gerekmiyor ve ePub gibi standart biçimler iyi çalışıyor
      Bu yüzden Kindle’ın nasıl hâlâ bu kadar popüler kaldığını merak ediyordum. İlk giren avantajı mı bilmiyorum ama ePub ve PDF okuyamayan bir e-kitap okuyucu, MP3 ve AAC çalamayan bir müzik çalar gibi geliyor
    • E-kitap okuyucuya aktarmadan önce epub’u kepubify [1] üzerinden bir kez geçirmenizi öneririm
      [1]: https://pgaskin.net/kepubify/
    • Kurulumunu yapalı uzun zaman oldu ama ssh üzerinden de senkronize edilebiliyor; böylece dizinleri kablosuz olarak özyinelemeli şekilde eşitleyebiliyorsunuz
      Sanırım kitapları önce USB ile yüklemiş, günlük haberleri ve ek kitapları rsync ile senkronize etmiştim. Bazı içerikler otomatik toplama ya da e-posta aboneliği gibi otomatik üretilip dizine düşüyordu; yeni satın alınan kitapları kopyalamak gibi elle eklediklerim de vardı
      Aslında çok karmaşık bir sorun değil ama Calibre, kitapları belirli bir klasör yapısına kopyalamaktan çok daha fazlasını yapıyor
    • Bunun mümkün olduğunu öğrendiğimde epey şaşırmıştım. Calibre’in özel bir şey yaptığını sanıyordum. Bu yüzden Citadel’de "klasöre kopyala" özelliği var. E-kitapları harici sürücüye kopyalayabiliyorsunuz
      Sadece klasörü açıp kopyala/yapıştır yapmaktan gerçekten daha kolay mı bilmiyorum ama Citadel, cihazda hangi kitapların olduğunu algılarken Calibre’in kullandığı metadata dosyasını güncelliyor; böylece klasördeki tüm dosyaları okuması gerekmiyor
    • Kobo’yu kullanmak için hesap gerekiyor mu? Yoksa sadece satın alıp epub’u o dizine koyup hemen okuyabiliyor musunuz?
  • İyi görünüyor. Daha geçen hafta Calibre’i yeniden denemeye çalıştım ve o arayüz denen kara deliğe düştüm. UI/UX çalışması bağışlamayı düşündüm ama yıllar sürecek bir proje olacak gibi geldi
    Onun yerine bu projenin UI/UX tarafına yardımcı olabilirim belki

    • Yıllardır izlediğim kadarıyla Calibre projesi iyileştirmeleri genel olarak pek hoş karşılamıyor izlenimi veriyor. Kovid Goyal zaten istediğine sahip; başka bir şey istiyorsanız fork’layıp kendiniz bakımını yapmanız gerekecek gibi
      İnanılmaz bir iş çıkardı ama çok güçlü tercihleri olan insanlardan biri; başka biri çalışmayı teklif etse bile bazı konularda hızlı, keyfî ve tuhaf biçimde düşmanca davranabiliyor
    • Calibre arayüzünün beni rahatsız edeceği kadar uzun kullanmıyorum. Birkaç ayda bir en fazla 10 dakika kullanıyorum. Epub’u içe aktarıyor, metadatayı güncelliyor, cihaza gönderiyorum
      Birkaç ay kitap okuyup sonra içe aktarma sürecini tekrar ediyorum
    • Başka bir bakış açısı olarak, ben Calibre arayüzünde hiç sorun yaşamadım ve genelde istediğim işi hızlı ve verimli şekilde bitiriyorum
      Açıkçası merak ediyorum: Calibre kadar özellik zengini olup bunları çok daha iyi ve kolay bir şekilde sunan yerel akıllı telefon uygulaması örneği var mı?
  • Bir hobi projesinin gerçekten yayımlanmış olması hoşuma gitti. Görünüşü de temiz. Ayrıca calibre CLI kesinlikle memnuniyetle karşılanacak gibi. Menülerde beş seviye tıklayıp ilerlemekten nefret ediyorum
    “Okuyucu” ve “düzenleyici” alanları açıkça hedef değilse, Citadel’in kullanıcı için gerçekte ne yaptığını merak ediyorum. Esas olarak kitapları görüntülemek, sıralamak ve tıklamak için bir portal mı? Daha fazla özellik düşündüğünüz bir yol haritası var mı?

    • Calibre’yi başlıca epub’ları tek yerde toplamak ve ara sıra e-kitap okuyucuyla eşitlemek için kullanıyordum. Kitap eklerken başlık, ISBN gibi metadata bilgilerini çekmesi gerekiyor
      Citadel kitap başlığı, yazar ve ileride etiketler ile kullanıcı tanımlı sütunlar gibi metadata düzenlemeyi destekliyor ve bir kısmını şimdiden destekliyor. Bu kesin. Cihaz eşitlemesi de zamanla eklenecek; çevrim içi kaynaklardan metadata indirme özelliği de eklenecek
      Ancak kitap içeriğini düzenleme veya yerleşik bir e-kitap okuyucu ekleme planı yok. Zaten çok iyi e-kitap uygulamaları ve cihazları var; epub düzenlemenin koleksiyon yönetimine kıyasla yaygın kullanıldığını düşünmüyorum
      Yol haritası yok, ama geri bildirimlere ve fikirlere her zaman açığız
      Ek olarak biçim dönüştürme ve DRM kaldırma gibi özellikler de muhtemelen eklenecek. İdealde bunları crate veya eklenti olarak uygulayıp genişletmeyi kolaylaştırmak istiyorum
    • Calibre CLI ile kitap koleksiyonu yönetimi kastediliyor gibi, ama yalnızca kitap dönüştürmek istiyorsanız Calibre’de zaten ebook-convert adlı bir CLI var. epub, pdf, azw3, mobi gibi birçok dosya biçimini destekliyor
      Örnek:
      ebook-convert file.epub file.azw3
  • Gerçekten çok hoş görünüyor; incelemeyi düşünüyorum. İronik biçimde kısa süre önce aynı stack’le, yani Rust + Tauri + Svelte ile sesli kitap yönetimi için bir masaüstü uygulaması yaptım
    İlgilenen olur mu diye tanıtayım: https://gitlab.com/fonner/audiobook-locker#audiobook-locker

    • Harika. Ben de daha önce birkaç projede Tauri’yi biraz kurcalamıştım
      Bu proje için Svelte ve Tauri’yi neden seçtiğini merak ediyorum. Zaten aşina mıydın?
    • İlham almak için bu projeye bakacağım
  • Konu dışı ama bu çalıştırma biçimi günümü güzelleştirdi
    bun dev -- -- -- -- --server ...

    • Burada neler döndüğünü merak ettim
  • İlginç. Ben de bir süre benzer bir fikirle benzer bir proje üzerinde çalışmaya başlamıştım, ama native uygulama yerine SvelteKit ve tarayıcıyı seçmiştim
    https://github.com/project-kiosk/kiosk
    Bitirecek motivasyonu yeterince uzun süre koruyamıyorum

    • Güzel görünüyor. Üzerinde çalışmaya devam etmeni isterim; denemek isterim
  • Citadel hakkında kısa bir yazı: https://denhoff.ca/posts/replacing-calibre