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

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

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, а о вопросах, имеющих отношение к функционированию ядра ОС и даже простых многопоточных программ (что такое планировщик? зачем нужны примитивы синхронизации?) студенты не имеют вообще никакого представления.

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

Про QR-коды и тоталитаризм

Вот некоторые утверждают, что введение повсеместных QR-кодов — это ползучий тоталитаризм:

https://t.me/SkiperKakao/1003

Не буду спорить с общим посылом — но хочется добавить, что одно из самых зверски тоталитарных государств прекрасно проводило свои тоталитарные зверства без полной паспортизации населения (и это ставять ему в вину!). Что же касается пресловутых QR-кодов — то они ничем не хуже и не лучше других порождений государственного контрол-фричества (оно же wannabe-тоталитаризм) вроде регистраций по месту жительства, ИНН, СНИЛС, полиса ОМС и прочей бессмысленной ерунды типа предъявления паспорта при покупке билетов на междугородний автобус.

PS Вообще интересно, почему именно QR-коды, а не замечательный Datamatrix с акцизных марок?

Про коррупцию

Тут вот в фейсбуке доцент РАНХиГС жалуется, что совершенно невозможно потратить деньги с гранта:

https://www.facebook.com/alina.garbuznyak/posts/5284528958258528

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

PS А еще доцент топит за Навального, туда и дорога.

Про стартапы

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

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

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

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

Это пиздец

Вот мне интересно, лет через этак 7-10, когда этот Ярослав сможет принять участие в Worldskills, к которым он так серьезно готовится — будет ли этот ворлдскиллз все еще котироваться?

«Подготовка к международным соревнованиям», пиздец просто.

ВШЭ переименуют в ДВФУ, а Владивосток — в Нью-Москву

Пишут, что вместо гадалки Ирмы вшэшкой будет рулить секта имени Щедровицкого:

https://novayagazeta.ru/articles/2021/10/29/valeriia-kasamara-pokinula-dolzhnost-prorektora-niu-vshe-news

Чудесный мир российского айтишного образования…

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

А давайте результаты побыстрее!

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

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

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

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

Естественно, все это обычно сильно усложняет подсчет результатов — и редко бывает, что результаты оказываются готовы в определенное регламентом соревнования время (на МАДИ порой сидят до раннего утра следующего дня). Но то МАДИ, а на каком-нибудь ретро судейская бригада находится в крайне сложном положении — кабак снят на определенное время, иногда заказаны артисты, и награждение просто нельзя особо сильно сдвигать. Недавно был свидетелем крайне курьезного подведения итогов — в одном из зачетов обнаружились сложности с подсчетом, и аж на голосование участников был вынесен вопрос — провести награждение сейчас, по не совсем корректным результатам, или дождаться подсчета и собраться той же компанией для торжественного награждения через пару дней?

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

А вот вам еще сказочка для самых маленьких программистов

Лежит файл, в том файле SQL-дамп, в SQL-дампе поле с JSON, в JSON-е NaCl-овский криптоконтейнер, в криптоконтейнере protobuf, а в protobuf’е смерть Кащеева.

И еще сказочка про выборы и ленивого программиста

Люблю я истории про O(N²), ничего не могу с собой поделать. Так как в этот раз все пока что держится на слухах — пусть это будет сказочка про республику Анчурия, где-то в Латинской Америке.

Анчурия — республика демократическая, в ней есть аж четыре партии — Пиратов, Жуликов, Воров и Коммунистов, и даже иногда проводятся выборы в парламент. Более того, Анчурия не чужда высоким технологиям и решила применить на очередных выборах модную новинку — электронную голосовалку на блокчейне, скачав ее прямо с гитхаба.

Одного не знали бедные любители высоких технологий из Анчурии — писал ту голосовалку не очень образованный программист Вася, и время подсчета результатов в той голосовалке зависело от количества избирателей квадаратично. Но Министерство Информационных Технологий Анчурии — люди прошаренные, и даже провели тестовое голосование — выбирали, что лучше, леденцы с ментолом или менты с леденцами. В голосовании приняли участие самые прошаренные граждане Анчурии, коих набралось аж 10 000, результаты подсчитались достаточно быстро — и систему решили внедрить на будущих парламентских выборах с десятью миллионами избирателей.

