Опенсорс без понимания

Вот очень показательная заметка на хабре:

https://habr.com/ru/post/681614/

Наглядно показывает уровень деградации буквально одним-единственным предложением:

Сейчас же, когда QMK, наконец, добавили поддержку данного контроллера, в нашем распоряжении 2mb+ встроенной памяти, на которые мы можем «подгрузить» все полезные фишки для повышения продуктивности и удобства.

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

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

Как понять, что ты окончательно ебанулся?

Достаточно, например, предложить решать trolley problem с помощью богатой математической теории multi-armed bandits.

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

Про ЦИПсО и VPN

Хохлы всех мастей потащили по интернетам вот эту картинку:

Мол, якобы в московском метро повсеместно расклеены страшилки, призывающие не пользоваться VPN, и вообще, не сегодня-завтра все это запретят. По принципу «не рефлексируйте, распространяйте» отметились уже все — от Медузы до Климарева (который с февраля охохлился окончательно). Медузонька дошла до того, что раскопала древний баян про Very Painful Number (ему уже лет пять-шесть минимум). Со своей стороны хочу заметить, что никаких свидетельств появления в метро таких плакатиков, кроме вот этих двух картинок, до сих пор так и нет. Более того, картинка про VPN — это перерисованное с помощью диких mad skillz объявление про карманников в метро:

Обратите внимание — на любом «настоящем» объявлении в метро есть хоть какие-то реквизиты организации, его разместившей — а с «картинкой про VPN» их вообще нет. Зато сопровождающие ее крики о «запрете впн» очень напоминают уже ставшую стандартной «двухходовку» украинской пропаганды. Помните про «мобилизацию» и «обмен Медведчука»? Сначала вбрасывается информация о каком-то готовящемся событии, затем оно тщательно обсасывается заукраинскими сми и блоггерами, затем, когда обещанной мобилизации так и не происходит — объявляется крупная перемога, «Путин зассал». В общем, теперь можно легко отличать укропропаганду по раздуванию истории о «запрете VPN».

Б — бизнес, Д — диаспора, или как русских людей обижают

Посмотрел тут в одном чатике обсуждение «схемы» по ввозу автомобилей из Дубая — и наткнулся там на комментарий вроде такого:

Вместе с растаможкой это 17 лямов, 750 к прибыли это меньше 5%. Геморроя дохрена, времени месяц, маржа 5%. Это не бизнес ))

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

Даже с учетом щедрого вознаграждения Завену и Вазгену Айрапет может расчитывать на 2-3% в месяц — а это 27-42% годовых. Найдете где-нибудь возможность вложить деньги сроком на 1 месяц с такой шикарной доходностью? Или будете сначала воротить нос от «смешной суммы», а потом плакать, что кругом чурки одни и хачики?

Про студенческие стартапы почти матерно

Увидел тут результаты конкурса «Студенческий стартап», что проводится «Фондом содействия инновациям»:

https://fasie.ru/press/fund/studstartup-results-1/

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

Сначала, конечно, хочется возмутиться — что за херня, я же налогоплательщик, на что идут мои деньги? Но потом читаешь статьи вроде такой —

https://stimul.online/articles/sreda/nuzhna-dostroyka-innovatsionnoy-sistemy/

— и понимаешь, что все это имеет крайне опосредованное отношение к какой-либо нормальной человеческой деятельности, и вообще, цитирую одного мастера художественного слова:

у людей, которые типа у нас отвечают за индустрию, понимание экономических механизмов ее работы примерно на уровне зеленоволосой пизды феминистки третьекурсницы ВШЭ

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

Заметьте, что ни жизнеспособность проектов, ни будущее их авторов в последнюю фразу не входят. Как было сказано чуть по другому поводу,

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

Bertsekas, Gallager, Data Networks

Есть на всяких околоайтишных специальностях в вузах предмет под названием «Сети передачи данных» или как-то типа того, где про модель OSI рассказывают, TCP/IP всякое, маршрутизацию и тому подобные вопросы. Есть по нему масса учебников — Олиферы всякие, Таненбаум книжку написал, Куроуз-Росс, Горальски, Стивенс — в общем, на любой вкус, айтишники любят. Содержание в целом более-менее стандартное — вот вам модель OSI, вот вам кучка протоколов с каждого из уровней, вот так работает маршрутизация… — разница в нюансах, где-то больше теории, где-то добавляется практика какая-то. В целом, конечно, это в основном беллетристика и перечисление готовых сетевых протоколов, которые кем-то придуманы — а понимать, почему это все работает — это не вашего айтишного ума дело.

А есть старая (1993 год! а первое издание даже издательство «Мир» в 1989 году перевело) книжка Бертсекаса и Галлагера: http://web.mit.edu/dimitrib/www/datanets.html. Чем она отличается? На первый взгляд, все начинается довольно культурно — модель OSI в первой главе с описанием ее уровней, дальше — немного про всякие протоколы (в основном представляющие собой чисто исторический интерес, из более-менее актуального во второй главе можно назвать только TCP) — но вот в третьей и четвертой главе начинается самое веселье! Внезапно плотность формул на страницу текста становится запредельной, возникает «тяжелая» математика — прежде всего тервер и слупы, но мало не покажется.

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

