1 पॉइंट द्वारा GN⁺ 2024-01-15 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Citadel एक ईबुक लाइब्रेरी मैनेजमेंट ऐप है, जिसका लक्ष्य Calibre द्वारा पढ़ी जा सकने वाली ईबुक लाइब्रेरी को बनाए रखते हुए बेहतर UX और अधिक तेज़ अनुभव देना है
  • इसके मुख्य लक्ष्य हैं Calibre backward compatibility, उपयोग में आसान और आकर्षक इंटरफ़ेस, और Calibre से कहीं तेज़ तथा कभी भी उससे धीमा न होने वाला प्रदर्शन
  • फिलहाल यह शुरुआती सॉफ़्टवेयर है, इसलिए bugs और फीचर्स की कमी की उम्मीद की जानी चाहिए; यह crash हो सकता है, बुनियादी फीचर्स गायब हो सकते हैं, या आपकी ईबुक लाइब्रेरी को नुकसान पहुँचा सकता है
  • Citadel न तो ईबुक रीडर है और न ही ईबुक कंटेंट एडिटर; यह फ़ाइलों को डिफ़ॉल्ट ऐप में खोलता है और शीर्षक जैसी metadata मैनेजमेंट पर ध्यान देता है
  • स्थिर builds Releases में और development builds GitHub Actions में मिल सकते हैं, और development के लिए Bun और Rust की ज़रूरत होती है

Citadel क्या करना चाहता है

  • Citadel ईबुक लाइब्रेरी मैनेज करने वाला ऐप है, और Calibre के साथ backward compatibility इसकी मूल शर्त है
  • Citadel द्वारा संशोधित लाइब्रेरी Calibre द्वारा पढ़ी जा सकनी चाहिए
  • प्रोजेक्ट के तीन लक्ष्य हैं
    • Calibre backward compatibility: Citadel द्वारा संपादित लाइब्रेरी को Calibre पढ़ सके
    • अच्छा UX: यह इस्तेमाल में आसान और देखने में अच्छा होना चाहिए
    • प्रदर्शन: यह Calibre की तुलना में काफ़ी तेज़ महसूस होना चाहिए, और कभी भी उससे धीमा नहीं होना चाहिए

क्या नहीं करता

  • Citadel ईबुक रीडर नहीं है
    • पहले से अच्छे ईबुक रीडर ऐप मौजूद हैं, इसलिए Citadel फ़ाइलों को उपयोगकर्ता के डिफ़ॉल्ट ऐप में खोलता है
  • Citadel ईबुक कंटेंट एडिटर नहीं है
    • अगर आपका काम शीर्षक जैसी metadata के बजाय ईबुक के मुख्य कंटेंट को एडिट करना है, तो यह उसका विकल्प नहीं है
  • इसका लक्ष्य Calibre के साथ 100% feature parity हासिल करना नहीं है
    • यह मुख्य रूप से plugins वाले क्षेत्र पर लागू होता है
    • Calibre के कुछ advanced features शायद कभी न बनाए जाएँ

वर्तमान स्थिति और डाउनलोड

  • Citadel अभी बहुत शुरुआती development stage में है
    • यह crash हो सकता है
    • बुनियादी फीचर्स गायब हो सकते हैं
    • यह आपकी ईबुक लाइब्रेरी को नुकसान पहुँचा सकता है
  • अगर आप Calibre लाइब्रेरी के साथ Citadel का इस्तेमाल करते हैं, तो नियमित backup ज़रूरी है
  • थोड़े-बहुत स्थिर builds Releases से मिल सकते हैं
  • development builds GitHub Actions से मिल सकते हैं
  • किसी भी version का उपयोग करते समय आने वाले issues या crashes की report करने का अनुरोध किया गया है

macOS इंस्टॉलेशन पर ध्यान देने योग्य बातें

  • macOS build अभी signed नहीं है
  • अगर आप Citadel.app को सीधे खोलते हैं, तो फ़ाइल के “damaged” होने की warning दिखाई देगी
  • फ़ाइल का Quarantine attribute हटाने से समस्या हल हो जाती है

