Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M |
![]() ![]() |
Топик располагается на нескольких страницах: ←Ctrl назад 1 [2] 3 4 вперед Ctrl→ все |
DAiMor Member Откуда: Volzhsky -> Moscow -> CZ, Brno -> Moscow Сообщений: 2633 |
|
||
15 окт 15, 10:41 [18281490] Ответить | Цитировать Сообщить модератору |
AlexKB Member Откуда: Запорожье Сообщений: 810 |
DAiMor, Увы, в %ZSTART область для нового подключения не всегда видна. |
15 окт 15, 10:59 [18281599] Ответить | Цитировать Сообщить модератору |
servit Member Откуда: г. Кишинёв, Республика Молдова Сообщений: 3117 Блог |
|
||
15 окт 15, 11:36 [18281828] Ответить | Цитировать Сообщить модератору |
Alexey Maslov Member Откуда: СПб Сообщений: 1547 |
Предложение по улучшению API по работе с глобалами. Начиная с 2015.1, появился метод %Library.GlobalEdit::GetGlobalSizeBySubscript(). Прогрессивная общественность это приветствовала, но оказалось, что размер в MB получается простым умножением размера в блоках на их кол-во. Поэтому пользоваться методом для обсчёта небольших подглобалов практически бессмысленно, слишком велика погрешность. Между тем, утилита %GSIZE отлично справляется с этим. Код внутри неё, естественно, совсем другой. Предложение: упрятать этот (правильный) код внутрь метода класса, сделав функционал точного обсчёта подглобалов доступным программистам. Для обратной совместимости в сигнатуру метода можно добавить аргумент "считать быстро т.е. по-старому". |
15 окт 15, 12:38 [18282164] Ответить | Цитировать Сообщить модератору |
AlexKB Member Откуда: Запорожье Сообщений: 810 |
Интересно, и что же такого Вы хотите увидеть в этом коде..? Вопрос обсуждения ведь состоит не в моем коде. Я ведь не ставил вопрос таким образом, мол помогите решить проблему. Я ставил вопрос о желательном развитии функционала в том направлении, что заявил. Я вижу его полезность в будущем для решения некоторых вопросов, я их озвучил. Вы же (я имею ввиду не Вас лично) мне предлагаете некоторые частные решения, которые на Ваш взгляд могли бы явиться альтернативой. Я привожу свои доводы, оппоненты, кроме единственного не привели - у разработчиков нет времени. Если бы Вы привели довод такого плана, что дополнительная проверка в момент разрешения регистрации в Каше увеличит время регистрации на 5% (а это было бы недопустимым с моей точки зрения), или появятся другие накладные расходы, что это приведет к иным последствиям там-то и там-то, тогда да, есть над чем подумать, мол стоит ли овчинка выделки. А так, если появление предлагаемой мной функциональности никоим образом не отразится на работе систем, построенных и проектируемых на базе Каше моими оппонентами, то получается, что обратных доводов у Вас просто нет. Вот Алексей Маслов высказал свое пожелание, я его вполне поддерживаю - разумно иметь единый механизм решения вопроса, но двумя способами (или быстро, или точно - решает пользователь). Но ведь на сегодняшний день есть пути решения, зачем чего-то переделывать специалистам Интерсистемс? Но я за переделку, это было бы разумнее. А код, да пожалуйста...
|
||||||
16 окт 15, 09:08 [18285822] Ответить | Цитировать Сообщить модератору |
servit Member Откуда: г. Кишинёв, Республика Молдова Сообщений: 3117 Блог |
Попробуйте использовать $ZNSPACE и не забывайте "ньючить" переменные: JOB ; JOB'd process exits. NEW zapret,i,a PS: будете делать upgrade c 5.0, вместо устаревших (уже недокументируемых) функций $ZUTIL лучше использовать их эквиваленты. |
||||||
16 окт 15, 10:29 [18286256] Ответить | Цитировать Сообщить модератору |
Alexey Maslov Member Откуда: СПб Сообщений: 1547 |
По твоей задаче снова прав servit. Причина: JOB^%ZSTART вызывается слишком рано, когда могут быть заполнены ещё не все $zu(67,параметры,$j). В этих параметрах нет ничего "фундаментального", их просто заполняет серверный модуль протокола. Некоторые из них можно заполнить самостоятельно, хотя трудно придумать, зачем. Я бы брал текущую область из $zu(5) или из $namespace. |
||
16 окт 15, 11:37 [18286778] Ответить | Цитировать Сообщить модератору |
AlexKB Member Откуда: Запорожье Сообщений: 810 |
Alexey Maslov, Я ведь писал уже, что область, куда происходит соединение, проверить невозможно. В этом случае - она будет равна "%SYS", при любом способе ее получить. Я ведь сознательно не привел в своем коде чему равна область... a("$zu(5)")="%SYS" a("znspace")="%SYS" a(6)="%SYS" Не думал я, что давая советы, Вы не станете проверять их результативность... Я надеялся, что может еще получу совет в плане использования еще каких-нибудь недокументированных функций, команд, приемов... Но, увы... |
16 окт 15, 12:19 [18287099] Ответить | Цитировать Сообщить модератору |
Alexey Maslov Member Откуда: СПб Сообщений: 1547 |
|
||||
16 окт 15, 12:38 [18287227] Ответить | Цитировать Сообщить модератору |
Alexey Maslov Member Откуда: СПб Сообщений: 1547 |
Забыл поставить начальную метку JOB в псевдокоде, еще раз извиняюсь. |
16 окт 15, 12:40 [18287243] Ответить | Цитировать Сообщить модератору |
Alexey Maslov Member Откуда: СПб Сообщений: 1547 |
Если кому интересно, по крайней мере в 2015.1 метод %Library.GlobalEdit::GetGlobalSizeBySubscript() в некоторых случаях даёт ошибку в разы, тогда как утилита %GSIZE правильно считает и быстрым (Show details = N), и медленным (Show details = Y) способами. |
16 окт 15, 12:45 [18287267] Ответить | Цитировать Сообщить модератору |
AlexKB Member Откуда: Запорожье Сообщений: 810 |
Alexey Maslov, Вот, вот... Только через проверяльщик мне не подходит, слишком много нехорошего родительский процесс сможет натворить, даже если я отловлю его и прибью через 20 мс... На данный момент для меня все это не критично, но я думал над перспективой и было бы хорошее для меня решение одного из вопросов будущей разработки, если бы я смог воспользоваться функциональностью, о которой говорил... А вопрос возник еще и потому, что вроде бы в одной из реализаций МАМПСов, с которыми я работал, такая возможность была... Не берусь утверждать, но что-то такое крутится в голове... |
16 окт 15, 15:16 [18288494] Ответить | Цитировать Сообщить модератору |
Alexey Maslov Member Откуда: СПб Сообщений: 1547 |
Понятно, что тебе хотелось бы иметь готовый механизм "из коробки", но поскольку область - не объект защиты в её сегодняшней реализации, ИМХО, будет нелегко сподвигнуть ISC, но отчего не попробовать. |
||||
16 окт 15, 17:24 [18289309] Ответить | Цитировать Сообщить модератору |
krvsa Member Откуда: г Волжский Сообщений: 13116 |
Столкнулся с такой фигней при использовании функции $locate()... Есть там последний параметр, в случае успешного поиска туда записывается найденная последовательность... Но фигня в том, что если ничего не найдено переменная не "обнуляется". В ней остается предыдущее значение! ![]() По мне так это фигня полная. |
22 окт 15, 09:14 [18309873] Ответить | Цитировать Сообщить модератору |
krvsa Member Откуда: г Волжский Сообщений: 13116 |
Если в этом примере
s name="" и s value="" Все просто перестанет работать |
||
22 окт 15, 09:16 [18309875] Ответить | Цитировать Сообщить модератору |
krvsa Member Откуда: г Волжский Сообщений: 13116 |
Самый лучший вариант, с моей точки зрения, делать ту переменную неопределенной, если поиск ничего не нашел. Потому как пустая строка так же может быть результативным значением. Но оставлять предыдущее значение - это что-то с чем-то! ![]() |
22 окт 15, 09:19 [18309888] Ответить | Цитировать Сообщить модератору |
DAiMor Member Откуда: Volzhsky -> Moscow -> CZ, Brno -> Moscow Сообщений: 2633 |
Это нормальное поведение, $locate же возращает результат по которому можно верить или нет тому значению. Вы же в своем коде IF просто так повесили, и value разумеется может быть каким угодно. Этот код с ошибкой. $data кстати работает так же, обновляет значение только в том случае если оно есть |
22 окт 15, 09:23 [18309915] Ответить | Цитировать Сообщить модератору |
krvsa Member Откуда: г Волжский Сообщений: 13116 |
Это норма! (с) ![]() |
||
22 окт 15, 10:11 [18310177] Ответить | Цитировать Сообщить модератору |
servit Member Откуда: г. Кишинёв, Республика Молдова Сообщений: 3117 Блог |
|
||||
22 окт 15, 11:00 [18310519] Ответить | Цитировать Сообщить модератору |
krvsa Member Откуда: г Волжский Сообщений: 13116 |
Тогда какой смысл в этой теме? Для объяснения почему это делать не станут? ![]() |
22 окт 15, 11:28 [18310669] Ответить | Цитировать Сообщить модератору |
DAiMor Member Откуда: Volzhsky -> Moscow -> CZ, Brno -> Moscow Сообщений: 2633 |
|
||
22 окт 15, 11:36 [18310738] Ответить | Цитировать Сообщить модератору |
krvsa Member Откуда: г Волжский Сообщений: 13116 |
Эва! ![]() |
22 окт 15, 11:39 [18310758] Ответить | Цитировать Сообщить модератору |
krvsa Member Откуда: г Волжский Сообщений: 13116 |
Проблема кагбэ не в этом... |
||
22 окт 15, 11:55 [18310903] Ответить | Цитировать Сообщить модератору |
DAiMor Member Откуда: Volzhsky -> Moscow -> CZ, Brno -> Moscow Сообщений: 2633 |
Вот думаю что нужно добавить. Расчет энтропии для пароля. С возможностью использовать это не только для встроенных пользователей, а и в том случае если используется собственная авторизация со своим хранением учеток пользователей и их паролей. |
26 окт 15, 10:34 [18325667] Ответить | Цитировать Сообщить модератору |
Шваров Евгений Member Откуда: Сообщений: 845 |
Коллеги, на самом деле смысл этой темы, чтобы ваши запросы превращались в WRC задачи, т.е. были решены и входили в продукт. По части уже здесь предложенного либо есть либо будет создан продлог (задание на разработку). Вопрос: как лучше всего по вашему мнению доносить эту информацию до вас? гуглотаблица? Специальный сайт? задания в редмайне? Ваши предложения? |
6 ноя 15, 16:04 [18379460] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: ←Ctrl назад 1 [2] 3 4 вперед Ctrl→ все |
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M | ![]() |