На стрекот заходит удивленый напарник: «А что за музыка у тебя только что была?» Начинаю ржать, он не понимает и продолжает: «Понимаешь, только последний акорд услышал — столько вспоминаний полезло! Кто играет?»
Обьяснил. Слушаем уже четвёртый лист.
#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“» окну;
— распознающего серые окружности, изображающие города;
— получающего название города из текстового поля;
— двигающего мышь в нужную позицию.
Всё было собрано в программу-потрошитель. Она искала окно «жертвы», переводила карту в левый верхний угол, распознавала города на текущем сдвиге, запоминая их координаты, получала названия и сдвигала экран вправо. Процесс повторялся — если был достигнут край карты, экран опускался вниз.
Запуск невероятно порадовал — по экрану как угорелый скакал курсор мыши, кликал в окружности-города, названия которых сменяли друг друга с невероятной скоростью. Всё моргало и двигалось, производя самое фантастическое впечатление. Через десять минут вся карта была сграблена.
С тех пор я верю: как бы ни была сложна программа, рассчитанная на взаимодействие с человеком, можно написать робота, который решит задачу не хуже.
#1143: Живи играючи
15:00 09.08.2009, IT happens
Я биолог и от математики предельно далёк. Довольно часто мне приходится решать сложные задачи — обычно за меня всё делают умные программы, но иногда нужно что-то посчитать вручную. В этом случае я обращаюсь за помощью к своему другу-программисту, который, несмотря на всю свою занятость, частенько меня выручает, ведь мои задачи не только полезны для «народного хозяйства», но и довольно интересны.
Постучался я как-то ему в аську: «Слушай, есть новое дельце!» Друг заинтересовался и согласился подумать. Даю вводную: есть поле 5х5, в ячейках нужно разместить цифры от единицы до четвёрки При этом единичку можно ставить везде, двойку — только рядом с единицей, тройку так, чтобы рядом с ней были одновременно 1 и 2, а четвёрку в окружении 1, 2 и 3. Цифры нужно расставить так, чтобы общая сумма была максимальной.
«Окей, — говорит друг, — сейчас всё будет!» Через пару минут брутфорса он сообщил, что всё отлично, программа выдала уже пятьдесят миллионов комбинаций, и, если никто не будет отключать машину на ночь, нужный результат мы получим не позднее, чем через два года. Почесав репу, он написал более умную прогу, которая сходу выдала с десяток роскошных результатов. Одна беда: иногда программа ставила цифры куда попало без оглядки на расположенные рядом. Пофиксив баг, друг прислал мне несколько впечатляющих (поначалу) схем расстановки цифр, но не прошло и пяти минут, как мы оба вручную решили задачу более подходящим способом.
Теперь друг взялся за дело всерьёз. Он менял строчку за строчкой, постепенно оптимизируя способы вычислений. Я не без его помощи находил ошибки, одновременно проверяя полученные результаты. Всё это было довольно занятно, и часа через два мы, наконец, с удовлетворением созерцали конечный результат — совершенство численных технологий. Минут через пять он спросил меня:
— Слушай, а на фига тебе всё это надо было? Это расчет конформации каких-то белков?
— Понимаешь, — отвечаю я ему, помедлив, — есть у меня на телефоне игрушка такая...
Хорошо, что дело происходило в аське. Друг еще полгода вспоминал мне об этом — час его работы стоит двадцать баксов...
#1144: Семь раз проверь — один отнеси
20:45 10.08.2009, IT happens
Было это зимой 2005–2006 года. Я только начинал админить «по-крупному» и устроился в фирму набираться опыта. Фирма небольшая: компов 150 и семь серверов. Обновляются сервера и рабочие станции по мере выделения финансов‚ которое обычно происходит в конце года. Посовещавшись, решили, что хватит уже использовать в качестве серверов всякую дрянь — надо плавно переходить на 19-дюймовую стойку. Выбрали, подсчитали, заказали 3 «Харитона Петровича» и стойку на 22 юнита, ждём.
Сначала привезли серваки, стойку обещали пригнать через неделю. Под вечер привозят коробку размером с большой холодильник (по правде сказать, нам ещё тогда показалось, что 22 юнита немного поменьше). Собрали парней покрепче и потащили на третий этаж. Доносим до границы царства ИТ — дальше никак, не проходит коробка в проём. До серверной ещё ого-го, а в коридоре на ночь дорогую стойку оставлять не хочется. На последнем дыхании тихо материмся — придётся разбирать тут. Вскрываем одну сторону коробки, минут пять лопаем пузырики транспортировочного уплотнителя, которого настолько много что не совсем понятно, что в него завернуто. Один из нас замечает какую-то книжечку — достаём, смотрим на обложку. Это инструкция по установке и настройке массажного стола.
Хорошо, что курьер тащил коробку с нами — и не так обидно, и есть, кому подзатыльник отвесить. Молодой парнишка что-то перепутал и стойку нашу отгрузил в массажный салон. Вот они, наверное, обрадовались новому слову в массаже!
#1145: Это что за цветные бумажки?