Информационный портал
pocket versionPOCKET  wikiWIKI  FAQFAQ  ПоискПоиск  ПользователиПользователи  ГруппыГруппы  РегистрацияРегистрация  ПрофильПрофиль  Войти и проверить личные сообщенияВойти и проверить личные сообщения  ВходВход

Читалка + вопросы про чтение fb2
На страницу 1, 2  След.
 
Найти сообщения без ответов
Начать новую тему   Ответить на тему    Список форумов www.fictionbook.org -> FB - разработка и программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение


babaev
Новенький участник форума

Новенький участник форума

Зарегистрирован: 31.01.2007
Сообщения: 71
Откуда: Санкт-Петербург

СообщениеДобавлено: Ср Янв 31, 2007 14:16    Заголовок сообщения: Читалка + вопросы про чтение fb2 Ответить с цитатой

Добрый день всем!

Есть на маках проблемка. Ни одной читалки fb2. Решил я её поправить, получается примерно следующее: http://exception.jdnevnik.com/.products__job

Пишется всё на Java и цель - сделать порты в дальнейшем на всякие портативные устройства вместе с большими братьями. Сейчас, понятно, это все работает всего лишь под Mac/Windows/Linux/FreeBSD/Solaris.

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

Дело в том, что FB2 - великолепный формат для библиотеки. Он отлично индексируется, имеет все нужные атрибуты книжки и так далее. Но для чтения он, скажем прямо, не подходит:
- обычно читаются зазипованные книжки. Зип используется обычный, не потоковый. Значит нужно распаковать прежде чем читать.
- сам формат (ссылки, изображения) - подразумевает произвольный доступ к файлу, а не последовательный. В результате чего нужно придумывать всякие решения (порой достаточно нетривиальные) для того, чтобы читать fb2 напрямую при ограничениях памяти/скорости процессора (например, телефоны)

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

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

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


Admin
Администратор информационного портала FB

Администратор информационного портала FB

Зарегистрирован: 11.06.2004
Сообщения: 1610
Откуда: Воронеж

СообщениеДобавлено: Ср Янв 31, 2007 15:07    Заголовок сообщения: Ответить с цитатой

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

Тривиальней некуда - через DOM на Яве. А новый формат чтения - это тема другого сайта Laughing
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail


Gremlin
Зрелый участник форума

Зрелый участник форума

Зарегистрирован: 14.02.2005
Сообщения: 155

СообщениеДобавлено: Ср Янв 31, 2007 15:57    Заголовок сообщения: Re: Читалка + вопросы про чтение fb2 Ответить с цитатой

babaev писал(а):
В процессе возникла интересная проблема, которую хочется обсудить.

Дело в том, что FB2 - великолепный формат для библиотеки. Он отлично индексируется, имеет все нужные атрибуты книжки и так далее. Но для чтения он, скажем прямо, не подходит:

А как же прочие читалки справляются?.. если не подходит.

Так что наверное правильнее сказать что-то вроде "имеются неудобства". Wink
babaev писал(а):
- обычно читаются зазипованные книжки. Зип используется обычный, не потоковый. Значит нужно распаковать прежде чем читать.

Странно, а я всегда думал, что блочный zip вместо потокового gzip'а используется как раз для того, чтобы можно было декомпрессировать текст поблочно.
babaev писал(а):
- сам формат (ссылки, изображения) - подразумевает произвольный доступ к файлу, а не последовательный. В результате чего нужно придумывать всякие решения (порой достаточно нетривиальные) для того, чтобы читать fb2 напрямую при ограничениях памяти/скорости процессора (например, телефоны)

Наиболее правильным видится вариант сканирования текста (причем поблочно - ради чего и полезен именно zip, или dictzip ...) и построение его структуры (кстати именно так и получается оглавление), а затем уже используется частичное считывание в память нужного фрагмента.
babaev писал(а):
Есть предложение. Наряду с fb2, как форматом каталогизации книг, придумать формат для чтения книг. Предполагаю, что это должен быть некий бинарный формат, ко всему прочему сжатый потоковым архивом (тем же блочным зипом например).

Имхо fb2 все-таки задуман именно как универсальный формат, позволяющий не только каталогизировать книги, но и легко их редактировать, получать другие форматы... и использоваться в читалках. Smile
babaev писал(а):
Интересно ли такое предложение? У меня в программе наметки такого формата уже есть, я готов выдать (в любом случае в описании API это будет) черновой вариант такого формата и требований к нему. Но, если это никому не нужно - это останется внутри у меня. Нужно - значит буду выкладывать.

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

