poniedziałek, 24 sierpnia 2015

Formaty e-book'ów

Bez zbędnych wstępów: formaty e-book'ów podzielę na kategorie:

1. Dokumenty o "sztywnym" wyglądzie (ang. fixed-layout).


To przede wszystkim PDF. Synonim e-book'a. Jako jedyny istniejący format posiada wszystkie cechy – wsparcie dla: DRM (tego nie lubimy), obrazów, tabel, dźwięku, a nawet wideo. Jest formatem interaktywnym (obsługuje hiperłącza). Wspiera reflow (nie zawsze). Jest otwartym standardem. W skrócie same zalety – jedyny problem polega na tym, że czytniki najczęściej mają ekran w rozmiarze 6", a większość PDF-ów jest projektowana pod format A4 (ew. Letter). Kindle bardzo dobrze sobie radzi z tym formatem (więcej w innych wpisach).

DVI – domyślny plik wynikowy LaTeX'a. Można łatwo konwertować do PDF.

PostScript – PS. Pierwowzór PDF. W czytnikach nie ma zastosowania. Można bezproblemowo przekształcić na PDF.

DjVu – format używany w archiwach bibliotek cyfrowych. Wg mnie mało użyteczny. Na dodatek mam osobiste uprzedzenie, bo wszystkie porównania z PDF mające na celu potwierdzenie, że pliki DjVu są mniejsze od PDF, przy tej samej jakości, są po prostu oszustwem – porównywane PDF-y nie były w żaden sposób optymalizowane, zaś DjVu jak najbardziej – po optymalizacjach PDF wyniki są już nieco inne. Można konwertować do PDF.

XPS – format oparty na XML. Kolejny który lepiej przekształcić do PDF. Obecnie otwarty standard nie mający sensownego zastosowania.

1+ Dokumenty obrazkowe.


Comic Book – obrazki JPG lub PNG spakowane w jedno archiwum 7z (CB7), ace (CBA), rar (CBR), tar (CBT) lub zip (CBZ). W celu przeglądania na Kindle wystarczy wypakować i umieścić w jednym wspólnym podkatalogu w katalogu images (jak takiego nie ma, to trzeba samemu stworzyć).

2. Dokumenty o elastycznym wyglądzie (ang. reflowable).


PRC, MOBI – jeden z dwóch współczesnych formatów tzw. czytnikowych. Format stworzony przez MobiPocket (obecnie część Amazon). Oparty na HTML. Domyślny format Kindle dla książek spoza Kindle Store. Obecnie wypierany przez nowsze, lepsze: KF8 i KFX.

EPUB – standardowy format e-książek. Łatwo konwertowalny do formatów natywnych Kindle. Oparty na (X)HTML i CSS.

iBOOK – format książek dla ekosystemu Apple. Zmodyfikowany EPUB. Brak możliwości konwersji, ze względu na trudny do obejścia DRM (Apple FairPlay).

AZW – domyślne rozszerzenie dla książek w Kindle Store. W środku może być MOBI lub plik Topaz (PDF) z dodatkiem DRM. Obecnie wypierany przez nowsze.

AZW3, KF8 – nowszy format Kindle (Kindle Format 8). Ósma rewizja MOBI. Obsługuje podzbiór (X)HTML 5 i CSS 3. Dużo bardziej zaawansowany. Obecnie domyślny.

AZK – format Kindle tylko dla urządzeń Apple. Możliwości podobne do tych z KF8.

KFX – Kindle Format X. Dziesiąta rewizja MOBI. Zaprojektowana od zera. Wspiera inline dzielenie wyrazów, kerning, ligatury i inne elementy typograficzne, dotychczas dostępne tylko w PDF (i pokrewnych).

TXT – po prostu tekst. Ubogo formatowany. Obsługiwany przez Kindle.

(X)HTML – format będący sercem plików EPUB, MOBI i kilku innych. Nie obsługiwany bezpośrednio na Kindle. Możliwa konwersja oficjalnym narzędziem (kindlegen).

DOC, DOCX – pliki Worda. Znane i nielubiane. Do konwersji.

RTF, ODT – tekst bogato formatowany. Wystarczający do ładnego wyświetlenia beletrystyki. Ładnie konwertuje się do MOBI i KF8.

2+ Przestarzałe.


Open eBook (OPF) – protoplasta EPUB-a. Raczej na wymarciu.

