OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 12 Декабрь, 2019 00:41

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 75 ]  На страницу Пред.  1, 2, 3, 4  След.

Нужны ли Вам инструменты для работы с XML в вашей деятельности?
Да 64%  64%  [ 23 ]
Нет 36%  36%  [ 13 ]
Всего голосов : 36
Автор Сообщение
СообщениеДобавлено: Среда, 04 Июнь, 2008 12:30 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8215
Откуда: Троицк, Москва
Ярослав Романченко писал(а):
... Вообще за Flash баннеры вбывав-бы :twisted:...

Флэшу -- бойкот. Не устанавливать. Потерпеть Роллан Гаррос без флэша. В этом году они уже научились делать альтернативу из чистого html.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 04 Июнь, 2008 12:31 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Ярослав Романченко писал(а):
Оперу запросто мог повесить Flash баннер на какой-то из закладок. То-ли баннеры кривые попадаются, то-ли плагин глючный. Вообще за Flash баннеры вбывав-бы :twisted:


Именно SVG - проверено экспериментально. И меня вообще по умолчанию флэш и картинки отключены. Собственно вот (4 мб)

(02.08.2011, модератор) ветка про Strings выделена в отдельную тему: viewtopic.php?f=90&t=3524


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 04 Июнь, 2008 13:04 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2933
Откуда: г. Ярославль
Иван Горячев писал(а):
...Собственно вот (4 мб)


Да, у меня Опера 9.26, на нём падает. Но InkScape открыл картинку нормально, хотя и ме-е-едленно. Так что не в формате дело.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 04 Июнь, 2008 20:15 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2638
Откуда: Россия, Ярославль
Про SVG:

Слепил в InkScape простенький SVG, пропустил через парсер Xmlcore(прочитал в XMLДокумент, записал из XMLДокумента) и открыл обратно в InkScape - файл открылся корректно. Что радует.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 05 Июнь, 2008 09:23 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4361
Откуда: Россия, Орёл
Petryxa писал(а):
Ммм. Было бы неплохо. Ну тогда сообщите пожалуйста параметры SVN репозитория.

Сообщите мне имя пользователя - пароль личным сообщением. Остальные параметры сообщу чуть позже.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 09 Июнь, 2008 14:11 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2638
Откуда: Россия, Ярославль
Dom + Xmlcore
В архиве последняя версия, чтобы быть иметь хоть какую то синхронизованность.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 10 Июнь, 2008 00:25 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4361
Откуда: Россия, Орёл
Petryxa писал(а):
Dom + Xmlcore
В архиве последняя версия, чтобы быть иметь хоть какую то синхронизованность.

Товарищи, прошу прощения, завтра (уже сегодня) к середине дня вопрос с репозиторием будет решён.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 10 Июнь, 2008 13:09 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2638
Откуда: Россия, Ярославль
Да ну что вы, в самом деле не стоит...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 10 Июнь, 2008 13:56 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Стоит-стоит. У ББ так мало разработчиков, что любые способы концентрации усилий можно только приветствовать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 10 Июнь, 2008 14:17 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2638
Откуда: Россия, Ярославль
Иван Горячев писал(а):
Стоит-стоит. У ББ так мало разработчиков, что любые способы концентрации усилий можно только приветствовать.

Да я про извинения говорил :) Репозиторий конешно нужОн, без него как-то некомфортно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 11 Июнь, 2008 16:18 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4361
Откуда: Россия, Орёл
Друзья, ещё раз прошу прощения за задержку. Иван, вы знаете, где SVN. Именно там - новый каталог Components. Petryxa, для вас сейчас личное сообщение будет. Остальные, кто хочет присоединиться к разработке: имя пользователя, пароль личным сообщение мне. Желающим просто понаблюдать, придётся немного обождать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 14 Июнь, 2008 04:51 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Просьба к тем, кто будет править через SVN - перейдите на ББ 1.6 или не пишите по-русски, иначе мне придётся постоянно конвертировать документы (в ББ 1.6 русские буквы, набранные в предыдущих версиях, выглядят кракозябрами).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 14 Июнь, 2008 06:36 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8215
Откуда: Троицк, Москва
Иван Горячев писал(а):
в ББ 1.6 русские буквы, набранные в предыдущих версиях, выглядят кракозябрами


перенес вопрос сюда: viewtopic.php?f=3&t=1025


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 14 Июнь, 2008 09:56 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2638
Откуда: Россия, Ярославль
Иван Горячев в оффтопной ветке писал(а):
Пётр Кушнир писал(а):
Ну, тесты разные бываютЪ.

