2 puan yazan GN⁺ 1 일 전 | 1 yorum | WhatsApp'ta paylaş
  • Doğrulamadan geçen DRM’siz EPUB dosyaları bile Kobo’da “corrupted” olarak işaretlenebilir; sorun dosya biçimi hatasından değil, render motoru uyumluluğundan kaynaklanabilir
  • epubcheck, EPUB yapısını ve kurallara uygunluğu denetleyen fiilî standart doğrulama aracıdır; ancak belirli render motorlarının eski CSS ayrıştırıcı sorunlarını yakalayamaz
  • Kobo, Adobe’nin kapalı kaynak e-kitap render motoru RMSDK’yı kullanıyor; bu motor önce EPUB2 tabanlı geliştirildi, sonra EPUB3 için hafifçe güncellendi ama modernize edilmedi
  • Sorunun kaynağı max-width: min(150px, 30vw); satırıydı; bu geçerli CSS level 4 kodu RMSDK tarafından desteklenmediği için Adobe Digital Editions ve Kobo’da kitabın yüklenememesine yol açtı
  • Kobo uyumluluğunu doğrulamak için yalnızca epubcheck yeterli değil; Adobe Digital Editions içinde gerçekten açılıp açılmadığını da ayrıca test etmek gerekiyor

epubcheck’ten geçen bir EPUB ile başlayan sorun

  • Adobe araçları, Creative Suite’in sektör standardı olması ya da yeterli alternatif bulunmaması nedeniyle sıkça kullanılıyor; bu yazıdaki sorun farkındalığı da Adobe yazılımlarına yönelik bir hoşnutsuzlukla başlıyor
  • Yeni kitap, okurlara doğrudan sunulan DRM’siz EPUB dosyası olarak dağıtıldı ve dağıtımdan önce çeşitli aşamalardan geçerek epubcheck denetimini başarıyla tamamladı
  • epubcheck, düzgün yapılandırılmış e-kitapları doğrulayan fiilî standart araçtır; geçebilmek için manifest içinde kitapta yer alan tüm parçaların ve görsellerin eksiksiz biçimde yansıtılması gerekir
  • HTML öğelerinin sırası uyuşmazsa ya da International Digital Publishing Forum kurallarından küçük de olsa sapılırsa doğrulama başarısız olur
  • epubcheckten %100 geçmek yeni başlayanlar için kolay değildir, ancak yayıncılık işi yapanlar için daha çok bir tür linter’ı ya da biçimsel test paketi gibi işlev görür
  • Asıl beklenti, epubcheckten geçen bir kitabın EPUB uyumlu tüm okuyucu ve uygulamalarda çalışmasıdır

Yalnızca Kobo’da “corrupted” hatası ortaya çıkıyor

  • Yeni kitap epubcheck ruleset 3.3 doğrulamasını geçti, ancak bir okurdan “corrupted” mesajı geldi
  • Geriye dönük uyumluluk olasılığını kontrol etmek için EPUB2 sürümü de sunuldu, ancak o dosya da kurallara tamamen uymasına rağmen aynı sorunu gösterdi
  • İlgili okur, kitabın farklı nesillerden Kobo cihazlarında açılmadığını bildirdi
  • Aynı EPUB, Amazon Kindle, Apple Books, Thorium gibi diğer ortamlarda ise sorunsuz çalıştı
  • İnceleme sonucunda Kobo’nun Adobe’nin kapalı kaynak e-kitap render motoru RMSDK’yı kullandığı görüldü

