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 Гб, что тоже прекрасно. Нюансы использования: Читать далее…


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

2013-08-13

Электронную литературу я читаю давно, если быть точным, начиная с 1999 года. Если не считать Ватолина в 1998-ом году, первой книгой, которую я полностью прочел с компьютера, были «Фальшивые зеркала» Лукьяненко. Специально оставался по вечерам на кафедре и читал — пока не приходило время уезжать на последнем автобусе в Ильичевск. Потом был 286-й компьютер на работе с которого можно было читать в Dos-Navigator’е, потом уже свои домашние машины — тоже с MS Dos и Dos-Navigator’ом в качестве читалки. Palm Zire я взял где-то в начале нулевых. За ним последовал Sony Clie, Amazon Kindle 4 и вот сейчас Nook Simple Touch GlowLight.

В начале нулевых (2001? 2002? 2003? — не суть важно) я определил для себя причины по которым читалка должна быть отдельным от большого компьютера (десктопа или лаптопа) устройством и купил Palm Zire. И остался более, чем доволен. Палм помещался даже в небольшую сумку и его можно было везде носить с собой. Можно читать в транспорте, можно читать в очереди и так далее. В любую читалку помещается целая библиотека, которая в бумажном виде, потребовала бы 120 литрового рюкзака.

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

Все, что прибегает в мою читалку можно разделить на три основные категории.
Читать далее…


Pencil Revolution

2012-06-28

Уже полгода как перешел с ручки на карандаш и веду записи в блокнотах и агендабуке исключительно им. Профит в том, что карандаш штука гораздо более универсальная и удобная для заметок на ходу, чем авторучка. Читать далее…


киндловарство

2012-02-11

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

Пока я пользовался палмом — я привык к тому, что у него есть WeaselReader, к которому идет коммандлайновая утилита makeztxt — которой достаточно прописать регэксп для поиска содержания — и она сама расставит заголовки.

Читать далее…


Простые вещи: идеальный рюкзак.

2011-11-28

Современные городские рюкзаки большей частью шьются со множеством секций, карманов, кармашков и карманчиков — под ручки, блокноты и прочие мелочи, отдельный «наспинный» карман для бумаг, защищенная емкость под ноут и так далее и тому подобное. Такой рюкзак больше напоминает разгрузочный жилет «коммандос», чем рюкзак.

Чем больше пользуешься такими рюкзаками — тем сильнее ощущение их нерациональности. Сегодня ручки и мелочи хорошо разложились по кармашкам — плейер лег туда, ручки — сюда, часть бумаг — туда, блокнот — сюда и так далее. Завтра я решил отправиться налегке и взял более легкую сумку — в итоге каждую ручку пришлось вытаскивать из ее кармашка и перекладывать в другой кармашек. Кроме того, нужно некоторое время, чтобы в такой многокарманной системе каждая вещь нашла свое место, а когда ты к этому привыкаешь — рюкзак уже успевает износится и его нужно менять. А у другого рюкзака схема почти такая же, но за счет этого «почти» снова нужно искать порядок раскладки. Еще забавнее, когда число кармашков не совпадает с нужным комплектом вещей — флешки, кабели, «селедка» под наушники, нож, расческа — не везде для этого предусмотрено отдельное «парковочное» место.
Читать далее…


Научная организация труда по Хайнлайну

2011-09-13

Сейчас на кафедре полный завал — ушел шеф, серьезно болеет еще один преподаватель. Плюс переезд на новое место, плюс, плюс, плюс… Сейчас приходится тянуть 250% моей обычной нагрузки.

Естественно, пока простаивает и блог и другие проекты (и только благодаря Среццтву-От-Сидения-Дома я еще не оброс мхом в своей уютной компьютеризированной келье на окраине города). Ничего. Разгребусь с делами и… А пока (в очередной раз, ага) утешаю себя старой доброй цитатой из Хайнлайна:

Читать далее…


Subversion vs Mercurial

2011-02-16

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

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


Пространственная память, Рабочие столы и Линуксовый десктоп

2010-09-20

Первое время, после переезда под Linux, я использовал его «по-виндовому». У меня редко использовалось больше одного рабочего стола. Большинство приложений варилось в одном котле с доступом по Alt-Tab. И вообще полезность множества рабочих столов теоретически была понятна, но практически я не особо ей пользовался. Впервые о том, как я использую свою систему я задумался прочитав у уважаемого Оллеката о тайловых менеджерах, однако для моих целей они оказались избыточны — как минимум по причине маленького монитора. Потом, листая форумы unixforums.org, я натолкнулся на тему о интерфейсах линукс, в частности — на заметку Федорчука о том, как он использует свою систему.

Там есть много советов, но один из самых главных — распределять приложения по рабочим столам в зависимости от задач. Инструменты для написания-редактирования программ — на одном рабочем столе, инструменты для общения — на втором, браузер — на третьем.

Организуя свою систему я довел принцип до логического завершения — «один рабочий стол — одно приложение» и — самое главное. Приложения должны распределяться по рабочим столам автоматически. Все должна делать сама система.
Читать далее…