Подозреваю Vlad имел ввиду этот тест. Спасибо Владу, пошёл скачал и проверил. Не, ещё работать и работать, чтобы он хотя бы valid ветки проходил

Усё это оффтоп, давайте куда-нибудь в другое место


Вот, перенёс в другое место...
Подозреваю, Vlad не имел в виду этот тест. Но штука полезная. Нет смысла тестировать на таком тесте, если не все функции парсера ещё реализованы(там же сплошь DTD). Посмотрите в модуль Parser, сколько методов там закомментировано. Есть мнение, нужно их до-портировать сначала.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 15 Июнь, 2008 22:38 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2638
Откуда: Россия, Ярославль
Появилась идея переделать модули XmlcoreScanner и XmlcoreWriter в виде абстрактных интерфейсов со скрытой реализацией. Сейчас всё это выглядит как что-то непонятное, с привязкой к типам из Files.

План такой.
Вообщем по модулю XmlcoreScanner: Описать абстрактную фабрику объектов.
Reader(курьер чтения): Описать абстрактный тип Reader, c набором методов, необходимых Сканнеру. В реализации Reader инкапсулировать Stores.Reader(или, в будущем, какой-нибудь другой Reader).
Для Scanner: Scanner.r объявить типа Reader. Scanner.ConnectTo также переделать, чтобы сканнер присоединялся к Reader, а НЕ к Files.File, как сейчас.
Остаётся нерешённым, как Reader присоединять к источнику данных. Я думаю, подойдёт метод фабрики dir.NewReader(source : ANYPTR). Тогда реализация Reader будет сама приводить тип к "своему" типу источника данных. Также потребуется незначительная модификация XmlcoreParser

Вообщем по модулю XmlcoreWriters: Переименовать XmlcoreWriters в XmlcoreFormatter. Переименовать тип Writer в Formatter.
Writer(курьер записи): Описать абстрактный тип Writer и методы, необходимые для Formatter. Присоединение к источнику данных сделать аналогично как в Reader, через метод фабрики, передавая указатель неопределённого типа.
Для Formatter: Присоединять Formatter к Writer, а НЕ к Files.File, как сейчас.
Также потребуется незначительная переделка Generator.

Вот примерный код:
Код:
MODULE XmlcoreScanner;
TYPE

   Reader = POINTER TO ABSTRACT RECORD
      <some fields>
   END;

   StdReader = POINTER TO RECORD (Reader)
      <some fields>
      rider : Stores.Reader;
   END;

   Scanner = POINTER TO RECORD
      <some fields>
      rider- : Reader;
   END;
   
   Directory = POINTER TO ABSTRACT RECORD END;   
   
   PROCEDURE (rd : Reader) ConnectTo(source : ANYPTR), NEW, ABSTRACT;
   
   PROCEDURE (rd : StdReader) ConnectTo(source : ANYPTR);
   BEGIN
      ASSERT(source IS Stores.Reader) (* ну, или в зависимости от типа предпринимать действия *)
      rd.rider := source;
      <some actions>
   END ConnectTo;
   
   PROCEDURE (d : Directory) NewScanner(reader : Reader), NEW, ABSTRACT;
   PROCEDURE ((d : Directory) NewReader(source : ANYPTR), NEW, ABSTRACT;
   
   (* При работе нужно будет сделать что-то типа: *)
   
   XmlcoreScanner.dir.NewScanner(XmlcoreScanner.dir.NewReader(source));

Код:
MODULE XmlcoreFormatter;

TYPE

   Writer = POINTER TO ABSTRACT RECORD
      <some fields>
   END;
   
   StdWriter = POINTER TO RECORD (Reader)
      <some fields>
      rider : Stores.Writer;
   END;

   Formatter = POINTER TO RECORD
      <some fields>
      rider- : Writer;
   END;
   
   Directory = POINTER TO ABSTRACT RECORD END;   
   
   PROCEDURE (wr : Writer) ConnectTo(source : ANYPTR), NEW, ABSTRACT;
   
   PROCEDURE (wr : StdWriter) ConnectTo(source : ANYPTR);
   BEGIN
      ASSERT(source IS Stores.Writer) (* типы выдуманные, названия могут несовпадать*)
      wr.rider := source;
      <some actions>
   END ConnectTo;
   
   PROCEDURE (d : Directory) NewFormatter(writer : Writer), NEW, ABSTRACT;
   PROCEDURE ((d : Directory) NewWriter(source : ANYPTR), NEW, ABSTRACT;
   
   (* При работе нужно будет сделать что-то типа: *)
   
   XmlcoreFormatter.dir.NewFormatter(XmlcoreFormatter.dir.NewWriter(source));


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 15 Июнь, 2008 23:30 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4539
Откуда: Россия, Орёл
Пётр Кушнир писал(а):
Появилась идея переделать модули XmlcoreScanner и XmlcoreWriter в виде абстрактных интерфейсов со скрытой реализацией. Сейчас всё это выглядит как что-то непонятное, с привязкой к типам из Files.
А планируется несколько реализаций парсера? И возможность подмены реализации во время работы ББ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 16 Июнь, 2008 07:54 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Пётр Кушнир писал(а):
Основной затык скорости приходился на посимвольный набор строки, с посимвольным выделением памяти...


А может просто избавиться от посимвольного набора строки? :) Я вот недавно прототипчик писал, который как раз интенсивно со строками работает (что-то типа индексирования текста). Прототип заработал, но работал очень тормозно даже для прототипа. После анализа в ряде мест "обычные" строки были заменены "специальными", которые "внутри" представляли собой константные итераторы (да-да, те самые итераторы! :) ) по существующему тексту. Скорость выросла более чем на порядок.

