Вопросы по плагинам
-
gpsMax
- Постигающий Дао
- Сообщения: 142
- Зарегистрирован: 02 апр 2010, 23:58
- Благодарил (а): 44 раза
- Поблагодарили: 9 раз
Вопросы по плагинам
Несколько предварительных вопросов по предполагаемой реализации плагинов.
Предполагается ли делать плагины так же, как zmp - код в текстовом файле? Очень удобный механизм, имхо.
Кто всё-таки будет рисовать графику, поля ввода, и т.д.? И каким образом?
Кто будет посылать TCP-запросы, скачивать странички и тайлы? Подозреваю, что плагины, тогда нужны какие-то механизмы для этого, чтобы не тонуть в низкоуровневом коде. (Кстати, как насчет субплагинов - "скачать файл по такому-то адресу", "просчитать время восхода солнца", да вплоть до "отрисовать окошко юзеру"?)
По поводу интерфейсов - я правильно понимаю, что плагины будут разбиты по типам, и у каждого типа будут чётко заданные входные и выходные параметры? Аналогично тем, что сделаны в zmp - GetURLBase, GetX, GetY, GetZ, ResultURL.
Чтобы не быть голословным, да и в качестве примера - давно хочу заняться поисковыми плагинами. От основной программы потребуется только строка с запросом. Тут начинается нюанс, поскольку там еще есть радиобуттоны, которые должны соответствовать наличествующим плагинам.
Допустим, программа должна сканировать при старте каталог поисковых плагинов и переделывать эту форму, выставляя радиобуттоны по списку. При выборе соответствующего радиобуттона строка передается соответствующему плагину. Замечательно. Вроде бы.
Дальше:
- Нужно скачать страничку. Причем, кодировка может быть как в Win1251, так и в UTF-8 и прочем юникоде. Кто, опять же, скачивает и как?
- Распарсить сохраненный файл из предыдущего пункта. Нужен, собственно, файл - путь к нему, причем, желательно или в качестве указателя, или как-то еще абстрактно, чтобы не иметь дело с дисками, путями, каталогами... Кстати, доступ к файловой системе напрямую - запретить, во избежание. По крайней мере, на запись точно. Вот еще не хватало, чтобы вирусы или rm-rf-шутки начали клепать на этой платформе.
- Передать координаты основной программе.
Предполагается ли делать плагины так же, как zmp - код в текстовом файле? Очень удобный механизм, имхо.
Кто всё-таки будет рисовать графику, поля ввода, и т.д.? И каким образом?
Кто будет посылать TCP-запросы, скачивать странички и тайлы? Подозреваю, что плагины, тогда нужны какие-то механизмы для этого, чтобы не тонуть в низкоуровневом коде. (Кстати, как насчет субплагинов - "скачать файл по такому-то адресу", "просчитать время восхода солнца", да вплоть до "отрисовать окошко юзеру"?)
По поводу интерфейсов - я правильно понимаю, что плагины будут разбиты по типам, и у каждого типа будут чётко заданные входные и выходные параметры? Аналогично тем, что сделаны в zmp - GetURLBase, GetX, GetY, GetZ, ResultURL.
Чтобы не быть голословным, да и в качестве примера - давно хочу заняться поисковыми плагинами. От основной программы потребуется только строка с запросом. Тут начинается нюанс, поскольку там еще есть радиобуттоны, которые должны соответствовать наличествующим плагинам.
Допустим, программа должна сканировать при старте каталог поисковых плагинов и переделывать эту форму, выставляя радиобуттоны по списку. При выборе соответствующего радиобуттона строка передается соответствующему плагину. Замечательно. Вроде бы.
Дальше:
- Нужно скачать страничку. Причем, кодировка может быть как в Win1251, так и в UTF-8 и прочем юникоде. Кто, опять же, скачивает и как?
- Распарсить сохраненный файл из предыдущего пункта. Нужен, собственно, файл - путь к нему, причем, желательно или в качестве указателя, или как-то еще абстрактно, чтобы не иметь дело с дисками, путями, каталогами... Кстати, доступ к файловой системе напрямую - запретить, во избежание. По крайней мере, на запись точно. Вот еще не хватало, чтобы вирусы или rm-rf-шутки начали клепать на этой платформе.
- Передать координаты основной программе.
- Parasite
- Администратор
- Сообщения: 5646
- Зарегистрирован: 23 окт 2008, 17:38
- Благодарил (а): 124 раза
- Поблагодарили: 508 раз
Re: Вопросы по плагинам
Щас, ага.gpsMax писал(а):Предполагается ли делать плагины так же, как zmp - код в текстовом файле? Очень удобный механизм, имхо.
Будут прекомпиленные бинарные а-ля ДЛЛки.
The only difference between me and a mad man is that I am not mad. /Salvador Dali/


