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, они ничуть не хуже».

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

Если бы я был циничной мерзкой сволочью

Я бы еще часов в 6 утра объявил бы о сборе средств в благотворительный фонд для хэроiв ВСУ, а сейчас бы искал способы вывести средства и приобрести паспорт Гондураса. А че, можно даже устав фонда написать, а потом с совершенно честной рожей сказать — ну извините, не вышло, объект благотворительности прекратил свое существование, во всем виноват, естественно, Путин.

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

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

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

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

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

Минутка конспирологии

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

А теперь — истинная конспирология. Мир сейчас весело движется к очередному экономическому кризису, и задача любых правительств — списать на кого-то другого свои проебы в экономике. Ковид как-то поднадоел, да и списывать на китайский насморк образца 2019 года долларовую инфляцию в 10-15% в 2022 году как-то уже некомильфо. И тут — глядите, какой шанс подвернулся!

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

Привет новому мировому кризису, короче.

И еще про фрезер

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

Для начала — где взять? Сайт makercam.com, где лежала программка, давно сдох, более того, программка написана на Flash, который петушары-программисты объявили «устаревшим» и выпилили его поддержку отовсюду. К счастью, есть еще archive.org, где можно взять файл swf:

https://web.archive.org/web/20210128233629/https://www.makercam.com/makercam.swf

Для его запуска можно воспользоваться Flash Player Projector — официальным инструментом для «отладки» флешовых мультиков и прочей такой фигни.

Между прочим, исходники MakerCAM лежат на гитхабе — так что если кто очень хочет — можно на базе этого что-то более нормальное и «современное» запилить.

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

Рисуем что-то вроде эскиза в svg; особые эстеты могут использовать полноценные CAD, но тут достаточно буквально чего угодно. Я пока не смотрел на размеры, возможно, придется их как-то подгонять, так что просто для демонстрации сделаем так (я вообще ручками этот SVG нарисовал):

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

В русскоязычном «руководстве» совершенно не описана операция «выборки» внутри контура — но делается она просто, выделяем границы, жмем в меню CAM-Pocket operation и вводим параметры. Четыре отверстия по бокам просто просверлим, а для центральных сделаем еще две выборки. После нажатия на calculate all наша деталь будет выглядеть примерно так (галочку view cuts ставить не надо):

Наконец, надо сделать еще одну вещь, о котором в русскоязычном руководстве совсем забыли — выделяем самую внешнюю траекторию (которая отделит нашу деталь от фанерки) и выбираем пункт меню CAM-Add tabs to selected. Он позволяет при фрезеровке внешнего контура оставить связки, соединяющие вырезаемую деталь с заготовкой. Важно! В программе есть небольшой баг, из-за которого последний пункт, высоту этой связки, надо указывать не в сантиметрах, а в миллиметрах — несмотря на подсказку слева.

После всего этого экспортируем получившееся безобразие в G-код и смотрим любым просмотрщиком (например, я взял для этого Candle):

Поеду в Леруа за фанерой.

Технику безопасности при работе на фрезерном станке знаю, как свои три пальца!

Вот, допустим, есть у меня китайская игрушечная ЧПУшка типа 3018 — примерно такая:

И, допустим, хочу я сделать на ней вот такую примерно детальку из фанеры:

Я, конечно, могу написать G-код и ручками, сложной геометрии там нет, но вообще хотелось бы запихнуть модель из CAD-а в специально обученную программку и получить требуемое. Вопрос: как такая специально обученная программка называется и чем в среде любителей китайского говна с ЧПУ положено пользоваться?

Как же я люблю алиэкспресс

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

https://aliexpress.ru/item/1005002328161355.html

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

https://www.crowdsupply.com/citrus-cnc/simplepnp

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

Вот еще вопрос про этот ваш 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. Есть, конечно, маленький шанс, что это все не всерьез, а он сам — циничная сволочь, беспардонно наживающаяся на всем этом околоэкологическом хайпе — но совсем маленький, и как-то уже даже не хочется делиться тем первым текстом.

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

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

Или эту?

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

Хроники чипагеддона

Читаю на днях фейсбучную ленту. Крупный производитель аэронавигационного оборудования развлекается тем, что меняет в своей продукции один китайский модуль с модемом LoRa на другой — потому что первый с Алиэкспресса пропал, а второй нашелся в каких-то московских магазинах «для ардуинщиков«. Изобразил фейспалм, посоветовал покупать не китайские поделия, а SX1276 в Компэле (они там есть во вполне товарных количествах), и пошел читать твиттер.

В твиттере наоборот — восхищаются развитием китайской электронной промышленности. Развитие выражено в том, что на алиэкспрессе можно купить мелкими партиями микроконтроллеры Holtek и Dialog, да еще и по совершенно бросовым ценам. О том, что продавцы с али продают обычно неликвиды с производства или даже буквально мусор с разобранных плат (а сами Holtek и Dialog с розницей вообще не связываются, нахер им это надо) — китаелюбивые твиттерские предпочитают не думать.

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