Neden RMSDK ve Adobe Digital Editions’a kadar daraltıldı

  • RMSDK, Adobe Digital Editions’ın çekirdek motorudur ve çeşitli Kobo cihazlarının yanı sıra eski Sony ve Nook cihazlarında da kullanılır
  • Bu motor yaklaşık 2010 civarında ağırlıklı olarak EPUB2 için geliştirildi; EPUB3 için hafifçe güncellendi ama modernleştirilmedi
  • RMSDK kullanılıyor olması, epubcheck ile Kobo sonuçlarının neden ayrıştığını hemen açıklamasa da hata ayıklama yönünü belirledi
  • Kitap Adobe Digital Editions’a yüklendiğinde beklendiği gibi açılmadı ve hiçbir hata mesajı da görünmedi
  • Yeniden yüklemeye çalışıldığında, kitabın zaten eklenmiş olduğu ve içe aktarılamayacağı mesajı çıktı; ancak ekran bembeyaz kaldı
  • Ardından farklı varyant dosyalar oluşturularak testler yapıldı ve tüm varyantlar epubcheckten geçmeye devam etti
    • Klasör yapısını yeniden düzenleme, metadata kaldırma, dil özniteliklerini silme, yeni UUID üretme, dizin yapısını düzleştirme, uzantı değiştirme, ZIP’i yeniden oluşturma ve manifest üzerinde değişiklik yapma denendi
    • Tüm bu girişimlere rağmen Adobe Digital Editions’ın yükleme hatası tekrarlanmaya devam etti

Gerçek neden: geçerli tek satırlık CSS

  • Stil sayfası devre dışı bırakılınca kitap aniden yüklenmeye başladı ve böylece sorun alanı stil sayfasına indirgenmiş oldu
  • Stil sayfasının yalnızca bazı bölümlerini içeren ek varyantlar oluşturulduktan sonra soruna yol açan tek satır tespit edildi
.copyright img {
    max-width: min(150px, 30vw);
}
  • Bu kod tamamen geçerli bir CSS level 4 kodudur, ancak RMSDK bunu desteklemiyor
  • Kod daha eski tarz bir ifade olan max-width: 150px; ile değiştirildiğinde kitap Adobe Digital Editions’ta normal biçimde açıldı
  • RMSDK’nın CSS ayrıştırıcısı kabaca 2013 seviyesinde kalmış durumda; flexbox, grid, matematiksel fonksiyonlar ve özel özellikleri desteklemiyor
  • Tanımadığı CSS ile karşılaştığında fallback ya da açık bir hata vermek yerine sessizce çöküyor
  • epubcheck temel CSS kontrolleri yapıyor, ancak özünde bozuk olan belirli bir render motoruna göre CSS doğrulaması yapamaz

Kobo uyumluluğu doğrulamasından çıkarılan ders

  • 2026 yılında bile Kobo, kitap render etmenin temelinde RMSDK kullanıyorsa, tek satırlık geçerli bir CSS tüm geçerli EPUB’u “corrupted file” hâline getirebilir
  • Bu durumda Kobo, açık bir hata mesajı ya da fallback olmadan kitabın tamamını açamaz
  • Sorundan kaçınmak için yeni bir sürüm yayımlandı ve okurların aynı hatayı tekrar yaşamaması için önlem alındı
  • İdeal durumda RMSDK’nın bu eski CSS düzeyinden çıkması ya da en azından hata işleme sunması gerekir, ancak mevcut sorun aynen sürüyor
  • Kobo uyumluluğundan emin olmak için yalnızca epubcheck yeterli değil; Adobe Digital Editions içinde gerçekten yüklenip yüklenmediğini de kontrol etmek gerekiyor
  • EPUB, e-kitaplar için mükemmel bir açık standart olsa da, birçok uygulama erişimi kısıtlamayı önceleyen bir yapının içinde temel kusurlar sergiliyor

