Страшно не то, что мы взрослые, страшно, что взрослые — это мы

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

если фирма нормальная у вас есть ибшники которые дадут по рукам или просто by default заблокируют небезопасные вещи, либо если их нет то ты в любом случае за это не отвечаешь и тебе похер. ну вообще, как я вижу, такой курс практической значимости для нашего будущего практически 0 несёт

До чуваков (специальность «Информационные системы и сети») еще не дошло, что это им придется быть теми самыми «ибшниками, которые дадут по рукам». Заодно конечно интересна уверенность в том, что им в будущем пригодится, а что нет.

PS Ну и особенно забавно, как эта уверенность в том, что в случае чего придет дядя-ибшник и все поправит сочетается с желанием основывать свои стартапы, например.

Подслушано в метро

Ехал сегодня в метро, а рядом два студента-медика разговаривали: «…2 года ебаной ординатуры, не платят нихуя, да еще и в Зеленоград отправить могут!» Подумал, что все-таки у нас вегетарианские времена наступили, 40 лет назад могли в Целиноград отправить.

Автоматизированная УСН

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

Во-первых — в АУСН нет обязательных платежей в фонды, а они составляли чуть больше 43 000 рублей. Взносы в фонды «за себя» можно было полностью зачесть «в счет уплаты УСН», но при доходе менее 700 тысяч рублей получалось, что «на налоги» уходит больше этих самых 6%.

Во-вторых — вокруг УСН все равно существовала инфраструктура разного рода «посредников» — от разных сервисов «электронной бухгалтерии» до «удостоверяющих центров», где выпуском электронной подписи занимались буквально какие-то таджики. Такое «обслуживание» мне обходилось примерно в 12 000 рублей в год — итого даже «нулевой» ИП стоил бы почти 55 тысяч.

При ставке налога 8% 55 тысяч мне пришлось бы заплатить при доходе как раз около 700 тысяч рублей — так что break-even point тут примерно аналогичный. А если учесть, что не ведущий деятельности ИП на АУСН вообще ничего не платит — то вроде вполне неплохая система, если статус индивидуального предпринимателя вам нужен для каких-то разовых халтурок.

Про студентов и байесовскую статистику

Препод должен быть барином и самодуром. Студент должен четко понимать, что оценка зависит от настроения левой пятки твоей правой ноги, что пойманного с едой студиоза ты рассматриваешь исключительно как накрывающего для тебя полянку лакея, что барщину ты можешь оброком легким заменить, а думы твои о «Мысли народной»
Неизвестный преподаватель МГИМО

Написал тут на днях два разных текста о том, как я ставил оценки студентам — и думаю, что неплохо бы их скомпилировать и оставить последователям научно обоснованную инструкцию по самодурству. В общем, началось с того, что на одном форуме некоторые наивные люди очень хвалили подход к выставлению оценок в ВШЭ — мол, принятый там подход концептуально прекрасен и исключает всякую возможность преподавательского произвола. Смею вас заверить, что в рамках этой системы пространство для произвола достаточно велико и позволяет творить всякую дичь — что я довольно успешно делал в Московском Институте Элегантных Мужчин (сожранном Высшей Школой Этого-самого из-за недвижимости и выселенном в ебеня в С*****но). Что же восхищает наивных людей? Да просто то, что для выставления оценок введена обязательная «формула» — для каждой дисциплины указывается несколько «элементов контроля», за каждый из них выставляется отдельная оценка (иногда по формальным правилам), а затем все это дело суммируется с некоторыми «весами». Вот, скажем, пример не очень удачной формулы:

0,48 * Практические работы + 0,16 * Домашняя работа + 0,16 * Контроль на лекциях + 0,2 * Экзамен

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

Некоторые студенты делают из подобных формул еще один вывод — мол, если в «формуле» явно не присутствует контроль посещаемости, то можно на лекции не ходить (особенно если преподаватель не отмечает присутствующих). Подобная наивность поражает — преподаватель не биоробот, обязанный следовать какой-то формуле, и я бы даже сказал, что на самом деле все происходит совершенно наоборот. Я в последнее время немного угорел по байесовской статистике — так что сейчас считаю, что при выставлении оценок в неявном виде происходит что-то, напоминающее технику Thompson sampling. А именно:

— в каждый момент времени студенту можно сопоставить некое априорное распределение вероятностей оценок; для этого удобно использовать, например, бета-распределение (только отрезок [0, 1] надо потом масштабировать в [0, 10]);

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

— когда надо выставить оценку — просто случайно выбираем значение из этого распределения;

