Длиннопост про процесс чтения aka reading workflow

Случайно наткнулся на страдания Витуса Вагнера, выбирающего новую читалку. Вот что удивляет больше всего — люди вроде работают с линуксом и open source, рассуждают про принципы, но когда дело доходит до практики — напрочь забывают про принцип «одна программа делает одно дело, но делает его хорошо», а вместо этого начинают вожделеть большой комбайн: чтобы сразу читал epub, fb2, pdf, djvu, chm (sic!) имел движок чтения вслух и пр и пр.

Как мне кажется глупо требовать все перечисленное от одной единственной программы. Мы имеем несколько радикально разных форматов информации и, соответственно, несколько радикально разных рабочих процессов, завязанных на эти форматы. Как мне кажется, универсальное решение, сиречь гибрид не просто ужа и ежа, а ужа, ежа, бульдога, носорога, лебедя, рака и щуки всегда будет громоздким и всегда будет проигрывать специализированным приложениям.

  1. Чтение: текст и сканы.

Категории форматов fb2/epub (текст с разметкой) и pdf/djvu (набор картинок, иногда снабженный текстовым слоем) — это две радикально разные категории форматов, которые требуют радикально разного юзабилити и радикально разного стиля чтения.

Посему у меня стоит две программы: fb2/epub/txt я читаю в BookReader с F-Droid [1]. Кстати, в списке Витуса оной читалки нет — уж почему он прошел мимо единственной стабильно обновляемой open source читалки — загадка. На больших файлах (больше 5Мб) он не падает, отличает два файла с одинаковым названием, но разным содержимым (несколько вариантов моего Большого текстового файла, отконвертированного через pandoc) и я им вполне доволен.

Из приятного — его база данных — это папка .bookreadersync, где лежат файлы открытые в данный момент в читалке + метаинформация по этим файлам в формате .json — при этом все закладки, цитаты и комментарии к текстам хранятся в этом же json. Это значит, что:

(а) оная информация никуда не пропадет даже если я решу снести читалку,
(б) оная информация вполне синхронизируема между разными устройствами и
(в) оная информация синхронизируется с десктопом, где простенький скриптик на питоне выковыривает и по команде выводит все прочитанное, выделенное, откомментированное в удобной мне форме.

Дополнительные приятные штуки: расстановка переносов (после WeaselReader / GutenPalm на палме — это для меня практически маст хев для любой читалки), внятная работа с примечаниями (не такая удобная, как на CoolReader, но есть и достаточно хорошая), внятная работа с иллюстрациями в тексте. Внятная работа с иллюстрациями для меня — возможность выбрать пункт «растянуть все иллюстрации на весь экран».

Формат .chm вообще вызывает у меня некоторое недоумение (если хочется html с содержанием — есть нормальные форматы вроде .epub и вообще зачем тащить это к себе в библиотеку) поэтому я стараюсь его избегать, а если это невозможно — конвертирую в .epub/.fb2 и т.д.

Для pdf/djvu, а часто и для манги/комиксов я использую Document Viewer[2], который удобен тем, что:

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

Я знаю, что первая программа может работать с pdf/djvu, а вторая с epub/fb2, но мне это не нужно поскольку (еще раз) работа с текстовой информацией и с информацией в виде сканированного текста для меня два принципиально разных рабочих процесса. Посему и два отдельных инструмента.

На линуксовом десктопе я редко что-то читаю с экрана — я заметил, что в 90% случаев работа сводится к «открыть книгу, найти цитату, скопировать в буфер» или «открыть книгу и просмотреть по диагонали, чтобы принять решение по дальнейшей ее судьбе». Поэтому там стоит coolreader поставленный из appimage — как хорошо настраиваемый, с нормальной функцией поиска, содержания и копипаста (с чем очень плохо у Fbreader’а) — и его хватает с головой.

Для pdf/djvu на десктопе у меня дефолтный evince. Там есть нюансы, поскольку pdf/djvu в моем случае это не только книги — это большой объем моих сканов бумажных архивов и база данных по статьям и научной работе.

  1. Хранение и каталогизация.

Кроме всего остального я не требую от читалки, чтобы она хранила и сканировала мои книжные папки на наличие там книг. Читалка должна (а) быстро и четко срабатывать на открытие нужной книги, (б) хранить стек читаемых книг с запомненной позицией по каждой из них (т.е. открывать уже читаемую книгу на нужном месте), (в) если читалка может показывать список книг с картинками обложек — вообще хорошо. Все перечисленные книги с этим справляются. Свою библиотеку я упорядочиваю самостоятельно (о, ужас!) вручную и распределяю книги по папкам в файловой системе.

Для работы с десктопа, понятное дело, хватает штатных средств, для работы с телефона отлично подходит Ghost Commander [3] — тоже оупенсорсный, быстрый и удобный.

Есть много софта, который пытается отсканировать содержимое папок, разложить все по тегам, авторам, жанрам и т.д. и т.п. Некоторое время я экспериментировал с разными изводами подобного каталогизаторского софта, но в конце концов пришел к выводу, что он как минимум непрактичен, как максимум — вреден. Из всего доступного набора я использую (и то — очень нечасто) полнотекстовый поисковик Recoll [4] — он всеяден и быстр.

Все остальное возложено на файловую систему, грамотную организацию папок и syncthing как синхронизатор между разными устройствами. У меня есть «место хаоса» — папка, куда сгружаются свежие книги и раз в какой-то период я разгребаю это место, раскладывая все по папкам, выбрасывая мусор и реорганизуя папки. Это обманчиво простая система имеет сразу несколько преимуществ.

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

Во-вторых, такая система не зависит от конкретных программ-каталогизаторов. Иначе возникает ситуация «сегодня у нас эверноут/жабреф/зотеро/калибре есть, завтра эверноута/жабрефа/зотеры/калибры нет, к новым системам старые данные не подходят и все нужно начинать заново».

В-третьих, для упорядочивания файлов нужно прикладывать некоторые регулярные усилия — тут никто ничего не делает за вас, но эти усилия окупаются. Если их не предпринимать. то система захламляется при любом каталогизаторе, так что раз все равно их нужно делать — лучше пусть система позволяет это делать с «минимальным трением». Поскольку система папок последовательно упорядочивается — она постепенно приближается к оптимальной. В самом процессе почти сами собой выделяются нужные категории, вырабатываются правильные названия папок. Все вопросы вроде «а если у меня книга попадает сразу в несколько категорий — в какую папку ее сложить?» на самом деле надуманные и вполне решаемые. Посмотрите на любую бумажную библиотеку для примера ;)

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

В-пятых, такая модель не требует дополнительных усилий для синхронизации с телефоном — все делается через syncthing. То есть все вышеописанные преимущества распространяются и на телефон тоже. Причем разбирать и пересортировывать библиотеку можно как на десктопе, так и на телефоне.

Я очень редко переименовываю сами файлы, поскольку это трудоемкая (и часто бессмысленная) процедура, но строго отношусь к названиям папок. Очень удобно использовать для этого vidir — как на десктопе, так и на телефоне через termux — но это тема отдельного разговора.

  1. Аудио

Относительно движков для чтения — в «Паутине» Лехи Андреева ака Мерси Шелли есть чудесная цитата:

Программа-чтец, которую я поставил еще в 2012-м, обладала неудачной интонацией типа «не могу кончить никак», и я запускал ее только в исключительных случаях.

Которая полностью отражает мое отношение к этим самым движкам.

Поэтому, если мне нужна аудиокнига — я иду на рутрекер, и скачиваю книгу, начитанную нормальным человеческим чтецом (спасибо им большое за то, что они есть), часто со спецэффектами и на хорошем оборудовании и слушаю ее нормальным проигрывателем для аудиокниг[5], который хранит стек из читаемых книг, помнит где я остановился и имеет слипи-таймер, который важен, если книга слушается на сон грядущий.