Так что могу посоветовать использовать формат наподобии plucker'овского, как внутренний формат читалки (в который можно переконвертировать fb2 в процессе подготовки на большом брате, а то и самом телефоне). Причем здесь предусмотреть улучшенный прямой доступ: сжатие делать на уровне блоков, адресацию (на картинки/ссылки/...) обеспечивать без "якорей" и т.д.

Но возможность "прямого" чтения FB2 в читалке кажется (особенно в свете роста возможностей тех же мобильников) наиболее приятной.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


babaev
Новенький участник форума

Новенький участник форума

Зарегистрирован: 31.01.2007
Сообщения: 71
Откуда: Санкт-Петербург

СообщениеДобавлено: Ср Янв 31, 2007 17:19    Заголовок сообщения: Ответить с цитатой

Цитата:
Тривиальней некуда - через DOM на Яве. А новый формат чтения - это тема другого сайта


Да тут-то все верно. Но это обозначает построение всей структуры документа (в общем случае - это мегабайты) в памяти. А хочется и на телефоны тоже.

Цитата:
А как же прочие читалки справляются?.. если не подходит.
Так что наверное правильнее сказать что-то вроде "имеются неудобства".


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

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

Цитата:
Не думаю, что это совсем бессмыслено, но формат класса "двоичного fb2" представляется малополезным поскольку он будет и не fb2 (т.е. требовать обратного преобразования) и не до конца оптимизированным под читалку.


Зато саму читалку будет проще делать. Одно дело - писать парсер XML (DOM/неDOM - не важно), причему давать ему задачу понимания всего того, что есть в файле... А ведь это часто не нужно. Для чтения не нужны ни ISBN, ни версия файла или (часто) имя переводчика. Иногда не нужны всякие ссылки или картинки... И другое - просто читать и выводить, что написано.

Плюс, еще есть проблема шрифтов. В бинарный формат шрифт можно будет воткнуть, чтобы им выводить. Иначе на некоторых устройствах будут проблемы с чтением.

В общем, "что-то вроде "имеются неудобства"" в ассортименте. Если кому-то кроме меня интересен именно формат чтения (он может быть по структуре похож на fb2, просто из него получаться и так далее) - я бы обсудил. Нет - значит нет.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора


Mike Sinkovsky
Зрелый участник форума

Зрелый участник форума

Зарегистрирован: 27.10.2005
Сообщения: 296
Откуда: Пермь

СообщениеДобавлено: Ср Янв 31, 2007 19:46    Заголовок сообщения: Ответить с цитатой

Не, вряд ли кому сейчас интересно обсуждать новый двоичный формат. Их уже столько напридумано - palm pdb (и его производные plucker и mobiocket), tcr..
Их придумывали когда память считали не килобайты. Сейчас не модно.
Ну придумаешь свой формат, нужно делать конвертор в него, где-то его запускать.. Тогда уж проще конвертировать в уже давно существующий и отработанный.

Вот обсудить читалку fb2 на жабе - интересно.
Вот это: http://vtd-xml.sourceforge.net видел? Имхо идеально подходит именно для этого случая. Оверхид по памяти не больше полутора от размера файла, скорость на порядок больше чем у DOM.
Если доступная память в районе пять-десять мегабайт (что по нынешним временам немного), то вполне может работать без тормозов даже на жабе.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


babaev
Новенький участник форума

Новенький участник форума

Зарегистрирован: 31.01.2007
Сообщения: 71
Откуда: Санкт-Петербург

СообщениеДобавлено: Ср Янв 31, 2007 23:06    Заголовок сообщения: Ответить с цитатой

Mike Sinkovsky
Я использую не построитель DOM, а некий аналог SAX-парсера, точнее StAX. У него вообще только буфер есть, который на сложных файлах увеличивается до 64 килобайт (больше пока не видел).

А если интересно обсудить - то всегда за. alex -жЫвотное- jdnevnik -точка- com.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора


Admin
Администратор информационного портала FB

Администратор информационного портала FB

Зарегистрирован: 11.06.2004
Сообщения: 1610
Откуда: Воронеж

СообщениеДобавлено: Чт Фев 01, 2007 0:01    Заголовок сообщения: Ответить с цитатой

babaev писал(а):
А хочется и на телефоны тоже.

