May 5th, 2020

Matrix

Ну чо, приехали...

Винда накатила очередное обновление и ... теперь нельзя ассоциировать свои произвольные команды с расширениями файлов. Вот хоть убейся, но разрешены только официально установленные программы. Портабл-версии пошли лесом? Да вы озверели!!! Ладно, буду мучаться и запускать отдельно приложение и отдельно эксплорер, после чего метать файл в приложение. Но что это за %$#& ?

UPD: Дело было на ночь глядя, поэтому я наставил всяких редакторов ассоциаций (и нифига не помогло, ибо проблема на уровне системной полиси). Вот с утра на свежую голову сообразил положить ярлыки портабл-программ на десктоп. Конечно, это выглядит мерзко, но зато можно тыкать в эту "палитру" файл и получать тот же результат.
Между прочим, я не в игры при этом играюсь - у меня пропала ассоциация с VNC-viewer!
Matrix

Какая же это гадость, ваша заливная рыба

Увы, по долгу службы приходится иногда программировать на языке, который если не мой ровесник, то почти (он - 1974 года рождения). И то, что его всячески облагородили в некоей Корпорации Добра, не делает SQL языком программирования. Это какой-то монстр, годный только для Job security на старости лет.

Приведу сегодняшний пример. На Оракловском SQL написана функция, которая должна вернуть простой битовый ответ да/нет на вопрос о членстве пользователя в некой группе. Данные собираются из двух таблиц и результат суммируется через COUNT(*). Всё было бы кошерно, если бы не одно "но": у некоторых пользователей функция упорно возвращает нолик, хотя запустив саму query получаем туеву хучу результатов (многие тыщи). Начали копать, ковырять и мучать эту функцию. Запустили дебаггер (слава яйцам, Корпорация Добра приделала к функциям такую возможность). И что же всплыло? После выполнения запроса функция вылетает по EXCEPTION! Ну какое может быть событие, вызывающее падение тупого запроса (который спокойно работает вне функции)? Копаем дальше - результат запроса попадает в целочисленную переменную... И тут Штирлица осенило: переменная была описана как NUMBER(5), поэтому результат туда иногда не помещался! Проверили - действительно страдающие от дискриминации пользователи получали 6-значное значение. Исправили на NUMBER(10) - нехай тот хомяк подавится - и всё заработало. Да, криворукость автора функции тут тоже присутствует, но бросать EXCEPTION без объяснения причин - свинство.

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