Стрёмно, когда от ПО требуется надёжность. Особенно в момент тестирования в присутствии заказчика. А вдруг всё повиснет и сломается? Это тревожность.
Следующие тревожности ощущаются по-разному: 1. Я не знаю, остались баги в ПО или нет. (разумеется, остались) 2. Я знаю, что в ПО есть баг, знаю, как он проявляется, но не понимаю, какова его причина. 3. Я знаю, что в ПО есть баг, знаю, в чём причина, но ещё не исправил.
Если одно и то же действие может быть инициировано из разных источников (по внешнему сигналу, по кнопке и т.п.), то пути, которые приводят к выполнению действия, должны быть максимально слиты. То есть, участки кода, которые различаются, должны быть короткими. Иначе возможна ситуация, когда система будет вести себя по-разному при ручном и при внешнем управлении. А это очень плохо.
Пока надо просто просматривать некоторые файлы и иногда их копировать -- Проводник винды подходит хорошо. Я к нему даже как-то привык. Ну да, открыто 150 окон, из них 75 друг друга дублируют. Ну да, нужную папку тяжело найти. Но ладно.
А вот когда работать с файлами нужно активно, быстро и в больших количествах, Проводник показывает себя с плохой стороны.
Я подумал одну минуту и поставил тотал коммандер. Ох!
Как же приятно оказалось работать с файлами в классическом двухпанельном менеджере. Вжик-вжик и всё готово. А главное, что мигом восстановились рефлексы из детства, куда жать. Norton Commander 4 даром не прошёл.
Я: Да что вы так волнуетесь! Испытания наша установка с первого раза всё равно не пройдёт. Косвенный начальник: Если не пройдёт, то нас выебут. Точнее, меня! выебут. А мне уже надоело.
Когда приехал один из побочных начальников, он решил накормить нас в ресторане.
Возвращались с об'екта поздно, в заведение попали около полуночи. Был вечер субботы. В заведении проходило что-то вроде сельской дискотеки.
Я ел и всё это наблюдал. Словами описать я это не могу.
Я: Я крайне озадачен. Начальник: Ты думаешь, это только здесь происходит? Я: Нет, конечно. Начальник: Это происходит повсеместно. И то, что ты столкнулся с этим именно здесь, ничего не значит.
Обсуждали как-то с коллегой вопросы религии. Разговор стал возможен, потому что я сказал, что тоже атеист. Он был очень удивлён, что у нас в отделе так много верующих (православных). Сказал, что в научных организациях никогда не видел такой концентрации. А он работал в нескольких.
Я предположил, что в прошлых местах кто-то, возможно, шифровался? Но он сказал, что это бы всё равно всплыло. Это я комментировать не стал.
Далее мы пришли к выводу, что даже если учёный и является верующим, то он разделяет религию и науку у себя в голове. То есть, не бывает такого, что учёный молится, чтобы у него получился эксперимент. И как раз из-за этого разделения противоречие между религией и наукой не замечается. Так и получается, что учёный может быть верующим.
***
А потом я пошёл на об'ект налаживать установку. В этот день должен был приехать специалист по одному дочернему контроллеру. Контроллер периодически зависал. В один день мог зависнуть два раза, в другой -- не зависнуть вообще. Правил мы не обнаружили. Специалист должен был сначала попытаться добиться зависания, а потом подключиться отладчиком и выяснить причину.
В прошлый день контроллер один раз завис и специалист даже просил оставить установку включённой. Но это было невозможно.
Я был лично заинтересован в том, чтобы контроллер завис как можно быстрее. Но... как добиться события, которое происходит по неизвестному закону? Может быть, в этом может помочь кто-нибудь из богов?
Я достал руны и разложил их. На Локи выпала Иса, а это было в буквальном смысле то, что мне нужно (торможение, остановка). Если кому-то интересно, побочной информацией стало то, что Хель занимается только смертью людей, а не техники.
"О, шраморотый, сделай, чтобы этот контроллер завис, очень нужно"
И контроллер завис в течение пяти минут. Устранить неполадку это, правда, не помогло. Но помогло определить, что в зависаниях виноват не я (а я посылаю запросы).
Оставил Локи дары.
***
-- Как думаешь, это считается за повседневную магию? -- Да, за бытовую. -- Больше похоже на промышленную...
Если у компилятора включить оптимизацию, то полученную программу будет сложно отлаживать. Оптимизированный код при отладке прыгает по строчкам непредсказуемым образом, значения переменных отображаются неправильно, точки останова не срабатывают.
Это касается как программ для компа, так и прошивок. И тут проявляется важный нюанс, на котором можно погореть. В этот раз погорел не я.
Неоптимизированная программа может не влезть в память микроконтроллера! Это сильно осложняет процесс отладки. Поэтому выбирать микроконтроллер надо с запасом.