Пардон, про телефоны я просмотрел. Тогда речь должна идти о формате, преобразованном из fb2 для ридера, работающего на телефоне? Ридер на яве? Тут, imho, проще выгрузить fb2 через xsl в отображаемый вариант с элементарным форматированием (бинарно, сжато?), а там просто тупо воспроизводить.
babaev писал(а):
Если кому-то кроме меня интересен именно формат чтения (он может быть по структуре похож на fb2, просто из него получаться и так далее) - я бы обсудил. Нет - значит нет.

babaev писал(а):
А если интересно обсудить - то всегда за. alex -жЫвотное- jdnevnik -точка- com.

Так вроде уже обсуждаем?

Добавлено спустя 7 минут 20 секунд:

P.S> 1. Чисто практично не изобретать велосипед, отталкиваться надо от fb2, есть обширные библиотеки, легко преобразовать.
2. Формат fb2 удобен для чтения, даже очень. Одна настройка отображения что стоит! Другое дело, что для телефона при его размерах экрана и памяти реализовать все это практически не возможно. Но это не проблема формата, это проблема железа.
3. Это интересно и теоретически и потому что еще не все имеют PDA или E-book, хотя боюсь, что постоянная часть обитателей форума читают исключительно с последних Laughing
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail


Marina_Ch
Постоянный участник форума

Постоянный участник форума

Зарегистрирован: 14.04.2006
Сообщения: 779
Откуда: Москва

СообщениеДобавлено: Чт Фев 01, 2007 0:09    Заголовок сообщения: Ответить с цитатой

Admin писал(а):
Ридер на яве? Тут, imho, проще выгрузить fb2 через xsl в отображаемый вариант с элементарным форматированием (бинарно, сжато?), а там просто тупо воспроизводить.
Проще, конечно... А еще проще - сконвертировать в хтмл, а потом ридманьяком его каким-нить. Wink Что велосипед изобретать - в субботу ставила мужу сестры явовскую читалку на телефон - проще фб2 конвертнуть, чесслово!
_________________
REB 1100, REB 1200, SE P910i
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


babaev
Новенький участник форума

Новенький участник форума

Зарегистрирован: 31.01.2007
Сообщения: 71
Откуда: Санкт-Петербург

СообщениеДобавлено: Чт Фев 01, 2007 0:40    Заголовок сообщения: Ответить с цитатой

Нет. То, что исходный формат - fb2, даже не интересно спорить. Как формат, в котором должны храниться книги в библиотеке - это почти идеал.

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

И именно из этих побуждений хочется сделать формат. Он будет нередактируемым. Хочется читать на ПК - можно конвертить на лету и "читать FB2". А хочется там, где плохо с памятью (тот же мобильник) - конвертим и читаем файл в этом формате.

Со временем телефоны и КПК - точно совместятся в одно. И непонятно, какие там будут возможности.

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

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


Marina_Ch
Постоянный участник форума

Постоянный участник форума

Зарегистрирован: 14.04.2006
Сообщения: 779
Откуда: Москва

СообщениеДобавлено: Чт Фев 01, 2007 0:56    Заголовок сообщения: Ответить с цитатой

babaev писал(а):
И именно из этих побуждений хочется сделать формат. Он будет нередактируемым. Хочется читать на ПК - можно конвертить на лету и "читать FB2". А хочется там, где плохо с памятью (тот же мобильник) - конвертим и читаем файл в этом формате.

Вот-вот, это интересно - как ты будешь делать обратное преобразование. Пока ситуация такова, что при преобразовании фб2-другой формат-фб2 результирующий фб2 сильно отличается от исходного. Удастся сделать идентичность первого и последнего с точностью до байта - флаг тебе в руки и банку с краской... Пока современные конвертеры этого не умеют, а все почти читалки преобразуют фб2 во что-то свое. И БД и Айсбукридер, и еще куча. И у каждого свой внутренний формат... Sad
_________________
REB 1100, REB 1200, SE P910i
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


babaev
Новенький участник форума

Новенький участник форума

Зарегистрирован: 31.01.2007
Сообщения: 71
Откуда: Санкт-Петербург

СообщениеДобавлено: Чт Фев 01, 2007 1:07    Заголовок сообщения: Ответить с цитатой

Marina_Ch
Не хочу я обратно преобразовывать. Я хочу читать прямо вот это, что преобразовал. Ещё раз. FB2 - для каталогизации и хранения. Новый формат - для чтения, когда каталог не нужен. Например:

