Вопросы по плагинам

Форум для обсуждения деталей разработки программы SAS.Планета

Модераторы: vdemidov, Tolik

Какими бы Вы желали увидеть плагины к САСу?

В виде закрытых DLL, компилируемых автором плагина в каждом конкретном случае (требуется компилятор+все компоненты+сорцы+автор)
11
41%
В виде открытых скриптов, правящихся на стороне пользователя (требуется текстовый редактор+прямые руки)
15
56%
Мне как-то пофигу - как будет, так и хорошо
0
Ответы отсутствуют.
Другое (отпишусь ниже в теме)
1
4%
 
Всего голосов : 27

Вопросы по плагинам

Сообщение gpsMax » 20 июн 2011, 04:00

Несколько предварительных вопросов по предполагаемой реализации плагинов.

Предполагается ли делать плагины так же, как zmp - код в текстовом файле? Очень удобный механизм, имхо.

Кто всё-таки будет рисовать графику, поля ввода, и т.д.? И каким образом?

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

По поводу интерфейсов - я правильно понимаю, что плагины будут разбиты по типам, и у каждого типа будут чётко заданные входные и выходные параметры? Аналогично тем, что сделаны в zmp - GetURLBase, GetX, GetY, GetZ, ResultURL.

Чтобы не быть голословным, да и в качестве примера - давно хочу заняться поисковыми плагинами. От основной программы потребуется только строка с запросом. Тут начинается нюанс, поскольку там еще есть радиобуттоны, которые должны соответствовать наличествующим плагинам.

Допустим, программа должна сканировать при старте каталог поисковых плагинов и переделывать эту форму, выставляя радиобуттоны по списку. При выборе соответствующего радиобуттона строка передается соответствующему плагину. Замечательно. Вроде бы.

Дальше:
- Нужно скачать страничку. Причем, кодировка может быть как в Win1251, так и в UTF-8 и прочем юникоде. Кто, опять же, скачивает и как?
- Распарсить сохраненный файл из предыдущего пункта. Нужен, собственно, файл - путь к нему, причем, желательно или в качестве указателя, или как-то еще абстрактно, чтобы не иметь дело с дисками, путями, каталогами... Кстати, доступ к файловой системе напрямую - запретить, во избежание. По крайней мере, на запись точно. Вот еще не хватало, чтобы вирусы или rm-rf-шутки начали клепать на этой платформе.
- Передать координаты основной программе.
gpsMax
Постигающий Дао
 
Сообщения: 142
Зарегистрирован: 02 апр 2010, 23:58
Благодарил (а): 44 раз.
Поблагодарили: 9 раз.

Re: Вопросы по плагинам

Сообщение Parasite » 20 июн 2011, 08:26

gpsMax писал(а):Предполагается ли делать плагины так же, как zmp - код в текстовом файле? Очень удобный механизм, имхо.

Щас, ага.
Будут прекомпиленные бинарные а-ля ДЛЛки. :)
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5613
ICQ: 15819243
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 119 раз.
Поблагодарили: 439 раз.

Re: Вопросы по плагинам

Сообщение vdemidov » 20 июн 2011, 10:26

Parasite писал(а):
gpsMax писал(а):Предполагается ли делать плагины так же, как zmp - код в текстовом файле? Очень удобный механизм, имхо.

Щас, ага.
Будут прекомпиленные бинарные а-ля ДЛЛки. :)

Почему "а-ля ДЛЛки"??? Самые натуральные DLL написанные на любом языке программирования и скомпиленные COM-совместимым компилятором.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1685
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 135 раз.

Re: Вопросы по плагинам

Сообщение vdemidov » 20 июн 2011, 10:35

to gpsMax Вам сюда:
http://sasgis.org/wikisasiya/doku.php/pl ... plugintype:геокодирование

Радиобаттнов никаких не будет или будет но как-то по-другому чем сейчас. В любом случае задача плагина будет обработать поисковый запрос пользователя. Как он это будет делать исключительно плагина проблемы: куда качать, в какой кодировке, через какую прокси и тд. Программа будет обеспечивать некоторые сервисы (например планируется простой качальщик, которому можно скормить урл, а он вернет результат) и именно с обеспечением таких сервисов пока затык. Программа не готова их пока предоставлять, а без этого для каждого плагина придется слишком много огородов городить.
Рисовать окошки юзверю тоже прерогатива программы. Плагин живет в бекграунеде и неотсвечивает.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1685
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 135 раз.

Re: Вопросы по плагинам

Сообщение vasketsov » 20 июн 2011, 11:08

gpsMax писал(а):Предполагается ли делать плагины так же, как zmp - код в текстовом файле? Очень удобный механизм, имхо.

Этот механизм имеет столько много ограничений и сложностей в реализации, что делать плагины на его основе нецелесообразно ни по размеру программы, ни по скорости работы.

gpsMax писал(а):Нужно скачать страничку. Причем, кодировка может быть как в Win1251, так и в UTF-8 и прочем юникоде. Кто, опять же, скачивает и как?

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

