Давайте еще наброшу про высшее образование

Тут Олег задается вопросом — а почему студентов околоэлектронных специальностей за 5 лет не научили элементарным, в общем-то вещам:

https://t.me/sforsecurity/1107

Так вот, дело в том, что суть отечественного инженерного образования — в массовой подготовке «инженеров 3 категории» — в штатном расписании олдскульно-советского предприятия это что-то вроде продвинутого техника или чертежника (то есть специалиста со средне-специальным образованием). Вот представляете себе олдовое КБ докомпьютерной эпохи с рядами кульманов и прочей такой фигней? Чертежников нужно много, их вечно не хватает, и фактически «молодой специалист» с вузовским дипломом начинает свой трудовой путь с вот такой должности, где требуется разве что усидчивость и аккуратность, ну и немного общетехнических знаний. Да, черчение вручную вышло из моды лет этак 40 назад — но чем хуже, скажем, чуваки, которые вручную обводят Gerber-овские файлы, переводя их таким образом в формат единственно признаваемого на предприятии Autocad?

Это — некий «гарантированный минимум», получающийся на выходе из вуза, в современных реалиях «чертежника» обучат чисто механическим навыкам работы в пизженом Altium или каком-нибудь Kicad, остальное предстоит узнавать в ходе работы, в худшем случае — в виде эмпирических правил типа «а зачем у кварца ставить конденсаторы? а мы всегда так делаем». Да, мотивированный и желающий учиться студент получит набор знаний, позволяющих эти эмпирические правила понимать, если повезет — узнает, что за ними стоит, но «выход годных» в среднем отечественном техническом вузе — что-то типа 10% (как раз те самые «мотивированные и желающие»), остальные попросту плывут по течению все 4 или 6 лет обучения.

Дипломники, блин

В очередной раз изображаю для двух студентов научного руководителя, и в очередной раз охреневаю. Для начала хочу предупредить, что это магистры, то есть уже слегка сформировавшийся «продукт» системы отечественного высшего образования — так что всем этим нехорошим вещам их уже кто-то научил до меня.

Во-первых, оба дипломника в этом году проявили какую-то феноменальную неспособность написать текст работы со сквозным «сюжетом» — а ведь в околоинженерном дипломе это очень просто:

— все было плохо;
— циферки, почему все плохо;
— пришли мы и сделали что-то получше;
— циферки, почему стало получше;
— мы молодцы, поставьте нам хорошую оценку!

Детали могут отличаться — где-то ценным будет описание того, что именно сделано, где-то — методика определения этого «хорошо» и «плохо» и измерения циферок, но в принципе такая структура работы — чуть ли не самоочевидная. Но нет, выцеплять элементы этого сюжета приходится по частям, студенты либо начинают лепить длинный список «технологий», скатываясь в пересказ википедии (явно с целью нагнать объема — но об этом дальше), либо многословно пишут что-то в духе «я деляль» (даже не «сделяль») — но зачем это все и для чего — упорно молчат.

Про рузскей языг даже упоминать не надо, наверное — сначала еще пытаешься следить за употреблением терминов и прочим синтаксисом с грамматикой, но где-то к десятой странице понимаешь, что дело это совершенно безнадежное и смотришь лишь за тем, чтобы студенты не копировали твои сообщения из чатика (где допускаешь некоторые вольности).

Во-вторых, при подготовке бакалаврских дипломных работ их уже испортили необходимостью соблюдения совершенно дегенератских требований — они начинаются от объема «точно в 60 страниц, не больше, ни меньше» (это самое простое) и продолжаются процентом оригинальности по данным какого-то из сервисов антиплагиата (пережить можно, если работа пишется самостоятельно — то даже 10% заимствований не наберется), и наконец, на днях меня выморозило вот такое требование к списку литературы, текст оригинала сохранен:

Количество литературы — не более 40 с актуальным сроком информации не старше 5 лет.

Как думаете, что спросит у руководителя испорченный бакалавриатом студент? Разумеется, «А что делать, если у меня 41 пункт и есть ссылка на ГОСТ 23089.14-88?» — и хорошо, что спросил, а не побежал исправлять список литературы!