- vdemidov
- Гуру
- Сообщения: 1687
- Зарегистрирован: 12 дек 2008, 13:10
- Откуда: Киев
- Благодарил (а): 191 раз
- Поблагодарили: 157 раз
Re: Вопросы по плагинам
Почему "а-ля ДЛЛки"??? Самые натуральные DLL написанные на любом языке программирования и скомпиленные COM-совместимым компилятором.Parasite писал(а):Щас, ага.gpsMax писал(а):Предполагается ли делать плагины так же, как zmp - код в текстовом файле? Очень удобный механизм, имхо.
Будут прекомпиленные бинарные а-ля ДЛЛки.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
- vdemidov
- Гуру
- Сообщения: 1687
- Зарегистрирован: 12 дек 2008, 13:10
- Откуда: Киев
- Благодарил (а): 191 раз
- Поблагодарили: 157 раз
Re: Вопросы по плагинам
to gpsMax Вам сюда:
http://sasgis.org/wikisasiya/doku.php/p ... одирование
Радиобаттнов никаких не будет или будет но как-то по-другому чем сейчас. В любом случае задача плагина будет обработать поисковый запрос пользователя. Как он это будет делать исключительно плагина проблемы: куда качать, в какой кодировке, через какую прокси и тд. Программа будет обеспечивать некоторые сервисы (например планируется простой качальщик, которому можно скормить урл, а он вернет результат) и именно с обеспечением таких сервисов пока затык. Программа не готова их пока предоставлять, а без этого для каждого плагина придется слишком много огородов городить.
Рисовать окошки юзверю тоже прерогатива программы. Плагин живет в бекграунеде и неотсвечивает.
http://sasgis.org/wikisasiya/doku.php/p ... одирование
Радиобаттнов никаких не будет или будет но как-то по-другому чем сейчас. В любом случае задача плагина будет обработать поисковый запрос пользователя. Как он это будет делать исключительно плагина проблемы: куда качать, в какой кодировке, через какую прокси и тд. Программа будет обеспечивать некоторые сервисы (например планируется простой качальщик, которому можно скормить урл, а он вернет результат) и именно с обеспечением таких сервисов пока затык. Программа не готова их пока предоставлять, а без этого для каждого плагина придется слишком много огородов городить.
Рисовать окошки юзверю тоже прерогатива программы. Плагин живет в бекграунеде и неотсвечивает.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Re: Вопросы по плагинам
Этот механизм имеет столько много ограничений и сложностей в реализации, что делать плагины на его основе нецелесообразно ни по размеру программы, ни по скорости работы.gpsMax писал(а):Предполагается ли делать плагины так же, как zmp - код в текстовом файле? Очень удобный механизм, имхо.
Очевидно, формировать запрос должен плагин и отдавать его программе, скачивает программа.gpsMax писал(а):Нужно скачать страничку. Причем, кодировка может быть как в Win1251, так и в UTF-8 и прочем юникоде. Кто, опять же, скачивает и как?
Хотя когда программа отдаёт запрос плагину на поиск (города), никакой уверенности, что скачка вообще будет и будет ли она через программу, быть не должно.
Вопрос с кодировкой на самом деле интересный, но это надо по факту решать, потому что абстрактно тут можно нагородить столько вариантов, что выбор языка страницы в промышленных веб-броузерах покажется лёгкой забавой.
Зачем собственно файл? Почему нельзя обойтись просто передачей содержимого скачанного файла (файлов) в плагин? Я например парсю html-ки с росреестра налету, без промежуточного сохранения в файл. Если много файлов (например, фреймы) - ну так и передавать их все (вот прямо как приходят с сервиса, так и отдавать, ну или пропускать всякие gif-ы), с возможностью плагину сказать "хватит, уже нашёл", и дальше коннект с сервисом рвётся.gpsMax писал(а):Распарсить сохраненный файл из предыдущего пункта. Нужен, собственно, файл - путь к нему, причем, желательно или в качестве указателя, или как-то еще абстрактно, чтобы не иметь дело с дисками, путями, каталогами... Кстати, доступ к файловой системе напрямую - запретить, во избежание. По крайней мере, на запись точно. Вот еще не хватало, чтобы вирусы или rm-rf-шутки начали клепать на этой платформе.
Доступ к файловой системе вообще никакого отношения не имеет к сасу. Не надо постоянно работать под логином с рутовыми (админскими) правами, и ничего вирусы не сделают.
Это самое простое. Просто интерфейс типа SetXYZ.gpsMax писал(а):Передать координаты основной программе.
- Parasite
- Администратор
- Сообщения: 5646
- Зарегистрирован: 23 окт 2008, 17:38
- Благодарил (а): 124 раза
- Поблагодарили: 508 раз
Re: Вопросы по плагинам
Не знаю, лично я их в глаза еще не видал вообще ни в каком виде. Как официально появятся - так и пощщупаем, что за зверь.vdemidov писал(а):Почему "а-ля ДЛЛки"??? Самые натуральные DLLParasite писал(а):Щас, ага.gpsMax писал(а):Предполагается ли делать плагины так же, как zmp - код в текстовом файле? Очень удобный механизм, имхо.
Будут прекомпиленные бинарные а-ля ДЛЛки.
The only difference between me and a mad man is that I am not mad. /Salvador Dali/


