Небольшой обзор программ для ЗЫШЩТ


Уже несколько лет идет негласное, но напряженное соревнование между программистами, пишущими для ОС Epoc. Предмет этого соревнования необычен: победителем станет тот, кто напишет последнюю программу для ЗЫШЩТа...

За время соревнования многие вполне реальные претенденты сошли с дистанции, перейдя на другие платформы. Но тут же им на смену приходили новые авторы, и следующие, и еще, и еще...

Самым существенным в данной ситуации (и самым приятным для юзеров) является то, что программы, появляющиеся сейчас - далеко не вариации на тему "Hello, world".

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

Нынешняя реальность - радикально иная.

Круг пользователей радикально упал, ЗЫШЩТ вышел из моды, и программирование под ER1-5 не дает сейчас ни материальных, ни даже моральных дивидендов.

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

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

Я хочу рассказать о четырех популярных программах, каждая из которых весьма существенна, уникальна и позволяет использовать ЗЫШЩТ для решения задач, ранее принципиально невозможных.

Об одной из этих программ - Sdict - написано уже достаточно много, поэтому она не будет предметом настоящего обзора.

Напомню только о том, что к настоящему моменту Sdict

а) является единственным мультиплатформенным средством в области словарей и справочников;

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

В частности, Freeware-версии Sdict есть и под Win32, и под Unix, так что одними и теми же базами можно пользоваться в разных системах.

Больше того, по информации автора, уже существуют плагины .dct к нескольким Open Source словарям.

Возможно, в плане отдельных "красивостей" Sdict и уступает в чем-то другим известным специализированным системам.

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

В общем, Sdict не суперкрасавец, но весьма богат, за что юзеры его и любят ;-))

А вот об остальных программах стоит рассказать подробнее.

Первая из них - DjVu Viewer для Ерос.

Что же это вообще такое - формат DjVu и в чем его преимущество для нас, ЗЫШЩТовцев?

Как говорит Wikipedia, DjVu (произносится ╚дежавю╩, "уже виденное") ≈ это технология сжатия изображений, разработанная специально для распространения сканированных документов ≈ книг, прежде всего математических, журналов и пр. ≈ в интернете.

DjVu иногда называют ╚тексто-графическом╩ форматом.

Формат оптимизирован для передачи по сети таким образом, что страницу можно просматривать еще до завершения скачивания. В DjVu-файл может быть добавлена текстовая информация, тогда текст документа можно копировать в буфер обмена.

В DjVu применяется специальная технология, отделяющая от сканированного образа весь текст и сжимающая его с минимальными потерями качества. Графические изображения документов и фон документа переводятся в пониженное разрешение 100 dpi и подвергаются сжатию.

В основе формата DjVu лежат технологии, разработанные в AT&T Labs, в частности алгоритм отделения текста от фона на отсканированном изображении.

Формат DjVu крайне удобен для хранения и передачи отсканированных технических книг, где обилие формул и схем делает чрезвычайно трудоемким их полноценное распознавание.

Огромное количество книг в этом формате доступно в сетевых библиотеках и файлообменных сетях.

Формат не слишком нов, для просмотра DjVu-документов написано немало свободно распространяемого программного обеспечения под самые разные платформы.

Теперь, благодаря SDjVu, книги DjVu стали доступны и для ЗЫШЩТа.

На самом деле, это имеет для пользователей ER5 действительно принципиальное значение.

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

К тому же документ в DjVu обычно "весит" в разы меньше своего PDF-аналога, что весьма существенно для пользователей устройств типа Рева/Мако, не имеющих слота расширения.

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

Но реально научно-технические книги "живут" либо в PDF, либо в DjVu.

При этом надо учесть, что сделать книгу из скана в DjVu достаточно просто, а в PDF - проблематично.

Это вызвано особенностями форматов.

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

При переводе отсканированных страниц в DjVu контрастные рисунки и текст сохраняются с разрешением 300dpi, все остальное ("фон") сохраняется с разрешением 100dpi. В результате полученный электронный документ хорошо читаем - и при этом весьма компактен.