Привычка «все проверять антиплагиатом» приводит и к совершенно безумным вещам вроде «рерайта» — попытке «механически» увеличить «оригинальность», читаемости тексту работы это не добавляет. Вероятно, проистекает она из стремления «написать побольше» — в результате вместо «введения» получается безумный пересказ википедии, как было сказано чуть выше. А где пересказ википедии — там и некорректные заимствования, так сказать.

Ну и отдельная вишенка на торте — полное, тотальное отстутствие «презентационных навыков», которые вроде были должны надрочить еще в бакалавриате. Слепить презентацию с килобайтом текста на слайде, сесть за ноутбук и начать медленно и печально этот текст зачитывать — в порядке вещей. Чувствую, что еще и выступление на защите придется выдрачивать до автоматизма (но две недели на это есть).

Испытываю странное чувство

Хотел в продолжение предыдущей телеги написать, что DO-178 — самый аджайловый из аджайловых стандартов, а за меня это сделали чуваки из Airbus:

https://hal.science/hal-02156357/document

Впрочем, пригодится :)

Про CI/CD

Прочитал студентам проповедь про CI/CD в embedded, поделюсь и тут:

Как учат нас всякие нормативные документы — возьмем, например «авиационный» стандарт DO-178B или в русском переводе — КТ-178B — «интеграция» — это процесс, в рамках которого «исполняемый код загружается в целевой вычислитель» (раздел 5.4) — то есть примерно то, когда вы в Riot выполняете команду make flash или в каком-нибудь красивом IDE типа Keil или IAR (ну или в крайнем случае Arduino IDE) нажимаете кнопку «Run», которая делает то же самое — ваш проект компилируется и загружается в подключенное к вашему компьютеру через отладчик устройство. Это может быть устроено немного более сложно, но пока такого представления об этом всем достаточно.

Дальше, даже если вы делаете это все вручную, в том или ином виде у вас происходит «верификация», в терминах того же стандарта — вы убеждаетесь, что программа работает так, как вы представляете нужным — это называется «анализом тестовых примеров, процедур и результатов испытаний». В самом простом виде — вы смотрите на мигания светодиодиков, вывод в UART, может быть, вручную выполняете какие-то операции с устройством.

Исходя из результатов испытаний вы понимаете, что программа работает неправильно, возвращаетесь к кодированию — и все повторяется заново, стандарт описывает это словами «Процессы жизненного цикла ПО могут иметь итерационный характер, то есть, могут повторяться» — примерно так, как это показано для «компоненты Z» на этом рисунке:

«Наивный» подход к разработке ПО (свойственный инженерам-электронщикам, кстати говоря) — это то, что показано для «компоненты W» — формулируем требования, выдаем их кодеру, он пишет код, потом заливаем его в целевое устройство, …, PROFIT! Проблема в том, что он… не работает, но при этом широко применяется, вот довольно яркое описание принятых у электронщиков рабочих процессов в программировании:

Качество кода? Ревью? Разделение задач? система контроля версий? Да о чем вы! Высрал бинарник в пизженом кейле и отдал на производство. Человек ушел, работы не приняли, новый начинает с нуля все заново.

https://mbr.livejournal.com/606449.html

Так вот, «непрерывная интеграция» — это в точности то, что сделано в Riot’овских тестах, запускающихся на базе iotlab:

— основная «ветка» безо всякого участия программиста компилируется (это результат «процесса кодирования», пункт 5.3.2 в документе), причем «эталонным» компилятором (я видел, как некоторые проекты «ломались» от смены версий gcc);
— выполняется «процесс интеграции» (раздел 5.4);
— дальше проводится то, что в КТ-178 называется словом «испытания» (программисты скорее будут использовать слово «тестирование») — «выхлоп» программы сравнивается с ожидаемым.

Хочу обратить внимание, что верификация этим не исчерпывается, это немного более сложная штука, но как минимум часть задач верификации тестированием закрывается. Главное — то, что все это делается полностью автоматически, и программист не может намеренно «обойти» эти процессы, потому такая интеграция и называется «непрерывной».

Ну а так как результаты испытаний — это, в том числе, и входные данные для процессов разработки («устранение ошибок – это мероприятия процессов разработки») — то они становятся такими же «непрерывными» — как для «компоненты Z» на рисунке перемежаются «кодирование» и «интеграция» (а то и вовсе по результатам очередной интеграции и испытаний мы возвращаемся к разработке требований и перепроектированию).

В embedded это все особенно ярко видно, потому что «целевой вычислитель» — вот он у вас, в руках или на столе в виде отладочной платы.

Понятно, что все эти вещи можно делать разными средствами — да хоть даже «вручную» — написал код, выполнил команду make или нажал Compile, отдал получившийся бинарник тестировщику (и все это еще оформить документально журналом по принципу «сделал — запиши, не сделал — запиши два раза» — в принципе, и такие «процессы» возможны), но если можно автоматизировать эту работу — то почему бы и нет? Заодно в какой-то степени из процесса испытаний исключается человеческий фактор, все, что можно проверить автоматически — будет проверено, в идеале — для каждого существенного изменения в вашем гитлабовском репозитории (а контроль версий на языке тех же стандартов входит в то, что называется «управлением конфигурациями»).

Собственно, именно это и называется «непрерывной интеграцией», а вовсе не бездумное использование GitLab, Docker и прочих Ansible — важны не инструменты, а то, что вы с помощью этих инструментов делаете. Более того, если строго следовать требованиям КТ-178 — то используемые в процессе валидации инструменты должны быть «квалифицированы», то есть разработаны в рамках предъявляемых стандартом требований. Разумеется, такие программные продукты тоже есть, стоят дорого, как и все авиационное — но возможно, и с ними в жизни придется встретиться.

Про CAD’ы для электроники

Вот пара вопросов возникла. Во-первых — вот давайте представим, что я делаю какой-то прожект под вывеской Open-Source Hardware. Собственно, вопрос — а в каком CAD-е работать? Варианты вижу примерно следующие:

— досовский PCAD;
— пизженный Altium;
— Eagle 7.7.0 (последняя версия, не требующая «подписьки»);
— хохляцкий DipTrace (трофейный);
— KiCAD (классика опенсорца, но мне от него блевать хочется);
— LibrePCB (опенсорц, но нетрадиционный);
— Lithium ECAD (отечественный импортозамещенный «дешевый CAD»).

Какой из этих вариантов позволит проявить максимальное неуважение к «потребителю»?

Во-вторых — смотрю я на CAD’ы «попроще» — ну вот тот же Eagle с DipTrace, и сдается мне, что «за деньги» в этом сегменте существовать невозможно. У меня не вызывает вообще никаких сомнений то, что Lithium ECAD в перспективе пары-тройки лет сдохнет — пользователь такой херни денег платить не намерен, «радиолюбители» у нас необычайно прижимисты (собственно, зайдите, почитайте комментарии в группе техподдержки в контакте). «Вкладываться» в его изучение, рисование собственных библиотек и так далее — путь в никуда. При этом я почему-то уверен, что существующий на «гранты» LibrePCB переживет многих, пусть и даже в состоянии «вечной беты». Вот отсюда — второй вопрос — а какие механизмы позволяют в условной Европе раздавать деньги не на ебаный стыд, а на полезные проекты?

И еще про Машу

Некоторые комментаторы недавней записи с чего-то решили, что я Машу хочу как-то наказать, и предлагали разные изощренные варианты, вплоть до того, чтобы инициативную работу никак не засчитывать. Вовсе нет — мне, как одному из непосредственных «стейкхолдеров» проекта это все даже удобно.

Но вот что интересно посмотреть — очень показательный диалог:

Немного предыстории — Кирилл с очередным заданием слегка проебался, прямо во время созвона Маша сказала, что это несложно и она готова показать Кириллу, что и как надо делать, и соответственно, Кириллу была поставлена новая задача — совместно с Машей разобраться и доделать. Последствия на скрине, но это не самое интересное. Оцените Машину лексику — от «возможно, вам и не стоит» до «я планировала так». Как и было сказано — прекрасный, просто потрясающий пример «мягкого» захвата власти.

Понятно, что чем дальше мы идем по шкале «красный-бирюзовый«, тем лучше работают такие методы (хотя и в «красном» случае есть шансы отличиться в глазах начальника и получить ефрейторскую лычку). Где-то на «оранжевом» этапе, правда, такие заходы начинают восприниматься, как «подсиживание» начальника и могут жестко пресекаться. В «бирюзовом» случае — без формальной иерархии — наоборот, такие вот неформальные методы оказываются единственно работающими (и не надо читать текст по предыдущей ссылке, почитайте лучше отзывы про порядки в Valve или Github).

Так вот, почему в последнем случае никто не видит в них угрозы? Мне кажется, что залогом успешного существования «бирюзовой организации» является совершенно непреодолимый барьер между «стейкхолдерами» и работниками организации. Последние могут творить любую херню в своем первичном бульоне — лишь бы их действия не вредили интересам стейкхолдеров. Ровно так же, как и в моем случае с Машей — меня полностью устраивают Машины методы работы, как бы она ни «строила» своих коллег и не брала бы на себя мои задачи (чему я только рад), из студентов в руководители проекта ей в обозримой реальности не перепрыгнуть — а значит, и никакой «угрозы» ни мне, ни проекту в целом вообще нет.

Что делать со студенткой?

Возник у меня очередной игрушечно-управленческий вопрос. Вот рулю я в очередной раз студенческим проектом, студенты там разные — от «не пнешь — не полетит» (ну эти накопят свои часы, получат «хорошо», дальше мы с ними особо пересекаться не будем) до вполне толковых и работающих, но особо не выходящих за рамки поставленной задачи (задача при этом довольно глобальная и такой подход меня вполне устраивает).

Так вот, взял в этот проект девочку, которая слезно просилась хоть куда-то (у нее выпускной курс, а в прошлом году проект, в котором она работала, на защите прямо «прокатили», с неудами всем участникам). Девочка оказалась очень работоспособной, в целом толковой, но нашла себе довольно оригинальную нишу — «затыкает дыры» за лентяями, причем делает это фактически до того, как эта дыра образуется. Условно, собираюсь дать Васе задачу «накати приложеньку на вон тот Raspberry Pi в лабе», но не прямо сейчас, а на следующей неделе, когда приложенькой можно будет пользоваться — но Маша успевает что-то на этот Raspberry накатить, пусть пока еще кривоватое и полуработающее еще до того, как я такую задачу озвучу официально. С одной стороны, наказывать за такую инициативу — ну как-то странно, «процессов» уровня «Васина задача отмечена в тикетнице» у нас там нет (да, это мой проеб, но там даже «затащить всех в корпоративный чат вместо телеграма» — уже большой успех), с другой — немного тормозятся прямо поставленные Маше задачи (правда, они менее срочные) и еще хуже в контексте студенческого проекта — я не могу отметить Васе отработанные часы, он работает медленно и его «полусделанные» задачи в некоторый момент теряют всякий смысл.

Плюсом идут некоторые отступления от «процессов» типа переписки по «общим» вопросам через личку (условно, что-то затрагивает Машу и Лизу, Маша написывает мне в личку как руководителю «я сделала вот так», после этого остается только поставить Лизу перед непонятно откуда взявшимся фактом). Было бы это в рамках нормального day job — я бы решил, что девочка пытается подсидеть начальника и в обход процессов мутит что-то свое, а тут я прямо даже не знаю, какая за этим стоит мотивация (ну разве что «синдром отличницы», но стройных рядов пятерок в зачетке тоже не видно).

Короче, что делать (вариант «выебать» не предлагать, этический кодекс Высшей Школы Этого-самого не позволяет, вот выпустится — тогда вперед)?

Лучший друг летчика Ли Си Цына

В очередной раз издеваюсь над принтером-старичком Canon LBP-800, в этот раз переделываю его в Hewlett-Packard LaserJet 1100; метод тот же — замена платы форматтера (ну и плюс надо добавить к переходнику USB-LPT редкий разъем Micro Centronics-36). Разумеется, при этом нельзя пропустить известное «пасхальное яйцо» — надпись в память о некоем Ming Zen Kuo.

А что, если настоящая фамилия у чувака была Минченко, а вовсе не Ming Zen Kuo?

Тоталитаризм подкрался незаметно

Как известно, тоталитарный режим определяется цитатой Муссолини: Tutto nello Stato, niente al di fuori dello Stato, nulla contro lo Stato — «Всё в рамках государства, ничего вне государства, ничего против государства» — вот и сейчас читаю чисто отраслевой сайтик про пассивные электронные компоненты (всякие там резисторы-конденсаторы), а там между делом клеймят позором фашистов из AfD:

One issue that is not good for anyone, says Steinberger, is the increasing radicalization on the right-wing fringes of society, right through to the center: “It is time for us as an industry to take a much stronger stand against anti-human and anti-democratic tendencies in society. They damage society, the economy and Germany’s reputation as a cosmopolitan country.” Michael Huether of the Institut der deutschen Wirtschaft (IW) estimates the damage caused by the ‘audacious’ economic plans of the AFD and its allies at 500 billion euros in losses and 2.2 million jobs, not to mention the social upheaval.

https://passive-components.eu/fbdi-pesimistic-about-2024-german-components-distribution-market/

Чувствую, скоро в рамках ESG введут пятиминутки ненависти и прочие атрибуты карикатурных диктаторских режимов из антиутопий и комедийных фильмов 60-х.

Про трафареты и Silhouette Portrait

Немного тут занялся нарезкой трафаретов для паяльной пасты на плоттере Silhouette Portrait, этап с экспортом DXF в штатную программу Silhouette Studio прошел быстро и мне не понравился — так как Silhouette Studio понимает в этом формате только полилинии, экспорт из «обычных» CAD’ов для электроники оказался слегка неприспособлен для этого, приходилось дополнительно редактировать эти файлы — так что я быстренько перешел к применению gerber2graphtec:

https://github.com/pmonta/gerber2graphtec

Собственно, это уже давно не новость, самой утилите уже 12 лет, упоминаниям в рунете — не меньше 7, более того, даже в ACM про организацию кустарной мастерской с такой хренью писали. Естественно, держать хотя бы и виртуалку с линуксом для этой задачи мне показалось лишним, поэтому я творчески совместил руководства по применению скрипта gerber2graphtec в WSL — с выводом в файл, и запуск file2graphtec уже в Windows (к сожалению, WSL не видит подключенные по USB устройства). Один из необходимых на этом пути шагов — это замена драйверов с помощью известной утилиты Zadig — ну и в принципе оно работало, пока я не подумал — а ведь устройство endpoint’ов у плоттера — почти такое же, как и у USB-CDC, то бишь виртуального COM-порта! А почему бы не поставить этот драйвер с помощью Zadig принудительно?

И что самое интересное — оно заработало! После такой замены плоттер распознается в Windows, как «еще один» COM-порт, и при этом его можно использовать в WSL «штатными средствами», как устройство с именем /dev/ttySn, где n — номер COM-порта.

В итоге стало возможно прямиком из WSL запускать команды вроде

./gerber2graphtec --media_size 8.5,11 --offset 0.5,0.5 file.gbr > /dev/ttyS5

а с заранее подготовленным файлом с graphtec’овскими командами — использовать банальный cat вместо «отдельного» file2graphtec.

PS Понадобилось внести еще пару изменений в gerber2graphtec — но пока не могу понять, с чем они на самом деле связаны.

Кошмар монтажника

В одном устройстве (ну вы уже знаете, в каком) одновременно используются контроллер PoE TPS2376 и операционный усилитель OPA2376. Найдите 10 отличий, а также — что не даст монтажнику перепутать такие разные чипы (картинки кликабельны)?

PS Всерьез подумываю о том, чтобы поставить где-то в схеме 1-wire EEPROM в корпусе SOT-323, подписать в шелкографии Q1488, а дорожку от неиспользуемого вывода задействовать в аналоговой части схемы, как паразитную емкость.

Про массовое производство

Не очень умные хохлы смеются над сделанным в лучших традициях «военки» блоком управления УМПК — моднейшей российской корректируемой авиабомбы. Не отрицая того, что вот эти жгутики с кембриками и разъемы DB-9 — чудовищный пример антитехнологичности, скажу просто — молитесь, чтобы начинку УМПК не начали делать по технологиям, скажем, автоэлектроники — девайс существенно проще, скажем, автомобильного ЭБУ, так что собирать их по несколько сотен в час можно без особого труда:

А тех, кто топит за жгутики и кембрики, в Прекрасной России Будущего отправят в исправительно-трудовые лагеря, на строительство заводов по производству современных разъемов (хотя вот отечественный Ethernet показывали, КРОСИВОЕ).

Конспирологическое про KPI

Вот подумалось тут, что пресловутое «расширение НАТО на Восток» прекрасно описывается в терминах KPI, воронок продаж и тому подобных. Представьте, что в Брюсселе, в штаб-квартире НАТО, где-то в конце 90-х создали «Отдел холодных звонков по расширению НАТО». Ну все как у людей — начальник, секретари, менеджеры холодных звонков, регулярный обзвон министров обороны и президентов всякой европейской мелочи — «А вы не хотите вступить в НАТО? А давайте мы вам презентацию скинем!»

И разумеется, этому отделу были поставлены KPI — так как задача стояла большая и сложная, KPI ставились на пятилетний срок. И если посмотреть на табличку «Расширение НАТО» в Википедии, дела сначала шли просто прекрасно: в 1999 году отчитались Венгрией, Польшей и Чехией, в 2004 — Болгарией, Румынией, Словакией, Словенией и всей Трибалтикой (может, даже за перевыполнение плана всех поощрили), в 2009 чуть скромнее, Албанией и Хорватией, а дальше случилось страшное — кандидаты закончились.

Даже хуже — после 08.08.08 отвалилась весьма перспективная Грузия, отвалилась Украина, так что можете представить себе весь ужас департамента холодных звонков — вроде уже выучили имена всех любовниц министров обороны недоразвитых стран, вроде пообещали каждому постсоветскому президенту счет в швейцарском банке и откаты с поставок — а тут оказывается, что никого из кандидатов не осталось! С большим трудом в 2017 году (!) в НАТО заткскивают Черногорию, провалив все сроки (напомню, что пятилетний цикл велел принять кого-то в НАТО в 2014, опоздали на три года), так что вероятно, НАТОвский «отдел продаж» предупредили о том, что если так пойдет и дальше — все пойдут на мороз.

Не сильно улучшила ситуацию и Македония, спешно проведенная через всю «воронку продаж» — от приглашения о вступлении в 2018 до формального вступления в начале 2020. Во-первых, при оценке KPI намекнули, что формально это все равно опоздание относительно планового срока отчетности за период 2014-2019, во-вторых, кто-то из высокого начальства недовольно заметил, что «с этими балканскими карликами мы скоро совсем до мышей доебемся». От скорого расформирования «отдел по расширению» с отправкой особо отличившихся чистить снег в Норвегию могло спасти лишь чудо (нет, ну можно позвать Боснию и Герцеговину, или какое-нибудь Косово — но фразу про балканских карликов восприняли вполне серьезно).

И внезапно (где-то в начале-середине 2021 года) такое чудо случилось — свежеизбранный президент Украины Зеленский допизделся и заявил о готовности «да хоть завтра!» вступить в НАТО. За такую удачу ухватились буквально бульдожьей хваткой, пресекая все попытки «соскочить», а на заявления со стороны России в духе «вы что там, охуели?» включили такой damage control и пропаганду, что мало не покажется — мол, не было никогда никаких договоренностей о нерасширении, это Ельцину все с пьяных глаз привиделось! Выдумывать разговоры между выпускниками британских элитных интернатов, сопровождавшие все это — неблагодарное занятие («- Бо́рис, привет, это Джон, мы с тобой в ранней молодости свинью ебали! — Да Джон, наслышан о твоих проблемах со свиньями, ха-ха! Не ссы, русские блефуют!») — но задействовались, наверное, связи на самом высоком уровне, впервые в истории «отдела по расширению».