Broadband eBooks – BBeB. Znany z pierwszych czytników Sony – pliki LRF i LRX (z DRM). Pojawienie się tego formatu dało pretekst do stworzenia biblioteki libprs500, która ostatecznie przekształciła się w calibre.

FictionBook – FB2 i FB3. Bardzo dobry format oparty na XML. Możliwości podobne do EPUB i KF8 (z wyjątkiem DRM – tu go nie ma). Niesłusznie traci na popularności.

Microsoft LIT – format używany przez Microsoft Reader. Wspiera DRM. Porzucony przez producenta i słusznie.

CHM – kolejny format Microsoft'u. Formalnie skompresowany HTML z DRM.

TomeRaider – TR2 i TR3. Mało popularny, niezbyt zaawansowany format. Bardzo ograniczone możliwości (coś w pół drogi pomiędzy TXT i FB2 lub EPUB).

PDB – to nie jest jeden format, a rozszerzenie używane (w kontekście e-book'ów) przez 2, dawniej bardzo popularne, formaty: Plucker (PalmOS) i iSiloX. Wspierały DRM, z czego ten drugi nie został przełamany. Pierwszy można konwertować. Drugi jest na to odporny.


To oczywiście nie jest pełna lista, szczególnie w podpunkcie o przestarzałych można by dorzucić kilka (lub kilkadziesiąt) pozycji. W przypadku czytników znaczenie mają jedynie EPUB, MOBI (i jego następcy) oraz PDF.

sobota, 22 sierpnia 2015

[☆☆] Zmieniamy wystój wnętrza

Jak już mamy za sobą włamanie do systemu, to najwyższa pora na wykonanie kilku modyfikacji przydatnych dla polskiego użytkownika, podzielonych na 3 kategorie:

I. Oczywiste, przydatne dla każdego:


1) Odblokowanie trybu reflow w PDF

Pobieramy plik i kopiujemy go do pamięci Kindle. Logujemy się przez SSH i przełączamy system plików na tryb RW (do zapisu)
mntroot rw

oraz umieszczamy zmodyfikowany plik w odpowiednim miejscu:
cp /mnt/us/Reader-plugin-en_GB.jar /opt/amazon/ebook/lib/

Restartujemy czytnik i od tego momentu w menu otwartego PDF-a pojawi się pozycja: "Text-only Display" aktywująca tryb reflow.

2) Podmieniamy klawiaturę na taką zawierającą wszystkie polskie znaki oraz przy okazji ulepszającą "kropkę"

Tu są dwie opcje – jedna z wykorzystaniem systemu Debug – druga nieco dyskretniejsza, ale też bardziej skomplikowana. W obu przypadkach pobieramy plik i umieszczamy go w pamięci Kindle.

W pierwszym przypadku uruchamiamy tryb Debug wpisując przy połączeniu SSH:
idme -d --bootmode diags

i restartując czytnik.

Po uruchomieniu systemu, nadal przy połączeniu SSH, logujemy się, w taki sam sposób jak przy wgrywaniu JB i podmontowujemy system main w katalogu /mnt/mmc
mount /dev/mmcblk0p1 /mnt/mmc

oraz podmieniamy plik z klawiaturą
cp /mnt/us/keyboard.cramfs.img /mnt/mmc/usr/share/

po czym odmontowujemy /mnt/mmc
umount /mnt/mmc

i opuszczamy tryb Debug
idme -d --bootmode main
reboot


Druga, subtelniejsza droga wygląda tak – logujemy się przez SSH i kolejno:
mntroot rw
cd /etc/upstart/
mv kb.conf kb.bak
killall -9 kb


(teraz najprawdopodobniej framework się zrestartuje – jeśli tak, to połączamy się ponownie i dalej

umount /usr/share/keyboard
cp /mnt/us/keyboard.cramfs.img /usr/share/
cd /etc/upstart/
mv kb.bak kb.conf
reboot


II. Warte wykonania, choć niekonieczne


3) Zmniejszenie domyślnych marginesów

Robimy dokładnie to samo co w przypadku reflow z tym, że potrzebujemy pliku.