development और build

  • development के लिए Bun और Rust इंस्टॉल होना चाहिए
  • पैकेज इंस्टॉल करें:
    bun install
    
  • development चलाएँ:
    bun run dev
    
    # or just bun dev
    
  • lint और format कमांड इस प्रकार हैं
    • पूरा code format: bun format
    • पूरे code का format check: bun format:check
    • पूरे code का lint: bun lint
    • backend format: bun format:backend
    • backend lint: bun lint:backend
    • frontend format: bun format:web
    • frontend lint: bun lint:web
  • backend के बिना भी ऐप preview चलाया जा सकता है
    • Rust backend मौजूद नहीं होता, लेकिन उसके होने का अनुमान लगाया जाता है, इसलिए errors दिखाई देंगे
    bun dev:app
    
  • production build, development prerequisites पूरी करने के बाद, इस कमांड से बनाई जाती है
    bun install
    bun run build
    

updates और संबंधित प्रोजेक्ट्स

  • Citadel ऐप updates की जाँच कर सकता है और अनुरोध होने पर उन्हें इंस्टॉल कर सकता है
  • automatic update checks को Settings में Auto updates: On/Off से disable किया जा सकता है
  • इंस्टॉलेशन हमेशा स्पष्ट रूप से किया जाता है, और UI text Install and restart होता है
  • maintainer settings और release workflow की जानकारी docs/updater-and-releases.md में है
  • Citadel Calibre को अपना benchmark मानता है, और Calibre redesign Figma prototype से प्रेरित है

