Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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
Зарегистрирован: 11.06.2004 Сообщения: 1610 Откуда: Воронеж
|
Добавлено: Ср Янв 31, 2007 15:07 Заголовок сообщения: |
|
|
babaev писал(а): | ам формат (ссылки, изображения) - подразумевает произвольный доступ к файлу, а не последовательный. В результате чего нужно придумывать всякие решения (порой достаточно нетривиальные) для того, чтобы читать fb2 напрямую при ограничениях памяти/скорости процессора (например, телефоны) |
Тривиальней некуда - через DOM на Яве. А новый формат чтения - это тема другого сайта |
|
Вернуться к началу |
|
|
Gremlin Зрелый участник форума
Зарегистрирован: 14.02.2005 Сообщения: 155
|
Добавлено: Ср Янв 31, 2007 15:57 Заголовок сообщения: Re: Читалка + вопросы про чтение fb2 |
|
|
babaev писал(а): | В процессе возникла интересная проблема, которую хочется обсудить.
Дело в том, что FB2 - великолепный формат для библиотеки. Он отлично индексируется, имеет все нужные атрибуты книжки и так далее. Но для чтения он, скажем прямо, не подходит: |
А как же прочие читалки справляются?.. если не подходит.
Так что наверное правильнее сказать что-то вроде "имеются неудобства".
babaev писал(а): | - обычно читаются зазипованные книжки. Зип используется обычный, не потоковый. Значит нужно распаковать прежде чем читать. |
Странно, а я всегда думал, что блочный zip вместо потокового gzip'а используется как раз для того, чтобы можно было декомпрессировать текст поблочно.
babaev писал(а): | - сам формат (ссылки, изображения) - подразумевает произвольный доступ к файлу, а не последовательный. В результате чего нужно придумывать всякие решения (порой достаточно нетривиальные) для того, чтобы читать fb2 напрямую при ограничениях памяти/скорости процессора (например, телефоны) |
Наиболее правильным видится вариант сканирования текста (причем поблочно - ради чего и полезен именно zip, или dictzip ...) и построение его структуры (кстати именно так и получается оглавление), а затем уже используется частичное считывание в память нужного фрагмента.
babaev писал(а): | Есть предложение. Наряду с fb2, как форматом каталогизации книг, придумать формат для чтения книг. Предполагаю, что это должен быть некий бинарный формат, ко всему прочему сжатый потоковым архивом (тем же блочным зипом например). |
Имхо fb2 все-таки задуман именно как универсальный формат, позволяющий не только каталогизировать книги, но и легко их редактировать, получать другие форматы... и использоваться в читалках.
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
Зарегистрирован: 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, хотя боюсь, что постоянная часть обитателей форума читают исключительно с последних |
|
Вернуться к началу |
|
|
Marina_Ch Постоянный участник форума
Зарегистрирован: 14.04.2006 Сообщения: 779 Откуда: Москва
|
Добавлено: Чт Фев 01, 2007 0:09 Заголовок сообщения: |
|
|
Admin писал(а): | Ридер на яве? Тут, imho, проще выгрузить fb2 через xsl в отображаемый вариант с элементарным форматированием (бинарно, сжато?), а там просто тупо воспроизводить. | Проще, конечно... А еще проще - сконвертировать в хтмл, а потом ридманьяком его каким-нить. Что велосипед изобретать - в субботу ставила мужу сестры явовскую читалку на телефон - проще фб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 во что-то свое. И БД и Айсбукридер, и еще куча. И у каждого свой внутренний формат... _________________ 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 писал(а): | Не хочу я обратно преобразовывать. Я хочу читать прямо вот это, что преобразовал. |
???
Что-то я не догоняю... _________________ 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
Зарегистрирован: 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 секунд:
Вообще интересная тема - давай ветку новую создам. |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group
|