Безмышинная навигация по Файрфокс и Быстрые Имена

2010-08-27

2010-08-27 11:04

Поставив себе OpenBox (отдельная долгая история, до описания которой у меня когда-нибудь должны дойти руки) в качестве среды обитания, очень быстро приобрел вкус к оптимизации пространства — в частности под работу исключительно с клавиатуры. И в конце-концов пришел к тому, что одна из самых «мышинных» программ на моей машине — это браузер. Существует радикальное решение — Vimperator, но оно мне не подходит по ряду причин.

Читать далее…


palm, linux makeztxt и iconv

2010-07-24

Я уже писал про то, что АБТФ имеет то преимущество, что достаточно просто закидывается в палм. У меня это происходит следующим образом. Для начала я копирую файл в папку ~/tmp и конвертирую его в виндовую кодировку с помощью iconv:


cp ~/blog/main.txt ~/tmp/main.txt
iconv -t=cp1251 -c main.txt > main_cp.txt

Ключ -t=cp1251 указывает куда конвертировать (в данном случае из utf-8, в которой я веду заметки в cp1251, которую понимает палм), ключ -c нужен, чтобы подавлять вывод заведомо непечатаемых символов, которые есть в utf-8, но которых нет в cp1251 (например, знак йены).

Дальше остается преобразовать main_cp.txt в .pdb файл. Это можно сделать простой командой:

makeztxt -o main.pdb main_cp.txt

Ключ -t добавляет в файл заголовок под которым файл будет виден в базе палма.

makeztxt -t blog_main -o main.pdb main_cp.txt

Мне удобно, чтобы файл имел оглавление — сразу автоматически расставленные заголовки по всем ключевым разделам блога (90000 строк очень долго листаются в поисках нужного раздела). Поэтому я добавляю ключ -r, который расставляет закладки по всем заголовкам разделов. Разделы находятся через регулярное выражение ^#.{,15} — начало строки, за которым следует решетка #, за которой следует пятнадцать или меньше любых символов. Ключ -l (list) выводит на печать список сгенерированных закладок, чтобы можно было контролировать процесс.

makeztxt -r "^#.{,15}" -l -t .main2010 -o main.pdb main_cp.txt

Теперь можно скопировать main.pdb в память палма и наслаждаться :)

У меня все эти операции проделываются через скрипт ~/bin/bmz, который выглядит примерно так:

#! /bin/bash

cd ~/tmp
cp ~/blog/main.txt .
iconv -t=cp1251 -c main.txt > main_cp.txt
makeztxt -r "^#.{,15}" -r "^@ 20..-..-.. @ ..:.." -l -t .main2010 -o main.pdb main_cp.txt 
cp ~/blog/cites.txt .
iconv -t=cp1251 -c cites.txt > cites_cp.txt
makeztxt -r "^#.{,15}" -r "^@ 20..-..-.. @ ..:.." -l -t .cites2010 -o cites.pdb cites_cp.txt 
rm ~/tmp/main.txt
rm ~/tmp/main_cp.txt
rm ~/tmp/cites.txt
rm ~/tmp/cites_cp.txt

Достаточно набрать bmz в командной строке, а потом скопировать получившиеся .pbd-файлы в палм. Поскольку у меня сейчас Palm Sony с внешней карточкой, я просто вставляю ее в кардридер и копирую файлы напрямую.


user.js

2010-06-09

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

Есть другой путь.

Читать далее…


Минус Бар

2010-06-02

Вчера обновился Яндекс.Бар. Впечатление удручающее — они переставили ссылку с ленты на ссылку на рсс-ы в почте. Что меня разозлило. Да и Фотки (очень удобные в целом) в последнее время глючат етс. Все это привело меня к мысли снести ЯБар и поставить вместо него Гуглобар. Гуглобар поставился, но произвел еще более тягостное впечатление. В частности — сложностями по сохранению настроек етс. етс.

В итоге, после обсуждения с сэром Хайвеем в твиттере, пришел к выводу, что эти бары для моих задач — слишком большие и неуклюжие. Что мне нужно? Онлайновые закладки, онлайновый рсс-ридер (держать на диске рсс слишком уж роскошно + все время возникает проблема синхронизации), возможно онлайноый блокнот. Рсс я перетащил на гуглоридер, почту получаю в основном через тандерберд по IMAPу, твиттер — через пиджин (очень удобно — распробовал это только недавно).

С закладками хитрее.

Читать далее…


Метаинформация и теги

2010-05-10

2010-04-27 00:15

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

Это проясняет сразу несколько вещей Читать далее…


Папки или теги?

2010-05-10

Civan, A., W. Jones, et al. (2008). Better to Organize Personal Information by Folders Or by Tags?: The Devil Is in the Details. 68th Annual Meeting of the American Society for Information Science and Technology (ASIST 2008), Columbus, OH.[1]
[1] Supported by an award from Google

Исследование темы юзабилити — что лучше для хранения информации — папки или теги?

Основные выводы (для памяти):

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

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