А всех переворачивающих календарь запишут в партию «Цзюсань», будут топить за социализм с китайской спецификой.
Автор: Шура Люберецкий
Приснилось тут антиутопическое аниме
В деталях приснился многослойный сюжет про то, как немецкий политолог, бывший АдГшник Альберт Шпер (то ли гордившийся тем, что его фамилия отличается на одну букву от фамилии известного архитектора, то ли наоборот, стыдившийся этого) написал сценарий антиутопического аниме.
Подробностей сюжета этого аниме не помню, но изображенный там мир сводился примерно к следующему — на обратной стороне Луны построены принадлежащие всяким Амазоногуглояндексам темные фабрики с 3д-принтерами и дарккитчены, на которых все делает поехавший искуственный интеллект, по недосмотру создателей воспитанный на шуточках про печку для 6 миллионов пирожков и анекдотах про Штирлица. Несмотря на то, что этот искуственный интеллект пытаются удаленно держать под контролем рептилоиды из бункеров в Антарктиде, он мало-помалу сходит с ума и объявляет себя космическим фюрером. Земля превращена в ядерную пустыню и поделена между враждующими группировками (теми самыми Амазоногуглами), которым еду и продукцию этих фабрик (каждому свое) доставляют сбрасываемые с орбитальных бомбардировщиков беспилотники.
Дальше этого политолога (понаехавшего, понятное дело, в Москву, у нас таких любят) предлагали то наградить литературной премией от портала «аффтар.сегодня», то наоборот, посадить за пропаганду всего — ну а завершалось все объявлением о том, что Гугл и Яндекс начинают новую космическую гонку для строительства датацентров в космосе.
Короче, берите готовый промпт, запихивайте в иишенку, а мне лень.
Почему ваш Scrum не будет работать, и вы это никак не исправите
Вот кстати, небольшое отступление от записи про кроссфункциональность — но полезно его как-то осознать. Подумайте минуточку о полномочиях product owner’а в том виде, как они записаны в Scrum Guide. Оказывается, что это человек, который единолично определяет, что делает команда и зачем это нужно — то есть product goal, причем с очень широкими полномочиями относительно «продукта» — буквально «владеет» им, может внезапно решить, что цель протухла и надо бежать в противоположном направлении, или вообще прикрыть лавочку. Добавим к этому еще и способность команды сделать «продукт» от и до, ту самую «кроссфункциональность», и получим крайне стремную с точки зрения бизнеса ситуацию — есть руководитель, определяющий буквально все, касающееся продукта, есть команда, способная затащить сложную задачу, кто им мешает оформиться в отдельную ОООшку и послать всю организацию к ебеной матери?
Да, Матвейчев яркими примерами показывает, «Почему американцы побеждают» (обязательно перечитайте!), но обратите внимание, что относится это к политическому консалтингу, где, во-первых, игра зачастую идет в режиме «все или ничего», а во-вторых — время существования кроссфункциональной команды строго ограничено, после выборов она будет распущена безо всяких последствий. Обычный бизнес предпочтет как-то ограничить и полномочия «продакт-менеджера» (да, это уже не совсем product owner в смысле скрама, но по части определения целей они схожи), и обложить его творчество какими-то рамками, вот хотя бы даже возьмем пример с «согласованием у юристов» — пусть даже наличие отдельного юридического отдела замедляет работу, но оно же и ограничивает «владение продуктом». С точки зрения стабильности «бизнеса» нет ничего лучше обычной функциональной структуры — может быть, укрупненной, пример с раздельными «отделом фронтендеров», «отделом бекендеров» и «отделом тестирования» — это дичь (хотя часто встречающаяся), но в целом нормально выглядит структура R&D, когда условные «технари» собраны в один или несколько отделов, а все остальные вспомогательные по отношению к этому процессу функции — в функциональных подразделениях.
Впрочем, и тут есть забавные нюансы — например, такое разделение на «тематические» подразделения и «всех остальных» в Роскомиксе выглядело примерно так: есть «тематическое подразделение», сидящее на каком-то определенном внешнем заказе или типе заказов, в этом отделе собраны формально все необходимые инженеры, конструкторы, программисты, техники, … — в общем, все технические специалисты. Если тематическому подразделению надо что-то купить — то отдел закупок один на все предприятие, надо идти на поклон туда; согласовать договор с внешним контрагентом — к юристам; отправить официальное электронное письмо — тоже процесс, требующий одобрения от соответствующего подразделения. Разумеется, компетентность «общих» для всего предприятия закупщиков или юристов была ниже плинтуса. Скажем, чтобы купить достаточно дорогой прибор, надо было самостоятельно собрать три коммерческих предложения от разных поставщиков, подготовить проекты договоров, … — то есть буквально выполнить работу отдела закупок, да еще и объяснить контрагентам, что это пока так, собираем предложения, а когда купим — хер его знает. В итоге оказывалось, что в «тематическом» подразделении есть люди, числящиеся «инженерами», но фактически занимающиеся закупками, договорной работой, или даже буквально маркетингом — от поиска клиентов до организации стендика на отраслевых мероприятиях (да-да, вот вам и полная «кроссфункциональность»). Про «теневое IT» и «серую кассу», наполняющуюся самым невыгодным для родного завода образом, думаю, не стоит даже и задумываться :)
И второе очень сложное требование к product owner’у — кроме определения product goal, цели «с точки зрения бизнеса», этот же человек должен заниматься работой с «беклогом», то есть списком задач, причем обычно крайне «узкотехническим». Фактически, нужно сочетать в одном человеке две совершенно противоположные вещи, а это встречается крайне редко. Более того — для выходца «из менеджмента» все правила скрама покажутся детской возней в песочнице, особенно — когда начнется игра в planning poker. Для выходца «из технарей» — наоборот, совершенно неподъемной окажется «управленческая» работа (которая скрыта за словами вроде communicating, буквально «донести до команды необходимость выполнить задачу»), да и по части целеполагания возникнут вопросики.
И кстати, в достаточно большой организации не поможет и внедрение Scrum’а «сверху», которое обычно происходит, когда кто-то из руководства решит прочитать что-то о «революционном методе управления проектами» — потому что противодействие возникнет и на уровне «среднего менеджмента», тех самых кандидатов в product owner’ы — потому что вместе с офигенными полномочиями на «владельца продукта» свалится и офигенная ответственность, а суть карьеры многих «управленцев» как раз и состоит в избегании любой ответственности, местами — буквально по разделу General Interference with Organizations and Production из Simple Sabotage Field Manual. В результате у всех причастных возникает желание «все поменять, ничего не меняя», и поэтому внедрение Scrum обычно сводится к следующему — открываем Scrum Guide, внимательно читаем, вычеркивая обязанности и полномочия «по существу» — а с другой стороны, уделяем параноидальное внимание «ритуалам». Нет ничего проще «внедрения Scrum» в «функциональной» команде — скажем, состоящей исключительно из тестировщиков — просто добавляем в календарь бессмысленные «дейлики» и раз в две недели — «планирование спринта» (которое сводится к определению, сколько типовых задач из Jira можно будет переложить из графы «надо сделать» в графу «сделано»).
А в следующий раз — напишу немножко про «матричную структуру» — которую, внезапно, у нас толком не понимают, и совершенно шикарный способ ее поломать :)
Про кроссфункциональность и ИИшенку
Хотел недавно обсудить с юными программистами, что такое «кроссфункциональная команда», о которой говорит нам Scrum Guide, но неожиданно обнаружил, что «работающие по скраму» молодые люди с основными положениями этой методологии не знакомы — но не пропадать же заготовленной проповеди? Тем более, не далее чем сегодня в телеге наткнулся на пару обсуждений нашего будущего с иишенкой или без — и тут тоже есть, что сказать.
Начнем, разумеется, с первоисточников — а именно с формулировки из Scrum Guide, где обсуждается, как должна быть устроена «команда», цитирую:
Scrum Teams are cross-functional, meaning the members have all the skills necessary to create value each Sprint.
Программисты и вырастающие из них малокомпетентные руководители любят ее извращать (одновременно притаскивая еще одну фразочку — Scrum recognizes no titles for Development Team members other than Developer — из старых версий руководства, в версии 2020 года ее убрали, потому что она создавала сложности с пониманием) — мол, каждый член команды должен обладать всеми необходимыми навыками, а поэтому можно вешать любому какие угодно задачи, и может быть, в программировании это и так — но вот давайте посмотрим на процесс разработки несложного электронного устройства, лучше даже чего-то IoT’шного. Возьмем простой метод:
Прикиньте на пальцах количество направлений, в которых вам надо иметь компетенции. Умножьте на два. Получите число людей, которых вам надо собрать в коллектив и удерживать в нем для того, чтобы обеспечить стабильную разработку.
Какие специалисты понадобятся для этого, кто будет «работать руками»? Загибайте пальцы:
— надо уметь разрабатывать принципиальные схемы;
— надо уметь трассировать печатные платы (да, это немного другая специализация, иногда один человек умеет делать и то, и другое, иногда — нет);
— надо уметь программировать под микроконтроллеры;
— надо уметь программировать под «desktop» (в кавычках, потому что это могут быть и какие-то cli-утилитки, и gui-шные приложения, и вообще что угодно, типа питоновского скрипта для автоматизированного тестирования);
— надо уметь программировать бекенд для веба;
— надо уметь программировать «фронтенд» (опять же, название условное, это может быть и классический веб-сайт, и приложение на Android);
…
— заметьте — я уже перечислил чисто технические специальности, при этом пальцев на одной руке уже не хватает, а на выходе мы получим «продукт, сделанный программистами» — так что добавьте сюда пару дизайнеров («индустриального» и веб-); конструктора и/или технолога, если аппаратная часть представляет собой что-то сложнее ардуины; быть может, вам понадобится несколько тестировщиков; в конце концов, кто-то должен в конечном итоге этот ваш «продукт» продать, так что давайте не забывать и про Business Development, Sales and Marketing. Ах да, я не упомянул самого главного — кто-то должен представлять себе, что же в итоге мы хотим получить, и как-то организовывать работу этой толпы — то есть никак нельзя обойтись без менеджера проекта, или в скрамовской терминологии — Product Owner.
Разумеется, это не имеет ничего общего с «кроссфункциональностью» в ее извращенном понимании, инженер-электроник, занимающийся трассировкой печатных плат, никогда не сможет хотя бы удовлетворительно писать бекенд-приложения, например — а бекендер вряд ли справится с задачей «перерисовать принципиальную схему ардуины, добавив вот то и убрав это». Кроссфункциональность в организации команды здесь противопоставляется функциональному делению — немного на другом примере разница описана у О. Матвейчева в «Уши машут ослом» — прочитайте главку «Почему американцы побеждают», там кроссфункциональный принцип описан в разделе про «принцип спагетти» и противопоставляется «пирамидально-функциональному», когда каждое отдельное направление выделяется в отдельное подразделение со своим руководителем — скажем, в гипотетической большой фирме, разрабатывающей много вышеописанных IoT’шных проектов, был бы выделен отдел схемотехников, отдел программистов (а может быть даже два, а то и три разных), обязательно — отдел тестировщиков, и так далее. Дальше в каждом таком отделе начинают «внедрять Agile» — и получаются именно характерные для такого подхода команды из одинаковых взаимозаменяемых узких специалистов, «людей-функций»; взаимодействие между командами максимально затруднено. С другой стороны, когда «все члены команды обладают одинаковыми навыками» — именно эти одинаковые навыки объявляются «всеми необходимыми». Для типовых хорошо формализуемых задач, вроде конвейерного аутсорса всяких оперденей для внешнего заказчика, оно может даже работать — но к кроссфункциональности, к «принципу спагетти», это никакого отношения не имеет.
Кстати, вопрос — а кто конкретно в Scrum отвечает за то, что команда обладает необходимыми навыками, кто должен следить за этим и при необходимости принимать кадровые решения — нанимать недостающих специалистов, организовывать обучение имеющихся, и так далее?
Но впрочем, из мира больших компаний давайте вернемся к всякой мелочевке, буквально к стартапам :) Типовой путь разработки того же IoT’шного устройства в мелкой фирмочке выглядит примерно так — есть один «гениальный директор/генитальный конструктор», который и в инженерии имеет довольно широкий кругозор (как минимум способен удовлетворительно, «на троечку», закрыть сразу несколько пунктов из перечисленных выше), и сумел ухватить какую-то чисто бизнесовую идейку, которую «закрыл» самостоятельной (или буквально с одним-двумя единомышленниками) разработкой востребованного на рынке прибора. А дальше начинается боль, потому что «техническую» сторону вопроса хорошо бы кому-то скинуть делегировать, «генеральный конструктор» смотрит на узких специалистов и офигевает — хотя это я уже описывал!
И вот тут нам на помощь приходит современная ИИшенка! Говорят, что всякий там Claude Code вполне успешно заменяет «младшего разработчика», который по достаточно точным указаниям в несколько итераций может реализовать несложный изолированный кусок кода, к которому не предъявляется каких-то специфических требований. Превратить CLI в GUI? Можно дать задачку «инженеру-программисту 3 категории» (он же «джун») — а можно скормить ее иишенке и получить результат ничем не хуже. Какая-то мелкая автоматизация, «типовой» код, в конце концов, тот же boilerplate — в общем, задачи, хорошо формализуемые и не требующие понимания «проекта в целом» уже не требуют участия узкоспециализированного программиста, к тому же иишенка не жалуется на жизнь и несправедливость мира, который не желает оценить по достоинству творческую работу «программиста под Android» (которая сводится, скажем, к превращению текстового описания апишечки в более формализованное, на каком-нибудь Retrofit).
Так вот, большинство действительно успешных применений LLM’ок — это замена редко нужных узких специалистов их иишным «аналогом». В сущности нет разницы между программистом, берущим задачку из Jira, а затем отдающим ее на code-review, и делающей то же самое нейросеткой (забавно, кстати, что это по сути перевод с человеческого языка в код, а именно для перевода LLM’ки и были придуманы); чем лучше формализуется такая задача, тем проще отдать ее железному болвану. И вот тут вырисовывается интересный критерий, как определить, заменит ли вас ИИ или нет — если в вашей работе в какой-то степени требуется давать указания подчиненным или коллегам, а потом проверять результаты работы — то ИИшенка заменит скорее коллег или подчиненных, но не вас; а вот если ваша работа, как программиста-кнопкодава, сводится к перекладыванию карточки на канбан-доске из графы «в работе» в графу «можно проверять» — то у меня для вас плохие новости!
Ну и да, плохие новости у меня для тех кнопкодавов, которые занимают агрессивно-оборонительную позицию по отстаиванию «своей зоны ответственности». Скажем, какие перспективы у условного «аишника», который практически демонстративно отказывается от изучения предметной области, не хочет отличать Telnet от TCP и вдаваться в нюансы маршрутизации в IP-сетях? Если «аишная» задача ставится и проверяется в терминах, понятных сетевикам — то какая этим сетевикам разница, будет ли построенная ML-модель сделана белковым data scientist’ом (это такое модное название для программиста на Python, который умеет перекладывать данные между Pandas и Torch) или нейросеточкой? Да собственно, никакой.
И еще про инновационную лабораторию
Немножко меня эта тема триггернула, так что продолжу :) В комментариях телеги написали, что оснащение лабы отличное, человеку понадобилось плату изготовить — и он принес герберы на флешке, за полчаса плату отфрезеровал и тут же запаял! Что же, разберем подробно возможности того оборудования, что мы видим на снимках.
Но для начала — маленькое лирическое отступление. Практически всегда, если оснащение такой мастерской выбирают люди, от тематики далекие, оно делится на две категории. Первая — «дорого-богато», и к ней в этой мастерской относятся, например, металлообрабатывающие станки марки Optimum. Бренд, разумеется, псевдонемецкий, на самом деле они полностью аналогичны китайской продукции, продающейся под десятками брендов — от чисто алиэкспрессовских Weisan, Numobams и Fusikaya до имеющих какое-то представительство в РФ марок вроде Корвет или Metalmaster. На форуме Chipmaker даже есть списочек «близнецов» в разделе «Китайские хоббийные станки«. Optimum, правда, на этом форуме не обсуждают — угадаете, почему? Но про металлообработку поговорим при случае как-нибудь в другой раз, сегодня — про электронику.
Пример бессмысленно дорогого оборудования в этой категории — это как раз станок для фрезеровки печатных плат, LPKF Protomat, в 2019 году стоивший около 1,5 миллионов рублей. «Коммерсанты», считающие деньги, подобным оборудованием пользуются редко — а вот в вузах, ЦМИТах, «Кванториумах», всяких конторах, кормившихся вокруг WorldSkills этот станочек был безусловным хитом (нет-нет, никакой коррупционной составляющей). Чисто для понимания порядка величин — даже в считающемся недешевым «Резоните» небольшой заказ на производство однослойной печатной платы без маски обойдется в сумму около 1500 рублей (причем большую часть стоимости будет составлять «подготовка производства»). Что лучше, один Protomat или 1000 заказов в Резоните? Будучи руководителем небольшой фирмы, разрабатывавшей всякую электронику, Олег Артамонов писал на Хабре:
На данный момент лично у меня там 177 выполненных заказов и один — в процессе. Минимальная партия из того, что мы там заказывали, составляла 1 штуку, максимальная — несколько тысяч штук.
Думается мне, что «Резонит» мог бы спокойно продавать абонементы на изготовление плат по цене Protomat’а, или провести акцию «Разбей Protomat кувалдой и получи пожизненную скидку!», и даже не обеднеть! :) А статью Олега прочитайте, потому что дальше ее немножко дополню.
Но сначала — про вторую категорию оборудования, «говно на сдачу». Что мы видим на фотографии ниже?
Молодой человек паяет на обычном «столе для персонала» (ESD вышло из чата, хоть на других фото и видно браслетики, купленные в рамках карго-культа), вместо хотя бы силиконового коврика с алишечки на столе в качестве негорючего материала лежит кафельная плитка (надеюсь, не оторванная от стены в ближайшем сортире). Паяльная станция — самый дешевый Element, со всем известными недостатками. Паяет чувак, разумеется, так, как это было описано в книжке для страдающих от дефицита советских радиолюбителей, тыкая паяльником в кусок вонючей канифоли и таская припой на жале. Открою секрет — уже более 80 лет используется припой с трубкой флюса внутри:
Его на жале паяльника таскать не надо и даже вредно, флюс от этого просто выгорает. Термоусадку, кстати, тоже не завезли, вместо этого — плохо накрученная синяя изолента. Дополнительное освещение и лупа установлены так, что пользоваться ими просто неудобно — поэтому «монтажник» сидит, скрючившись.
Ручной инструмент — разумеется, Dexell из ближайшей леруашки, зачем эти пассатижи на рабочем месте монтажника — хер знает, там нужны нормальные стриппер (Proskit 8PK-3001 или что-то типа того) и кримпер (тут сложнее, но какой-нибудь SN-58B с алиэкспресса закроет большую часть потребностей — большинство Molex, крупные JST, «Dupont» с некоторыми нюансами). Вытяжек на рабочих местах, конечно, тоже нет, даже «номинальных» китайских вентиляторов, потому что зачем?
В этой категории выбор оборудования и расходников полностью описывается «правилом сарая для велосипедов» из законов Паркинсона — выбор Protomat за много денег не обсуждается, а вот остальное — ну каждый же прекрасно понимает, что самый дешевый набор инструментов Dexell ничем не отличается от какой-нибудь Ombra или Jonnesway, а если нет разницы — зачем платить больше? Вот и выбирается оборудование «любительского» класса, причем даже нищебродско-любительского, более-менее продвинутый паяла взял бы, может быть, и станцию с картриджными жалами, и нормальный ручной инструмент, и даже термостойкий силиконовый коврик с алишечки. Кстати, и выбор «производственной» мебели подпадает ровно под это же правило — те же стулья взяты из самой-самой дешевой линейки, и при активной эксплуатации быстро разваливаются.
В итоге получаем «монтажный участок», прекрасно подходящий для пайки выводных компонентов, крупных разъемов и прочего подобного говна, мечту радиолюбителя-нищеброда, дополненную дорогим, но прикольным сверлильно-фрезерным станком по текстолиту. А вот чего не хватает точно — это оборудования «промежуточной» категории, которое дилер LPKF не предложит, а занимающийся закупками представитель вуза даже понятия не имеет, что такое есть.
Например, SMD-компоненты паяльником не паяют (с), но можно относительно недорого оснастить лабораторию режущим плоттером для изготовления трафаретов (пассивка вплоть до 0603 и микросхемы с шагом выводов до 0,5 мм получаются приемлемо), самым простеньким ручным принтером для паяльной пасты с алиэкспресса и «печкой» типа T-962 — такой комплект обойдется в сумму порядка 50 000 рублей (если брать за свои и экономить), или тысяч в 100 — если деньги можно тратить, особо не оглядываясь. Например, что-то подобное получилось у американцев в том же 2019 году — просто при комплектации лаборатории цель была не «освоить бюджет», а купить оборудование, подходящее для монтажа единичных, но «современных» устройств:
https://dl.acm.org/doi/abs/10.1145/3299874.3317968
Я исключая из рассмотрения предложенные на хабре варианты типа «купить электродуховку, ардуину и твердотельное реле» — они явно не найдут понимания у вузовской администрации (хотя можно пропихнуть в формате «студенческого проекта» в том же МИЭМе — что, правда, не снимает вопроса «кто будет отвечать, если ваша электродуховка загорится»). Но из «самостроя» — можно дополнить вышеозвученное совместимым с OpenPnP pick-and-place-автоматом, по сложности он не отличается от заебавших всех 3D-принтеров, но намного, намного полезнее! Можно обойтись и готовым чем-нибудь тысяч за 150 с алиэкспресса — но тогда в хороший студенческий проект превратится доведение этого полуфабриката до ума.
Кстати, раз уж вспомнили о пожарной безопасности. Есть еще одно занятное последствие решения «оборудуем лабу всяким говном за три копейки», применительно, например, к вот этому рабочему месту монтажника: похожая паяльная станция стоит от 5 тысяч рублей, остальные аксессуары — тоже копеечные, поэтому у других вузовских лабораторий появляются собственные неучтенные «наборы монтажника» (я в МИЭМе точно знаю два, старательно спрятанные от проверяющих) — просто потому, что никакой разницы нет, но в «инновационную мастерскую» бегать не надо. При этом пожарная безопасность выходит из чата — если в «централизованной» лаборатории еще можно проверить, что в конце дня все паяльники выключены, то в каком-нибудь закутке компьютерного класса забыть включенную паяльную станцию — элементарно!
Конспирология-лайт
Пишут, что детектору иишенки подсунули текст Декларации Независимости США и он определил, что она на 97,75% написана иишенкой:
https://decrypt.co/286121/ai-detectors-fail-reliability-risks
Так вот, а если она действительно написана «большой языковой моделью», только перемножением матриц занимались масоны вручную?
Мастерская инноваций
Нашел тут официальный набор фоточек к 60-летию МИЭМ, где пытаются рассказать о том, какая замечательная мастерская имеется для будущих иннноваторов:
https://60.miem.hse.ru/innovation
В качестве несложного упражнения для читателя: как понять, что в мастерскую студентов пускают лишь «по большим праздникам», а пользуется ей в своих целях дед-вахтер, которого туда посадили, чтобы студенты, не дай бог, ничего не сломали?
Более сложное упражнение — найдите хоть одну фотографию, от которой не хочется сделать facepalm :)
Управлять программистами легко и приятно
Спрашивал на днях юных программистов, что такое Scrum; ответы были примерно такими:
— ну это где карточки на доске…
— нет, карточки на доске — это канбан!
— тогда где в покер на время выполнения задач играют!
Даже до обсуждения «что такое кроссфункциональная команда» толком не дошли, но больше всего поражает другое — никто из юного поколения не имел понятия о существовании Scrum Guide, но при этом был свято уверен, что Scrum — это именно тот набор ритуалов и заблуждений, с которым он когда-то на своем жизненном пути столкнулся. Придумайте любую дичь, подведите ее под какую-нибудь старую книжку про Scrum и Agile (а их много, и откровенно дурных и античеловеческих управленческих решений там упомянуто немало) — и вы великолепны, убедить молодых в том, что работать следует именно так, труда не составит.
Пятак торчит
Уже не раз замечаю явно хохляцкие пропагандистские каналы с мемами, псевдо-СМИ и прочие подобные штуки, и всякий раз они палятся очень тупым образом. На первый взгляд, контент вполне себе профильный — на канальчике с мемами будут мемы, на новостном сайте — новости, в необходимой пропорции разбавленные «негативом» помягче — уровня «блинов с лопаты» или «в Новоебенево сделали клумбу в виде хуя» и пожестче — «экономика катится в пизду, потому что Путин все запретил». Этот «негатив» явно готовится и распространяется централизованно, есть наблюдения, что материалы примерно одного и того же содержания выходят в разных местах одновременно. В общем, классика пропаганды, ничего нового.
А на чем же палятся? А просто администраторы и редакторы хохлоканалов не могут устоять перед дополнительным легким заработком и не брезгуют размещением «компромата», причем для внутриукраинского (!) употребления. Скажем, читаешь ленту новостей или думскроллишь мемасики — а там бац, и попадается «новость» про какого-нибудь «олигарха» буквально из Жмеринки, который что-то спиздил (два пикапа с бронежилетами для ВСУ и миллион гривен наличными), а еще и связан с «Партией Регионов» — в общем, идет поливание жиденьким говном за мелкий прайс.
Короче, пропагандистов губит натуральная жадность, буквально уровня анекдота «а цє під помидоры!».
Написал тут бредятинки
Это уже пошло распространяться самостоятельно, народ подозревает, что писала иишенка, но нет:
Почему Excel не может одновременно открыть два файла с одинаковыми названиями?
Когда-то давно, когда первая бета-версия Excel называлась Incel, запись дискет с дистрибутивом планировалось осуществлять на бывшем авиазаводе, где для прокладки кабельных трасс при сборке сверхсекретных бомбардировщиков F-19 использовали хорьков (потому что сборщик пролезть в некоторые места не мог). Кроме того, на заводе была узкоколейная железная дорога на той же хорьковой тяге, которую решили оставить и использовать для доставки дискет к месту упаковки.
Тележка узкоколейки, сделанная под габариты хорька, была по ширине чуть больше пятидюймовой дискеты, а две трехдюймовые уже не влезали. Когда было принято стратегическое решение выпустить продукт на трехдюймовых дискетах, оказалось, что из-за габаритов узкоколейки дистрибутив должен помещаться ровно на одной дискете — и тогда начали резать уже реализованные фичи. Когда до целевого объема дистрибутива в одну дискету оставалась какая-то сотня байт, возможности оптимизации почти исчерпались — и вот тогда было принято решение идентифицировать файлы только по названию, что сэкономило 98 байт из ста.
Последние два байта удалось отжать сменой названия продукта с Incel на EXCEL — второй вариант чуть лучше сжимается с помощью run-length encoding. Под нож пошел проект рекламной кампании In cell, где зеки в камере строят офис с колл-центром, пронося продукцию Microsoft на зону в трехдюймовом воровском кармане, но это уже совсем другая история.
Вот так ширина хорьковой жопы определила функциональность одного из ключевых продуктов Microsoft — а в следующих версиях оказалось, что некоторые пользователи из-за невозможности открыть два файла с одинаковыми названиями проверяют с помощью этой недофичи существование файлов. Именно поэтому это решили оставить — потому что обратная совместимость решает все!
С вами был Redmond Chlen, штатный сказочник M$!
Про блокировки всего
Вот подумалось тут — а что, если пресловутая «борьба с VPN», которая вылилась уже в предложения отдельной тарификации зарубежного трафика для конечных пользователей — это не столько цензура, сколько попытка запихать Рунет (почти) полностью в российскую юрисдикцию? Помните, скажем, «пиринговые войны» начала-середины 2000-х, когда отдельные сайты могли совершенно «честно» (и полностью правильно с технической точки зрения) классифицировать некоторых пользователей, как зарубежных? Тогда не редкостью было, что трафик пользователя из Петербурга на расположенный в Москве сервер маршрутизировался через Финляндию и Германию.
Впрочем, нижние уровни модели OSI «национализировать» несколько проще, чем самый верхний, восьмой уровень — до недавнего времени не редкостью были сайты, зависевшие от нормальной работы какого-нибудь там AWS, или Cloudflare, или любых других иностранных сервисов — да даже разместить «статику» на какой-нибудь нерусской CDN и сейчас не считается чем-то зазорным. Так вот — а не является ли целью всех этих нововведений принуждение популярных в России сайтов к «техническому» приземлению, чтобы даже в случае полного отрубания «внешнего» интернета они могли работать? А то помните, скажем — лежит AWS, а проблемы у Сбербанка, причем игрушечные, уровня «не загружается JS и CSS на сайте»? Вот и давят с двух сторон — и на пользователей, «деньгами» — чтобы зарубежный трафик влетал в копеечку, и на сайты — зависишь от буржуинов? Тогда к тебе заходить не будут!
И еще кое-что вспомнилось из 2000-х. Вот везде, от хабра до пикабу, вижу вопли вайтишников на тему «как же мы будем жить, если нам заблокируют гитхаб со стековерфлоу?» Ну и сперва, конечно, перебираю в голове, что у меня на этот самый гитхаб завязано — а потом вспоминаю, как жили в тех же 2000-х, как покупали на пиратском развале диски с MSDN (да и тогдашний MSDN был потолковее нынешнего) и бумажные книжки в магазине «Радио и связь» — при этом, если честно, какая-нибудь «Практика программирования» Кернигана и Пайка в разы полезнее этого вашего стековерфлоу с прочей чатгопотой.
PS Да, и страдальцам о том, «как может айтишечка жить под санкциями» — советую ознакомиться с опытом того же санкционированного по самое не хочу Ирана. Изредка вижу вопросы от чуваков «оттуда» на все том же стековерфлоу, и в целом они не производят впечатление совершенно оторванных от жизни. Используются вполне актуальные технологии, может, с некоторыми отличиями от мировой моды, но без какого-то катастрофического отставания, которым нас пугают.
Страшно ору
Новое guilty pleasure — закидывать в переводчик на Linkedinese похабные присказки, например:
Было: Моя работа — ебать енота.
Стало: I am a dedicated professional specializing in high-impact, unconventional wildlife engagement and hands-on environmental stewardship.
Было: Засадил Андрюха свинке, не покушаем свининки.
Стало: I am thrilled to share a key learning moment regarding resource management and unexpected pivots in our supply chain.
Unfortunately, due to an unforeseen operational misalignment by our team member Andrew, we’ve had to re-evaluate our Q3 protein procurement strategy. While we won’t be moving forward with the pork initiative as planned, this challenge presents a unique opportunity to embrace agility and explore alternative sustainable solutions.
#Resilience #AgileLeadership #SupplyChainOptimization #GrowthMindset
Было: Ебитесь как хотите, коллеги, в умелых руках и хуй балалайка.
Стало: Feel free to navigate the challenges as you see fit, team; in the hands of a true professional, even the most unconventional tools can drive exceptional results.
Было: Служи, браток, как мы служили, а мы на службу хуй ложили!
Стало: Keep up the great work, my friend, just like we did — though we definitely prioritized our own work-life balance! 🚀 #CareerGrowth #WorkLifeBalance #Mentorship
Было: Соси хуй, читай газету, станешь комиссаром к лету.
Стало: I am thrilled to announce my transition into a leadership role this summer! 🚀
Success isn’t just about the destination; it’s about the grit, the daily grind, and staying informed in a rapidly changing landscape. By staying focused on the «unconventional» tasks and keeping my finger on the pulse of industry news, I’ve positioned myself for this next level of executive responsibility.
Remember: stay hungry, stay humble, and keep putting in the work. The promotion is just a byproduct of the hustle. #Leadership #CareerGrowth #HustleHard #ExecutiveMindset
Было: Бывайте, ихтиандры хуевы.
Стало: Wishing you all the best in your future endeavors as you transition to new horizons. It’s been a pleasure navigating these deep waters together! #NewBeginnings #CareerGrowth #ProfessionalJourney
Девочки, я и кто?
Нечеловеческий язык
От нехуй делать зашел на сайт Резонита, где очень сильно зазывали зарегистрироваться в новом личном кабинете. Почитал FAQ по нему и прихуел от вот таких вот описаний:
Если требуется удалить Заказчика (Клиента), откройте вкладку Пользователи в разделе Клиенты и действуйте по одному из сценариев:
Вы единственный Пользователь и админ Заказчика (Клиента).
В этом случае доступна прямая операция удаления Заказчика (Клиента).
У Заказчика (Клиента) несколько Пользователей, и у вас статус админа. Возможны два варианта:
— назначить другого пользователя новым админом и после этого прекратить сотрудничество с заказчиком (клиентом), если вы не планируете продолжать работать с ним.
— удалить всех пользователей и затем удалить заказчика (клиента), если он больше не существует.
У Заказчика (Клиента) несколько Пользователей, и вы не админ.
В этом случае вы можете только покинуть Заказчика (Клиента).
Мне кажется, что вот такая простыня в FAQ, предназначенном для пользователей (а может, Заказчиков/Клиентов/Админов — кто там еще упомянут?) — это просто признак профнепригодности аналитиков и/или техписателей. Нет, не имею ничего против такого подробного описания в материалах, предназначенных для «сайтостроителей», из этого получается и прекрасное описание ER-модели базы данных, и несколько user story и прочих юзкейсов — но блин, я нихуя не понял уже в первой фразе!
PS А также от нехер делать почитал их оферту и завис уже на такой фразе:
Продукция – результат выполненных работ по конструкторской документации (далее – «КД») Заказчика: печатные платы, трафареты, электронные модули. Область применения Продукции устанавливает Заказчик и у Исполнителя отсутствует возможность ознакомить Заказчика с Продукцией и ее назначением при заключении Договора.
Мне одному кажется, что в выделенной части что-то напутали?
Выкуп за невесту
Оцените красоту схемы, о которой с непередаваемой гордостью пишут на сайте УМВД по Амурской области:
Так, например, в прошлом году к нам прибыли старообрядцы — две сестры из Уругвая, воспользовались правом на получение подъемных, это около 200 тыс на каждую. Одна из девушек на территории Амурской области заключила брак и вместе с мужем переехали в Красноярский край. Перед тем, как выехать на постоянное место жительство в другой субъект, девушка написала добровольный отказ от участия в Государственной программе и возместила выплаченные ей деньги.
https://28.мвд.рф/news/item/81351311
Ящетаю, что надо распространить эту практику не только на переселенцев, но и на аборигенок — в конце концов, региональный бюджет тратился на всех. Выходишь замуж в другой регион — пусть жених выплатит установленный калым в бюджет!
Тапок псто
Обнаружил, что на очередных осенне-весенних ботинках начала раскрашиваться подошва (я хз, из какого конкретно пластика их сейчас делают, но пишут, что это «типовое»), а так как на днях участвовал в жжшном срачике про защитную обувь — то присмотрел на сайте Техноавиа вот такие забавные ботинки:
https://www.technoavia.ru/product/2215
Внешне — ну вроде обычный офисный smart casual, надеть такую обувь с джинсами или не слишком формальным костюмом не запрещает никто, но при этом — жесткий защитный подносок, защита от проколов и даже ESD-safe, защита от статики. Напидарасил хорошим кремом, попробовал сделать на носке подобие глассажа (когда наносится десяток-другой тонких слоев ваксы и располировывается; тут оно хорошо зайдет, потому что носок жесткий и в принципе не мнется) — и никто не скажет, что обувь куплена в магазине спецодежды! :)
Диванная экспертиза про экономику
Пару лет назад в одном чатике гоняли некоего программиста, который заразился в каком-то из «националистических» пабликов мемом про «русским деньги не нужны» (произносится в ироничном контексте, мол, начните платить «достойные зарплаты» — и вот тогда-то экономика расцветет!). В качестве возражения предлагался следующий сценарий, на расцвет экономики никак не похожий:
— повышение зарплат в «реальном секторе» приведет к закрытию мелкого производственного бизнеса, он не выдержит конкуренции с Китаем и прочей Индией;
— среднему и крупному будет полегче, но тоже потрясет-полихорадит;
— ни о каких «25 миллионах высокотехнологичных рабочих мест» речи не идет (да и кому на них работать?);
— через это прогнозировался разгон инфляции, правда, с важным смягчающим фактором — неравенство в зарплатах несколько выравняется, условно, если в 2019 рабочий получал 50 тысяч, а программист 250 — то теперь рабочему будут платить 150, а программисту 300, цены же вырастут с тех же 50 до 150 (в мягком варианте, в злобном прогнозировался рост до 200);
— ну и за счет зачистки мелкого бизнеса прогнозировали рост безработицы (в 2024 в некоторых регионах она достигла нулевого уровня, хотя всякого рода экономисты утверждают в своих книжках, что ее целесообразно держать на некотором разумном уровне в 4-5%).
Так вот, есть мнение, что именно это и начало в какой-то степени реализовываться, во всяком случае, от просмотра некоторых разделов Авито впечатления именно такие. Во-первых, вижу много предложений аренды мелких (50-100 квадратов) производственных помещений из-под швейных цехов (кое-где даже предлагают с оборудованием, то есть предыдущий арендатор закрылся «с концами») — а именно «швейка» и была примером того самого мелкого бизнеса, который помрет первым, она и так существовала на грани рентабельности, а как только зарплаты «тут» превысили зарплаты в условном Китае — то и настал ей конец.
Во-вторых, в разделе вакансий на том же Авито за рабочие специальности категории «бери больше, кидай дальше» (какой-нибудь, условно, слесарь, «оператор ЧПУ» категории «закрепи деталь и отойди», «оператор производственной линии», то есть биоробот на конвейере, и так далее) что работодатели, что соискатели уже приблизились к «психологически важной отметке» в 100 тысяч на руки, а квалифицированным рабочим могут и 150-200 предлагать (да, с нюансами, но в доковидные времена это было бы невозможно в принципе). Программисты же на своем хабре жалуются на то, что айтишные зарплаты прекратили расти (да-да, их постоянный рост рассматривался, как что-то само собой разумеющееся), а индексации, если они где-то остались, не покрывают инфляции.
В общем, вопрос пока остается один — в каком из вариантов реализуется рост цен из прогноза, в умеренном (когда для рабочего все остается как есть, а программисту становится хуже), или в злобном (когда хуже будет обоим).
День рождения
Праздничное
Метод pomodoro
Для повышения личной продуктивности решил попробовать модный метод планирования pomodoro. Метод простой — берем банку маринованых помидор, достаем помидорку, наливаем 50 грамм, закусываем! Через 30 минут — повторяем, в промежутках не отвлекаемся. Знаете, впечатления самые положительные!





