Назначаю пользователю права администратора, переустанавливаю программу от его имени — кажется, языковый барьер исчез. Рано радовался: стоило вернуть пользователю обычные права, и снова мы увидели «File» вместо «Файл». Дизайнер остался админом, а у меня остался невысказанный вопрос: в какой стране это писали?
#4977: Тормашками наизнанку
19:45 17.12.2010, IT happens
Есть у нас плоттер Xerox Wide Format. Та ещё шайтан-машина, надо сказать. Умеет печатать, сканировать и копировать, управляется встроенным компом с Core 2 Duo и сенсорным монитором.
Как-то раз этот самый монитор внезапно помер. В Xerox работают ушлые ребята: берут пример с Dell[4] и подключить абы что к своему контроллеру не дают. Привязка к аппаратному id, понимаешь ли, поставить сторонний монитор нельзя. Ладно.
После пары дней напряжённого сервисного обслуживания дисплей наконец-то заработал, да только вот тачскрин начал воспринимать нажатия совсем не там, куда тыкали пальцем. Допрос сервисмена с пристрастием внятного ответа не дал. «Может, он это с мороза, надо подождать пару дней, скорее всего, само пройдёт», — молвил паренёк.
Уже собрались везти монитор обратно в сервис — это потеря нескольких дней, а время у нас нынче, как известно, деньги. И тут меня осенило. В глюке была чёткая закономерность: координаты точек касания и срабатывания отзеркаливались относительно середины монитора как по X, так и по Y. Далее было уже дело ловкости рук и глазомера: тыкая в область, противоположную нужной, зайти в панель управления, набрать пароль админа и вызвать калибровку экрана. Бинго! Осталось только на досуге догадаться, как монитор можно было так собрать.
#4978: Маслёнка с временным наполнителем
19:45 17.12.2010, IT happens
В начале моей админской работы был такой случай. Привезли из дальнего офиса комп с шумным кулером — еле крутился, не справлялся с охлаждением. Учреждение бюджетное, на новый кулер денег нет, потому решил я применить дедовский метод закапывания масла прямо в вентилятор.
Отправили меня в подвал к электрикам. У тех обнаружилось трансформаторное масло в огромной канистре, а другой тары не было. Выход нашёлся быстро: из-за пазухи мужики достали 0,25 известно чего, содержимое быстро уничтожили, а мне вручили бутылку с маслом. Надо ли говорить, что встретили меня взрывом смеха?
#4979: Нет на сайте
#4980: Археологические раскопки в Древней Индии
12:00 18.12.2010, IT happens
Итак, все ругают плохо написанный код. Давайте-ка посмотрим...
Если в коде много goto, возможно, программу перетащили с Фортрана; чем их больше, тем древнее версия.
Если в названиях идентификаторов присутствуют дикие сочетания букв, разбавленные подчёркиванием, возможно, исходно это был Фортран БЭСМ-6, где позволялись русские буквы.
Если все переменные в программе глобальные — скорее всего, программа «познакомилась» с третьей версией микрософтовского Фортрана, где надо было распихать переменные по 64-килобайтным common-блокам.
Если сишный код плохо отформатирован, скорее всего, код был знаком как с Борландом (три пробела на отступ), так и с Микрософтом (одна табуляция).
Если в коде на С++ много указателей на функции, значит, изначально код был сишным.
Если системные вызовы завёрнуты во множество вложенных «обёрток», которые просто перекладывают параметры из пустого в порожнее и ничего не делают, это годовые кольца: их столько, сколько платформ сменил продукт.
Если имена переменных совпадают с названиями регистров процессора, значит, кусок, написанный на ассемблере, пытались утянуть на другой процессор.
Если всё сказанное выше замешано в крутой коктейль с кусками вменяемого кода, значит, пытались рефакторить.
Если не используются очевидные фичи, значит, в исходном фреймворке их не было.
Если встречается эмуляция RTTI и интерпретируемого кода, в предках кода было что-то типа Клиппера.