Самое главное: мы не просто знаем, что надо сделать, а ещё и динамически меняем это знание в соответствии с изменением условий. При этом ни разу за полтора года разработки и поддержки этого проекта не потребовалось менять архитектуру — это было бы наше время, а оно нам дорого.
Да, кстати, работает это добро (отказоустойчивая база данных, обмен данными между изолированными оконечными устройствами, восстановление после отказов любой степени критичности) на 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.