FBReader — чтение и допиливание

2015-07-05

Некоторое время назад перешел с CoolReader на FBReader — польстившись главным образом на сетевую систему синхронизации (которая до сих пор работает у них с каким-то скрипом). В принципе помимо системы синхронизации выяснилось, что FB за прошедшее время допилен до вменяемого состояния, в то время, как CoolReader практически не обновляется — поэтому, оставив обе программы, сейчас пользуюсь FB.

Неудобств у этой софтины пока всплыло два.

Первое — она категорически не хочет открывать .fb2.zip файлы, считая их прерогативой CoolReader. К счастью, есть человек, который не поленился сделать костыль к этому, что сильно облегчило работу с системой.

Второе — скачивая книги из флибусты по OPDS (или вообще из любой сетевой библиотеки), она складывает их в отдельные каталоги не называя по имени-названию, а просто нумеруя.

Скажем Кутузов Лидии Ивченко выкачивается не как Ivchenko_Zhizn-zamechatelnyh-lyudey_1372_Kutuzov.335158.fb2.zip, а как целое дерево вложенных папок: <родная папка fbreader'а>/flibusta.net/b/335158.zip, что ужасно неудобно.

Моя система хранения книг опирается в первую очередь на файловую систему — осмысленные названия файлов и иерархия папок по которым эти файлы тасуются. Ничего более удобного пока нет и, скорее всего, не будет придумано в ближайшее время. Иерархия “папка-файл” выглядит скучновато в отличие от всяческих all-inside хранилищ типа Calibre или той же встроенной библиотеки FBReader, зато надежна, минимальна по занимаемому месту, вообще не требует стороннего софта для упорядочивания, хорошо упорядочивается дельта-итерациями (тема отдельного разговора) и — как я начинаю понимать — нейрологически обоснованна (очень рекомендую такую книгу, как Daniel J. Levitin “The Organized Mind Thinking Straight in the Age of Information Overload” — написано хорошо, не заумно, без утомляющего выпендрежа и по делу).

Поэтому 335158.zip меня не устраивал категорически, хотя сам OPDS-доступ к сетевой библиотеке (т.е. скачивание книги через FBReader) оказался вполне удобным. Первым делом я попробовал переименовывать файлы вручную и раскладывать их по своим папкам — меня хватило файла на два.

К счастью, быстро выяснилось, что внутри у скачанного 335158.zip лежит вполне приличный по названию Ivchenko_Zhizn-zamechatelnyh-lyudey_1372_Kutuzov.335158.fb2 — дальше дело заключалось в написании простенького скрипта:

#!/bin/bash
# основная идея избавиться от закачки безымянных файлов с флибусты

# находит и раззиповывает в корень файлы в каталогах
find . -type f -name "*.fb2.zip" -exec unzip {} \;

Простенький однострочник на самом деле — find спускается вниз по дереву папок, находит файлы (-type f), которые заканчиваются на .fb2.zip (-name "*.fb2.zip") и запускает unzip, который над ними операцию распаковки (-exec unzip {} \; — вместо {} подставляется имя найденного файла). Разумеется, чтобы это работало, в системе должен быть установлен unzip (у меня он стоит по умолчанию — если его нет надо сделать что-нибудь типа sudo apt-get install unzip)

