Открываю дверь, мужичок смотрит код процедуры обработки прерывания и процедуры вычисления.
— Вроде правильно. Хм… А переменную через volatile объявил?
— Точно…
В спешке по оборотам объявку-то повесил, а по скорости забыл. Вешаю — хоп, вот и скорость!
— Работает, спасибо!
— Да не за что, пока!
И уходит. Это что — нормально, да?
#10945: Кофе или GTFO
12:15 09.05.2013, IT happens
Появился у меня новый знакомый, который вроде исправно работал, но в какой-то момент на это дело подзабил. Точнее, не то чтобы подзабил, а начал вести себя так, будто он фрилансер: хочу — работаю, хочу — нет. Хочу — всё быстро делаю, хочу — нет… А так как он был моим порождением и от него многое зависело, меня слёзно попросили приучить его к порядку.
Уговоры, шаманские танцы с бубнами, предложения вместе выпить, слёзы и упрашивания эффекта не давали. Через какое-то время мне всё же удалось зафиксировать определённую закономерность. Знакомый работал, но когда его сильно нагружали, он просто посылал всех на @#$, обижался и минут пять ни с кем не разговаривал. Потом, правда, начинал опять, но заново, и опять не доходил до нужного результата.
Пораскинув мозгами и пойдя на крайне неохотное решение, я выделил знакомому вдвое больше ресурсов, надеясь, что это даст ему стимул работать. О чудо: все его друзья-товарищи, до этого напоминавшие тормозов, забегали, запрыгали и заплясали. В принципе, знакомый тоже стал шустрее работать, но…
В отчаянии я пошёл на крайнюю меру: решил дать ему задачу старым, проверенным, дедовским способом. В момент, когда я уже почти обрадовался, когда он почти превзошёл себя, он опять встал со словами: «Идите на @#$!»
Хорошо, что сохранилась запись об этом событии, которая указывала на какую-то мелочь. Причина оказалась проста и банальна: поменяли один маленький стимул в работе, если можно так сказать, изъяли кофе из рабочего распорядка… Но это было фатально для моего знакомого. Все уговоры с вышестоящей инстанцией ни к чему не привели. Пришлось переводить его в другой офис.
И что говорить про домашних питомцев, если даже скрипты похожи на своих хозяев?
#10946: Рюшечки и геморрой в подарок
12:15 09.05.2013, IT happens
Непонятно, с какого перепугу ругают индусов и называют по-идиотски написанный код индусятиной. В конце концов, 80% кода в мире написано индусами, и этот код худо-бедно работает. Индус прост: что заказали, то и написал. Не понравилось — объяснил почему, и индус свой код переписал. Тупо и просто. А вот обратный пример.
В эпоху перехода с Win98 на WinXP пришло задание — прикрутить к нашей программе скины. Бантики-рюшечки, определяемые пользователем цвета рамочки окна и нестандартные кнопки вместо стандартных. Умный индус взял бы какой-нибудь WMShell и прикрутил к программе, глупый написал бы с нуля, но за дело взялись два гениальных и суровых русских программиста, которые регулярно тусовались на RSDN и поражали всех своей крутизной.
Рассказывать всю хронологию долго, поэтому перейдём к результату. Помимо основной программы получилось два COM-сервера. Я первый раз видел, чтоб для отрисовки кнопки надо было ходить в соседний процесс. При этом к СОМ-серверу обращались не от имени кнопки, а от имени родительского окна, формировалась некая структура, для передачи которой был написан собственный маршалинг. Рисовать через стандартные средства было в лом, поэтому перехватывались непосредственно вызовы WinAPI с помощью хакерских приблуд типа Detours. За всем этим делом следил другой СОМ-сервер, который отслеживал изменения в конфиг-файле и принудительно перерисовывал в случае чего окно приложения. Конфигурация (несколько циферок для цветов и имена файлов десятка битмапок), естественно, не могла храниться ни в текстовом, ни в INI-файле: религия не позволяла. Только XML! При этом зашитый в ОС MSXML 2.0 тоже не мог использоваться по религиозным соображениям. Только XML последней версии мог хранить сакральные цифры RGB. В результате в дистрибутив запихнули инсталлятор XML, а когда Микрософт перешёл на формат MSI, то ещё два инсталлятора Microsoft Installer — для 98 и XP. Инсталлер оброс скриптом, который определял, что и куда ставить, в зависимости от ОС и её конфигурации. Итого +30 мегов к дистрибутиву. Что показательно, кроме дефолтных скинов, ничего другого не появилось. Ценность программы определялась не рюшечками, а её прикладными свойствами.
Индус страшен, пока не придёт русский программист — бессмысленный и беспощадный. Он решит все проблемы, которых у вас не было. Причём решит таким способом, который добавит геморроя на следующие десять лет.
#10947: Это какое-то зверство
12:15 09.05.2013, IT happens
С полгода назад моя мама начала усиленно познавать основы пингвинообразных ОС. Всё вот почему.