-
gpsMax
- Постигающий Дао
- Сообщения: 142
- Зарегистрирован: 02 апр 2010, 23:58
- Благодарил (а): 44 раза
- Поблагодарили: 9 раз
Re: Вопросы по плагинам
А вот это неправильно. Прокси должен задаваться один раз - в основной программе. Концепция, когда в каждом мелком плагине нужно будет выставлять его отдельно, ни разу не гибкая.vdemidov писал(а):В любом случае задача плагина будет обработать поисковый запрос пользователя. Как он это будет делать исключительно плагина проблемы: куда качать, в какой кодировке, через какую прокси и тд.
-
gpsMax
- Постигающий Дао
- Сообщения: 142
- Зарегистрирован: 02 апр 2010, 23:58
- Благодарил (а): 44 раза
- Поблагодарили: 9 раз
Re: Вопросы по плагинам
Zmp ведь как-то работают. А они вызываются при скачивании каждого тайла.vasketsov писал(а):Этот механизм имеет столько много ограничений и сложностей в реализации, что делать плагины на его основе нецелесообразно ни по размеру программы, ни по скорости работы.gpsMax писал(а):Предполагается ли делать плагины так же, как zmp - код в текстовом файле? Очень удобный механизм, имхо.
Текстовый код изменять куда как удобнее и проще, чем компилить dll'ки.
Да, пожалуй, это намного более лучший вариант, чем я предложил. Хорошо, вместо файла передаем указатель на кусок текста в памяти.vasketsov писал(а):Зачем собственно файл? Почему нельзя обойтись просто передачей содержимого скачанного файла (файлов) в плагин? Я например парсю html-ки с росреестра налету, без промежуточного сохранения в файл.gpsMax писал(а):Распарсить сохраненный файл из предыдущего пункта. Нужен, собственно, файл - путь к нему, причем, желательно или в качестве указателя, или как-то еще абстрактно, чтобы не иметь дело с дисками, путями, каталогами... Кстати, доступ к файловой системе напрямую - запретить, во избежание. По крайней мере, на запись точно. Вот еще не хватало, чтобы вирусы или rm-rf-шутки начали клепать на этой платформе.
Re: Вопросы по плагинам
Нельзя заранее строить всю систему плагинов в предположении, что выполняться скрипты будут не слишком часто. По разу для тайла - это ерунда, но в принципе могут быть как плагины, требующие максимального быстродействия, так и очень сложные по исходному коду плагины.gpsMax писал(а):Zmp ведь как-то работают. А они вызываются при скачивании каждого тайла
Также немаловажно и то, что паскальскрипт по сути ненужный слой со своими ограничениями и косяками, причём весьма недетский по размеру, добавляемому к исполняемому файлу. И если будет возможность оставить в zmp только параметры сервиса, а всю логику перенести во внешние dll-ки, это будет только лучше.
Это единственный плюс. Но если взглянуть на защищённость плагинов с точки зрения ковыряния кого попало в их коде, уж лучше пусть будут dll-ки, чесслово.gpsMax писал(а):Текстовый код изменять куда как удобнее и проще, чем компилить dll'ки
- Parasite
- Администратор
- Сообщения: 5646
- Зарегистрирован: 23 окт 2008, 17:38
- Благодарил (а): 124 раза
- Поблагодарили: 508 раз
Re: Вопросы по плагинам
Минус вся куча народу, не желающая\не могущая писать ДЛЛки - но сейчас худо-бедно научившаяся править zmp под свои нужды (а это это примерно 95% посетителей, а то и больше).vasketsov писал(а):если будет возможность оставить в zmp только параметры сервиса, а всю логику перенести во внешние dll-ки, это будет только лучше.
Минус их от их собственных сил -> плюс их всех сюда, на форум и на плечи разработчика через нытье во всевозможнейших темах (и на мои личные - при чистке этих тем). Так что первый введущий прекомпиленые плагины - будет ими всеми заниматься и впредь - а кому еще-то, особенно учитывая пункт ниже и общую закрытость сорцев вообще? Было бы величайшей ошибкой думать, что все пользователи САСа обладают знаниями\умениями\опытом\временем для написания собственного плагина. Я вот например этим тоже похвастать не могу, на Паскале в жизни не собрал ни единой программы, и вовсе не собираюсь его учить ради плагинов к САСу. Проще и много быстрее накатать локальный аналог этого плагина на скриптах (чем фича собственных плагинов в САСе приравняется к нулю) - и радоваться жизни.... Либо по пути наименьшего сопротивления - придти на форум, поныть разработчику и напрячь его на тему поправить багу, см.линк ниже.
Помножить на число пользователей САСа и на вероятность изменений логики работы на картосерверах взятых в своей массе. Проверочное действие: посчитать число активных авторов в теме "Помощь при написании плагинов" за год ее существования, соотнести с числом посетителей всего форума. При этом припомнить, что фичи АВТОобновления у САСа таки нет (у утили по ссылке ниже - и то есть, а нытье - все равно в наличии).
Десятки, сотни и тысячи приложений юзают в составе себя скриптовую логику - совершенно прозрачно для пользователя, в том числе и в плане быстродействия. Ви токи удивитесь если узнаете, сколько приложений юзают скрипты - просто не сообщая об этом. В этом вашем Кризисе например монстры вон бегают по алгоритмам на LUA (через кои и поддаются всевозможным моддингам) - и ничего. 80% никсов вообще скриптовые - и тоже живее всех живых.vasketsov писал(а):Нельзя заранее строить всю систему плагинов в предположении, что выполняться скрипты будут не слишком часто. По разу для тайла - это ерунда, но в принципе могут быть как плагины, требующие максимального быстродействия
Копирастия детектед.vasketsov писал(а):если взглянуть на защищённость плагинов с точки зрения ковыряния кого попало в их коде, уж лучше пусть будут dll-ки, чесслово.
Что-то мне подсказывает, что мы все тут до сего момента занимались ровно обратным: ковырялись кем попало в чужом коде мап-приложений, и были безмерно этим довольны.
От кого защищаться-то собираемся, коллега? Владельцы серверов просто
Лично я там тоже отметился, так как писать ДЛЛки под винду мало того что не собираюсь даже теоретически, а и просто нечем и не на чем.
Целых 4Мб в сумме за всё (и это даже не заюзав тулзы типа UPX - после которого будет всего полтора, на весь САС). Действительно, совершенно неподьемно!vasketsov писал(а):причём весьма недетский по размеру
PS: я разумеется не хочу сказать что скрипты равны по скорости прекомпиленному приложению - я лишь хочу сказать, что скорости скриптов вполне достаточно для покрытия подавляющего большинства необходимостей и САСа, и его среднестатистического пользователя. Про удобство же скриптов (на прикладном пользовательском уровне) тут уже говорилось не раз и не два. САС-то мы делаем чтобы им удобно было именно пользоваться, а не взять Гиннесса по синтетической скорости скачки с Гугла например.
The only difference between me and a mad man is that I am not mad. /Salvador Dali/