Этот файл (unzipper.sh) был положен в корень (то, что выше названо <родная папка fbreader'а>) и — дррррр! — тридцать файлов, которые к тому времени скопились в дереве папок, оказались найдены, раззипованы и аккуратно сложены в папке со скриптом.

На этом можно было бы остановиться — FBReader в принципе читает и раззипованный .fb2, но почему бы не упаковать все назад в зип? Для этого нужен примерно такой однострочник:

find . -type f -name '*.fb2' -exec zip '{}'.zip '{}' \;

Находим файлы, которые оканчиваются на .fb2 и зипуем их. -exec zip '{}'.zip '{}' \; выполнит операцию zip (он тоже должен быть в системе — sudo apt-get install zip) и подставит в нее найденные название файла ({}) и имя новосоздаваемого архива ({}.zip — старое имя + расширение .zip).

Итого:

#!/bin/bash
# основная идея избавиться от закачки безымянных файлов с флибусты

# находит и раззиповывает в корень файлы в каталогах
find . -type f -name "*.fb2.zip" -exec unzip {} \;

# зипует их обратно
find . -type f -name '*.fb2' -print -exec zip '{}'.zip '{}' \;

Можно было бы написать еще и автоматическое удаление ненужных файлов — но я предпочитаю делать это руками, на случай если что-то пойдет не так.


О свободных форматах, авторах и чтении

2015-05-28

Время от времени в сети появляются «свободные книги». Кто-то выкладывает экземпляры своих рукописей или журналов. Дело хорошее — информация хочет быть свободной, а если она еще и структурирована в книгу — это вообще прекрасно. Однако, по непонятной причине множество авторов выкладывает свои книги и журналы в формате pdf. Это можно понять, если это скан какой-то бумажной книги — хотя и тогда, наверное djvu все-таки был бы оптимальнее. Но в остальных случаях (если книга или журнал — твои собственные и если ты не собираешься закрывать информацию от пользователя) — зачем?

Чтобы читать что-то в pdf-е в наше просвещенное время есть всего несколько способов — можно распечатать, можно читать с большого монитора (т.е. с десктопа или ноута), можно купить лопатообразный планшет формата A4. Вот скажите, осталось хоть какое-нибудь значимое количество людей, которые будут так делать? Нет, отдельные эстеты, которые любят и могут себе позволить напечатать 300 страниц руководства по прикладному кролиководству на островах Зеленого мыса, конечно есть. Например, того же Варшавского я распечатываю для работы с карандашом в руках — но это для работы и по работе.

Большинство известных мне нормальных людей читает либо с читалки, либо со смартфона. pdf отображается там, скажем так, крайне нехорошо. И конвертится разннобразными калибрями и пандоками во что-то более удобваримое тоже не очень. В итоге средний читатель (в моем лице) отправляет такую рукопись в долгий ящик откуда нет возврата. Максимум (если предмет интересный) — просматривает ее по диагонали.

В одном известном мне случае (пальцем тыкать не буду, но случай был реальным) читатель, решил пожаловаться на то, что pdf с телефона читать неудобно и скромно попросил чего-нибудь типа epub. В ответ «для более удобного чтения» было запилено два мега-приложения (под Ойфон и под Ондроед), чтобы они стояли на телефоне пользователя… и грузили внутрь себя pdf. Грузили pdf внутрь себя, Карл!

Поэтому — если воля судьбы, мироздания и всего-всего-всего сделала тебя автором — почему бы не выложить книгу в каком-нибудь нормальном формате, который легко конвертируется, хорошо читается и малой кровью ложится в публичную библиотеку? Если совсем нет навыков — можно использовать чистый .txt или markdown. Если текст технический и с формулами — TeX. Если хочется готовую книгу — epub, fb2, или на очень-очень-очень худой конец — mobi? Хочется pdf, «шоб как у взрослых бумажных книг»? Выложи рядом и .epub и .pdf Будь мужиком — бери пример с Википедии или PubMed’а, которые сейчас делают именно так.


Чтение электронных книг — 2.5

2015-02-19

или «Dropsync не нужен»

В предыдущей серии ваш покорный слуга описывал свою систему, в которой чтение и архивация небольших заметок (в противовес чтению «больших книг» и книг, сгенерированных из собственных заметок) опирается на .epub и .maff форматы (по сути — зипованные .html) и творческое использование dropbox. Некоторое время назад я отказался от dropsync’а в пользу синхронизации через usb с помощью Unison. Причины, технические подробности, плюсы и минусы перечислены в предыдущей статье.

Вынужденное изгнание и смартфон меняют стереотипы. Смартфон, как «девайс в том числе для чтения» постепенно перетягивает одеяло на себя. Я привык читать с небольших экранов (Palm + WeaselReader), а смартфон (в отличие от более громоздкой читалки) постоянно с собой. Кроме того, появились программы вроде Dimmer’а которые позволяют настраивать яркость и цветовую гамму (например, убирать пресловутый «синий свет») — что сильно сокращает разрыв по разнице в качестве чтения.

Еще у смартфона есть симкарта и (почти всегда) бесплатный gprs-интернет. Сейчас у меня дошли руки до установки dropbox’а (я стараюсь держать на телефоне как можно меньше программ) — и я понял, что мне не нужен не только dropsync (см предыдущую заметку), но скорее всего и синхронизация заметок по шнурку.

На смартфоне интернет есть практически везде и всегда. Epub копеечные по размерам — и даже плохонького gprs вполне хватает для вытягивания файлов «по одному за раз». Прочие операции (удаление-переименование-сортировка) тоже можно делать без доступа ко всему архиву сразу — в самом приложении.
Большие заметки, которые хочется читать в отсутствии сети можно скопировать в отдельную папку, или (сейчас это проще) пометить «звездочкой» — и dropbox будет держать их на диске все время. Получается самое то, при минимальном использовании трафика.


Чтение электронных книг — 2

2014-12-12

В предыдущей заметке о чтении, я разделил свои материалы для чтения на три основные категории: большие книги, мои собственные заметки (в виде Большого Текстового Файла) и «клипы» или «вырезки» — набор разношерстых html-страничек, посты, микротексты, микрозаметки и так далее. Если с большими книгами и большим файлом все было более или менее понятно, то промежуточная категория — заметки, «клипы» и вырезки, была совершенно неопределенной и требовала осмысления.

За прошедший год система чтения изменилась. Многие моменты назрели уже давно, фундаментальным поворотом стал момент, когда я оказался в Метрополии с очень плохим интернетом. Связь через некоторое время наладилась, но момент вынужденной автономности и некоторые исследования, попавшие в мое поле зрения, заставили задуматься.
Читать далее…


Еще об идеальных рюкзаках

2013-12-13

Приятно, найти на лайфхакере статью How to Create a Modular «Go Bag» System That Fits Every Need — и узнать в ней идею, к которой пришел сам года два назад (см Идеальный рюкзак) — если коротко, то рюкзаки со встроенными отделениями неудобны и лучше иметь систему вкладывающихся модулей, которая позволяет комплектовать все по своему вкусу. В статье меня заинтересовала тема самоделок — и особенно мелочей, которые хранятся в файле в папке.


make power

2013-10-30

Пока я работал с Неназываемым — столкнулся с необходимостью многократно прогонять комплект действий с питоновскими скриптами. Потратив примерно полчаса (чуть меньше на самом деле — учитывайте, что я не профессиональный программист, а скромный power user) разобрался в GNU make и написал себе такой вот файлик:

all: struc func

clean:
    rm *.csv
    rm *.dot
    rm *.png

struc:
    python st.py 
    find . -name '*.dot' -exec dot {} -Tpng -o {}.png \;
func:
    python fun.py 
    find . -name '*.dot' -exec dot {} -Tpng -o {}.png \;
one:
    python st.py 
    dot struct_kond_B1_01.dot -Tpng -o poligon.png
    geeqie poligon.png

В данном случае make struc считает одни аспекты Неназываемого и с помощью graphviz (точнее dot) рисует к ним диаграммы, make func делает тоже самое для других аспектов Неназываемого, make one — отладочный «единичный сценарий», make clean чистит папку от лишних файлов (храните в версионном контроле только то, что редактируется руками, ага). make или make all прогоняет сценарии всех аспектов Неназываемого.

Удобно. Когда освоил — понял, что именно make мне не хватало для автоматической обработки данных. Вообще говоря make предназначен совсем-совсем для другого, но с коммандлайновыми утилитами он прекрасно автоматизирует действия и в тоже время делает это очень прозрачно, избавляя от необходимости плодить где-то по окрестностям скрипты и алиасы.

Например. Читать далее…


Яндекс диск в linux

2013-10-22

Яндекс-диск рулит уже тем, что в отличие от Гуглодиска они сделали прекрасное консольное приложение под linux. Ну и 10 Гб, что тоже прекрасно. Нюансы использования: Читать далее…


%d такие блоггеры, как: