Вынужденно обновился

Thinkpad T420 -> Thinkpad P14s Gen 2.

420-й прожил долгую и счастливую жизнь и начал помирать, видимо, от последствий залития жидкостью.

Хочу обратить внимание на замеченный вчера нюанс ценообразования в официальном (!) магазине Леновы — модель с 1024 Гб SSD вчера стоила существенно дешевле, чем с 512. В остальном — проверено по PSREF! — модели 20VX005ART и 20VX005WRT одинаковы. Видимо, зависит от того, куда колбасит курс доллара и по какому курсу была куплена та или другая партия товара.

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

Немного завидую современным студентам

Написать на видном месте в дипломной работе слово «хуй» — done.

А еще я предлагал в качестве отдельного «пасхального яйца» вот эту картинку вставить, потому что тут в работе есть и гаджеты, и VPN, и даже iPv6 (орфография оригинала сохранена):

Пока продолжу серию тизеров

Обещал на длинных выходных написать про то, как в 2022 году надо строить сети беспроводных датчиков — но так и не написал, так что сидите пока и ждите. А чтобы ожидание не было скучным — поделюсь еще одной забавной картинкой:

Красные жигули вы все знаете (и отдельный привет Александру Касмынину!), а вот происходящее на стенде проекта в некотором роде уникально — возможно, это единственный случай, когда планшет Samsung из состава «Лаборатории Интернета вещей» в МИЭМе использовался бы по назначению — для работы студентов над этим самым IoT.

Вообще, история «IoT-академии Samsung» и появления вот этих самых планшетов в вузовских лабораториях по-своему шикарна. Пресловутые «Лаборатории интернета вещей» оснащались оборудованием, если мне не изменяет память, в 2019 году — и если отладочные платы с STM32 и модемом LoRa в общем-то относятся к категории «сделано в России, аналогов нет» (в положительном значении этих слов) — то как пристегнуть к «интернету вещей» планшеты 2016 года с Android 6.0 — лично я не знаю.

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

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

Даже iFixit, вначале всячески приветствовавшие программу upcycling, разродились гневным текстом в стиле «нас всех наебали»:

https://ru.ifixit.com/News/50450/samsung-galaxy-upcycling-unlocked-smartphone-smarthome-project

А Upcycling этих планшетов в исполнении здорового человека состоит в том, чтобы поставить на них Lineage OS — полноценный Android 10 безо всякого говна, зато со всеми положенными плюшками — и одной из главных плюшек для картинки сверху является полноценная поддержка Bluetooth Low Energy и L2CAP-сокетов (ни в одной из официальных прошивок этого не было) — а о том, что это такое и для чего они нужны — в следующий раз.

Кстати, вот набросить хочу

Читал тут материалы одной прошлогодной IEEE-шной конференции, наткнулся на занятную статью — о построении самоорганизующейся беспроводной сети для передачи видео с дронов. Ну вот представляете себе — летят беспилотники, один транслирует видео, другие работают ретрансляторами? Хорошая, вполне себе и инженерная, и в какой-то степени научная задача. Это в чистом виде этот ваш модный Internet of Things, да и собственно, подходы взяты примерно оттуда — mesh-сети описаны в стандарте 6LoWPAN (RFC 4944, RFC 6282), а вся «беспилотная» специфика у авторов была загнана в специфический вариант «целевой функции» для протокола RPL (RFC 6550). В остальном — полноценный IPv6, поверх него работают любые более-менее стандартные решения — хочешь, транслируй видео, хочешь, гоняй HTTP-трафик, хочешь — что угодно делай.

Я думаю, в свете текущих событий, всем понятно, что ретрансляция видео с беспилотников интересна не только в чисто академическом плане — и более того, так как «у дураков мысли сходятся» — то я слышал минимум об одной довольно активно продвигаемой попытке слепить вот такой недобрый «интернет вещей» в интересах ВС РФ. В основе — все те же «гражданские» технологии типа вышеназванного 6LoWPAN (реализаций-то полно, даже в линуксах и даже астралинуксах есть, чего бы не использовать?); радио, конечно, вовсе не IEEE 802.15.4, а кое-что посерьезнее, но идеологически близкое. Об использовании этих решений, их доступности и всем таком прочем никто, конечно, не распространяется, но факт остается фактом — разработка военной техники у нас вполне себе находится в русле мировых тенденций.

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

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

Про «умный дом»

Вот пишут, кстати:

Оказалось, что умные гаджеты Sber используют платформу Tuya. Данный сервис сейчас блокирует все новые подключения по идентификатору, который есть у каждого устройства Sber. Это происходит из-за санкций, введенных против компании в начале апреля. VPN в данном случае не помогает.

https://habr.com/ru/news/t/664470/

При этом, как сообщают с мест, устройства на базе «железа» Tuya можно использовать даже локально, безо всяких облаков — помогает связка банального Home Assistant и zigbee2mqtt. С неограниченным сберовским финансированием, допиливание даже этого опенсорса до пригодного к продаже состояния — это несколько месяцев работы небольшой команды. По факту же имеем бездонную дыру, минимум несколько лет жравшую бюджет и родившую лишь — буквально! — китайское дерьмо с переклеенным шильдиком.

Да, Сбер пытается делать хорошую мину при плохой игре, и заявляет о начале разработки «собственного облака» — но, во-первых, примерно с этого надо было начинать; а во-вторых — люди несколько лет занимались именно тем самым «переклеиванием шильдиков», и ни у кого не возникло мысли, что что-то с этим не так? А с другой стороны — любая честная собственная разработка «умного дома» обречена на конкуренцию со Сбером и Яндексом, которые просто зальют направление неограниченными деньгами, завалят рынок откровенным дерьмом, а затем тихо сделают вид, что ничего плохого не случилось.

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

Про google-driven programming

Вообще я конечно догадываюсь, как обиженка из предыдущей записи нашел мой блог — в интернетах катастрофически мало написано про 6LoWPAN поверх Bluetooth Low Energy, а в особенности — с использованием RIOT OS (кажется, кроме нескольких абзацев официальной ридмишки, которая тоже не дает ответов на все вопросы, ничего толкового нет). Ну чтож, будем помаленьку исправлять.

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

Про поддержку айтишечки и все такое

Почитал тут пару смешных материалов на тему «все айтишники уезжают в Грузию, надо срочно спасать отрасль!» — вот, например, почти эталонный образец:

https://perm.rbc.ru/perm/freenews/624aec609a7947efc2f45d95

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

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

Хрущев ввел процентные нормы: сколько нужно принимать в вузы выходцев из рабочих, заявил, что нужны рабфаки, что нужно гнать в вузы рабочих. А в школах ввели 11-летнее обучение, и два дня в неделю ученики должны были проходить практику на производстве. И вот Кронрод вдруг говорит: Мы можем воспользоваться этим моментом, чтобы создать математические классы. И мы объявляем, что должна быть производственная специализация – «программирование», и мы будем преподавать математику. Два дня в неделю в таких классах было отдано только математике и программированию.

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

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

А какие еще могут быть аргументы в пользу «поддержки» айти как отрасли? Аутсорсинговое айти приносит в страну валюту? Пожалуй, этот аргумент мог бы работать для Индии, Белоруссии или Украины, но для России с ее внушительным внутренним рынком — лишь частично (и при этом все равно сохраняется ориентированность айтишных зарплат «на Запад»). Да и в целом экономический эффект от инвестиций в айтишечку — так себе, в плане включенности в длинные производственные цепочки айти сродни… пожалуй, какому-нибудь сбору клюквы (нет, я не о том, что показывают по Discovery, я про то, как это делается у нас на болотах Тверской области).

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

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

DipTrace начал за Украинушку топить

Напомню, что пиратство в военное время называется каперством, а лицензионный ключ для DipTrace 4 версии на 4 слоя и 1000 выводов — вот:

Имя пользователя: Для некоммерческого использования
Регистрационный код: H2W2-6K9A-PS2F-H3L5-SSW1

Денег никому никаких платить, естественно, не нужно.

Продолжу набрасывать

И снова на злободневную тему, непосредственно связанную с военной операцией на Украине — но для начала прочитайте материал под заголовком The Wargame Before the War: Russia Attacks Ukraine. Если коротко — то чуваки «отыграли» сценарий российской операции на Украине, при этом местами действуя куда более «жестко», чем это происходит в реальности. Скажем, стадия «shaping fires» у любителей варгеймов была куда длиннее, чем в реальности. «Shaping fires» в данном случае — это удары по военной инфраструктуре, то, что мы видели во всех тиктоках в первые дни. Помните все эти ролики с зеваками и их воплями — «Смотри, смотри, ракета, ща по вон тому складу ебанет!»?

Но на что стоит обратить особое внимание — так это на то, что сейчас воюют две армии, имеющие оружие совершенно разных поколений. Украина, по большому счету, так и осталась с вооружением позднесоветских времен, когда «рулили танковые клинья и ковровые бомбардировки». Россия, напротив, в первые же дни продемонстрировала две вещи: наличие высокоточного оружия и умение его применять — при всей массированности ракетных ударов неделю назад попадания в гражданские объекты были скорее случайными. Не знаю, применимо ли тут слово «гуманизм» — но действия ВС РФ полностью укладываются в требования Женевской конвенции — точнее, «Дополнительного протокола I» 1977 года, а точнее, статьи 57 из нее, цитирую:

те, кто планирует нападение или принимает решение о его осуществлении:

а.1) делают все практически возможное, чтобы удостовериться в том, что объекты нападения не являются ни гражданскими лицами, ни гражданскими объектами и не подлежат особой защите, а являются военными объектами в значении статьи 52, пункт 2, и что в соответствии с положениями настоящего Протокола не запрещается нападение на них;

а.2) принимают все практически возможные меры предосторожности при выборе средств и методов нападения, с тем чтобы избежать случайных потерь жизни среди гражданского населения, ранения гражданских лиц и случайного ущерба гражданским объектам и, во всяком случае, свести их к минимуму;

а.3) воздерживаются от принятия решений об осуществлении любого нападения, которое, как можно ожидать, вызовет случайные потери жизни среди гражданского населения, ранения гражданских лиц и нанесет случайный ущерб гражданским объектам, или то и другое вместе, которые были бы чрезмерными по отношению к конкретному и прямому военному преимуществу, которое предполагается получить;

Кстати, по той же причине мы не видим и штурмов городов — потому что превращать Киев или Харьков в Мосул или Фаллуджу явно никто не хочет. Последняя после «освобождения» выглядела примерно так:

Сравнивая это с действиями украинской армии на Донбассе в 2014-2015 годах, когда «нормальным» считались обстрелы городов ствольной артиллерией или даже «Градами» — в общем, получаем вполне однозначные выводы. Разумеется, связано это прежде всего с тем, что как у Украины на момент распада СССР не было современного высокоточного оружия, так и не появилось — не считать же таковым опять же древнюю советскую «Точку-У», опять же, не могу не прочитировать один чатик — «баллистическую ракету с ебейшим КВО, и в силу этого КВО — с ебейшей башкой, компенсирующей относительно низкую точность»?

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

Шуточки с двача обсудим завтра, а тем, кто желает подготовиться к срачу, предлагаю прочитать IEEE Software Engineering Code of Ethics, чтобы срач был предметным.

Маленький наброс про инновации

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

Начну с простого — получение «легкодоступных» грантов вроде бывшего фонда Бортника или сколковского «минигранта» — это способ надежно загубить карьеру молодого специалиста на самом начальном ее этапе. Почему? Сумма этих грантов (у Бортника — 1 миллион рублей, у Сколково — 5) может показаться большой, но пресловутый «инновационный бизнес» на нее не построить, первый же наемный сотрудник покажет вам, с какой скоростью она уйдет на ФОТ. Какие-то «исследования и разработки» вести на эти деньги просто невозможно — но на какую-то вялотекущую и бессмысленную деятельность хватает, в компании двух-трех единомышленников можно просуществовать в режиме «на пиво хватает вроде» пару лет.

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

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

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

Поскреби иного такого «инноватора» — и выяснится, что все новое и «прорывное» в его проекте сделано какой-нибудь скучной и неинтересной фирмой вроде Analog Devices или Texas Instruments, а без них он не инноватор вовсе. Видел на днях плач очередного стартапера о том, что из-за санкций он не знает, как будет покупать «передовые западные микросхемы» — но собственно, на такие заявы хочется достать бакелитовую лампу, направить свет в глаза и зверски орать что-то в духе:

— Где? Где инновации, блядь? В этой микросхемке? Кто ее делает? Maxim? TI? А твоя работа в чем? Ты героически купил у Analog Devices детальку и применил ее в строгом соответствии с даташитом? А нахуя тебе гранты давать за то, что любые китайцы делают в товарных количествах? На что деньги потрачены, сука?

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

Искренне надеюсь, что очищающей волной кризиса всю эту стартапную плесень наконец-то смоет, и выпускники российских вузов пойдут не заниматься хуйней в Сколково и прочих бессмысленных местах, а делать по-настоящему инновационные вещи, о которых я наброшу в следующий раз.

Вот еще вопрос про этот ваш embedded

Есть у нас в России довольно немалое количество контор, занимающихся серьезным программированием для встраиваемых систем всех видов, цветов и размеров — от мелких смешных фирмочек в два с половиной человека до гигантов с сотнями программистов типа Инкотекса или Ителмы. Так вот, глянул я на современных студентов — и малость офигел. Как бы не секрет, что можно закончить считавшийся в прошлом приличным ВУЗ, будучи закоренелым ардуинщиком — слышал о таких прецедентах в Бауманке и в МИЭМе (этим даже делился).