Книги я тоже храню в файловой системе не заморачиваясь на какие-то каталогизаторы. Дополнительное удобство состоит в том, что в категорию «слушаю на ходу» или «слушаю по ходу» попадает множество других аудиофайлов: диктофонные заметки, подкасты, файлы с телеграма, аудиодорожки с тытруба и т.д. и т.п.

  1. «Ітогі підведем».

Я краткости ради оставил за бортом другие аспекты процесса (например, работу с библиографиями), но думаю в целом идея понятна. Еще одно преимущество в использовании специализированных решений состоит в том, что если какое-то звено выпадает — ему достаточно просто найти замену, новый кирпичик, который заместит старый. А если выпадает «комбайн» приходится перестративать все. Мы это уже видели на примере Evernote и (вставить любое подходящее приложение).

В качестве примера — когда начались блэкауты, то чтобы сэкономить батарейку телефона, я нашел старый плейер (SanDisk Sansa Clip Zip), который прошит специальной прошивкой Rockbox и имеет слот для microSD. Плюс такой же слот есть на моем приемнике (Retekess V115). И там и там есть все те фичи, которые мне нужны (закладки, слипи-таймер и пр и пр). Для синхронизации я использую Unison (лучше подходит для этих целей, чем syncthing) — при этом файловая структура остается ровно той же, процесс сбора и работы с аудиоинформацией остался прежним.

  1. https://f-droid.org/packages/com.github.axet.bookreader/
  2. https://f-droid.org/ru/packages/org.sufficientlysecure.viewer/
  3. https://f-droid.org/ru/packages/com.ghostsq.commander/
  4. https://www.lesbonscomptes.com/recoll/pages/index-recoll.html
  5. https://f-droid.org/ru/packages/de.ph1b.audiobook/

5 Responses to Длиннопост про процесс чтения aka reading workflow

  1. А Evince разве умеет сохранять позицию чтения? Помню, я PDF смог полюбить на десктопе только после `qpdfview` и `zathura`.

    Андроидный bookreader неприятно удивил желанием копировать читаемую книжку в sync-директорию, при этом переименовывая чёрти как (похоже на md5sum).

  2. Только что проверил — да, умеет. У меня на десктопе почему-то редко возникает необходимость. Еще оно умеет работать с SyncTeX — синхронизируя редактор и откомпиленный из него документ, но это уже другая история :) И qpdfview и zathura хорошие, я еще когда-то ставил DjVuLibre DjView и экспериментировал с Okular.

    У меня со временем рабочий процесс на десктопе сдвинулся, от «активно работаем с большим документом» к «нужно запустить и просмотреть вот эту и эту статьи отыскав файл самостоятельно по библиографическому ключу», а с этим вполне справляется evince. Оказалось, что он (а) быстрый, (б) у него даже есть vim-like клавиатурные шорткаты (прокрутка по hjkl и вменяемые повороты по- и против- часовой стрелки через Ctrl+Стрелка влево-вправо).

    sha1sum, наверное. Меня сначала напрягало, но сейчас наоборот кажется удобным. Книга лежит по хэшу, по тому же хэшу можно найти json с заметками, датой создания/последнего обращения и прочей метадатой. И все это богатство прилетает ко мне на десктоп, где я могу его сразу распатронить так, как мне удобно. Можно даже переназвать файл взяв из .json автора и название книги, например. Но мне гораздо важнее, что там хранятся цитаты и заметки к этим цитатам. А закончив работать — всегда понятно что и где чистить :)

  3. Кстати. Djvu reader и сейчас стоит на десктопе и открывается на .djvu-файлах. Постфактум обратил внимание на :) У меня процесс настолько автоматически происходит, что не отслеживаю на сознательном уровне.

  4. У меня в заметках осталось только то, что полноэкранный режим в Evince никакой не полноэкранный. Но возможно, причиной ещё было отсутствие поддержки им EPUB/MOBI/FB2. Zathura тоже умеет SyncTeX, повороты.

  5. Посмотрю внимательнее. apvlv еще есть :)

Оставьте комментарий