Moja wersja pozostawia dla górnego i dolnego marginesu domyślne wartości, zaś boczne modyfikuje tak, że największy odpowiadał najmniejszemu ze standardowej wersji, a pozostałe są odpowiednio mniejsze. Dzięki temu na ekranie mieści się sporo więcej tekstu, a pozostawienie marginesów wertykalnych na domyślnym poziomie pozwala na testowanie własnoręcznie przygotowanych plików (jestem także składaczem e-book'ów) w warunkach domyślnych (modyfikacja tych marginesów jest możliwa tylko poprzez podmianę pliku i nie można tego dokonać na działającym systemie). Zmiana zabezpieczona jest przed przycinaniem marginesów w podglądzie PageFlip (poprzedni moderzy o to nie zadbali) oraz dotyczy każdego typu plików czytanych przez Kindle (MOBI 7, KF8, PDF).

III. Wynikające z indywidualnych preferencji


4) Podmiana czcionki

Sposób wgrania taki sam jak dla podmiany klawiatury, ale tylko ta pierwsza droga (z czcionek korzystają kluczowe elementy systemu i próba podmiany "na żywca" skończy się semi-brick'iem).

Odpowiedni plik należy wgrać do właściwego katalogu
cp /mnt/us/fonts.cramfs.img /mnt/mmc/usr/java/lib/

Moja modyfikacja jedynie pogrubia (wytłuszcza) czcionkę Bookerly (domyślna była dla mnie zbyt cienka).

5) Zmiana domyślnych wielkości czcionek

To w zasadzie nie jest hack, a zwykła funkcja systemowa: Tworzymy plik FONT_RAMP w pamięci Kindle, a jako zawartość wpisujemy 8 liczb rzeczywistych reprezentujących wielkość czcionki wyrażoną w jednostce big point (punkt PostScript). Pod linkiem przykładowy poprawny plik.


Uzupełnienie: wszystkie te modyfikacje dotyczą systemu, w którym wybrano język interfejsu Angielski (Wielka Brytania). Linki prowadzą do plików, które bezpiecznie można wgrywać w Kindle Voyage i Kindle PaperWhite 3 z oprogramowaniem 5.6.X. Dla starszych czytników właściwe pliki krążą po sieci.

środa, 19 sierpnia 2015

[☆☆☆] Włamujemy się do środka i dorabiamy zapasowe klucze

Prawie wszystkie modyfikacje działania oprogramowania Kindle wymagają obecności w systemie tzw. jailbreak'a. W starych czasach hack'i wgrywało się przez fałszywe update'y. Niestety to już przeszłość. Amazon dobrze zabezpieczył oprogramowanie w wersjach 5.6.X, a co gorsze z każdą aktualizacją (5.6.2, 5.6.5) dochodzą nowe utrudnienia. Skończyły się dobre czasy...

No ale jeśli potrzebujemy samodzielnie ustawić marginesy (domyślne są wg mnie zbyt duże), dodać polskie "ogonki" do klawiatury, uruchomić reflow w PDF-ach czy też wprowadzić jakiekolwiek inne zmiany, to odblokowanie czytnika jest koniecznością.

Co będzie potrzebne?


  • sam czytnik: dowolny z FW 5.6.X (PW 1, PW 2, PW 3, Touch 2014, Voyage...),
  • konwerter USB-TTL: TTL-232RG-VREG1V8-WE (zastępczo może być FTDI Basic 3.3V),
  • program minicom (ewentualnie w Windows HyperTerminal),
  • python lub KindleTool (Archiwum NiLuJe),
  • jailbreak, usbnet i RescuePack (w załączniku).

Przygotowanie:


1) Konfiguracja minicom-a:
Ustawienia portu szeregowego -> Urządzenie szeregowe: /dev/ttyUSB0
Sprzętowa kontrola przepływu: Nie


2) skopiowanie (rozpakowanego) katalogu z załącznika do głównego folderu użytkownika (w Kindle /mnt/us)

3) hasło root do trybu Debug:
python -c 'import hashlib,sys;print "fiona%s" %hashlib.md5("%s\n" %sys.argv[1]).hexdigest()[13:16]' NR_SERYJNY_KINDLE

lub:
kindletool info NR_SERYJNY_KINDLE

Uzyskanie roota:

4) Odnalezienie pinów portu szeregowego (w Voyage oznaczone na zdjęciu).
Po kolei: GND, RxD, TxD. Podłączamy konwerter:
GND <-> GND,
RxD <-> TxD,
TxD <-> RxD

Uwaga! mało miejsca, niewygodny manewr.

5) Restartujemy Kindle i przerywamy autostart (dowolnym klawiszem).
Jak już przejmiemy kontrolę nad uboot'em, ładujemy system Debug:
bootm 0xE41000

a potem kolejno:
Reboot or Disable Diags -> Exit to login prompt

