Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
GribUser Автор формата FB2 - Автор библиотеки FB
Зарегистрирован: 30.09.2004 Сообщения: 2475 Откуда: Москва
|
Добавлено: Пт Мар 09, 2007 22:05 Заголовок сообщения: |
|
|
Чесгря написание обработки идущих непоследовательно тегов требует сильно меньше кода, чем настучали по этому поводу букф этом топике. Ну косяк небольшой в формате, ну да. По сравнению с разбором того же rtf это просто детский лепет, а не проблема.
Не проще сделать уже workaround, занести в мемориз "напомнить им перед выпуском третей версии о косяке" и закрыть вопрос? |
|
Вернуться к началу |
|
|
Alan Автор ридера Alreader и клона Haali
Зарегистрирован: 25.01.2005 Сообщения: 421
|
Добавлено: Пт Мар 09, 2007 22:34 Заголовок сообщения: |
|
|
Цитата: | Чесгря написание обработки идущих непоследовательно тегов требует сильно меньше кода, чем настучали по этому поводу букф этом топике |
... и сильно больше, для организации возможности правки текста того же самого фб2 при условии, что текст на экране и в файле идет в разной последовательности.
Цитата: | Не проще сделать уже workaround, занести в мемориз "напомнить им перед выпуском третей версии о косяке" и закрыть вопрос? |
ну так занеси в туду и закрывай тему. |
|
Вернуться к началу |
|
|
Admin Администратор информационного портала FB
Зарегистрирован: 11.06.2004 Сообщения: 1610 Откуда: Воронеж
|
Добавлено: Пт Мар 09, 2007 23:43 Заголовок сообщения: |
|
|
Понятно, в смысле, что твой моя не понимает.
Про древовидность или, если смущает мой термин, про treeview. В качестве ликбеза.
Все xml (да-да, форма, никто другое и не утверждает) - это текстовые документы. Все схемы, ее описывающие - это tree. Это к вопросу неадеквантности модели. Теперь книги. Все книги состоят из собственно книги, которая может делиться на тома, которые в свою очередь могут делится на части, которые делятся на главы, которые делятся на параграфы, которые делятся на структурные элементы типа формата. А это ничто иное, как дерево. Я не могу утверждать, что ридер должен обязательно парситься. Просто, для того, чтобы это утверждать, надо по крайней мере написать ридер, с использованием какого-либо парсера и доказать его живучесть.
Но с другой стороны обрабатывать документ, как xml, если он написан в форме xml - нет ничего более естественного. Гланды надо выдирать через горло. Что касается редакторов и библиотекарей - здесь, несомненно, надо работать только через DOM. Потому что легко, быстро и эффективно.
Что касается явы, дотнета и ООП, КОП, других новых платформ, то я встречал людей, которые считали себя крутыми программерами на том основании, что не признавали ничего, кроме, ассемблера и низкоуровнего С. Причём языками высокого уровня не пользовались принципиально, даже когда это было оправдано. Что скажешь - сами себе буратины. Надеюсь, ты не из таких. Но хочу заметить, что ява и, особенно, дотнет
обладают замечательными свойствами, которые, при их использовании позволяют создавать эффективные платформонезависимые программы. И иронии в адрес этих языков я не понимаю. Другое дело, что надо знать, где и когда какой язык и платформу применять.
Я не призываю тебя все бросать, и писать ридер через парсинг. Как тебе нравится, так и пиши. Они существуют и все мы ими пользуемся. Я, например, использую твой клон хаали. Более того, если не хочешь парсить дескрипшн, я думаю Дима поправит дескрипшн, чтобы его проще было использовать без парсинга, разумеется до той степени, чтобы не нарушить логику и удобство работы с библиотекой.
Но я не услышал, почему нельзя пропарсить дескрипшн и на этапе чтения сформировать обложку и титульный лист используя простой механизм доступа к элементам, причём вне зависимости от их местоположения в description.
Памяти много не понадобится, на быстродействие тоже особо не скажется...
Но спор, с одной стороны человека, не признающего стандартные методы работы с xml (видимо принципиально?) и желающего видеть документ в состоянии, близком к html, а с другой стороны человека, не пытавшегося написать ридер теряют смысл до тех пор, пока первый не научиться пользоваться схемой или второй не напишет ридер с парсингом.
Так шта....
Добавлено спустя 8 минут 50 секунд:
Последние два сообщения, когда писал, не видел, оказывается уже договорились. |
|
Вернуться к началу |
|
|
Alan Автор ридера Alreader и клона Haali
Зарегистрирован: 25.01.2005 Сообщения: 421
|
Добавлено: Сб Мар 10, 2007 1:00 Заголовок сообщения: |
|
|
Цитата: | Причём языками высокого уровня не пользовались принципиально, даже когда это было оправдано. Что скажешь - сами себе буратины. Надеюсь, ты не из таких. Но хочу заметить, что ява и, особенно, дотнет
обладают замечательными свойствами, которые, при их использовании позволяют создавать эффективные платформонезависимые программы. |
именно. при условии очень ограниченного времени на реализацию при условии отсутствия требований на быстродействие и памятижерство - всем радам цены нету и там они очень оправданы. Во всех других случаях им нет места.
Цитата: | Все книги состоят из собственно книги, которая может делиться на тома, которые в свою очередь могут делится на части, которые делятся на главы, которые делятся на параграфы, которые делятся на структурные элементы типа формата. А это ничто иное, как дерево |
угу, то что ты описал - не что иное как обычная линейная структура, которая должна обрабатываться максимально просто и быстро без какой либо избыточности и неоправданных затрат.
Цитата: | чтобы его проще было использовать без парсинга |
я так понимаю, что если человек рассказывает, что такое дерево, а потом использует термин, парсер, то он должен представлять, что такое парсер и что такое без парсинга, не так ли? Позволю себе заметить, что русский аналог слова парсер - это лексический анализатор, следовательно он (парсер) разбивает в данном случае текст на отдельные структурные элементы, которые в данном конкретном случае представляют параграфы и слилевые выделения. Согласен? Другими словами - если на экране есть разбивка на эти самые параграфы, присутствуют стилевые выделения, работа со сносками, картинками и т.д., то это однозначно указывает, что исходный набор данных (в нашем случае хмл файл) был обработан парсером, и говорить о какой-либо работе "без парсинга"... ну по меньшей мере странно, что-ли... Это так, в качестве ликбеза:) |
|
Вернуться к началу |
|
|
Admin Администратор информационного портала FB
Зарегистрирован: 11.06.2004 Сообщения: 1610 Откуда: Воронеж
|
Добавлено: Сб Мар 10, 2007 11:20 Заголовок сообщения: |
|
|
Alan писал(а): | я так понимаю, что если человек рассказывает, что такое дерево, а потом использует термин, парсер, то он должен представлять, что такое парсер и что такое без парсинга, не так ли? Позволю себе заметить, что русский аналог слова парсер - это лексический анализатор, следовательно он (парсер) разбивает в данном случае текст на отдельные структурные элементы, которые в данном конкретном случае представляют параграфы и слилевые выделения. Согласен? Другими словами - если на экране есть разбивка на эти самые параграфы, присутствуют стилевые выделения, работа со сносками, картинками и т.д., то это однозначно указывает, что исходный набор данных (в нашем случае хмл файл) был обработан парсером, и говорить о какой-либо работе "без парсинга"... ну по меньшей мере странно, что-ли... Это так, в качестве ликбеза |
Естесственно, я имел ввиду парсинг xml (обработка нодов и рекурсия по дочерним элементам), хотя понимаю, что лексический анализ - это тоже парсинг. |
|
Вернуться к началу |
|
|
Alan Автор ридера Alreader и клона Haali
Зарегистрирован: 25.01.2005 Сообщения: 421
|
Добавлено: Сб Мар 10, 2007 12:30 Заголовок сообщения: |
|
|
Цитата: | я имел ввиду парсинг xml (обработка нодов и рекурсия по дочерним элементам), |
все же думаю не стоило упирать на то же пресловутое дерево, так плавая в вопросе описания работы любого парсера. Обработка нодов и рекурсия - это и называется лексический анализ... Это с одной стороны. С другой - без рекурсии нельзя подавать на экран куски текста разных стилей параграфов (простой текст, заголовки и аннотации и т.д.) и стилей обычного текста. Так что рекурсия присутствует по определению. Обработка нодов - очень красивый термин. Именно этот термин подходит и описывает работу любого лексического анализатора. И почему в посте эти понятия разделены (естественно ноды и рекурсия, а не лексический анализ) не совсем понятно...
Кстати такая каша в той же терминологии, вполне возможно, является следствием использования "стандартных средств работы с хмл"... просто нет необходимости представлять как именно что может работать - зачем, указал имя файла, получил дерево... Отсюда и возникает разница - типа "парсинг хмл и лексический анализ" или "обработка хмл без парсинга"... Если будет время (и желание, естественно), можно просто на бумаге нарисовать кучу квадратиков и представить, что нужно для того, чтобы корректно разобрать ту же структуру фб2 на составляющие. Если получиться - станет ясно, что парсер хмл и лексический парсер (воспользуюсь этими определениями:)) - суть одно и то же. И там и там исходный массив разбивается на теги (лексемы) и получается какое-либо представление о всей структуре. Разница только в одном - можно сразу приводить хранящиеся структуры к виду, максимально готовому для вывода на экран, а можно хранить промежуточное дерево, которое потом разбирается отдельно и подготавливается для вывода на экран. Вот и вся разница. В первом случае я сразу знаю, что (к примеру) аннотация - это параграф, который выравнивается вправо, в нем запрещен перевод слов и весь текст по умочанию идет курсивом (но я сразу теряю информацию о том, что это именно аннотация, а не скажем эпиграф, который может иметь точно такой же стиль вывода), а во втором я сначала запоминаю, что весь этот кусок называется "аннотация", а потом я при выводе вывожу кусок "аннотация" курсивом как параграф, выровненный вправо, с запрещением переноса слов. Так к чему это я - мне не хочеться внедрять в программу промежуточный и лишний уровень абстракции - я работаю с вполне конкретным типом хмл, мне не нужен универсализм и прочее для решения данной конкретной задачи. Именно с этой точки зрения перестановка двух каких-либо тегов местами - это по сути своей - введение лишнего уровня абстракции, пусть даже в виде всего лишь двух лишних переменных. Не говоря конечно о проблемах с правкой текста, которая работает именно основываясь на том, что текст на экране, раположен в файле в той же последовательности. |
|
Вернуться к началу |
|
|
Admin Администратор информационного портала FB
Зарегистрирован: 11.06.2004 Сообщения: 1610 Откуда: Воронеж
|
Добавлено: Сб Мар 10, 2007 14:52 Заголовок сообщения: |
|
|
Ну не стоит так уж на основание неточности формулировок обвинять в не компетенции. Вся моя не компетенция сводится к тому, что я не знал (теперь догадываюсь), как ты обрабатываешь документ.
Что касается рисования квадратиков, то мне нет необходимости рисовать их, я написал в свое время работающий модуль парсинга fb2 (фактически оболочку для msxml, выполняющую необходимые для fb2 дополнительные функции), который Дима Пустовит использовал в своем Библиотекаре. Именно, fb2, а не xml, в котором можно взять (get) полный элемент, например, аннотацию со всеми стилями и использовать ее для дальнейшей обработки.
Что касается лексического парсера, то они бывают разные. В свое время я писал лексические парсеры, которые обрабатывали логи для получения той или иной информации, в частности для выставления счета за электронные письма полученные из зарубежья или России (в далекие времена, когда не было еще Интернет в том виде, что сейчас, за электронные письма надо было платить, причем цена зависела от страны, откуда оно пришло). Так вот, там не было никакой рекурсии (не нужна она была): поиск подстрок, приведение к виду, удобному для обработки биллингом.
Ладно, не буду цепляться за то, что аннотация это не параграф, их может быть и несколько. Хочу просто подвести итог, что когда была сброшена спесь , выяснилось, что обработку документа мы понимаем одинаково. Разница лишь в том, что я работаю не в таких тесных условиях и использую для парсинга DOM и собственную оболочку, а тебе экономя время и место (что естесственно для мобильных устройств) приходится писать свой, но основанный на той же обработки дерева, и суть спора сразу улетучилась .
Кстати, правка в DOM решается очень просто, на основе XPoint/XPath |
|
Вернуться к началу |
|
|
Alan Автор ридера Alreader и клона Haali
Зарегистрирован: 25.01.2005 Сообщения: 421
|
Добавлено: Сб Мар 10, 2007 15:23 Заголовок сообщения: |
|
|
Цитата: | Вся моя не компетенция сводится к тому, что я не знал (теперь догадываюсь), как ты обрабатываешь документ.
|
понятно... бестолку писал. Нет обработки "как ты" или "как я". Есть обработка тегов и разные варианты хранения полученных результатов. Сами по себе парсеры разбора исходного материала вполне адекватны и могут отлдичаться лишь в деталях.
Цитата: | Ладно, не буду цепляться за то, что аннотация это не параграф, их может быть и несколько |
то же самое... аннотация - это параграф (или набор параграфов) на экране со своим стилем отображения. Несколько аннотаций - несколько параграфов (или несколько наборов). Это конечный результат. Все остальное зависит только от уровня лишних абстракций и, по сути своей, избыточно в случае если конкретный вариант хмл-я четко и полностью формализован, что, с незначительными расхождениями, мы и имеем в случае фб2.
Цитата: | Хочу просто подвести итог, что когда была сброшена спесь |
мне тоже всегда казалось, что если при обсуждении книг не использовать обороты типа
Цитата: | Или мы не понимаем разницы между форматом разметки текста и форматом разметки структуры документа. Причем, заметьте, - древовидного формата | , то все будет гораздо проще и осмысленней. Рад, что ты тоже к этому пришел.
Цитата: | а тебе экономя время и место (что естесственно для мобильных устройств) приходится писать свой |
мне не приходиться. мне нравиться писать такие парсеры. Весь алридер по своей сути полигон для таких экспериментов, чтение книг при этом - лишь задача, придающая какой-то материальный смысл проекту с одной стороны и совмещение двух хобби (второе - сам процесс чтения) в одно целое, с другой. Впрочем, это лирика, не имеющая отношения к теме.
Цитата: | Кстати, правка в DOM решается очень просто, на основе XPoint/XPath |
я с радостью, для самообразования, выслушаю алгоритм правки непосредственно на реальном устройстве. Желательно сравнительный алгоритм (сравнительный - сравнивать по затратам памяти, бог с ним с процессором...)... Если не сравнивать по затратам, то да, вполне себе способ стрелять из пушки по воробьям, собственно, почему бы и не стрелять, ведь инструмент должен быть универсален и единообразен, что для танка, что для воробья:)))...
ЗюЫю Цитата: | Ну не стоит так уж на основание неточности формулировок обвинять в не компетенции |
Я, возможно к сожалению но, не знаю другого способа оценивать компетенцию человека, в общении с которым я могу читать только то, что он пишет. Кроме формулировок ничего вроде и нет... Можно конечно по изображению на аватаре, или по корреляции фазы луны и количества написанных сообщений, но...
Все же замечу, что обвинениями я не занимался, а лишь высказал предположение, в конце концов именно на этом форуме я как то раз с интересом прочел, что (не цитата, но смысл передан точно - выделения болдом - мои)
Цитата: | главный недостаток читалки, это то что ее автор не хочет разбираться со схемой | ... А после того, что недостатком читалки является ее автор (да утрирую, но почему нет? Это вполне в традициях данного форума), мне очень нравиться предполагать... То же лирика... после прочтения можно потереть:))))
Добавлено спустя 7 минут 15 секунд:
Кстати по поводу правки и ее организации - если кому есть что сказать, наверное стоит открыть новый топик, тема все же очень интересная... Как точку опоры взять тот же существующий пока тестовый вариант алридера с правкой... Я сам правкой врядли когда займусь, может я что-то пропускаю в реализации из, кому-то, очевидного... |
|
Вернуться к началу |
|
|
Admin Администратор информационного портала FB
Зарегистрирован: 11.06.2004 Сообщения: 1610 Откуда: Воронеж
|
Добавлено: Сб Мар 10, 2007 15:40 Заголовок сообщения: |
|
|
Alan писал(а): | мне нравиться писать такие парсеры |
А мне нравится писать парсеры, используя всю мощь xml
Ладно, тема себя исчерпала, точки над i расставили. Закрываю. |
|
Вернуться к началу |
|
|
GribUser Автор формата FB2 - Автор библиотеки FB
Зарегистрирован: 30.09.2004 Сообщения: 2475 Откуда: Москва
|
Добавлено: Сб Мар 10, 2007 16:13 Заголовок сообщения: |
|
|
И вот же не лень им бодаться... |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group
|