Разделение в формате "текста", "фона" и пр. дает возможность, если программа просмотра это предусматривает, исключить ненужные компоненты из отображения. Реализация этих опций в SDjVu описана ниже.

Наконец не надо забывать, что для ER5 практически отсутствуют удобные средства чтения документов PDF, особенно на русском языке. PDF Viewer, который понимает русские тексты без ограничений, весьма медленный - на грани практической непригодности; он является скорее аварийно-скоропомощным средством, нежели реальным инструментом для чтения. Несколько более быстрый PDF+ с русским дружит слабо.

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

Сейчас, с появлением DjVu Viewer' а под Ерос, ситуация в корне изменилась.

Посмотрим на программу подробнее.

Пример работы программы

Начнем с того, что DjVu Viewer написан на С++. Это обеспечивает вполне приемлемую для практических применений скорость работы. Я не тестировал программу на 5Мх или Рево, но во всяком случае на нетБуке листание выполняется со скоростью, в разы превосходящей тот же PDF+.

Программа является file-based. Это означает, что для просмотра книги достаточно стать на нее курсором и нажать Enter, что весьма удобно для практического применения, особенно при одновременной работе с несколькими разными книгами.

Меню программы не особенно обширно, но содержит все актуальные для работы настройки и возможности.

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

С помощью пункта меню "Document info" можно практически мгновенно получить информацию о документе, в том числе о количестве страниц. Показываемое количество страниц является не апроксимированным, а абсолютным, что снимает печально известные пользователям MobiReader'а проблемы с выходом на нужное место в документе.

Соответственно, выход на нужную страницу документа очень прост:

Выход на страницу документа

Очень удобно решена в программе функция зуммирования.

Помимо стандартных Zoom in/Zoom out, в настройках программы реализовано явное указание масштаба документа.

Учитывая технические характеристики устройств, для которых предназначена программа, имеются предустановленные коэффициенты зуммирования 10%, 12.5%, 15%, 20%, 25%, 33% и 50%, что реально покрывает диапазон потребностей для имеющихся в наличии книг.

Кроме того, можно работать в режимах "Fit Width", что очень удобно для, например, книг со схемами и сложными формулами, а также "One to One (100%)". Последний режим позволяет просматривать документ "как есть", вообще без потерь.

Вот как это выглядит на практике:

Страница с уровнем зума 33%

Эта же страница в режиме "One to One"

Хорошо видно, что как показ страницы в натуральную величину, так и уменьшение масштаба до 33% практически не влияют на качество отображения документа.

Навигация (листание) производится в стиле Epoc eBook, т.е. отображает следующую страницу, а BackSpace отлистывает на страницу назад. Вместе с тем, для листания предусмотрены также дублирующие клавиши, соответственно "a" и "q" для следующей и предыдущей страниц.

Документы, не помещающиеся на экране, можно двигать с помощью клавиш Left/Right/Up/Down (быстрое скроллирование) и клавиатурных комбинаций Ctrl + {Left/Right/Up/Down} или Shift + {Left,Right,Up/Down} (плавное скроллирование).

В принципе, параметры как быстрого, так и плавного скроллирования (шаг в пикселях) задаются в настройках программы.

Для плавного скроллирования задается количество пикселей, на которое происходит скроллирование, а для быстрого - на какое количество пикселей новое изображение перекрывает старое.

Например, при чтении книг в режиме Fit Width удобно настроить overlap в зависимости от размера шрифта, что позволяет при листании иметь "необрезанные" строки.

К сожалению, мне не удалось заставить работать эти параметры в полном объеме - визуально перемещение картинки не вполне соответствовало заданным значениям. Надеюсь, эта проблема будет устранена в следующих версиях программы.

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

Выбор объектов рендеринга

Зная характеристики конкретного DjVu-документа, можно исключить ненужные уровни, что непосредственно влияет на скорость работы.