В чем беда? «Ардуинщик» от нормального программиста встраиваемых систем отличается тем, что его основные приемы работы сформированы убогим детским конструктором, а многие «полезные приемы» из мира Arduino — это попытки криво и косо эти ограничения обойти. Нет в Arduino нормальных таймеров (нет, не рассказывайте тут про TimerOne — он только на AVR поддерживается)? Не беда! Запихнем программу в loop и будем проверять значение, которое возвращает функция millis(). Совершенно отсутствует у «ардуинщиков» понимание того, что в любой приличной встраиваемой системе рано или поздно прорастает полноценная многозадачность (да, некоторые очень продвинутые притаскивают на Arduino FreeRTOS — но это уже первый шаг к пониманию того, что ардуина не нужна), полностью нет «многопоточного» мышления (а оно нужно даже в том случае, если вы активно используете прерывания — даже без RTOSа). Сама по себе убогость Arduino провоцирует написание кода, местами идущего «поперек» принятых в нормальном программировании для микроконтроллеров вещей. «Сообщество Arduino», которое так любят фанаты «платформы», превращается в этом случае в настоящее «ведро с крабами» — новичку быстро объясняют, что нечего и пытаться вылезти за пределы «платформы», так и надо жить с убогой IDE, примитивным hardware abstraction layer и китайским наколеночным конструктором.

Вот так, например, в мире Arduino принято бороться с дребезгом кнопки (ну есть еще библиотека GyverButton, но это еще более страшно) и передавать значения из прерывания:


char outputState = 0;
char lastState = 0;

void loop()
{
/* Skipped some code */
  // Now we can publish stuff!
  if (outputState != lastState) {
    lastState = outputState;
    Serial.print(F("\nSending state val "));
    Serial.print(outputState, BIN);
    Serial.print("...");
    if (! onoffset.publish(outputState)) {
      Serial.println(F("Failed"));
    } else {
      Serial.println(F("OK!"));
    }
  }
}

void handleInterrupt() {    //works when button pressed
  static unsigned long last_interrupt_time = 0;
  unsigned long interrupt_time = millis();
  if (interrupt_time - last_interrupt_time > 200)
  {
    if (outputState == 0) {
      outputState = 1;
      digitalWrite(LED, LOW);
    }
    else {
      outputState = 0;
      digitalWrite(LED, HIGH);
    }
  }
  last_interrupt_time = interrupt_time;
  delay(100);
}

Покажите это знакомым программистам встраиваемых систем, пусть они ужаснутся.

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

Казнить нельзя помиловать

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

Где-то месяц назад wannabe-программисту встраиваемых систем была выдана не очень сложная задача — разобраться чуть-чуть с сетевым стеком 6LoWPAN over BLE в RIOT OS, немножко автоматизировать его работу и все такое прочее.

Три недели назад чуваку был задан вопрос: все ли просто, все ли понятно, нет каких-либо вопросов? Ответ — разумеется, все просто, все понятно, вот прямо сейчас все сделаю!

Еще неделю спустя задача не выполнена, зато чувак объявился с великолепной идеей — а давайте перейдем на mbed OS, уж там-то все точно просто и понятно, вот даже API References and Tutorials подробные есть (но работает это поверх «обычного» IEEE 802.15.4, а не моднейшего BLE)! Это уже не «звоночек», это гораздо хуже — но в общем сроки пока не горят, ничего ужасного не произойдет, если он недельку потыркается в mbed, нужного там не обнаружит и с позором вернется туда же, откуда начал.

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

В 0:22 в ночь перед небольшим «интеграционным тестированием» системы в чатик прилетает вопрос в духе «а как какать»? По-хорошему, такой вопрос должен был возникнуть еще четыре недели назад — но не будем о старых обидах. Тут, конечно, повезло, что я чатик еще читал — так что в 4:44 в гит-репозитории проекта появилось решение где-то половины той задачи, состоящее из какой-то адовой копипасты и собственного кривого кода arduino-style.

В принципе, чел сам кузнец своего счастья — и накопленные за месяц 4 часа работы ему еще аукнутся, но хуже другое — по факту на данный момент, за 24 часа до демонстрации промежуточных результатов, имеем абсолютно неработоспособную часть системы, показывать собственно и нечего. Разумеется, героическим ударным трудом (в основном моим :) ) работоспособная демонстрашка завтра будет — но хотелось бы узнать, в каком месте поставить запятую в заголовке.