P.S. Это не реклама итераторов :) Это предложение взглянуть на задачу с позиции выше, чем "как максимально оптимизировать посимвольный набор строки".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 16 Июнь, 2008 10:28 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2638
Откуда: Россия, Ярославль
Евгений Темиргалеев писал(а):
А планируется несколько реализаций парсера? И возможность подмены реализации во время работы ББ?

Ну, например, можно получать XML данные не с диска, а из сети... написать jabber-клиент на ББ например(идея-фикс :)). В случае абстрактной реализации потребуется только подменить Reader и Writer а остальные части останутся прежними.
Я пока говорил только про абстрактные курьеры, но можно абстрагировать и весь парсер... Например, если кто-то захочет использовать готовую обёрнутую библиотеку :evil:
Vlad писал(а):
P.S. Это не реклама итераторов Это предложение взглянуть на задачу с позиции выше, чем "как максимально оптимизировать посимвольный набор строки".

В таком случае нужно ещё и строки абстрагировать... :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 16 Июнь, 2008 12:00 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4539
Откуда: Россия, Орёл
Пётр Кушнир писал(а):
Я пока говорил только про абстрактные курьеры, но можно абстрагировать и весь парсер...
Нда, плохо читал...
Пётр Кушнир писал(а):
Vlad писал(а):
P.S. Это не реклама итераторов Это предложение взглянуть на задачу с позиции выше, чем "как максимально оптимизировать посимвольный набор строки".

В таком случае нужно ещё и строки абстрагировать... :)
Абстрагировать - не обязательно. Про такой подход читал, кажется, в статье про Coco/R. Там говорилось, что раз памяти стало много, можно целиком текст модуля грузить в память и вместо таблиц идентификаторов хранить их в виде ссылок на текст (pos, len).

Однако, применим ли этот подход к xml-файлам, вопрос. Какого размера на практике может попасться xml-файл?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 16 Июнь, 2008 14:17 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2638
Откуда: Россия, Ярославль
Евгений Темиргалеев писал(а):
Однако, применим ли этот подход к xml-файлам, вопрос. Какого размера на практике может попасться xml-файл?
Так сразу и не скажешь, на моём компьютере я нашёл размеры ~1 кбайт до 4 мегабайт причём размеры распределены довольно равномерно на всём промежутке, вот здесь товарищ говорит о 6 мегабайтном файле, в XML-БД "Седна"(как-то так) вообще размер неопределённо большой может быть... Можно ориентироваться на 4-х мегабайтный файл, который в наличии.

Самое неприятное то, что в DOM строки всё равно ДОЛЖНЫ хранится как массив символов(ну или указатель на массив, в случае BlackBox это неважно).
Тогда, если организовыать список строк в памяти, то нужно будет переделать Dom так, чтобы в качестве входных параметров методов узлов выступали указатели на строки, а не сами строки... Это будет очень полезно в плане производительности, потому как строка с содержимым будет создаваться только один раз в парсере, а основная работа будет происходить с указателем на неё... Но это создаст некоторые неудобства при прямой работе с самим DOM. Например простой метод SetNodeValue('value') превратится в SetNodeValue(CreateDynString('value')); Хотя, стандарт не запрещает просто ввести новый метод SetNodeDynValue(val : POINTER TO ARRAY OF CHAR).


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 75 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB