Выбрать главу

Самое главное: мы не просто знаем, что надо сделать, а ещё и динамически меняем это знание в соответствии с изменением условий. При этом ни разу за полтора года разработки и поддержки этого проекта не потребовалось менять архитектуру — это было бы наше время, а оно нам дорого.

Да, кстати, работает это добро (отказоустойчивая база данных, обмен данными между изолированными оконечными устройствами, восстановление после отказов любой степени критичности) на ATmega128 на 16 МГц. А прежние европейские цивилизованные разработчики, с менеджером, аджайлом и тест-кейсами, собирались переходить с PIC сразу на mini-ITX от VIA, не реализовав и четверти нашей функциональности.

#9571: Меньше мозгов

12:15 16.07.2012, IT happens

Поломались у людей автоматические ворота, попросили помочь. Приехал, выкинул подгорелые потроха из коробки, поставил два пускателя ПМЕ-111. Тумблер на три положения в будке охранника и конечники на створке ворот уже были.

Кто мне скажет, какой смысл в простейшую релейную схему пихать контроллер ATmega128?! А контроллер не сгорел, выпаял я его, но до сих пор нигде не применил — мне и ATtiny2313 вполне хватает.

#9572: Click/clack/bang

12:45 16.07.2012, IT happens

Небольшая фирма по производству электроники. Работаю. Мимо проходит директор и двое плохо одетых пацанов, явно чувствующих себя неуверенно. Слышу обрывок фразы: «…ну, в детстве я паял». В мозгу: click! Такой звук бывает, когда оттягиваешь рамку затвора пистолета в заднее положение.

Директор идёт обратно и по пути говорит главному инженеру: «С области пацаны. Вроде толковые. Пока посадил ДПА-3 паять». В мозгу: clack! Это когда отпускаешь рамку затвора, и под воздействием пружины он запирается.

Вокруг начинает носиться толпа народа с криками: «Бл#$ь! Плата четырёхслойная! П@&$#ц! Порвали все дорожки! Новые никто не успеет сделать! Послезавтра отправлять!» Это весьма ожидаемый bang!

Сворачиваю среду разработки, достаю из заначки специально заныканное и особым образом заточенное жало для паяльника, сверхтонкую лужёную проволоку, фрезу, бормашинку и послойную распечатку структуры платы ДПА-3, после чего иду на производство.

Так пять лет назад я познакомился со своими будущими сотрудниками: главным конструктором и начальником производства. На прошлой фирме мы подняли несколько офигенных проектов, принеся учредителям огромную кучу бабла, после чего парни ушли со мной раскачивать новое направление.

Недавно начальник производства пришёл и сказал: «Тут двое пацанов на работу просятся. С области, вроде толковые». Хе-хе. Сlick! «Зови, поговорим. Как раз не успеваем SH-2 распаять».

#9573: Выполнить любой ценой

12:45 16.07.2012, IT happens

Отдыхаю на морях — утреннее купание, вечерние прогулки. Вдруг звонит телефон, да ещё с работы. Тружусь я сисадмином в учебном заведении, главнее меня — только ректор. До конца отпуска ещё две недели, а меня срочно вызывают обратно. В самых мягких выражениях я обьясняю, что никак не приеду, и спрашиваю, в чём дело.

— Да из-за вас интернет не работает, и сеть тоже, а за него уплачено!

Вернувшись на рабочее место, вижу, что все свитчи отключены.

— Кто?!

— По приказу ректора всё электронное оборудование на время каникул должно быть обесточено.

Долго пришлось обьяснять, что к чему.

#9574: WM_WHY?

12:45 16.07.2012, IT happens

В 1996 году мы с одногруппником, изучая Windows API, писали тестовые программы. Использовали предшественника C++ Builder — компилятор Borland C++ 5.0. И хотя компиляторы Borland всегда были очень шустры, на слабых машинах из-за огромного windows.h даже «Hello World!» собирался полминуты.

Мой одногруппник решил «оптимизировать» свою программу, заменив все макросы из windows.h на числовые значения: вместо WM_COMMAND в цикл сообщений вставил число 0111h, вместо WM_TIMER — 0113h, а вместо WM_CREATE — 0001h. Логика была простой: константы никогда не поменяются, значит, можно их и вбить, чтобы компилятор не трудился.

В результате программа стала совершенно нечитаемой, но скорость компиляции совершенно не возросла, ведь всё равно в программе нужно было оставить строку #include <windows.h>. Поэтому пришлось вернуть всё обратно. Конечно, мы догадались, зачем нужны эти «дурацкие» #define.