Logujemy się jako:
user: root
password: to uzyskane w punkcie 3.

6) Montujemy główny system:
mount /dev/mmcblk0p1 /mnt/mmc

wchodzimy do niego:
chroot /mnt/mmc

i ustawiamy hasło roota dla systemu main:
/usr/bin/passwd (lub, w innej wersji softu: /usr/sbin/passwd)

Restartujemy czytnik (polecenie reboot).

Wgranie hack'ów:

7) Spokojnie pozwalamy by załadował się główny system Kindle.

Logujemy się jako:
user: root
password: to ustawione w w punkcie 6.

Ustawiamy główny system plików do zapisu
mntroot rw

i instalujemy kolejno:
cd /mnt/us/tools/jb
sh install-bridge.sh

cd /mnt/us/tools/usbnet
sh install.sh

cd /mnt/us/tools/rescue
sh run.ffs

8) Restartujemy czytnik, odpinamy kabelki i składamy wszystko do obudowy.

Podsumowanie:


Od teraz możemy uzyskać prawa root'a uruchamiając na czytniku usbnet – polecenie ;un w polu wyszukiwania i logując się przez SSH:
ifconfig usb0 192.168.15.201 && ssh root@192.168.15.244

* zamiast usb0 system może używać nazwy zmienionej przez udev; odczytamy ją np. wywołując ifconfig -a lub dmesg.

Plik ENABLE_DIAGS w głównym folderze użytkownika (w czytniku) i restart czytnika uruchomi system Debug z włączonym usbnet (za ten stan rzeczy winę ponosi RescuePack).

Samo uruchomienie systemu Debug można też wymusić poleceniem:
idme -d --bootmode diags

Powrót do systemu Main
idme -d --bootmode main

i restart czytnika.


Załącznik:
Kindle Tools

wtorek, 18 sierpnia 2015

Jak i gdzie zamówić Kindle

Słowo przedwstępne:

Nie będzie tutaj prowadzenia małych dziewczynek za rączkę. Tylko konkrety. Z góry zakładam, że osoby tu zaglądające wiedzą co to znaczy rejestracja, e-mail, czy karta płatnicza.

Oficjalne zamówienie do Polski:

To jedyna pewna metoda, do tego by mieć fantastyczną roczną gwarancję. W skrócie polega ona na tym, że jak czytnik nie działa poprawnie to dostajemy nowy. Nieważne czy go utopiliśmy, przejechaliśmy po nim samochodem, czy jest inny powód niepoprawnego działania.

W tym momencie możemy oficjalnie zamawiać na amazon.com następujące czytniki: Po prostu wchodzimy w wybrany link, wybieramy Add to Cart, teraz w zależności od tego czy mamy już konto, czy dopiero zakładamy: logujemy się lub rejestrujemy (uwaga! trzeba podać numer karty płatniczej), wybieramy adres dostawy, opłacamy towar i czekamy na przesyłkę.

Amazon da nam wybór płacenia w dolarach lub złotówkach. Stanowczo nie polecam tej drugiej opcji, bo oferowany kurs przeliczeniowy jest po prostu skandaliczny (stracimy na tym).

Nieoficjalne zamówienia:

Tu w zasadzie nie ma różnicy skąd pochodzi czytnik. Opcje równie (nie)dobre to:

1) zamówienie z amazon.de. Wymagane wsparcie pośrednika, który udostępni nam niemiecki adres. Jednym z popularniejszych jest MailBoxDE.com. Opcja dobra jeśli chcemy przyoszczędzić (najtaniej, ale trzeba pamiętać o dodatkowych kosztach) lub po prostu chcemy czytnik, którego nie ma w wersji międzynarodowej (np. Voyage).

Wybieramy czytnik: Do wyżej wymienionych kwot trzeba jeszcze dodać ok. 12-14 € za fatygę pośrednika. W czasie zakupu podajemy adres do wysyłki udostępniony przez pośrednika i to w zasadzie tyle. Gwarancja dla takich czytników będzie zawsze bezproblemowa, jeśli dysponujemy niemieckim adresem. Jeśli jest inaczej mogą być problemy z realizacją gwarancji, jednak Kindle są mało awaryjne, a różnica w cenie skłania do podjęcia ryzyka. W tym przypadku czytnik nie różni się od takiego kupionego na...