UPD После легкого попинывания (с предъявлением протокола совещания недельной давности) сегодня утром чел доделал к обеду оставшуюся часть задачи, итого наработав на 8 часов (ну а мне работать меньше, это хорошо). Другой вопрос, когда он вообще спит?

Долой скучные лекции!

Если начать лекцию со слов «Футбольный клуб Спартак только слабых привык побеждать» — то какую смИшную картинку лучше вставить в середине, чтобы удержать внимание аудитории? Эту:

Или эту?

Да, там посередке будет еще формула Шеннона, так что часть студентов непременно уснет.

Зрада чи перемога?

Я тут летом писал о том, как нужна математика в телекоме и около него — а на днях прекрасное подтверждение увидел:

Среди ссылок на документы 3GPP — упоминание «теоремы о неподвижной точке». Разумеется, только особый эстет будет ссылаться на диссертацию Банаха, большинство удовлетворится ссылкой на учебник Колмогорова и Фомина — но я хочу задать другой вопрос. Когда пишут «Львов, бывшая Польша, ныне Украина» — это зрада чи перемога?

Лицензия +NIGGER

Предлагают дописывать в популярные опенсорс-лицензии нехорошие слова:

https://plusnigger.autism.exposed/

Если кто-то берет ваш код и убирает слово «ниггер» — то предлагается курощать и канцелить его в твиттере. Говорят, что это позволяет эффективно бороться с использованием опенсорса в нехороших коммерческих целях озабоченными BLM и SJW американцами.

Комплюктерное, всрато-айтишное

Поразбирался тут с тремя околокомплюктерными проблемами.

Первая: встраиваемая операционка не реагирует на ввод с UART на конкретном семействе микроконтроллеров. Решение: запустить GDB-сервер, потыкаться отладчиком вплоть до уровня HAL, посмотреть осциллографом на отсутствие обмена по UART, обновить прошивку отладочного адптера. Все более-менее документировано или понятно из «общего образования» (то бишь книжки Столярова, не устану рекомендовать, это лучший русскоязычный учебник для «программистов вообще»). Неприятно, но жить можно, примерно 3/10.

Вторая: после обновления Android Studio не компилируется старый проект. Решение: гуглить, смотреть Stack Overflow, применять безумные рецепты оттуда, три-четыре раза сменить версию gradle. Безумно, непонятно, какого хера IDE лезет в систему сборки?.. Не рекомендую, 6/10.

Третья: поставить Lineage OS на планшет Samsung Galaxy A Tab 10.1 2016 года. Решение: читать ебаные форумы, качать говно с файлопомоек, из блядских советов по «прошивке зверька» выбирать те, какие подойдут для твоего «андрюшки». Полный пиздец, повторять нельзя, 9/10.

И еще про Code of Conduct

Будет и у [info]eddy_em праздник — разработчики Rust посрались по поводу CoC и будет теперь у нас два раста — просто Rust и ПедеRust!

https://habr.com/ru/news/t/590869/

Очередной наброс

В 2021 году умеют работать в Unix-подобной командной строке не виндузятники (с ними все понятно), и не линуксоиды (это в массе своей позеры, воткнувшие на ноутбук убунту), а только лишь макоебы.

О силе нетворкинга

Чатик с мужским, можно даже сказать, дедовским населением. Обсуждают животрепещущие темы — например, для чего в инстаграме промеж фоточек телочек показывают рекламу «гостиниц на час»:

…зачем делать макияж с QR-кодом, похожим на настоящий, но не работающим:

…успехи студентов МИЭМа, «IoT-академии Samsung» и лично фирмы Rightech в деле автоматизации «гостиниц на час»:

https://www.hse.ru/news/life/527990527.html

…а также — что такое «кьюаринг» и нахер такая банковская услуга нужна.

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

Про стартапы

Вот увидел в одном телеграм-канальчике новость:

https://www.wsj.com/articles/apple-wants-iphones-to-detect-car-crashes-auto-dial-911-11635768001

Сразу же началось обсуждение в духе «а мы такое предлагали в прошлом году», «а у нас такое мобильное приложение студенты два года назад на конкурсе инноваций показали» — но ни разу в этом обсуждении не прозвучали слова вроде «Эру-Глонасс с 2015 года ставят» или «Ителма такую херню для всего российского автопрома делает». Как бы показывает уровень всех этих конкурсов инноваций со студенческими стартапами вместе взятыми.

А ведь у Эппла есть неоспоримое преимущество — когда основные конкуренты (Эра-ГЛОНАСС и европейский eCall) звонят в 112, их система набирает номер 911 — что показано на этом весьма впечатляющем графике!