Собственно, итог «борьбы за KPI» мы все видим последние два года — и даже несмотря на то, что членства Украины в НАТО не случилось, впервые за много лет «отдел по расширению» встречает новый отчетный период спокойно — в качестве результатов за 2019-2024 год будет предъявлена Финляндия (много лет назад списанная за бесперспективностью — ну да, совместные учения, водка, сауна — но дальше развивать отношения финны отказывались), а на следующие несколько лет (2024-2029) отложена Швеция. А про «балканских карликов» и «чистить снег в Норвегии» мы — или не мы — прочитаем в мемуарах кого-то из британских генералов лет через 15 (называются «Тридцать лет на страже европейского мира», издано тиражом 200 экземпляров, весь тираж роздан по родственникам и знакомым, по паре экземпляров подарено библиотекам школы в Итоне и военного училища в Сендхерсте).

Всякие войны случались в человеческой истории — древние греки воевали из-за царских любовниц, южноамериканцы — из-за футбола, но вот войны, начавшейся из-за того, что офисному клерку надо было срочно закрыть отчетность, в истории еще не было. Напомню, что хорошая конспирологическая теория рано или поздно становится реальностью, причем уровня «это же все всегда знали». Будем ждать :)

Embedded, мать его

Как это, руководить проектом (пусть даже студенческим) по разработке мелкого устройства на микроконтроллере? Да очень просто:

— вчера ты шутишь про «быстрые китайские чопперы» (не мотоциклы);
— сегодня — разбираешься в нюансах работы gdbserver поверх TCP;
— завтра — еще какая-нибудь ебала вылезет.

Впрочем, now it’s official — удалось прикрутить к Blackmagic Debug Probe поддержку TCP, причем нормально, а не как в ctxLink:

Дальше в планах — дальше допиливать обещанный как-то в комментах «отладчик с мониторингом энергопотребления для устройств Интернета вещей, … сочетающий в себе свойства Segger J-Link Pro, Blackmagic Debug Probe и Unwired Devices Energymon». Скорее всего, даже заопенсорсим устройство (прошивку уж точно) — хотя есть у меня обоснованные сомнения касательно всякого Open-source hardware.

Ну и в качестве развлечения — быстрый китайский чоппер (на этот раз мотоцикл):

Защита информации — слишком сложная вещь, чтобы доверять ее айтишникам

Поучаствовал на днях в паре срачей «кто виноват в сбое DNSSEC и что с этим делать». В очередной раз убедился в двух вещах:

— словосочетание «информационная безопасность» — это лингвистическая диверсия, отключающая мозг;
— доверять айтишникам «защиту информации» нельзя, это путь к цифровому концлагерю худшего типа.

А теперь подробности — на этой неделе в Рунете произошел крупный сбой, связанный с защитой от подмены данных в протоколе DNS, официальные органы довольно быстро отреагировали и разослали интернет-провайдерам указание — «отключите временно проверку подписей DNSSEC». Некоторые айтишники очень бурно отреагировали на это — мол, где это видано, чтобы проверки «безопасности» отключать, особенно по указанию госорганов! На разъяснения, что это нужно прежде всего для доступности интернет-сервисов пользователям, реакция была в духе «но это же небезопасно!!!11»

Так вот, подобное поведение годится для всяких там вахтеров, в лучшем случае — младшего технического персонала, которому в голову вдалбливается (в основном через жопу) несложная инструкция (стоять здесь, нажимать на эту кнопку, в случае чего звать старшего). Именно на «младшего техника» расчитаны указания типа «DNSSEC не отключать ни при каких обстоятельствах», «на сайте должен быть HTTPS» и тому подобные.

Но… даже на железной дороге, где каждый знает, что «проезд на красный свет — преступление» есть вполне себе штатные процедуры, когда под запрещающий сигнал светофора двигаться можно и даже нужно — да, они строжайше документированы, но с другой стороны — это прямо показывает, что иногда «требования безопасности» (причем настоящей, а не «информационной») приходится обходить.