Для «совсем нулевого» студента распределение будет равномерным, то есть В(1, 1) — хотя такие попадаются редко, плохой студент хотя бы один раз взбесит, например, написав в ночь перед экзаменом «здравствуйте, а когда можно сдать задачи с практических занятий?» — это по байесовской логике снизит его шансы получить что-то выше 5 баллов с 1/2 до 1/4 :)

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

http://homepage.divms.uiowa.edu/~mbognar/applets/beta.html

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

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

0,4 * Практические занятия + 0,4 * Экзамен + 0,2 * Проект/доклад

На практических занятиях выдается список задач, каждой приписано некоторое количество баллов, по сложности — 1 балл — это найти готовый пример и нажать кнопку «compile», 10 — «весомый вклад в opensource-проект». Задач довольно много и нужные 10 баллов в сумме можно набрать 1-2-балльными заданиями не напрягаясь вообще, суммарно было баллов 30-40 где-то, но в зачет идет максимум 10. Никаких «домашних работ» нет (ну точнее ты можешь дома делать задания с «практики», но это не всегда доступно — скажем, хочешь с базовой станцией для LoRaWAN поработать — надо в институт ехать), посещаемость не учитывается явно (неявно, конечно, я мог задать на экзамене вопрос, который подробно разбирался на лекции или практическом занятии, но в слайдах с лекций отсутствует — но это на тот случай, если студент ну очень хотел вытянуть с 5 баллов хотя бы на 6 — то есть с «тройки с плюсом» на «четверку с минусом»). Экзамен проводился по довольно халявной на первый взгляд системе «можно пользоваться всем, чем угодно». На самом деле, конечно же, это изощренная подстава — если ты на лекции не ходил, то демонстрировавшиеся на них слайды тебе особо не помогут.

Для проебавшихся в течение всего полугодия (таких на всю группу из 30 человек было аж четверо!) на экзамене выдавалось практическое задание, приравненное к 5 баллам, сделал — получи 2 дополнительных балла в итоговую оценку.

В чем фашизм? Даже скатав все, что только можно, ты можешь расчитывать только на 4 балла, при этом на экзамене я таких товарищей вижу и в рамках своего произвола могу задавать какие угодно вопросы, так, что человек уже на 5 баллов согласен (перед этим подумав полтора-два часа над вопросом, есть у меня пара таких заготовок :) ). На 6 баллов нужно поработать, 8 — «обычная пятерка» — это довольно много «практической» работы и отлично сданный экзамен, чтобы получить больше, надо еще и поработать самостоятельно (это еще и в русле борьбы с «инфляцией оценок» находится — мол, 9 и 10 баллов ставится за что-то, что за рамки курса выходит).

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

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

Про ChatGPT этот ваш

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

Результаты довольно правдоподобные, напоминают творчество студентов-троечников, обработанные плохими копирайтерами (по блевотности от насыщения ключевыми словами). Вообще считаю педагогически крайне полезным инструментом, буду студентам теперь не только проповеди читать, но и задавать простой вопрос: вот на что вы расчитываете, скачав из интернета рефератик и налив воды? Это нейросетки не хуже могут, вас на нейросетку заменят и придется бомжевать идти!

PS Нейросетка на скрине пиздит, сложность этого алгоритма O(n*log n) или O(n²), зависит от реализации ассоциативного массива.

О кросс-платформенности

HomeAssistant, написанный на Python сервер «умного дома» — официально предлагается либо в виде образа виртуальной машины, либо в виде контейнера для docker, отличные от x86/x64 архитектуры сводятся к Raspberry Pi (с Raspbian, другие дистрибутивы не поддерживаются). Установка на «голый Linux» крайне не рекомендуется и официально приравнена к извращениям (заодно приводится какой-то ебнутый список зависимостей).

Fossil SCM, система контроля версий + вики + … (и SQLite вместе с ними), написана на C, представляет собой один-единственный исполняемый файл, компилируется под любую архитектуру — хоть Windows на x64, хоть Linux на ARM (даже кросс-компиляция для Synology DSM прокатывает), поддерживает несколько вариантов запуска в качестве веб-сервера, от standalone до разных вариантов CGI, в последнем варианте работает на любом shared-хостинге.

Не кажется ли вам, что что-то здесь неправильно?

Про умный дом

А вот кто знает:

— можно ли поставить Home Assistant вместе с zigbee2mqtt на дешевый NAS типа Synology 119j?
— есть ли «шлюзы» из OpenTherm в Zigbee, позволяющие мониторить, а еще лучше — управлять газовым котлом?

По второму вопросу попадается только какой-то ужасный DIY, от которого хотелось бы держаться подальше.

А вот еще про гибкие (но не совсем) методологии

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

