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

Читаю тут в телеграме, а порой — в полностью охохлившихся твиторах и фейсбуках всяких там стартаперов, в феврале 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 — это логотип, увеличивающий конверсию»?

Вдогонку предыдущему — про психопатов

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

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

Ну и на закуску — изрядный портрет этого вашего «айти-специалиста» из одной хорошей книжки:

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

Про опенсорс и айтишников-обиженок

Весь день сегодня обсуждают выходку одного американского программиста, автора двух джаваскриптовых библиотек, который обиделся на весь мир, а особенно на компании из Fortune 500, использующие эти библиотеки — и подумать только, неспособные предложить непризнанному гению скромную six-fugure salary! Что же сделал непризнанный гений? Да просто испоганил эти библиотеки, «сломав» тысячи использующих их приложений (а в мире современной так называемой «разработки» принято подтягивать зависимости из этих ваших интернетов):

https://www.bleepingcomputer.com/news/security/dev-corrupts-npm-libs-colors-and-faker-breaking-thousands-of-apps/

Обсуждать действия чувака неинтересно, ну разве что в порядке наброса сообщу, что он одним-единственным коммитом наработал на 273 статью УК РФ (да, я серьезно, его можно привлечь по российским законам вот прямо сейчас, внимательно читайте статью 12, пункт 3). Неинтересны и способы защиты от таких обиженок — каждому, у кого в голове что-то покрепче творожка, должно быть понятно, что тащить зависимости из интернет-помоек можно только в том случае, если финальный результат вас мало волнует.

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

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

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

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

Почитал тут на ночь фейсбук

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

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

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

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

Первая: встраиваемая операционка не реагирует на ввод с 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/

Еще несколько слов про отечественное айти-образование

Я все никак не соберусь и не напишу обещанные «многабукв» про околоайтишное образование — но вот еще маленький фактик в копилку. Как я уже писал, жизнь свела меня с первокурсниками магистратуры одного из считающихся неплохими московских вузов — и тем удивительнее обнаруживать у них катастрофические пробелы в знаниях! Например, на прошлой неделе выяснилось, что многим из них совершенно незнакомо слово «mutex» — хотя казалось бы, что курс под названием «Операционные системы» им читали в бакалавриате. Что должен подумать самоучка, читавший книжки Таненбаума? Неплохо, мы можем говорить на одном языке!

Но нет, «Современные операционные системы» Таненбаума включены в программу того курса лишь как необязательное дополнительное чтение, лектор рассказывает в основном об администрировании ALT Linux, а рекомендованный учебник пестрит определениями вроде «Менеджеры ресурсов: этот слой состоит из мощных функциональных модулей, реализующих стратегические задачи по управлению основными ресурсами вычислительной системы» (и как подсказывает коллега [info]matritcasiberia, это «определение» является общепринятым в российском образовании). Определение шикарно в своей бессмысленности — впрочем, подозреваю, что родилось оно из обвешивания прилагательными вполне невинной фразы «Этот слой состоит из модулей, управляющих ресурсами системы». Если «вычислительная система» еще как-то сюда вписывается, то пояснить, чем «мощные функциональные модули» отличаются от не мощных и тем более от немощных не смогут, наверное, даже авторы учебника (или многих учебников — фразочка растиражирована буквально в каждой «рекомендованной» минобразования книге!).

Естественно, «выхлоп» от подобного ПТУшного (и даже хуже) курса в вузе — примерно нулевой. Даже навыков администрирования ALT Linux не хватает, например, для понимания несложных инструкций по работе в консоли Ubuntu, а о вопросах, имеющих отношение к функционированию ядра ОС и даже простых многопоточных программ (что такое планировщик? зачем нужны примитивы синхронизации?) студенты не имеют вообще никакого представления.

Возникает вопрос — а зачем тратить четыре года жизни в бакалавриате, когда иной «колледж» (читай, ПТУ) за три года научит гораздо лучше?