- каталог - на компе. Там хороший каталогизатор, всё в FB2...
- взял, воткнул КПК. Отметил в каталоге: "Хочу читать это, это и этого автора это". Оно конвертнуло, и скинуло на КПК (телефон, iPod, iPhone, ляляля). Всё. Там - читаем и радуемся. Места занимает меньше. Ведь при чтении нам наплевать на все эти тэги (имеется в виду дескрипшн например) и всё остальное. Стили - сохранить очень просто получается. А память не резиновая. У меня на Acer N311 - 8 метров свободно после загрузки ОС и основных программ... Это разве много? Тут даже XML не всякий прочтешь с картинками.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора


Marina_Ch
Постоянный участник форума

Постоянный участник форума

Зарегистрирован: 14.04.2006
Сообщения: 779
Откуда: Москва

СообщениеДобавлено: Чт Фев 01, 2007 1:17    Заголовок сообщения: Ответить с цитатой

babaev писал(а):
И именно из этих побуждений хочется сделать формат. Он будет нередактируемым. Хочется читать на ПК - можно конвертить на лету и "читать FB2". А хочется там, где плохо с памятью (тот же мобильник) - конвертим и читаем файл в этом формате.

babaev писал(а):
Не хочу я обратно преобразовывать. Я хочу читать прямо вот это, что преобразовал.

???
Что-то я не догоняю... Sad
_________________
REB 1100, REB 1200, SE P910i
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


babaev
Новенький участник форума

Новенький участник форума

Зарегистрирован: 31.01.2007
Сообщения: 71
Откуда: Санкт-Петербург

СообщениеДобавлено: Чт Фев 01, 2007 1:28    Заголовок сообщения: Ответить с цитатой

Marina_Ch
Грубо.

Все нормальные читалки многоформатные - преобразуют всё что угодно во внутренний формат и его уже читают.

Предложение. Преобразовать и сохранить вот так. А потом считывать не исходный fb2, а этот, уже преобразованный. И читать его. Преобразовали один раз, и читаем.

Следующий шаг. Не нужно считывать весь файл для чтения (как это нужно при наличии fb2), нужно считывать только ту страницу, что читаем (как это возможно в "правильном формате" для чтения). Возможно с чуть-чуть до и после. Это позволит читать книжки на чем угодно, вплоть до совсем калькуляторов.

Зачем при этом преобразовывать ообратно? Оригинал FB2 - остается, никуда не девается.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора


Mike Sinkovsky
Зрелый участник форума

Зрелый участник форума

Зарегистрирован: 27.10.2005
Сообщения: 296
Откуда: Пермь

СообщениеДобавлено: Чт Фев 01, 2007 6:20    Заголовок сообщения: Ответить с цитатой

Все равно не понял зачем велосипед изобретать. Чем существующие велосипеды не устраивают? Plucker, TCR, .mobi смотрел?
Это если хочется на велосипеде.

Но лично я ни во что конвертировать точно не буду, если девайс не может сам скачать с фикшенбука или альдебарана и сразу читать - в сад такой девайс. Сейчас выбор большой. И будет увеличиваться (надеюсь).
Не буду я компьютер включать специально для запуска конвертора. Потому читаю в AlReader - он читает всё (что мне нужно).

По поводу парсеров - SAX и аналоги тут вообще не конкуренты, они структуру не хранят. Вот и приходится самому изобретать. А VTD создает индексированный двоичный xml в памяти, причем работает со скоростью сопоставимой с SAX. Потом по нему можно перемещаться вперед-назад, по закладкам и т.п. В общем все достоинства xml без недостатков DOM.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


Admin
Администратор информационного портала FB

Администратор информационного портала FB

Зарегистрирован: 11.06.2004
Сообщения: 1610
Откуда: Воронеж

СообщениеДобавлено: Чт Фев 01, 2007 7:59    Заголовок сообщения: Ответить с цитатой

Еще раз, для КПК новый формат не нужен. На КПК прекрасно читается fb2 ридерами Haali и AlReader.
Настройка отображения просто необходима - шрифт, цвет, элементы книги и выделения. Одно дело читать на LCD, другое на eInk. Да и в description я, например, нередко заглядываю. Так что для этих устройств никакого формата, кроме fb2 не надо и не будет востребован.
Так что тема касается только телефонов, да и то, для смартфонов уже есть тот же AlReader, который прекрасно читает fb2. Остаются дешевые телефоны без операционки. Вот о них и надо говорить.

Добавлено спустя 2 минуты:

Mike Sinkovsky писал(а):
А VTD создает индексированный двоичный xml в памяти, причем работает со скоростью сопоставимой с SAX.

Если разбирался, опиши особенности VTD в двух словах.

Добавлено спустя 3 минуты 10 секунд:

Вообще интересная тема - давай ветку новую создам.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.fictionbook.org -> FB - разработка и программирование Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group