— разработка структуры БД;
— создание макета сайта;
— выбор дизайна;
— верстка и разработка;
— тестирование.

Какой там скрам, какие «гибкие методологии», когда на выходе имеем ЭТО?

Scrum без говна

Смотрю тут записи лекций с одного курса по Product Management’у, где в числе прочего лектор решил рассказать про Scrum — возможно, сознательно даже спровоцировав аудиторию, когда объявил Scrum совершенно универсальной методикой, подходящей для любой отрасли. Я уже чувствую ваше возмущение — и немудрено, я бы тоже немного прихуел. Следующим шагом было предложение применить Scrum там, где это сделать «ну никак нельзя», и аудитория предложила «а давайте сделаем по скраму ракету!»

Не знаю, было ли это домашней заготовкой, или хорошо отрепетированным экспромтом — но мое понимание Scrum перевернулось в момент, когда были произнесены слова «а product owner’ом можно было бы позвать, например, Сергея Павловича Королева, у него неплохо получалось». Короче, шуточка про «переименовываем планерки в дейлики» — это нихера не шуточка, все так и есть, если назвать всех участников Scrum своими именами — скажем, вместо product owner говорить «генеральный конструктор», а scrum master’а называть секретарем или администратором.

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

Про фантастику

Почитал тут случайно первоапрельские RFC 1994 года. То, что 28 лет назад казалось смешной шуткой:

The vast number space of the IPv9 protocol has also allowed allocation to be done in a straight forward manner. Typically, most high street commercial internet providers issue a range of 1 billion addresses to each house. The addresses are then dynamically partitioned into subnet hierarchies allowing groups of a million addresses to be allocated for each discreet unit (e.g., room/floor etc.) The allocation of sub groups then to controllers such as light switches, mains sockets and similar is then done from each pool. The allocation process is again done in a hierarchical zoned way, with each major application requesting a block of addresses from its controller. In this way the light bulb requests an address block from the light switch, the light switch in turn from the electrical system which in turn requests one from the room/floor controller. This has been found to be successful due to the enormous range of addresses available, and contention for the address space being without problems typically.

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

А вот с мечтами о полетах на Марс из RFC 1607 пришлось распрощаться! Не думаю, что к сентябрю 2023 года нас ждет колонизация Солнечной Системы.

Пишите от руки…

…советует нам Stack Overflow:

https://stackoverflow.blog/2022/11/23/why-writing-by-hand-is-still-the-best-way-to-retain-information/

Привет всем тем программистам, что на выходных доказывали мне, что главное — это умение ловко печатать на клавиатуре.

Про программистов опять

Поучаствовал в очередном мини-срачике о том, что о нас знают всякие гуглы и яндексы. Собеседник-программист отстаивал мнение, что ничего особенного они там не сохраняют, обосновывая все это богатым жизненным опытом — таким примерно:

Все данные нигде и никогда не хранятся. Чем больше ты хранишь тем меньше период. У нас на хайлоаде в прошлом месте где я работал логи забивали 2 Тб за неделю. И ротация логов была такой что дальше уже затирались старые.

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

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

Прокручивание рекламы — задача крайне интересная, без шуток. Достаточно посмотреть, например, свежие научные статьи на тему Thompson sampling, rank-1 bandits и тому подобных штук, или хотя бы на список публикаций и мест работы вот таких интересных чуваков:

https://bkveton.com/

Если уж совсем времени нет — то прочитайте хотя бы введение и раздел MovieLens Experiment вот этой статьи:

https://proceedings.mlr.press/v54/katariya17a/katariya17a.pdf

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

В общем, если совсем коротко — то успех любого из интернет-гигантов зависит от того, насколько успешно он показывает рекламу в зависимость от предпочтений пользователя. А для того, чтобы эти самые предпочтения пользователя определить — может служить буквально вся его история. Хранить ее не так дорого — вот возьмем хотя бы пример выше и посмотрим, сколько стоит двухтерабайтный жесткий диск в московской рознице — недорого, можно найти меньше, чем за 5 тысяч рублей. Щедро накинем вдвое и предположим, что хранение 2 Тб логов за неделю от 40 тысяч пользователей обойдется той конторе всего в 10 тысяч рублей. Сумма смешная, и это говорит нам об одном — весь этот «хайлоад» не приносит и одного лишнего рубля в месяц с пользователя. Гуглы же, фейсбуки и яндексы, я уверен, вполне себе способны просто за счет лучшего анализа поведения пользователей этот рубль совершенно честно заработать — хотя бы за счет более «подходящей» рекламы, на которую пользователь нет-нет, а все же нажмет.

PS Проанализируйте с этой точки зрения следующее высказывание того же программиста:

Я вот в компании предложил кликхаус поднять чтобы аналитика быстрее в 5 раз считаться начала. Ну мне тонко намекнули, то что я разобрался сам это хорошо, но вот больше никто разбираться не будет. И так серверов субд уже три типа и четвертый нахер не нужен. Это притом что кост тут был только людям разобраться.

Почему «аналитика быстрее в 5 раз» никому не нужна?

Palmer script

Скажите, а как называется чувство, когда узнаешь тот факт, что тот вариант английского рукописного шрифта, которому тебя пытались научить на рубеже XXI века, называется то ли Palmer script, то ли вообще слегка упрощенный Spencerian, и на родине, в Штатах, полностью вышел из употребления где-то в 50-х?

Ну да, идеального Palmer script у меня все равно не получится, часть букв я все равно пишу «по-русски», а часть — похожими на печатные.

Загадка

Выиграл у Алексея Меньшенина загадку на логику, предлагаю и вам поотгадывать. Эстафету передам тому, кто правильно ответит. Итак, загадка👇

Зайчик🐰шел к реке и встретил 6 слонов🐘каждый слон🐘встретил 2х обезьян🐒идущих к реке.Каждая обезьяна🐒держала в руке попугая🦜Сколько животных шли к реке?

Пишу про попаданцев

Обсуждали в одном чатике любовь американцев к аббревиатурам типа REST и SOLID — которые складываются в осмысленные слова. Сказал, что знаю на русском лишь один такой пример — Плеханов, Игнатов, Засулич, Дейч, Аксельрод, на что был обрадован аналогом (думаю, тематика чата будет сразу понятна): Cormen, Ullman, Neumann, Turing. Сразу же родился сюжет романа про попаданцев:

Наш современник-сисадмин попадает в США времен маккартизма и подает в ЦРУ этот список; аналитики-советологи, сопоставив ПИЗДА и CUNT, решают запретить кибернетику, а обладателей перечисленных фамилий ликвидируют физически; в это же время в Союзе принимают план по развитию вычислительной техники Окно-95.

Думаю, целевой аудитории сисадминов, поддрачивающих на кибернетику и прочий ОГАС, прямо зайдет!

А подскажите всякой жести

Узнал, что уже скоро мне придется прочитать первокурсникам магистратуры аж 20 (!) лекций про «Аппаратные платформы интернета вещей и киберфизических систем» (а потом нарезать это на 40 экзаменационных билетов, в каждом из которых по два вопроса, плюс придумать несколько вопросов «с подъебкой») — в общем, задача довольно нетривиальная (если учесть, что курс по программированию микроконтроллеров «с нуля» состоит из 8-10 лекций). Просто так лить воду не хочется, поэтому надо добавить в курс невероятной жести. Пока обдумываю следующие сюжеты:

— ЦОС в диапазоне «а вот у нас красивый Матлаб и мы получим коэффициенты для фильтра Чебышева 6 порядка» до «а это убогий Cortex-M3 и мы на нем будем делать этот фильтр в целочисленной арифметике!»;
— сети Петри/communicating sequential processes/что-то еще в этом духе, зайдет к разговору про безопасность, которая safety, и всякие там IEC 61508;
— фильтр Калмана и многочастичный фильтр — «как правильно использовать 6D-акселерометр»;
— Distributed Coordination Function в IEEE 802.11 и 802.15.4 — в первом случае это уже классика, во втором — есть мелкие подлые изменения, но очень показательные в плане отличия IoT от банальщины вроде этих ваших вайфаев;

Чего бы еще найти в категории «экзотика, но полезно»?

PS По заслуживающим доверия сведениям, магистры пришли в ужас при виде выписанной на доске формулы, описывающей ПИД-регулятор.

PS/2 Да, тут есть, от чего охуеть!

Мирная страна Швеция

Университет Уппсалы, лекция по монтекарловским методам в статистике. Буквально на втором слайде — задача натурально про то, как крылатая ракета летит над цифровой моделью местности.

https://www.it.uu.se/research/systems_and_control/education/2019/smc/schedule/lecture4.pdf

Немного про журналистику

Тут на днях то ли блоггер, то ли журналист (себя он считает журналистом), пишущий в телеграмчике под псевдонимом «Русский автомобиль«, пообещал выложить сенсационные документы про зверства большевиков, то есть про «запредельные«, с точки зрения рыночной экономики, особенности советского ценообразования. Сегодня он исполнил обещание и поделился с публикой «Заключением по определению лимитной цены на автомобиль-тягач ЗИЛ-4331»:

https://teletype.in/@rusautomobile2/ZA10dQTI0IC

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

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