gpsMax писал(а):Распарсить сохраненный файл из предыдущего пункта. Нужен, собственно, файл - путь к нему, причем, желательно или в качестве указателя, или как-то еще абстрактно, чтобы не иметь дело с дисками, путями, каталогами... Кстати, доступ к файловой системе напрямую - запретить, во избежание. По крайней мере, на запись точно. Вот еще не хватало, чтобы вирусы или rm-rf-шутки начали клепать на этой платформе.

Зачем собственно файл? Почему нельзя обойтись просто передачей содержимого скачанного файла (файлов) в плагин? Я например парсю html-ки с росреестра налету, без промежуточного сохранения в файл. Если много файлов (например, фреймы) - ну так и передавать их все (вот прямо как приходят с сервиса, так и отдавать, ну или пропускать всякие gif-ы), с возможностью плагину сказать "хватит, уже нашёл", и дальше коннект с сервисом рвётся.
Доступ к файловой системе вообще никакого отношения не имеет к сасу. Не надо постоянно работать под логином с рутовыми (админскими) правами, и ничего вирусы не сделают.

gpsMax писал(а):Передать координаты основной программе.

Это самое простое. Просто интерфейс типа SetXYZ.
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.

Re: Вопросы по плагинам

Сообщение Parasite » 20 июн 2011, 11:27

vdemidov писал(а):
Parasite писал(а):
gpsMax писал(а):Предполагается ли делать плагины так же, как zmp - код в текстовом файле? Очень удобный механизм, имхо.

Щас, ага.
Будут прекомпиленные бинарные а-ля ДЛЛки. :)

Почему "а-ля ДЛЛки"??? Самые натуральные DLL

Не знаю, лично я их в глаза еще не видал вообще ни в каком виде. Как официально появятся - так и пощщупаем, что за зверь.
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5613
ICQ: 15819243
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 119 раз.
Поблагодарили: 439 раз.

Re: Вопросы по плагинам

Сообщение gpsMax » 20 июн 2011, 16:12

vdemidov писал(а):В любом случае задача плагина будет обработать поисковый запрос пользователя. Как он это будет делать исключительно плагина проблемы: куда качать, в какой кодировке, через какую прокси и тд.

А вот это неправильно. Прокси должен задаваться один раз - в основной программе. Концепция, когда в каждом мелком плагине нужно будет выставлять его отдельно, ни разу не гибкая.
gpsMax
Постигающий Дао
 
Сообщения: 142
Зарегистрирован: 02 апр 2010, 23:58
Благодарил (а): 44 раз.
Поблагодарили: 9 раз.

Re: Вопросы по плагинам

Сообщение gpsMax » 20 июн 2011, 16:17

vasketsov писал(а):
gpsMax писал(а):Предполагается ли делать плагины так же, как zmp - код в текстовом файле? Очень удобный механизм, имхо.

Этот механизм имеет столько много ограничений и сложностей в реализации, что делать плагины на его основе нецелесообразно ни по размеру программы, ни по скорости работы.

Zmp ведь как-то работают. А они вызываются при скачивании каждого тайла.
Текстовый код изменять куда как удобнее и проще, чем компилить dll'ки.

vasketsov писал(а):
gpsMax писал(а):Распарсить сохраненный файл из предыдущего пункта. Нужен, собственно, файл - путь к нему, причем, желательно или в качестве указателя, или как-то еще абстрактно, чтобы не иметь дело с дисками, путями, каталогами... Кстати, доступ к файловой системе напрямую - запретить, во избежание. По крайней мере, на запись точно. Вот еще не хватало, чтобы вирусы или rm-rf-шутки начали клепать на этой платформе.

Зачем собственно файл? Почему нельзя обойтись просто передачей содержимого скачанного файла (файлов) в плагин? Я например парсю html-ки с росреестра налету, без промежуточного сохранения в файл.

Да, пожалуй, это намного более лучший вариант, чем я предложил. Хорошо, вместо файла передаем указатель на кусок текста в памяти.
gpsMax
Постигающий Дао
 
Сообщения: 142
Зарегистрирован: 02 апр 2010, 23:58
Благодарил (а): 44 раз.
Поблагодарили: 9 раз.

Re: Вопросы по плагинам

Сообщение vasketsov » 20 июн 2011, 17:47

gpsMax писал(а):Zmp ведь как-то работают. А они вызываются при скачивании каждого тайла

Нельзя заранее строить всю систему плагинов в предположении, что выполняться скрипты будут не слишком часто. По разу для тайла - это ерунда, но в принципе могут быть как плагины, требующие максимального быстродействия, так и очень сложные по исходному коду плагины.
Также немаловажно и то, что паскальскрипт по сути ненужный слой со своими ограничениями и косяками, причём весьма недетский по размеру, добавляемому к исполняемому файлу. И если будет возможность оставить в zmp только параметры сервиса, а всю логику перенести во внешние dll-ки, это будет только лучше.

gpsMax писал(а):Текстовый код изменять куда как удобнее и проще, чем компилить dll'ки