1 yorum

 
GN⁺ 1 일 전
Hacker News görüşleri
  • Adobe hep böyleydi zaten. Flash’ın muazzam pazar payını heba ettiler; oysa çözüm, QA için birkaç milyon dolar harcamaktan ibaretti ve sonunda tüm tarayıcı üreticilerinin “web, böyle güvenilmez bir ortak olmadan ilerlese daha iyi” sonucunda uzlaşmasına yol açtılar
    Geçmişte Flash ile birkaç şey yayımladım ama rastgele çökmelerle ve bir alandaki değişikliğin başka modüllerde alakasız özellikleri bozduğu, Heisenbug dolu korkunç bir yazılımdı. Fiyatı yaklaşık 800 dolardı ama destek fiilen yoktu; küçültülmüş test vakalarıyla kolayca yeniden üretilebilen birkaç bug bildirdim, fakat bir sonraki sürüm çıktıktan sonra sadece “düzelmiş olabilir, kontrol etmek için tam fiyatlı lisans satın alın” diyen otomatik bir yanıt aldım

    • Steve Jobs’u sevin ya da sevmeyin, iPhone’da Flash’ı desteklemeyip HTML5’i öne itme kararı Flash’ın çöküşünü büyük ölçüde hızlandırdı
    • Flash, adı VideoWorks iken daha iyiydi ;)
      Bir de MusicWorks vardı ve ikisi de çok erken dönemde yalnızca Mac içindi. Bunu anlatmam bile yaşımı ele veriyor
    • Flash, hâlâ en kolay yayıncılık ortamı olarak rakipsiz
      JavaScript build sistemlerinin katman katman yığılmış yapısı ve “web standartları”, bir şeyler çizip birkaç basit fonksiyon yazdıktan sonra her yere gömülebilen ya da indirilebilen statik bir dosya üretmekten çok daha zor. Flash alternatifi kullanmaya kalkınca ayara çok fazla zaman gidiyor ve o “standartlar” da daha kötü
      Flash’ı öldüren Steve Jobs’tan da, web’in en şaşırtıcı teknolojilerinden birini berbat yöneten Adobe’dan da hoşlanmıyorum. Bugün büyüyen çocuklar Flash’ın ne kadar büyülü olduğunu bilmiyor. Web için adeta Roblox ya da Minecraft gibiydi
      Web siteleri hâlâ 2000’lerin başındaki Flash’ın gerisinde. Aradan onlarca yıl geçti ama ancak gücünün bir kısmını taklit edebiliyorlar; kullanım kolaylığında ise hiç yaklaşamadılar
  • E-kitap okuyucu yazılımı geliştirmeyi epey düşündükten sonra, sonunda şeytanla anlaşma yapar gibi RMSDK üzerine kurmayı denemek istedim
    Ama erişmenin hiçbir yolu yok. Mesele yalnızca bağımsız geliştiriciler için lisans ücretinin aşırı pahalı olması değil; gerçi o da doğru, ama ortada konuşacak kimse yok. Web sitesindeki e-posta adresi hiç yanıt vermiyor; “ilginiz için teşekkürler” ya da “size geri döneceğiz” bile denmiyor
    Eskiden orada çalışmış bir iş arkadaşıma RMSDK erişim sürecini sordum; iç belgeleri aramış ama hiçbir şey bulamamış. LinkedIn’de RMSDK ile ilgili görünen kişileri bulup sormak da aynı sonuç verdi
    Bu arada yayınevleri, kitaplarının çoğunu yalnızca Apple, Amazon ve Adobe gibi bilinen DRM sağlayıcılarından biri üzerinden dağıtıyor; ilk ikisi tamamen kapalı. Bu rekabete aykırı tekelci davranış değilse nedir bilmiyorum

    • FBReader uygulamasıyla çok kitap okudum; başkalarının uygulamalarında kullanabilmesi için SDK da yayımlıyorlar
  • Bildiğim kadarıyla Kobo cihazları, dosya adı .kepub.epub olduğunda daha gelişmiş bir rendering engine kullanıyor. Sanırım ePub 3 tabanlı; buradaki sorunu çözer mi bilmiyorum
    Ben şahsen Kobo’ya atmadan önce ePub’ları kepubify(https://pgaskin.net/kepubify/try/) ile dönüştürüyorum

    • Doğru, ben de tüm dosyalarda bunu yapıyorum. Standard Ebooks gibi yayınevleri de kepub indirme seçeneği sunuyor ve burada açıklandığı gibi Adobe okuyucusunda da sorunlar var
      https://standardebooks.org/help/how-to-use-our-ebooks#kobo-f...
      Kobo Clara Colour’u gerçekten çok seviyorum; Adobe okuyucusu kaldırılsa kusursuz olacak gibi. KOReader’ı da denedim ama OverDrive kütüphane kitaplarını ve Kobo Store’u sevdiğim için tamamen geçmedim
  • Ne yazık ki epub ve epubcheck, yazarın söylediği gibi tartışmasız harika bir ölçüt değil. W3C, Inc. ePub 3.1 civarında spesifikasyonun bakımını üstlenince WHATWG HTML’i ve durmadan büyüyen tarayıcı spesifikasyonlarını olduğu gibi referans aldı([1])
    Bu tür “canlı standartlarda” sürümleme ya da QA yok. Sonuç olarak, header ve sectioning’i yeniden tanımlayan HTML sürümüne dayanırken ePub 3.2 mevcut ePub’ları uyumsuz hâle getirdi. Bu yüzden Calibre ve diğer araçlar hâlâ 3.1’i, hatta daha iyisi 2’yi öneriyor
    CSS min() fonksiyonunun reddedilmesi örneği de, aşırı karmaşık CSS spesifikasyonunu toptan içeri almanın pek yardımcı olmadığını gösteriyor. Çünkü e-kitap okuyucuları sürekli en güncel kalan tarayıcılar değil
    [1]: https://news.ycombinator.com/item?id=41326179

    • ePub tarafında 3.1 ya da 2’yi hedeflemek daha aklı başında bir tercih olarak yaygın biçimde biliniyor
      EPUB uyumluluk sorunlarında CSS her zaman birinci şüpheli olmalı. “Modern” CSS özellikleri kullanıp flexbox ya da grid olmadığından yakınmak, web geliştiricisi bakış açısıdır
      EPUB’ın web ile yığının bir kısmını paylaşması, ikisinin tamamen örtüştüğü anlamına gelmez; gelmesi de gerekmez. Çoğu e-ink gömülü okuyucu cihaz render için tarayıcı kullanmaz; bunun yerine amaca özel bir HTML/CSS ayrıştırma ve render araç zincirini firmware içine gömer ve çok seyrek günceller. İlgileniyorsanız KOReader’daki crengine’e ya da ESP32 üzerinde çalışan Crosspoint reader’a bakabilirsiniz
      İlgili blog yazısı fazlasıyla kendinden emin bir AI üslubu kokuyor ama buna aldanmamak gerekir
  • Cihaz arayanlar için PineNote da var
    https://pine64.org/devices/pinenote/
    Daha pahalı ve hemen kullanılabilecek yazılımı daha az, ama cihazın sahipliği ve hangi yazılımları çalıştırabileceğiniz konusunda çok daha açık ve daha az kısıtlayıcı
    PineNote deneyimini iyi derleyen yazılar da var
    https://shom.dev/posts/20250308_pinenote-day-one/
    https://shom.dev/posts/20250406_a-pinenote-only-5-day-weeken...

    • PineNote'u gerçekten kullanıp kullanmadığını merak ediyorum. Fiyatı 400 dolar ve “gömülü sistem bilgisi yüksek Linux geliştiricileri ya da mobil Linux deneyimi olanlar için” deniyor. Bağlantısı verilen topluluk üretimi firmware de 1 yıldan uzun süredir güncellenmemiş
      Kobo da yapılabilecek şeyleri kısıtlamıyor. KOReader gibi alternatif e-kitap okuyucu yazılımlarını sideload ederek yerleşik okuyucunun işlevlerini iyileştirebilirsiniz
    • Bu kişinin açık kaynak 60Hz e-mürekkep ekranına da bakmaya değer: [video] https://www.youtube.com/watch?v=nHbA2-_qzH4
  • Kobo aslında e-kitap okuyucu yazılımını tamamen yeniden yazıyor ve AB'de beta indirilebiliyor. Neredeyse kesin olarak artık RMSDK tabanlı değil
    Adobe yönetici olarak yetersizdi ve ardından geçişi berbat edip son kullanıcıları ve platformları daha da kızdıran bir üçüncü tarafa satarak EPUB DRM pazarını adeta LCP'ye altın tepside sundu. Platformlar Adobe'den her zamankinden daha hızlı uzaklaşıyor

    • Betayı deneyip denemediğini merak ediyorum. Gerçekten epey daha iyi olup olmadığını bilmek isterim
  • “Aylarca süren çalışmayı bitirip tamamlanan kitapta doğrulama düğmesine bastığım an korkutucuydu. Çünkü hep kusur bulacak bir şey çıkarıyordu” kısmını görünce, LaTeX tez taslağını derlemeye çalışırken neredeyse ağlayacak olan bir yüksek lisans öğrencisini hatırladım
    “Önce yaz, biçimlendirmeyi sonra düşün” sözünü fazla kelimesi kelimesine almıştı; ilk kez derlemeyi denemesi son teslim tarihinden hemen önce oluyordu

    • Yine de genel olarak epey zaman kazandırmış olması mümkün. Sadece derleme süresine bakınca bile, daha erken yinelemeli kontrol yapsaydı çok daha fazla zaman harcamış olabilirdi
      Yaklaşan son tarihin bu algıyı nasıl etkilediğini bilemeyiz ama ;-P
  • Okuyucu baştan max-width gibi şeyleri destekleyen ya da en azından görmezden gelen bir ePub okuyucu kullanıyorsa bunu şans saymak gerekir :-P
    Ben de ePub okuyucu kullanırken, gereksiz stiller yüzünden çalışmayan ya da garip görünen dosyaları ara sıra kendim düzeltmek zorunda kaldım. Benim tarafımda sorunsuz olan dosyaların başkası için okunamaz olduğunu da duydum; gerçekten gerekli süslü biçimlendirme yoksa, IE4'ün bile çok yanlış render etmeyeceği en temel HTML'de kalmanın daha iyi olduğunu düşünüyorum
    Bu yüzden bazen ePub'ı mümkün olan en basit HTML/CSS'ye yeniden kuran bir epub reconstruct aracı yapmayı düşündüğüm oluyor. İdeal olarak en yüksek uyumluluk için yapılandırılabilir olmalı

    • Hedef web tarayıcısı ortamında bile HTML/CSS zar zor çalışıyorken, neden birinin bunu kitaplar için iyi bir fikir saydığını bilmiyorum
      Her bilgisayarda hızlı çalışacak bir alt küme belirleyip kendi yaptığım web sayfalarında yalnızca onu kullansam nasıl olur diye sık sık düşündüm. ePub için de biri böyle bir kapsam belirlese çok daha kullanışlı olurdu
    • Sanırım bu, resim çizerken birilerinin gözlüğü çatlak olduğu için ortayı boyamamak gibi bir şey. Ya da belki gözlük üreticilerine daha iyi gözlük yapmalarını söylemeli ve sanatçının sanatını yapmasına izin vermeliyiz
  • Adobe Digital Editions ve RMSDK kısa süre önce Wipro Engineering'e satıldı: https://helpx.adobe.com/enterprise/kb/eol-faq-adobe-digital-...

    • Bunun bir satış mı yoksa outsourcing mi olduğunu merak ediyorum
  • Yazarın bunalmışlığını anlıyorum ama eski, yükseltilmemiş ya da yükseltilemeyen ePub okuyucular kullanan okur sayısı gerçekten ne kadar fazla olabilir? Yazar eserini tüm okurlara ulaştırmak istiyorsa en düşük ortak paydaya göre hareket etmek zorunda
    Eğer bu 2013'ten kalma bir şeyse üzücü ama pazarın gerçeği bu

    • Bunu, 2026'da çıkacak yeni Kobo'nun CSS kuralları için 2013'te kalmış Adobe DRM yazılımını kullandığı anlamında okudum