Дама, не задумываясь, пошла вместе с телефоном под единственную в комнате лампочку и наклонила его вперёд, чтобы на экран падало побольше света. «Но это же неправильно, — подумал я. — Надо сказать ей, что это ни к чему не приведёт». В голове всплыли принципы формирования картинки внутри жидкокристаллического экрана, схема трансмиссивного дисплея, столь неэффективного под прямыми лучами солнца, спецификации телефона, грустные отзывы о его поведении при ярком освещении, да и сравнение яркости лампочки и солнца — всё сливалось в простое и короткое объяснение того, почему этот трюк не сработает.
Увы, мои раздумья продолжались не больше пары секунд: датчик телефона заметил, что прямо в него светит лампочка, и умная машинка выкрутила яркость подсветки на максимум, дабы её хозяин смог хоть что-то разглядеть в столь светлом месте.
Мама друга, получив ожидаемый результат, переписала нужный номер, вернула телефон и оставила меня стоять в ступоре, смеяться про себя и удивляться, как полезны бывают простые обывательские привычки даже в нашем сложном и наполненном техникой веке.
#1137: За год до съёмок «Армагеддона»
00:30 08.08.2009, IT happens
Работал я как-то давно «в науке» на радиотелескопе. В круг задач входило многе: изготовление и подготовка аппаратуры, написание ПО, установка, наладка и так далее.
Лето, южный берег Крыма, жарко и душно, вокруг порхают полуобнажённые девушки, а мне, как главному и ответственному инженеру, приходит указание срочно установить аппаратуру на параболическую тарелку диаметром 22 метра. Искупнувшись в море, в одном халате поднимаюсь наверх, в течении нескольких часов ставлю, прикручиваю, налаживаю, настраиваю. Пора спускаться — усталый, ползу вниз по металлической лестнице. Тем времени в тени телескопа собралась вся астрономическая знать в ожидании моего доклада. На последнем пролете я спотыкаюсь, кубарем скатываюсь вниз, поднимаюсь, вытираю халат, стряхиваю выступившую кровь и произношу: «Украинский инженер — звучит гордо, выглядит страшно!»
#1138: Свидетели Столлмана
20:45 08.08.2009, IT happens
Стою утром на остановке, курю, никого не трогаю. Подходит ко мне солидная дама и спрашивает, давно ли проезжал такой-то автобус. Нет, говорю, только отошёл. Стоим еще минуты две; вдруг дама начинает беседу:
— Славная нынче погодка, не так ли?
— Да, погодка что надо.
— Как вы думаете, может ли Бог сделать так, что бы в жизни нашей все было так же славно? Готовы ли вы для этого уверовать в его могущество и стать другом Христа?
Далее следует долгая, заранее подготовленная душеспасительная речь. Понимаю, что напоролась на очередного «Свидетеля Иеговы». Собираюсь уже уйти, но в моей дурной башке созревает нехорошая мысль:
— Не знаю насчет этого, но вот верите ли вы, что Великий Тукс и пророк его Всемогущий Торвальдс могут избавить мир от невзгод?
Дама смотрит на меня с нескрываемым удивлением. Я же продолжаю свою «проповедь»:
— Вижу, вы не знаете про великого Тукса? То-то я не замечаю счастья на вашем лице! Вот, возьмите этот диск (протягиваю очень кстати оказавшийся у меня в рюкзаке Ubuntu 9.04) и загрузите с него свой компьютер. Я уверена, что после этого вы обретете истинное счастье!
— Девушка, вы меня извините, но...
— Да подождите же вы, я ведь еще не успела рассказать вам про священную нашу книгу — «Just For Fun»!
— Девушка, да отстаньте вы от меня!
— Подождите, не уходите! Возьмите хотя бы диск! Вы познаете истинное счастье!..
Последние слова звучали уже вдогонку «миссионерке».
#1139: Точка с запятой, дефис, закрывающая скобка
20:45 08.08.2009, IT happens
Работаю программистом. В нашей организации установлена большая информационная система, внутри которой запускается куча разных задач. Как-то звонят мне с объекта — мол, не работает на моей задаче фильтр по подразделениям. Пользователю видны все подразделения, что идеологически неправильно, да и просто неудобно. Спрашиваю:
— Коды подразделений введены правильно?
— Правильно, правильно!
— Через точку с запятой?
— Конечно! Как вы нам говорили, так и сделали.
Делать нечего, лезу в удалёнку, открываю параметры задачи. Вместо «;» между кодами стоят «.,».
#1140: Большой шум принтера LPT
00:30 09.08.2009, IT happens
Решил из нескольких списанных Epson LX-800 собрать себе домой на новый год матричник. Сижу, ковыряюсь, перебирая полуубитые головы, барабаны и протяжки. Собрал, агрегат даже заработал. Гоняю «лист Малевича» — страницу, залитую чёрным.
На стрекот заходит удивленый напарник: «А что за музыка у тебя только что была?» Начинаю ржать, он не понимает и продолжает: «Понимаешь, только последний акорд услышал — столько вспоминаний полезло! Кто играет?»
Обьяснил. Слушаем уже четвёртый лист.
#1141: Ломать — не строить
13:00 09.08.2009, IT happens
Мои родители занимаются видеомонтажом в Adobe Premiere и Adobe After Effects. Контора, на которую они работают, подарила им лицензионный пакет этих программ. Все как положено — красивая коробка, серийный номер, защита и так далее. Всё было хорошо до тех пор, пока софт не полез обновляться в интернет и при запуске потребовал повторной активации.
Казалось бы, все просто: телефон для России указан, нужно только продиктовать серийный номер, код активации и получить код авторизации. Но мама у меня, хоть и продвинута в компьютерах, жутко консервативна и всего нового боится. Естественно, кроме лицензионного пакета от Adobe, всё остальное на компе было пиратским, поэтому папочка Crack была гораздо понятнее для нее, чем звонок в саппорт (да еще и в Москву!) Она бы, наверное, всё-таки позвонила, если бы не папа, который решил облегчить задачу — он нашел в интернете кейген и, не вняв моим предупреждениям, крякнул Premiere, после чего тот отказался запускаться вовсе.
Да, поменять ситуацию будет непросто — русский человек ещё слабо понимает, что делать с лицензионными программами...
#1142: Десять строк хорошего кода заменяют сотню ленивых юзеров
15:00 09.08.2009, IT happens
В 2007 году я разрабатывал небольшую самописную ГИС с картами Москвы для мелкого завода. Бесплатных данных не было, и я кое-как за месяц расковырял одну систему с картами, успешно «спиратив» исходники. Немного позже потребовались геоданные для Московской области. В той программе их не было, зато нашлась другая в виде отсканированного атласа, на который были нанесены векторные метки. Сами данные хранились в каком-то невероятном формате; времени на разбор не было, система была нужна «здесь и сейчас».
Идея пришла моментально. Из-под моих плящущих по клавиатуре пальцев вылетали куски кода:
— отправляющего сообщения вида «нажата кнопка „вправо“», «нажата кнопка „влево“», «нажата кнопка „Page Down“» окну;
— распознающего серые окружности, изображающие города;
— получающего название города из текстового поля;
— двигающего мышь в нужную позицию.
Всё было собрано в программу-потрошитель. Она искала окно «жертвы», переводила карту в левый верхний угол, распознавала города на текущем сдвиге, запоминая их координаты, получала названия и сдвигала экран вправо. Процесс повторялся — если был достигнут край карты, экран опускался вниз.
Запуск невероятно порадовал — по экрану как угорелый скакал курсор мыши, кликал в окружности-города, названия которых сменяли друг друга с невероятной скоростью. Всё моргало и двигалось, производя самое фантастическое впечатление. Через десять минут вся карта была сграблена.
С тех пор я верю: как бы ни была сложна программа, рассчитанная на взаимодействие с человеком, можно написать робота, который решит задачу не хуже.
15:00 09.08.2009, IT happens
Я биолог и от математики предельно далёк. Довольно часто мне приходится решать сложные задачи — обычно за меня всё делают умные программы, но иногда нужно что-то посчитать вручную. В этом случае я обращаюсь за помощью к своему другу-программисту, который, несмотря на всю свою занятость, частенько меня выручает, ведь мои задачи не только полезны для «народного хозяйства», но и довольно интересны.
Постучался я как-то ему в аську: «Слушай, есть новое дельце!» Друг заинтересовался и согласился подумать. Даю вводную: есть поле 5х5, в ячейках нужно разместить цифры от единицы до четвёрки При этом единичку можно ставить везде, двойку — только рядом с единицей, тройку так, чтобы рядом с ней были одновременно 1 и 2, а четвёрку в окружении 1, 2 и 3. Цифры нужно расставить так, чтобы общая сумма была максимальной.