2) Ebay, Allegro itp. Jeśli nie chcemy użerać się z pośrednikiem i ogólnie kombinować z niemieckim oddziałem Amazona, to może być dobra opcja. Warto zwrócić uwagę czy sprzęt znajduje się już w Polsce i czy był dostarczony jako Gift. Jeśli trafimy na wersję niemiecką (ponad 80% aukcji), to mamy czytnik taki sam jak przy zamawianiu z amazon.de. Różnica polega na tym, że pośrednikiem jest wystawiający aukcję, a całość opłacamy w PLN. Cenowo wychodzi nieznacznie drożej. Możemy też trafić na wersję amerykańską – wtedy cena będzie zbliżona od amerykańskiej i może być niższa niż przy zamawianiu indywidualnym (ktoś "zapomni" opłacić VAT, cło i inne "oszustewka"). Gwarancja oczywiście tylko na terenie USA, ale jeśli będzie to czytnik, który oficjalnie ma wersję międzynarodową, to gwarancja też może być międzynarodowa (zależy od indywidualnej decyzji konsultanta, przy czym najczęściej jest ona korzystna dla klienta). Najgorzej jeśli trafimy na wersję japońska – wtedy gwarancji nie mamy, chyba że dysponujemy jakimś adresem w Japonii i tam rejestrujemy czytnik.
Dobrze jest też pilnować by sprzedawca miał pozytywne opinie i ogólnie aukcja spełniała warunki Programu Ochrony Kupujących – tylko tak na wszelki wypadek.

3) Kupno w jakimś sklepie stacjonarnym (lub internetowym) – pojawia się w różnych marketach i dyskontach. Jak cena będzie dobra to można się skusić. Wersja taka sama jak z portalu aukcyjnego (najczęściej niemiecka).

poniedziałek, 17 sierpnia 2015

Prolog

Na tym blogu znajdzie się kilka zapisków dotyczących e-czytników (na dziś wyłącznie Amazon Kindle) oraz e-book'ów od strony twórcy - tu również ukierunkowanie na formaty Kindle, ale "przy okazji" potknę się o EPUB, a także PDF, ODT, RTF i różne inne.

Jeśli chodzi o same czytniki to wyznaję zasadę, że jak czegoś nam brakuje, to musimy sobie to zaimplementować sami. W związku z tym wszystkie moje czytniki są modyfikowane (programowo). Tego też będą dotyczyły wpisy.

Wyznaję zasadę, że poważna publikacja (nawet amatorska) musi opierać się na przejrzystym źródle. Duża "para" pójdzie w takie przygotowanie e-book'ów, by nie było do czego się przyczepić.

Nie używam i nie polecam programów, które robią głęboko idące modyfikacje (czytaj: robią "sieczkę" w kodzie). Najpopularniejszym z tego typu programów jest calibre (strasznie wkurzający typ - bardzo szybko zaśmieca pamięć czytnika - na szczęście umiarkowanie) - stanowczo nie polecam, przynajmniej do konwersji - można natomiast czasami użyć do dodania podziału wyrazów (tylko jeśli nie mamy mniej inwazyjnego narzędzia) czy do zdjęcia DRM. Niemile widziane są też programy (i skrypty), które koniecznie muszą pozostawić wzmiankę o ich użyciu w kodzie.

Środowisko pracy to w 97% Linux z całym dobrodziejstwem konsoli. Pozostałe 3% to OS X i program Kindle Previewer (jedyna metoda na pliki AZK, oraz na wiarygodny podgląd e-book'ów w bezpiecznych warunkach). Czasami mogę też wspomnieć o jakiś programach komercyjnych, które nie mają ani darmowego odpowiednika (dobrej jakości), ani też wersji linuksowej. W tym przypadku środowiskiem pracy także będzie OS X. Użytkownicy OKIEN również skorzystają, bo narzędzia są w zasadzie takie same.

Wpisy będą ukierunkowane na sprawy ściśle techniczne. Mogą się tu także znaleźć jakieś recenzje, komentarze do różnych ruchów na rynku i trochę "prywaty". Stanowczo nie dopuszczam tu rozwodnienia w kierunku przeglądu ofert księgarni, różnych promocji i innych bzdurek, chyba że to będzie jakaś rewolucja, której nie sposób przemilczeć.

Poruszane kwestie kieruję do osób nie bojących się komputera, a dokładniej takich dla których słowo korzeń nie kojarzy się tylko z ogródkiem, a cegła tylko w placem budowy. Dla kompletnie początkujących istnieją w polskiej blogosferze świetne serwisy.