И вот поздно вечером в воскресенье закрылись электронные избирательные участки, и сам Министр Информационных Технологий нажал на самом мощном компьютере Анчурии кнопочку Enter, запустив процедуру подсчета. Долго ли ждать результатов? Ну полчаса-час, ответил министр — и все решили подождать. Сначала два часа ждали, потом четыре, восемь… — в общем, и к утру не дождались. Зато проснулись коммунисты и с криком «Дурят капиталисты нашего брата!» собрали митинг на Главной площади. К вечеру собрался уже не митинг, а целый майдан, кто-то обозвал цифрового министра пiдрахуем (не обошлось без украинского следа), пираты подрались с коммунистами, жулики с ворами — но все вместе пошли от Главной площади по Главной улице к Президентскому дворцу (география столицы Анчурии проста и понятна).

Ну дальше как всегда — Эль Президенте почуял, что пахнет жареным, и сбежал, в Анчурии случилась маленькая гражданская война, к власти пришла военная хунта и от греха подальше запретила все выборы, компьютеры и на всякий случай — украинский язык. Жуликов посадили, воров постреляли, пиратов развесили на реях, коммунистов отправили в тайные тюрьмы ЦРУ. Говорят, что где-то в начале гражданской войны бывший министр даже вылез из своего дата-центра в подземном бункере со словами «Мы все посчитали!» — но всем это было настолько безразлично, что никто про него и не вспомнил.

Так вот, господа программисты, вся беда случилась из-за того, что случайно найденная на гитхабе голосовалка имела сложность подсчета голосов O(N²) — то есть если для подсчета 10 000 бюллетеней требовалась всего 1 секунда — то подсчет 10 000 000 бюллетеней занял не 1 000 секунд, как надеялся цифровой министр, а гораздо больше — 1 000 000 секунд, или целых 11 дней — как раз хватит на то, чтобы не дождавшиеся итогов выборов анчурийцы начали гражданскую войну. O(N²) — очень «хорошая» оценка сложности, она, с одной стороны, достаточно мала, чтобы успешно проходить тесты на небольших наборах данных (это вам не перебор всех подмножеств, и даже не какие-нибудь числа Белла) — а с другой стороны, очень плохо ведет себя, когда данных становится много.

А чтобы не спровоцировать гражданскую войну в латиноамериканской стране — не делайте алгоритмы со сложностью O(N²), а читайте книжки Скиены, Седжвика, Дасгупты и Кормена, можно еще поставить на полочку многотомник Кнута.

Про бесплатные сервисы

На днях в твиторе срались, может ли программистская контора держать свой код на гитхабе, или это стыдно. А я вот подумал — есть ли что-то стыдное в том, что у той же конторы сайт будет на narod.ru и почта на mail.ru?

Про эти ваши выборы

Вот, кстати, прочитал тут очередную заплачку о том, что математик из МГУ Михаил Лобанов (КПРФ+УГ) проиграл выборы «административному кандидату» Попову. Валят все, как обычно, на электронное голосование — мол, «очно» Лобанов уверенно побеждал, а когда добавились результаты «дистанционки» — то единоросс резко скакнул вверх. Че хочу сказать? Ну во-первых, считать независимыми голосование очно/дистанционно и голосование за/против ЕР нельзя — тут играет куча факторов, начиная от КПРФовской агитации «против» электронного голосования и заканчивая «мобилизацией» бюджетников именно на дистанционное голосование (добавим еще сомнения в том, что голосование останется тайным и страшилки, что проголосовавших неправильно ждут мелкие репрессии — и получим изрядный перекос). Собственно, на аргументы вроде «очно побеждал А, а дистанционно у Б на 100500 голосов больше» можно отвечать этим соображением.

Удивляет, конечно, другое — а были ли квалифицированные наблюдатели или члены УИК ДЭГ от КПРФ вообще или Лобанова лично? Кажется, это несложно — отлови пару студентов мехмата или ВМК, выдай по ноутбуку и отправь в комиссию. Но судя по происходящему — никто особо не озаботился даже проверкой «почасовых» выгрузок из базы данных, не говоря уж о проверке результатов на какие-то аномалии. Это несложно — я в прошлом году на спор написал довольно элементарную проверялку результатов дистанционного голосования в его московском варианте за полчаса — но похоже, что ни одна из вопящих о невероятных нарушениях политических сил ничем подобным не озаботилась.

Если вашему кандидату настолько похер на результаты — то с чего вы взяли, что ему будет не похер на избирателей?