Это единственный плюс. Но если взглянуть на защищённость плагинов с точки зрения ковыряния кого попало в их коде, уж лучше пусть будут dll-ки, чесслово.

За это сообщение автора vasketsov поблагодарил:
vdemidov (20 июн 2011, 21:17)
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.

Re: Вопросы по плагинам

Сообщение Parasite » 20 июн 2011, 21:59

vasketsov писал(а):если будет возможность оставить в zmp только параметры сервиса, а всю логику перенести во внешние dll-ки, это будет только лучше.

Минус вся куча народу, не желающая\не могущая писать ДЛЛки - но сейчас худо-бедно научившаяся править zmp под свои нужды (а это это примерно 95% посетителей, а то и больше).
Минус их от их собственных сил -> плюс их всех сюда, на форум и на плечи разработчика через нытье во всевозможнейших темах (и на мои личные - при чистке этих тем). Так что первый введущий прекомпиленые плагины - будет ими всеми заниматься и впредь - а кому еще-то, особенно учитывая пункт ниже и общую закрытость сорцев вообще? Было бы величайшей ошибкой думать, что все пользователи САСа обладают знаниями\умениями\опытом\временем для написания собственного плагина. Я вот например этим тоже похвастать не могу, на Паскале в жизни не собрал ни единой программы, и вовсе не собираюсь его учить ради плагинов к САСу. Проще и много быстрее накатать локальный аналог этого плагина на скриптах (чем фича собственных плагинов в САСе приравняется к нулю) - и радоваться жизни.... Либо по пути наименьшего сопротивления - придти на форум, поныть разработчику и напрячь его на тему поправить багу, см.линк ниже.
Помножить на число пользователей САСа и на вероятность изменений логики работы на картосерверах взятых в своей массе. Проверочное действие: посчитать число активных авторов в теме "Помощь при написании плагинов" за год ее существования, соотнести с числом посетителей всего форума. При этом припомнить, что фичи АВТОобновления у САСа таки нет (у утили по ссылке ниже - и то есть, а нытье - все равно в наличии).

vasketsov писал(а):Нельзя заранее строить всю систему плагинов в предположении, что выполняться скрипты будут не слишком часто. По разу для тайла - это ерунда, но в принципе могут быть как плагины, требующие максимального быстродействия

Десятки, сотни и тысячи приложений юзают в составе себя скриптовую логику - совершенно прозрачно для пользователя, в том числе и в плане быстродействия. Ви токи удивитесь если узнаете, сколько приложений юзают скрипты - просто не сообщая об этом. В этом вашем Кризисе например монстры вон бегают по алгоритмам на LUA (через кои и поддаются всевозможным моддингам) - и ничего. 80% никсов вообще скриптовые - и тоже живее всех живых.

vasketsov писал(а):если взглянуть на защищённость плагинов с точки зрения ковыряния кого попало в их коде, уж лучше пусть будут dll-ки, чесслово.

Копирастия детектед.
Что-то мне подсказывает, что мы все тут до сего момента занимались ровно обратным: ковырялись кем попало в чужом коде мап-приложений, и были безмерно этим довольны.

От кого защищаться-то собираемся, коллега? Владельцы серверов просто немного изменят магнитное поле Земли поменяют алгоритмы на своей стороне - и все копии САСа разово отвалятся от скачки. Так было уже не раз. И если скрипт можно оперативно скорректировать на коленке и продолжить веселье не отходя от кассы, то за ДЛЛкой все хомяки выстроятся в очередь именно сюда. К Вам лично, коллега. Примеры? Сходите например в проект USD (прекомпиленные дельфовые плагины, закрытые сорцы, поддержка кучки удаленных серверов) и сделайте поиск на "помогите перестало работать ААААААА!!!". Все лимиты страниц там тоже учтите.
Лично я там тоже отметился, так как писать ДЛЛки под винду мало того что не собираюсь даже теоретически, а и просто нечем и не на чем. :)

vasketsov писал(а):причём весьма недетский по размеру

Целых 4Мб в сумме за всё (и это даже не заюзав тулзы типа UPX - после которого будет всего полтора, на весь САС). Действительно, совершенно неподьемно!

PS: я разумеется не хочу сказать что скрипты равны по скорости прекомпиленному приложению - я лишь хочу сказать, что скорости скриптов вполне достаточно для покрытия подавляющего большинства необходимостей и САСа, и его среднестатистического пользователя. Про удобство же скриптов (на прикладном пользовательском уровне) тут уже говорилось не раз и не два. САС-то мы делаем чтобы им удобно было именно пользоваться, а не взять Гиннесса по синтетической скорости скачки с Гугла например.
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение

За это сообщение автора Parasite поблагодарили: 2
gpsMax (20 июн 2011, 22:06) • VMatveev (17 окт 2011, 20:25)
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5613
ICQ: 15819243
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 119 раз.
Поблагодарили: 439 раз.

След.

Вернуться в Раздел для разработчиков программы SAS.Планета

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

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