1 टिप्पणियां

 
GN⁺ 2024-01-15
Hacker News टिप्पणियाँ
  • सवाल उठ सकता है, "Calibre Web जैसे मौजूदा प्रोजेक्ट में योगदान देने के बजाय नया ऐप क्यों बनाया?" इसका जवाब है बस इसे बनाना चाहता था
    अभी यह एक hobby project है, इसलिए मौजूदा प्रोजेक्ट को extend करने से ज़्यादा रुचि इस बात में है कि थोड़ा कच्चा ही सही, लेकिन मज़े से software बनाया जाए। Citadel को Calibre के साथ backward-compatible रहने के लिए डिज़ाइन किया गया है, इसलिए Calibre Web भी आगे इस्तेमाल किया जा सकता है
    backend में Calibre से जुड़ने वाला code भी अलग library में बाँट रखा है, ताकि बाद में दूसरे projects में भी इस्तेमाल किया जा सके। शायद Calibre library CLI भी संभव हो

    • यह थोड़ा अफ़सोस की बात है कि Hacker forum पर भी ऐसी सफ़ाई देनी पड़ती है। John Carmack के graduation speech की एक पसंदीदा पंक्ति याद आती है:
      "कई क्षेत्रों में पहिया दोबारा न बनाने की बात लगभग सामान्य समझ की तरह मानी जाती है। लेकिन कभी-कभी मैं कहना चाहूँगा कि फिर भी ऐसा करके देखो। उस प्रक्रिया से ही आप बेहतर बनते हैं, और अंत में बेहतर पहिए भी उसी तरह बनते हैं। क्योंकि लोग बस कोशिश करते हैं।"
      https://www.youtube.com/watch?v=YOZnqjHkULc
    • UI को शुरू से फिर से लिखने की पहल करना भी कहीं बड़ा काम लगता है
      Calibre इतना कष्टदायक है कि उसके features जानने के बाद भी उसे इस्तेमाल करना मुश्किल है, इसलिए न दादा-दादी को, न ही तकनीकी जानकार लोगों को इसे सुझाना आसान है
    • "अभी यह hobby project है" वाली बात में शुरुआती Linus Torvalds वाली झलक थोड़ी दिखती है: "यह बस एक hobby है, gnu जितना बड़ा और professional नहीं होगा" [0]
      फिर भी उम्मीद है कि project अच्छा चले
      [0] https://www.cs.cmu.edu/~awb/linux.history.html
    • ebook management के मामले में Calibre मज़बूत है, लेकिन user experience या developer अनुभव के लिहाज़ से मैं कभी संतुष्ट नहीं रहा। इसे कभी web से access होने वाली hosted library की तरह डिज़ाइन नहीं किया गया था, और निजी तौर पर मेरा अनुभव बहुत खराब रहा है
      अगर कोई ज़्यादा खुला, आधुनिक और hosted library को ध्यान में रखकर बना मज़बूत competitor मिले, तो मैं तुरंत उस पर चला जाऊँगा
    • बस यह कह देना काफ़ी होना चाहिए कि "यह मेरी ज़रूरतों के हिसाब से फिट नहीं बैठता और backend को पूरी तरह फिर से लिखना पड़ेगा।" अगर आप जिस ऐप की दिशा चाहते हैं वह मौजूदा चीज़ से इतनी अलग है, तो मुझे नहीं लगता कि इस चुनाव को अलग से justify करने की ज़रूरत है
  • कभी-कभी लगता है कि अगर Calibre बस देखने में थोड़ा बेहतर होता, तो लोग समझ पाते कि यह कितना शानदार है। ईमानदारी से कहूँ तो यह इतना बुरा भी नहीं है और मुझे व्यक्तिगत रूप से पसंद है, लेकिन लोग शायद उसके look से आगे नहीं बढ़ पाते

    • Calibre बहुत धीमा और अस्थिर है। बड़ी library, जैसे 100GB आकार को जोड़ने में सचमुच कई हफ़्ते लग गए, और उसे थोड़ा-थोड़ा करके add करना पड़ा
      यह बार-बार crash होता रहा और प्रक्रिया इतनी धीमी थी कि मुझे इसे अलग machine पर ले जाना पड़ा। web interface से खोजकर देखा तो वह भी बहुत धीमा था
      इसकी unintuitive UI की तो बात ही अलग है। library होने के हिसाब से यह असली पुस्तकालय जैसी लेखक वर्णमाला/अल्फ़ाबेट सूची के आसपास भी नहीं पहुँचता
    • मेरी समस्या यह है कि Calibre 20,000 से ज़्यादा ebooks पर पूरी तरह टूट जाता है
      समझ सकता हूँ कि ज़्यादातर लोगों के पास शायद 10 से 300 किताबें होंगी, लेकिन मैंने कुछ बड़ी libraries को Calibre में इस्तेमाल करने की कोशिश की और यह सच में टिक नहीं पाया
      सिर्फ़ SQLite पर अड़े रहने का फ़ैसला भी मदद नहीं करता। मैंने लगभग 2016 में एक PR खोला था, लेकिन maintainer database layer को बदलने या उसे replaceable बनाने के काफ़ी सख़्त खिलाफ़ थे
    • अगर बात सिर्फ़ रूप-रंग की नहीं बल्कि पूरी UI/UX की हो, तो मैं सहमत हूँ। Calibre बहुत powerful और feature-rich ऐप है, लेकिन उसकी non-intuitive और भद्दी UI उसे पीछे खींचती है
    • यह सिर्फ़ ठीक-ठाक नहीं है, बल्कि सच में खराब है। अगर आप किसी public library जैसी चीज़ manage कर रहे हैं और हर detail पर नियंत्रण चाहते हैं, तो शायद यह ठीक हो, लेकिन अगर बस personal library सहेजनी है, तो हर बार "X कैसे करूँ?" जैसे सवाल बहुत ज़्यादा आते हैं
      और जब कुछ ही सेकंड में calibre-web container चलाकर साफ़-सुथरी UI और OPDS मिल सकती है, तो फिर उस "aesthetic" को क्यों झेलना चाहिए, समझ नहीं आता
    • एक हल्के ebook reader के नज़रिए से मैं पूरी तरह सहमत हूँ। अगर Calibre के पास designers की team होती, तो शायद यह कहीं ज़्यादा popular और व्यापक रूप से इस्तेमाल होता
      यह intuitive नहीं है और इसकी UI/UX काफ़ी खराब है। यह वही अभिशाप झेलता दिखता है जिससे powerful applications अक्सर गुजरते हैं
      फिर भी आज इसे दोबारा आज़माने का सोच रहा हूँ, यह देखने के लिए कि क्या इसकी आदत डाली जा सकती है। ख़ासकर advanced users के लिए, एक मुफ़्त product के रूप में यह वाकई शानदार है
  • यह एक अच्छा प्रोजेक्ट है। मुझे Calibre की functionality पसंद है, लेकिन उसके UI से मुझे भी काफ़ी घुटन महसूस होती है, इसलिए मैंने ऐसा interface डिज़ाइन करना शुरू किया जो Apple Music से पहले वाला iTunes और iBooks का मिश्रण लगे।
    अभी सिर्फ़ एक screen बनाई है, उसे यहाँ देख सकते हैं: https://www.figma.com/file/m8qaYbPSnxiFPDPbuYtz2w/Calibre-re...
    मुख्य सवाल यह था कि Calibre की प्रमुख सुविधाओं को ऐसे UI में कैसे दिखाया जाए जो macOS native जैसा महसूस हो।
    अगर cross-platform लक्ष्य न हो, तो समय मिलने पर इसे Rust backend के साथ SwiftUI app के रूप में बनाने की कोशिश की जा सकती है।
    Calibre के development के साथ चलते हुए maintenance करना मुश्किल हो सकता है, लेकिन यह एक मज़ेदार hobby project लगता है।

    • बढ़िया लग रहा है। मैं designer नहीं हूँ, इसलिए दूसरे लोग चीज़ों को कैसे डिज़ाइन करते हैं यह देखना मुझे हमेशा अच्छा लगता है। संदर्भ के लिए Calibre redesign के कुछ और प्रोजेक्ट भी थे।
      खासकर Kemie Guaida[1] ने Reddit पर जो redesign पोस्ट किया था, वह मेरे लिए बड़ी design inspiration था, और repository में credit भी जोड़ना है, इसलिए उसे जल्द शामिल करूँगा: https://old.reddit.com/r/Calibre/comments/udzumn/testing_a_n...
      पूरे प्रोजेक्ट का overview यहाँ देख सकते हैं: https://www.figma.com/file/g4ntqXWa6C0PRGrG3WjyXM/Calibre-pr...
      [1]: https://kemielikes.design/
  • कल मुझे पता चला कि Ubuntu 22.04 में Kobo reader कनेक्ट करने के बाद /media/oakhaven/koboreader mount point के root/ directory में epub बस कॉपी कर देना होता है। फिर वह डिवाइस की किताबों की सूची में दिखाई देने लगता है।
    किसी वजह से मुझे लगता था कि Kobo पर किताबें डालना जटिल होगा, इसलिए मैं लैपटॉप से Kobo में किताबें भेजने के लिए सिर्फ़ Calibre का इस्तेमाल करता था।
    मुझे पता था कि Calibre में और भी कई फीचर हैं, लेकिन उसका interface मुझे पसंद नहीं था, और अब अच्छा लग रहा है कि मुझे Calibre या वैसी किसी app का इस्तेमाल नहीं करना पड़ेगा।

    • कुछ साल पहले Kindle की जगह Kobo खरीदने की एक वजह यही थी। कनेक्ट करते ही यह एक सामान्य USB mass storage device की तरह mount हो जाता है, और फिर बस files कॉपी करनी होती हैं।
      किसी खास format की ज़रूरत नहीं होती और ePub जैसे standard format अच्छी तरह काम करते हैं।
      इसलिए मैं हमेशा सोचता था कि Kindle इतना लोकप्रिय कैसे बना हुआ है। शायद first-mover advantage हो, लेकिन ePub और PDF न पढ़ पाने वाला e-reader मुझे ऐसे audio player जैसा लगता है जो MP3 और AAC नहीं चला सकता।
    • e-reader में ट्रांसफ़र करने से पहले epub को kepubify [1] से एक बार गुज़ारने की सलाह दूँगा।
      [1]: https://pgaskin.net/kepubify/
    • सेट किए हुए काफ़ी समय हो गया है, लेकिन ssh के ज़रिए भी sync किया जा सकता है, इसलिए wireless तरीके से directory को recursively sync करना संभव है।
      मेरा ख़याल है कि मैं पहले USB से किताबें डालता था, फिर daily news और अतिरिक्त किताबें rsync से sync करता था। कुछ content auto-scraping या email subscription जैसी चीज़ों से अपने-आप बनकर directory में चला जाता था, और कुछ चीज़ें मैं manually डालता था, जैसे खरीदने के बाद नई किताबें कॉपी करना।
      सच कहें तो यह बहुत जटिल समस्या नहीं है, लेकिन Calibre सिर्फ़ किताबों को किसी खास folder structure में कॉपी करने से कहीं ज़्यादा काम करता है।
    • जब मुझे पता चला कि यह संभव है, तो मैं काफ़ी हैरान हुआ। मुझे लगा था Calibre कुछ खास कर रहा होगा। इसलिए Citadel में "फ़ोल्डर में कॉपी करें" फीचर है। इससे e-books को external drive में कॉपी किया जा सकता है।
      यह सिर्फ़ folder खोलकर copy/paste करने से सच में आसान है या नहीं, यह तो नहीं जानता, लेकिन Citadel डिवाइस में कौन-सी किताबें हैं यह पहचानते समय Calibre द्वारा इस्तेमाल की जाने वाली metadata files को update करता है, ताकि folder की हर file को पढ़ना न पड़े।
    • क्या Kobo इस्तेमाल करने के लिए account चाहिए? या बस खरीदकर epub उस directory में डाल दो और सीधे पढ़ सकते हो?
  • अच्छा लग रहा है। पिछले हफ़्ते ही मैंने फिर से Calibre इस्तेमाल करने की कोशिश की थी और उसके UI नाम के black hole में फँस गया। मैंने UI/UX काम contribute करने के बारे में सोचा था, लेकिन वह कई साल का प्रोजेक्ट लग रहा था।
    उसकी जगह शायद मैं इस प्रोजेक्ट के UI/UX में मदद कर सकूँ।

    • कई सालों तक देखने के बाद मेरी छाप यह रही है कि Calibre प्रोजेक्ट आम तौर पर सुधारों का बहुत स्वागत नहीं करता। Kovid Goyal के पास पहले से वही है जो वह चाहते हैं, और अगर आपको कुछ अलग चाहिए तो शायद fork करके खुद maintain करना पड़े।
      उन्होंने कमाल का काम किया है, लेकिन वह उन लोगों में से हैं जिनकी पसंद बहुत मज़बूत होती है, इसलिए जब कोई दूसरा काम करने की पेशकश करता है तो कुछ बातों पर वह तेज़ी से और कुछ हद तक मनमाने ढंग से अजीब तरह से hostile हो सकते हैं।
    • मैं Calibre UI को परेशान करने लायक लंबे समय तक इस्तेमाल ही नहीं करता। हर कुछ महीनों में ज़्यादा से ज़्यादा 10 मिनट के लिए इस्तेमाल करता हूँ। Epub import करता हूँ, metadata update करता हूँ, और डिवाइस पर भेज देता हूँ।
      फिर कई महीनों तक किताबें पढ़ता हूँ और यही प्रक्रिया दोहराता हूँ।
    • एक दूसरा नज़रिया यह भी है कि मुझे Calibre UI के साथ कभी समस्या नहीं हुई और मैं आम तौर पर तेज़ी और दक्षता से अपना काम कर लेता हूँ।
      सच में जिज्ञासा है, क्या Calibre जितनी feature-rich कोई native smartphone app का उदाहरण है, जो चीज़ें इससे कहीं बेहतर और आसान तरीके से उपलब्ध कराता हो?
  • यह अच्छा लगा कि एक hobby project को सच में लॉन्च किया गया। दिखने में भी साफ-सुथरा है। और calibre CLI का निश्चित रूप से स्वागत होगा। मेनू में पाँच-पाँच स्तर क्लिक करके अंदर जाना मुझे पसंद नहीं है
    अगर "reader" और "editor" वाले क्षेत्र स्पष्ट लक्ष्य नहीं हैं, तो जिज्ञासा है कि Citadel वास्तव में यूज़र्स के लिए करता क्या है। क्या यह मुख्य रूप से किताबें देखने, sort करने और क्लिक करने का एक portal है? क्या आगे और फीचर्स के लिए कोई roadmap है?

    • मेरे लिए Calibre का मुख्य उपयोग epub को एक जगह इकट्ठा रखना और कभी-कभी e-reader के साथ sync करना रहा है। किताब जोड़ते समय title, ISBN जैसी metadata लानी पड़ती है
      Citadel किताब के title, author, और आगे चलकर tags व custom columns जैसी metadata को edit करने का समर्थन करता है, और इसका कुछ हिस्सा पहले से सपोर्ट करता है। यह तो पक्का है। device sync भी समय के साथ आएगा, और online sources से metadata डाउनलोड करने की सुविधा भी जोड़ी जाएगी
      लेकिन किताब की सामग्री edit करने या built-in e-book reader जोड़ने की योजना नहीं है। पहले से ही बहुत अच्छे e-book apps और devices मौजूद हैं, और epub editing मुझे collection management की तुलना में कम आम उपयोग लगती है
      कोई roadmap नहीं है, लेकिन feedback और ideas के लिए मैं हमेशा खुला हूँ
      इसके अलावा format conversion और DRM removal जैसी सुविधाएँ भी शायद आएँगी। आदर्श रूप से इन्हें crate या plugin के रूप में लागू करना चाहूँगा ताकि extension बनाना आसान हो
    • लगता है कि Calibre CLI से मतलब book collection management है, लेकिन अगर आपको सिर्फ किताबें convert करनी हैं, तो Calibre में पहले से ebook-convert नाम का CLI है। यह epub, pdf, azw3, mobi जैसी कई file formats को सपोर्ट करता है
      उदाहरण:
      ebook-convert file.epub file.azw3
  • यह वाकई शानदार लग रहा है और मैं इसे देखना चाहूँगा। विडंबना यह है कि मैंने भी हाल ही में उसी stack, यानी Rust + Tauri + Svelte के साथ audiobook management के लिए एक desktop app बनाया है
    अगर किसी की दिलचस्पी हो तो थोड़ा प्रचार कर दूँ: https://gitlab.com/fonner/audiobook-locker#audiobook-locker

    • बढ़िया। मैंने भी पहले कुछ projects में Tauri के साथ थोड़ा काम किया है
      जानना चाहूँगा कि आपने इस project के लिए Svelte और Tauri क्यों चुना। क्या आप पहले से इनके साथ सहज थे?
    • प्रेरणा लेने के लिए मैं इस project को देखने वाला हूँ
  • यह थोड़ा अलग मुद्दा है, लेकिन इस execution pattern ने मेरा दिन बना दिया
    bun dev -- -- -- -- --server ...

    • अब जिज्ञासा हो रही है कि यहाँ आखिर हो क्या रहा है
  • दिलचस्प है। मैंने भी कुछ समय पहले इसी तरह के विचार पर मिलता-जुलता project शुरू किया था, लेकिन native app की जगह SvelteKit और browser चुना
    https://github.com/project-kiosk/kiosk
    इसे पूरा करने लायक motivation मैं लंबे समय तक बनाए नहीं रख पाया

    • अच्छा लग रहा है। उम्मीद है आप इस पर काम जारी रखेंगे, मैं इसे इस्तेमाल करना चाहूँगा
  • Citadel पर एक छोटी पोस्ट: https://denhoff.ca/posts/replacing-calibre