И это приводит нас к определяющему элементу всей теории что безопасности, что защиты информации — к анализу рисков. Мне эти понятия казались самоочевидными — тем более, что с определений угроз и рисков начинается любой «профильный» документ по защите информации, но недавно я прочитал вот это изложение азбучных истин за авторством Лукацкого и задумался — а какие же причины заставили уважаемого специалиста влезть на табуреточку и рассказать вроде бы очевидные вещи?

https://www.it-world.ru/security/200675.html

А дело в том, что условный айтишник в принципе невыносимо далек от понимания проблем организации, вплоть до того, что искренне считает, что деньги берутся из тумбочки, а его роль — скажем, «выполнение требований регуляторов». При этом при минимальном понимании управления рисками становится очевидно реальное место всей этой «безопасности» в списке приоритетов любой организации — да, она необходима, но в подавляющем большинстве случаев многочасовой простой обойдется дороже, чем небольшое, в общем-то снижение уровня защиты DNS (да и как-то жили мы до появления DNSSEC, и ничего). На определенном уровне «айтишнику» необходимо — даже в рамках должностных обязанностей — принимать подобные решения, и очень печально, что многие так и продолжают считать «ну полежит DNS, а с ним и все остальное у нас пол-дня, пока DNSSEC не раздуплится, зато все будет защищено, как в учебнике».

А вот что на самом деле хотелось бы обсудить — так это наличие штатных процедур, позволяющих механизмы защиты данных отключать. Что должно быть основанием для этого? Сообщение в телеграме от пользователя под ником Ssh? Официальное письмо из министерства на гербовой бумаге? Звонок в Whatsapp якобы от начальника? Интересно даже, дошел ли кто-то до осознания необходимости регламентировать такие вещи.

Хотя… о чем это я, когда средний аутишник уверен, что все это его не касается, «ты не отвечаешь и тебе похер«.

И еще про инженерию

Тут в жежешечке внезапно проснулся [info]vit_r, и в частности, разъясняет, чем software engineer отличается от любого другого инженера:

Most software engineers aren’t really engineers because they like to talk. The people who are true engineers use numbers and images in their discussions, not rhetoric.

Если вы считает сложным выбор между самыми модными джаваскриптовыми фреймворками последнего сезона — то просто попробуйте с цифрами в руках обосновать выбор между всего четырьмя с половиной простыми микросхемами, а именно операционными усилителями — деталями практически commodity-уровня, которых в каком-нибудь измерительном приборе может быть несколько десятков (я бы тут еще подкинул, но ладно, это последние несколько, что я смотрел):

TI OPA2376
Fulihao OPA2376D
AD8605
TP2312
MAX4239

Сложно? Много непонятных циферок? А ведь от ответа на этот вопрос зависит, по сути, куда больше, чем даже от очередного модного фреймворка, и более того — средний разработчик электроники подобный выбор делает где-то на порядок чаще, чем средний программист.

Про матриархат

Вот кстати, вспомнил, что отладчик со счетчиком энергопотребления Energymon (у меня тут на столе две штуки валяются) по масштабу идеально подходит, как электросчетчик в домик Барби (рост куклы — около 30 см, то есть масштаб 1:6; Energymon, увеличенный в 6 раз, имел бы размеры 222*300 мм — в общем, вполне себе похоже на небольшой электрощиток). Подумал, что из этого можно было бы сделать забавную фотосессию, и если с домиками для Барби и самими Барби проблем нет — то найти Кена-электрика или разнорабочего не представляется возможным.

Нет, Барби бывают всякие, есть даже инженер-робототехник — но вот Кены в основном занимаются тунеядством и ходят в модных шмотках. Нет, не так выглядит матриархат, совсем не так!

Или это специально сделали, чтобы детишки не играли в ролевую игру по мотивам немецких фильмов «пришел электрик»? Впрочем, в рамках инклюзивности все равно нужны Кены в варианте чернорабочего, скуфа с пивным пузом и подзаборного алкаша.