С этой точки зрения наиболее интересен параметр Render background. Использовать его или нет - каждый решит для себя сам, а я просто приведу ниже примеры одной и той же страницы с background и без.

Пример страницы без Render background

Та же страница с Render background

Обратите внимание, что разница заметна даже на монохромном изображении!

Другой интересной программой является Sview.

Она предназначенная для непосредственного чтения текстовых файлов, упакованных в архивы GZip.

Кстати, насколько мне известно, Sview - вообще первая (и единственная) программа под Epoc, позволяющая прямое чтение заархивированных текстов. Распознаются как классические архивы gz, так и сделанные под Win32.

Помимо собственно возможности непосредственной работы с архивами, программа имеет немало чисто пользовательских удобств, хотя бы по сравнению с известным Editor'ом.

Например, возможно при выходе из просмотра запоминать текущую позиция для каждого файла; выбирать любой из инсталлированных фонтов; отображать документы как в КОИ-8, так и в альтернативной кодировке и т.д.

Особый интерес представляет алгоритм интеллектуального форматирования, аналогичный тому, что применен в Sdict.

Таким образом, текст можно просматривать как в "оригинальном" режиме, так и в "интеллектуально" - с разбивкой по параграфам. Сочетание обоих режимов позволяет подобрать комфортный способ чтения практически для любого текста.

Для переключения переключения форматирования предусмотрен хоткей, так что можно поэкспериментировать с текстом прямо на ходу.

Например:

Форматирование по параграфам

Другой пример:

Сохранение исходного форматирования

Аналогично eBook, программа позволяет переходить на абсолютную (в %) позицию в файле.

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

Например, переход на позицию 100%, который по идее должен приводить к концу файла, на моем примере позиционировал курсор несколькими страницами вперед, причем на очень небольшом файле. Scroll bar тоже ведет себя крайне странно - приходит в нижнюю позицию явно раньше времени, и затем стоит на месте, притом что страницы листаются еще долго.

Впрочем, это непринципиальные мелочи, не мешающие главному - возможности непосредственно читать файлы из архивов ;-))

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

Но, конечно, главным является не тот или иной набор "рюшечек", а сама идея использования .txt.gz.

На текстовых файлах экономия в размере достигает не менее 30%, притом что разница в скорости чтения, по сравнению с чистым ТХТ, практически не заметна. А если добавить то, что в отличие от TCR, обеспечивающего схожий коэффициент сжатия, никакой специальной обработки текста не требуется - выгоды налицо.

Плюс не надо забывать об универсальности .gz, активно существующего на всех основных платформах.

Наконец, последняя в обзоре программа - это собственно даже и не программа ;-))

Речь идет об Ерос-порте библиотеки PCRE.

Чтобы не грузить тех, кому это совершенно не интересно, скажу лишь, что PCRE - это Perl Compatible Regular Expressions.

Для тех, кто знаком с понятием "регулярных выражений" и тем более пишет программы - вещь самополезнейшая, для остальных... В общем, так: если разрабатывается программа под Ерос, и необходимо включить в нее компонент, использующий регулярные выражния (наиболее частый пример - сложный поиск), использование порта библиотеки PCRE будет несомненно лучшим решением.

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

В настоящий момент PCRE существует только в виде описанного порта. Вопрос о написании OPXов пока на рассмотрении - непонятно, будут ли они по-настоящему востребованы, учитывая текущие реалии...

В заключение отмечу, что все описанные программы для Epoc написаны на С++, распространяются как Freeware.

Все они полнофункциональны непосредственно после инсталляции, за исключением DjVu вьюера, который привязан к UID машинки и требует регистрации.

При этом регистрация DjVu вьюера тоже бесплатна и высылается автором по запросу через eMail.

(c) Leo, 2006г.

Tags: psion symbian dictionary


Назад в оглавление



[Home] [TTL] [Unix] [Sdictionary] [ROW Programmer] [Symbian] [Misc] [News] [Search] [Contacts] [Guestbook]


Copyright (c) 1999-2017 Alexey Semenoff