Нет, многим, возможно, никогда не потребуется лепить управление очередями, алгоритмы множественного доступа или маршрутизации — но когда за это пытаются браться «чистые айтишники», получается крайне печально. Скажем, посмотрел на днях на Meshtastic — протокол организации mesh-сетей на основе «физики» LoRa. Мало того, что сам по себе протокол толком не документирован — так еще и реализация производит впечатление «слышали звон, да не знают, где он». Элементарнейший пример — используемый алгоритм конкурентного доступа явно сделан «по мотивам» используемой в WiFi distributed coordination function, которая неплохо обоснована с теоретической точки зрения — но упрощен настолько, что утрачена вся суть исходного алгоритма. Да, он выглядит довольно просто — но за этой простотой стоит довольно строгий анализ, и «лишнего» в нем нет. Вишенка на торте — этот важнейший элемент протокола нигде толком не документирован, и для того, чтобы понять, как он работает, приходится лезть в исходники.

В качестве картинки для привлечения внимания — семиуровневая модель взаимодействия открытых систем из русского издания.

Про стартапы и санкции

Читаю тут в телеграме, а порой — в полностью охохлившихся твиторах и фейсбуках всяких там стартаперов, в феврале 2022 внезапно осознавших, что сколковские гранты больше в рот не лезут. Заодно, например, детальки Analog Devices или Nordic Semiconductor в Чип-и-Дипе теперь просто так не лежат, а всякие там Компэлы безымянным чувакам с улицы ничего не продают, так что многие из стартаперов выбрали для себя путь внезапной эмиграции куда глаза глядят.

Глядят они в самых разных направлениях, география просто шикарна — начиная от банальной Грузии (хотя она скорее в место для веселых тусовок превратилась) до Италии с Португалией. Кое-кто пытается заниматься любимым бесполезным делом, кое-кто пытается устроиться на нормальную работу — и везде сталкиваются с неожиданными подводными камнями. Нет, в португальской дыре на берегу моря нет «Резонита» с изготовлением печатных плат за два дня с доставкой DHL-ом к подъезду. Нет, в немецкой компании никого не впечатлит ваш «опыт работы» директором в сколковском стартапе, даже если вы покажете им собственноручно изготовленный макет наукоемкого прибора из ардуины и пучка проводов. Нет, в Болгарии вы не купите какие-нибудь хитрожопые детальки — просто вы даже не знаете, как они могут называться на болгарском!

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

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

Ну и в заключение отмечу, что лучший музыкальный инструмент — это контрабас.

И еще про студентов

А вот немного о том, как защита дипломов выглядит с другой стороны баррикад, глазами члена ГЭК:

https://t.me/sforsecurity/802

Добавлю лишь, что даже с вроде бы «инженерными» дипломными работами прекрасно сочетаются советы из книжки Умберто Эко «Как написать дипломную работу«. В сущности, нет разницы между так возмутившим Олега «Исследованием технологий обеспечения безопасности на конечных устройствах IoT» и чем-нибудь вроде «Литературы Италии послевоенного периода», про которую Эко — в контексте защиты диплома — пишет следующее:

Делая обзор за сорок лет, студент подставляется для любых нападок. Как удержаться оппонентам или даже про­стым обыкновенным членам совета, как не показать, что они зна­ют такие имена, которые студентом, к сожалению, упущены? Каж­дый из членов, полиставши в четырех местах, выловит три упущеннные персоналии, и вот уже наш студент кругом раскритико­ван, как будто в его дипломе одни ошибки, ничего хорошего.

Если же дипломник, совсем наоборот, серьезно проработал узкую тему, он вынесет на комиссию материал, этой комиссии почти неизвестный. И учтите, что я не предлагаю вам дешевый трюк. Это трюк, но не дешевый, ради него стоит потрудиться. Да, защищающийся заранее ставит себя в выигрышное положение. Он заведомо будет знать вопрос глубже, чем его слушатели.

Кстати, не далее чем сегодня, убедился в справедливости этого принципа — достаточно предъявить «Департаменту электронной инженерии» работу, посвященную (в основном) реализации протокола RPL под ОС Android — и многомудрые старцы из РКК «Энергия» становятся неспособны родить каверзный вопрос по существу работы!

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

У RESTful нет единого стандарта работы: его называют «архитектурным стилем» для операций по работе с серверов. Такой подход в 2000 году в своей диссертации ввел программист и исследователь Рой Филдинг, один из создателей протокола HTTP.

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

Как сделать из говна конфетку? Для начала — сошлемся напрямую на диссертацию Филдинга, благо она доступна в интернетах. В ней же можно найти и те 7 принципов, которые перечисляются по ссылке, а при упоминании HTTP verbs не лишним будет и сослаться на стандарт RFC 2616. Перечисляем эти принципы, пересказывая их своими словами (пусть криво, пусть коряво, но точно так же сделали и копирайтеры скиллфактори, так что сильно хуже не будет), но самое главное — затем пишем по паре абзацев про то, почему предложенный в этой работе API этим принципам соответствует. В результате получаем не только более-менее оригинальный текст (это побочный продукт), но и какие-то собственные мысли, оформленные на бумаге (а это в «квазинаучной» работе, которой является любая курсовая, как бы не самое главное). Заодно пополняем список литературы двумя разумными источниками, а не ссылкой на помойку.

Опять же, если вы думаете, что я снова предлагаю «дешевый трюк» — это не совсем так. Речь идет не о механическом «перефразировании», а о написании хоть сколько-то оригинального текста, имеющего отношение ко вполне конкретной задаче — но если студент выбрал простой путь, Ctrl-C — Ctrl-V — то он просто напрашивается на то, чтобы огрести проблем. Неважно, что на ФКН ВШЭ это «прокатывало» — рано (это лучше) или поздно (это хуже) безобразие надо прекращать.

Now it’s official

ЖЖшное сообщество [info]ru_radio_electr с сегодняшнего дня признается бандеровским, а буковки ru в его названии следует расшифровывать, как «Рiдна Украiна».

Предыстория раз: https://olegart.livejournal.com/1498805.html
Предыстория два: https://ru-radio-electr.livejournal.com/1586347.html

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

Читал тут материалы одной прошлогодной 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.

Студенты накатали анонимку

Студент из вот этой «заметки» сильно обиделся и накатал на меня анонимку:

http://shura.luberetsky.ru/2022/02/14/kaznit-nelzya-pomilovat/

Читал и ржал!

PS Я, разумеется, не отрицаю своих проебов, как руководителя проекта — но если фигурант истории хочет «обоснованной критики» — он ее получит в любых количествах.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Кстати, про выборочный пацифизм

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

Так вот, что-то мне подсказывает, что сегодняшним пацифистам и подписантам обращений все было похер и в 2014 году (Донбасс), и в 2003 (Ирак), и в 1999 (Югославия) году (не говоря уж о многочисленных конфликтах всех со всеми на Ближнем Востоке) — так что пацифизм в их исполнении превращается просто в выражение неодобрения режиму, который сам по себе им не нравится. Больше скажу — многие при указании аналогий начинают вертеться, буквально переходя в режим «это другое, понимать надо». Против войны как таковой большинство сегодняшних (24.02.2022) ситуационных пацифистов не возражают, если бомбят «кого положено».

Примерьте это на себя — считаете ли вы, что надо было «обуздать агрессора», когда украинская армия обстреливала Донецк и Луганск? Когда американцы бомбили Белград и Багдад? Надо ли надавать по рукам израильской военщине? Не родился ли ваш пацифизм в феврале 2022 и не умрет ли год-два спустя, когда под раздачу попадет кто-то другой?

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

Вот еще вопрос про этот ваш 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 часов (ну а мне работать меньше, это хорошо). Другой вопрос, когда он вообще спит?

Дети, изучайте ардуину

С «умной теплицей» на ардуине вы можете сделать очень многое:

— получить дополнительные баллы к ЕГЭ и поступить в престижный ВУЗ на востребованную околоайтишную специальность;
— поучаствовать во всяких хакатонах и конкурсах для студентов;
— защитить в ВУЗе на отличную оценку «проект», курсовую и дипломную работы;
— и все это — с одной и той же поделкой из кружка «Юный ардуинщик!»

Ебаный блядский андроид

Изучаю тут реализацию 6LoWPAN over BLE для Android, выяснилось следующее:

— в 7 и 8 версиях есть недокументированный способ открыть сокет уровня L2CAP (через джавовскую рефлексию, описано в дипломной работе этого самого Wieland’а), в 9 версии рефлексия для некоторых «системных» классов запрещена (в том числе и для BluetoothDevice), в 10 версии это API сделано публичным;
— начиная с 6 версии Android не дает узнать MAC-адрес «своего» Bluetooth-адаптера, обходные пути нагугливаются на стековерфлоу, но постепенно закрывались гуглом, начиная с версии 8.1 закрыты все;
— MAC-адрес постоянно и непредсказуемо меняется ради «прайваси» пользователя;
— для того, чтобы начать сканирование BLE-устройств, надо включить «геолокацию», что неудобно для пользователя и в принципе выглядит подозрительно (тут у нас приложенька для фитнесс-браслета, нахуя ей геолокация?).

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

Разъясните мне про маркетинг

Я, конечно, многое могу понять — но разве менеджмент качества имеет какое-то отношение к «маркетинговой деятельности»?

https://www.hse.ru/ba/it/students/diplomas/468570339

Или это из разряда баек про «PCI DSS — это логотип, увеличивающий конверсию»?