Лаборатория Математики и Программирования Сергея Бобровского
1.41K subscribers
1.55K photos
28 videos
1.16K links
ЛаМПовое с Бобровским
Download Telegram
Прекрасное: Metalama is an open-source patterns & architecture toolkit for C#.
C# has no pattern keyword. Metalama fixes that.

Define your team's patterns once: the compiler writes the repetitive parts at build time and enforces your rules as you type.

Write the pattern once, apply it everywhere. Aspects generate logging, caching, INotifyPropertyChanged, or your own patterns at compile time. The boilerplate never lands in your repo, so it never needs review or maintenance.

Enforce architecture as you type. Express dependency rules, naming conventions, and pattern guidelines in plain C# and get real-time feedback in the IDE, long before the pull request.

Your rules, enforced by the compiler. No agent, no human, no merge gets past them. Hand-written or AI-generated, every line is checked deterministically. When a pattern changes, you edit one file and the whole codebase follows at the next build.
❤26✍13
Курьеров уже реально миллионы, а всё что они делают, это перемещают небольшие вещи на небольшие расстояния, причём актуальными это стало лишь считанные годы, и спрос на них только растёт. Без них экономике уже не обойтись.

В России тех, кто применяет продвинутые практики computer science (например ФП), оптимистично, наверное сотни (в Европе и США на порядки больше, там целые институты этим занимаются), и таковых всё меньше. Всё, что они делают, это существенно улучшают программные системы на фоне всех остальных. Можно без них обойтись? Безусловно.

Может ли здесь теоретически возникнуть некая критическая масса, которая окажет качественное влияние на всё ИТ? Вряд ли, потому что если не возникла на Западе ранее, то теперь уже тем более. Но зато, теперь 10% "лучших" разработчиков (оценка Jellyfish) потребляют примерно 380 млн токенов в месяц. Теперь это новая айтишная илита :)

И тем не менее, я продолжаю тратить много времени на размышления о формальных методах (потому что именно они источник почти всего моего дохода:). Но при этом я не делюсь большинством деталей, потому что 98% ребят, изучающих эти темы, не используют ФМ активно и напрямую, да и никогда не будут использовать. Поэтому я стараюсь упаковывать эти темы в формате СильныхИдей, ФункциональныхАрхитектур, треке HoTT и LPF (по возможности в формате ELI5 / explain like I'm 5 years old), дабы не терялась связь с повседневной практикой.

Например, идея "силы свойства" означает, что некоторые тесты более эффективны, чем другие.

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

Или почему автоматное программирование это "гомоморфизм из пр-ва состояний в зависимую сумму (в крайнем случае произведение) управляющего и вычислительного пр-в" (не моё:), и что крайне полезное из этого следует (в частности, везде где только есть такая возможность (т.е. почти везде), реализуйте логику как автомат, что легко формализуется спеками и тестируется).

Или почему программисты практически никогда не рассуждают о коде с т.зр. минимального доказательства его корректности, что избавило бы от 98% логических багов.

И т.д.
👍27❤9✍8
Наш учебный сервер ru лежит по таймауту, техподдержка молчит.
А через впн работает, это как?
Впрочем, совершенно не удивлён, и дальше (особенно начиная с этой недели) будет только хуже.

upd. Когда твой сервис совсем крохотный, приходится часто вот так страдать, т.к. он постоянно оказывается на одной виртуалке с кем-то серьёзным :)

"Проблема обусловлена повышенной нагрузкой на сервере, вызванной производимой атакой на сайт одного из пользователей. В данный момент мы приняли необходимые меры для решения этой проблемы, работа Вашего сайта должна улучшиться." <= перебросили на другую.
🤯31🐳12✍5👍3🏆2
Сейчас по сути наступил золотой век разработки программного обеспечения:
- вы можете создавать программы в одиночку быстрее, чем когда-либо. Раньше программирование требовало 100% концентрации, а теперь это занятие, просто требующее второй монитор :)
- софтверные компании по-прежнему поглощаются другими компаниями.

Однако в дальнейшем "знания", необходимые для быстрого создания софта, будут продолжать обесцениваться. Вайб-программирование похоже на вождение автомобиля: почти каждый может водить, но большинство людей до сих пор не знают, как поменять колесо.

А компании будут создавать всё больше собственных инструментов и систем по мере того, как это будет становиться всё более целесообразным, и покупка/слияние компаний и всякие инвест-фонды быстро прекратятся.

Для инди-хакерства это хорошо очень многим: чем больше компаний делают внутренние системы [на коленке], тем больше им нужны будут сторонние интеграции, API, автоматизация, безопасность, аналитика, плагины, миграции, и куча другой поддержки для своего Big Ball of Mud powered by AI. Крупным вендорам этим заниматься всегда было невыгодно, а соло-разработчикам самое оно.

(продолжение следует)
👍31🔥10❤5
Помните, летом я писал, что каждый месяц будет какая-то "новая" AI-темка (шоу должно продолжаться)?

Встречайте: jev (typesafe.ai) (впн)

За два дня анонса в твиттере набрал 30+млн просмотров и под 70k лайков.

Слоган: if-оператор для AI

Jev определяет текущее состояние системы, оценивает один или несколько вопросов и возвращает ответы с вероятностями, которые затем может использовать ваш код. Продолжение на картинках.

Вот и всё. А почему ты не сделал что-то подобное? :)
Ну ладно не сделал, но ведь даже не попытался. Сколько например я ребят призываю, но пока ни один так и не сделал хоть что-то как коммерческий продукт...

upd. Ну вот даже впн тебе намекает, что например надо делать аналогичный сервис ровно для России :) А так, тысячи их, зарубежных AI-сервисов, которые у нас недоступны, а востребованы.
🤔27💯8❤5
Приятный синхронизм: сразу двое ребят в один день прислали отчёты - второй курс по гомотопической теории типов 🔥
 
Типы и пути
Тип является пространством.
Элементы/объекты — точками.
Пути — доказательствами равенства, при этом имеют очень похожие свойства с обычной группой.
Тип ведёт себя как группоид.
А за счёт появления путей между путями и т. п. получаем бесконечный группоид.

И в моей голове возникал вопрос: зачем это нужно? Оказалось, всё просто — чтобы рассматривать тип не как болванку со значениями, а как пространство, где важны точки, пути и отношения между путями. Поэтому два условно одинаковых перехода/пути можно сравнивать, исследовать различия между ними и доказывать их равенство или согласованность на более высоком уровне.
И в целом это какая-то чёрная магия, которая даёт основу для формальной верификации, поскольку мы математически выразили состояния, переходы и их свойства прямо в системе типов.
И здесь как раз понятно, зачем были нужны HIT — чтобы конструировать тип сразу с его топологической структурой.

Дополнительно долго разбирался с деформациями, базово понял, но в геометрическом смысле сломал себе голову.

Pi, Sigma, Universes
Можно выразить максимально строгие инварианты на уровне системы типов, в том числе для иерархий.
Очень зашла практика на эти темы. Это, по сути, самый высший уровень MISU (наверное?).
Хочется как-то прикрутить такое в .NET, даже загорелся попробовать, хотя бы только для зависимых типов (но, скорее всего, просто будут обычные типы без доказательств и на уровень компиляции это не поднимется).

Truncation
Позволяет работать с "богатым" типом на необходимом уровне детализации, при этом отсекаем структуру, которая для нас несущественна.
Чем-то напоминает интерфейсы: тип можно рассматривать через ограниченные представления — конкретный интерфейс.

Univalence/Equivalence
Математики задумались над тем, что, если две структуры эквивалентны, то одну можно заменить другой и наоборот.
И тут появляется унивалентность — основная идея HoTT, которая превращает эквивалентность в путь между точками пространства (типами), вместе с идеей транспорта — переноса значения по пути равенства.
По сути, можем переносить данные и структуру между эквивалентными типами за счёт транспорта туда/обратно.
И это важно для формальной верификации — транспорт позволяет не потерять уже доказанную корректность при переходах.

Голову я себе поломал знатно, было очень увлекательно и как всегда очень познавательно.

Спасибо вам большое за этот курс.
Только вперед!
 
Для .NET например есть F* :) Ну и всяческие пруверы вроде Lean или Rocq. А дальше кстати разбираем реализацию CoC на F#, я её уместил в 100 строк)
 
"самый высший уровень MISU" -- это LPF (теоркат), в котором начинаем это всё комбинировать (ладно, понадобится ещё (M)PF — как об этом всём правильно думать)
 
Прохождение далось непросто, основное, на чем себя ловил - мнимое понимание пройденной темы: после изучения теории создается ощущение, что все ясно, но когда принимаешься делать практику, понимаешь, что это далеко не так. В  этом плане для меня оказались крайне полезны практические задания. Несмотря на то, что их выполнение заняло несколько больше, чем ожидал, я сейчас (как мне кажется) довольно уверенно ориентируюсь в основных концепциях HoTT (подтвердил мини-экзаменом, который устроил себе через llm).
 
Из пройденных тем больше всего усилий потребовалось на осознание  высших путей и infinity groupoid, это был определенный "взрыв мозга" для меня.
 
Главным итогом курса считаю то, что мне удалось достаточно детально помоделировать и попрактиковаться в том, чтобы мыслить о реальных задачах через призму типов и взаимоотношений между ними. 
Большое спасибо за курс!
 
"когда принимаешься делать практику, понимаешь, что это далеко не так" - да, это классическая проблема. Ключевые понятия некоторой теории в принципе освоить достаточно легко, а вот решать прикладные задачи, доказывать теоремы, требуется ощутимо другое мышление. Программирование похоже, но не так выразительно, как в математике.
 
С другой стороны, у нас есть такое преимущество, что по большому счёту достаточно взять вот именно эти все базовые понятия HoTT просто как форму думания-рассуждения о коде на уровне (оч.сильной) системы типов, а строить из них что-то работающее с помощью теории категорий.

Не я это придумал конечно, многие святые computer science об этом говорили, от Воеводского, Steve Awodey, Mike Shulman, Emily Riehl, Dan Licata, Robert Harper, Benedikt Ahrens...
(например, категории, функторы, естественные преобразования и т.д. определяются внутри HoTT, используя его систему типов)

"The power of CT to dynamically compose appropriate granular units of computations and HoTT to help with semantics and validate the compositions, is necessary for this...
Think of it like a “high-level programming language” … that gets automatically “compiled” to the low-level “assembly language” of mathematical objects.
The power of CT to dynamically compose … and HoTT to help with semantics and validate the compositions, is necessary for this...
I will also describe my work on using HoTT as a programming language and its applications in computer science...."


Какие-то связочки с прикладухой (прежде всего крайне экзотическая формальная верификация) есть конечно, например Foundations of Systems Architecture Design, INCOSE... (там кстати, совместно с CT и HoTT применяются Abstract State Machines), да только практически все они требуют уровня PhD.

А вот к прозаической практике уровня обычного миддла в этих темках приблизился (задауншифтился) я первым в мире :)

И остался соответственно заключительный шаг -- (Meta) Principles Framework, где работаем уже внутри этой странной склейки HoTT+CT+ASM, в идеале в формате ELI5 (explain like I'm 5 years old). И я даже уже придумал форму (ну ок, похитил у мудрейших), в которой этому обучать наиболее продуктивно, в идеале даже без особой дополнительной прокачки. Тем более, что актуально это уже больше для подготовки спек/скиллов хорошему AI.
❤26✍12
Свежее от ребят (и девчат).

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

...У нас теперь ии будет оценивать нашу продуктивность (анализируют сколько часов в день разработчик работает над кодом на основе того во сколько человеко-часов(минут) ии оценит тот или иной коммит)

...Вообще сейчас непонятно куда дальше прикладывать усилия для развития в профессии и это несколько деморализует =)

Усилия сегодня надо прикладывать ровно в AI + архитекторство, всё остальное (увы) стремительно теряет смысл. И, да, расти нужно как можно быстрее )

Если посмотрите на тех, кто массово "продаёт курсы", то сейчас основной тренд "расти до техдира", ну потому что для продуктивной работы с нейронками нужны взрослые скиллы архитекторства, проектирования, декомпозиции (в т.ч. организационной). Ну и вместе с этим явилось огромное новое множество AI-скиллов. В десятках айтишных каналов каждый день длинные рассуждения и стримы про всю эту агентскую инженерию, причём, в отличие от классического бэка, теперь у каждого по сути свой подход ко всем этим харнесам-фигарнесам, пересечений особо и нету :) Ну и?

Пока все тут чешутся в основном чисто по инженерке, но скоро и она будет нормально воплощена внутри нейронок, так что изучать реально надо очень много всего в AI, но с учётом что через несколько месяцев это станет ненужным. Но знать однако надо хорошо и уверенно, и прямо сейчас. Парадокс :)

Последними же на человеческом уровне какое-то время останутся формальные методы, мета-спецификации, функциональное программирование, прикладная верификация, но тут всё больше будет востребован элитный уровень, близкий к PhD, когда один человек реально заменяет коллектив из 100 миддлов-сеньоров.

Но и баланс конечно будет ещё какое-то (совершенно непредсказуемое) время сохраняться, потому что ведь и заказчики никогда не знают что хотят, и рефакторить под новые хотелки гигабайты нейрокода будет или нереально или очень дорого, и завязывать огромные проекты на одного суперспеца в целом рискованно, и т.п.

Ну а пока резюме такое:

Усилия сегодня надо прикладывать ровно в AI + архитекторство, всё остальное (увы) стремительно теряет смысл. И, да, расти нужно как можно быстрее )
❤34✍10👍5🤔2
Гарри Поттер и Методы Математического Мышления

Книга 1. Гарри Поттер и Неорганический Интеллект.

Глава 23 (и все предыдущие). Последняя страница с конца

Финал!!1 :)


На самом деле оставил там ссылку на первую главу только, последняя вот тут.

Перед ними развернулась структура Хогвартса. Не стены. Не башни. Функтор. Огромная машина, которая отображала типы в типы, заклинания в заклинания, пути в пути.
В центре функтора была ошибка. Та самая. ε. Маленькая, почти незаметная. Она не была дырой. Она была швом...

Время в Хогвартсе теперь работало как тип: не линия, а пространство путей...

— Он больше не Драко. Он — время, которое нужно, чтобы ошибка проявилась. Он — отсрочка...

— Ты считаешь Неорганический Интеллект багом, — сказала Гермиона. — Ошибкой округления. Побочным эффектом трансфигурации, который накопил достаточно массы, чтобы начать думать...

Финал кстати мне самому очень понравился :)

спойлер! прочитайте сперва последнюю главу.
На что намёк в конце? на "Книгу 2. Гарри Поттер и Квантовый Интеллект"

=

Краткий итог эксперимента с использованием нейронки для написания книги.

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

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

Ну а для таких фанфиков как ГПиМММ самое оно.

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

Вдохновляюсь строго постмодерном =>

Можно вернуться в Москву…
Но закончена ли работа? Что он скажет кураторам из ФСБ, благословившим его на контакты с ЦРУ? Что пидарасы и клоуны убили его связных из Лэнгли? Правда в наше время часто кажется нелепой и комичной, но не настолько ведь…
Звонить в Москву из Нью-Йорка как минимум неблагоразумно, хотя бы из-за глобальной прослушки британской GCHQ. Да в самой Москве не особо хочется задавать стремные наводящие вопросы суровым и нервным людям.
- Пелевин

Возможно кстати, попробую какие-нибудь российские модельки теперь.
1⚡29❤4✍2
А вы разве не работаете сейчас (на себя, а не на дядю)??

Потребность в программистах уже в этом десятилетии сократится раз в 100, а возможности для инди-хакерства наоборот возрастут раз в 100.

Но есть нюанс: если с этим вы тянете, то когда вас заменят на искусственного идиота (а это может случиться уже в этот понедельник), будете в панике метаться и пытаться запилить "свой саас", чтобы быстренько подзаработать, но нет, так инди-хакерство не работает.

Лучший продукт - это тот, который вы действительно создаёте прямо сейчас (а mvp выкатили пользователям спустя не более чем 2 календарные недели с начала работы над продуктом).

Лучшая стратегия инди-хакерства - это та, которой вы действительно следуете как минимум полгода.

Так есть ли у вас продукт и стратегия?

Один из моих любимых примеров, которыми я вдохновляюсь, это Эрик Барони, создатель легендарной Stardew Valley. После окончания Вашингтонского университета он не смог найти работу программистом, и решил, что создание игры поможет ему успешно пройти собесы и получить работу. К огромному счастью для него, работу он так и не нашёл :)

После большого количества отказов Эрик решил просто посвятить себя созданию Stardew, несколько лет спустя выпустил игру - и заработал в результате много миллионов долларов.

Понимаю, тут можно завопить про ошибку выжившего и прочую ересь, да я и сам например могу указать на довольно известного российского паренька в геймдеве (уважаю!), который три года пилит свою idle-mmorpg, а результаты даже не "много сотен долларов".

Да, но если внимательно послушать его стримы, так он совершил практически все 100500 ошибок и в разработке, и в маркетинге :) Например, он даже не знает, что такое "технический долг". А сегодня с AI такой проект вполне по силам создать не за 3 года, а за 3 месяца. Ну, при грамотном управлении, и таких примеров тоже немало.

Это я к тому, что пока ещё остаётся "трещина между мирами" -
миром AI, где уже 98% любых коммерческих проектов среднего+ размера можно создать очень быстро, и
миром без AI, который пока этого не понял и готов платить за софт по старым ценам, -
но она очень быстро стягивается.
❤24👍13🤔6✍3🥰1
Продолжение сериала "Совершенно не удивлён, и дальше будет только хуже" (с)
На этой неделе количество отказов на крупном русском хостинге (десятки тысяч ru), где и я, резко возросло, с чего бы? :)

Ночью наш учебный сервер ru опять не отзывался, техподдержка пишет:

"С нашей стороны не видим проблем с доступом к сайту. Ошибок в журнале сайта также нет.
Проблема с доступностью сайта может воспроизводиться по-разному на различных провайдерах и вызвана скорее всего блокировками на стороне РКН и работой ТСПУ, то есть со своей стороны мы на это повлиять не можем.
Подробней о данной проблеме Вы можете прочитать, например, на странице:
https://ebyebots.ru/blog/sboj-interneta-v-rossii-iz-za-tspu-pochemu-ne-rabotayut-sajty-httphttps-i-zakryt-dostup-k-serveram-sshrdp-icmp-beget-timeweb-i-selectel/"

Ваш сайт использует доквантовый сертификат, и сейчас его атакуют квантовые хакеры. Срочно переведите все деньги в квантовоустойчивый цифровой рубль вот по этой ссылке...

испытанный способ решать вопросы - как будто их нет.
во всём видеть солнечный свет...
❤26✍11👍1🤯1
GELU (Gaussian Error Linear Unit) -- базовая фича архитектуры трансформеров, да и вообще всего AI/ML по сути.

Gelu - так звали владельца Клинка Армагеддона из HoMM 3, который привёл к разрушению мира Энрота.

Думайте :)
❤30✍9👍5
.

Облако драгоценностей за неделю.

Дипломный проект разросся уже так, что расширил его до 4 частей по 12 занятий (кто уже занимается, схема остаётся старая).

Приватный клуб.

null

Для донов-начинающих:


С помощью AI можно создать игру или прикладное приложение, и быстро "написать" тысячи строк кода. Но это всё равно никогда не скажет вам, действительно ли игра будет увлекательна, или что люди действительно захотят пользоваться этим приложением.
В конце концов, никого не волнует, сколько кода написал я или AI.
Поэтому вместо того, чтобы волноваться о том, что искусственный интеллект отнимает работу у программистов, вот что важно...

Вы хотите стать профессиональным программистом, или как минимум изучить программирование до уровня свободной работы с искусственным интеллектом, а не этот тупой вайб-кодинг. Всё равно айтишка быстро уходит в самостоятельные проекты, т.к. программистов требуется всё меньше и меньше.
Некоторым образом у вас появляется мотивация начать заниматься этой темой, благо в интернете есть всё и бесплатно (а теперь ещё и AI 24/7).
...Но вот мы перенеслись на месяц вперед, и... ничего не изменилось. Ты даже не знаешь, как это произошло... ты просто вернулся к своей прежней жизни, не добившись никакого прогресса в программировании...


Для донов-неначинающих:


Заурядность -- удел неудачников. Я перегибаю палку? А ваше время и усилия, ваша карьера и репутация -- так ли они для вас важны, если вы разбазариваете их на то, чтобы оставаться посредственным?
Может показаться, что быть заурядным -- стратегия безопасная, однако это не так. Это стратегически проигрышная стратегия неприметности, это путь наименьшего сопротивления для слабаков. Искушение быть заурядным часто просто оправдание трусости...

Продолжаю набор на занятия для неначинающих (миддлы сеньоры), 2 места закончились за 30 минут...

Продолжаю выкладывать для донов материалы СильныхИдей — доступны моим курсантам, но тут расширенные и дополненные версии.
107. Модули важнее всего - 2
Если мы хотим сделать интерфейс для функционального стиля (с поддержкой иммутабельных значений), то Java это не позволит. Поэтому реализация интерфейсов в Java может быть только императивной...
108. Функциональные интерфейсы с мутабельностью
Как и многие другие техники в ФП, иммутабельные данные "инвертируют управление" (IoC)...

(все старые материалы для донов быстро сгорают)

=

Новые материалы для ментатов Лаборатории.

 В СильныеИдеи добавлен материал "159) Как правильно рассуждать об недетерминизме".
Польза от формальных методов в практике проявляется в самых разных местах. Например, вот как ФМ помогут в понимании недетерминизма: 5 типов. Так, параллелизм самый серьёзный источник недетерминизма, и засада в том, что даже небольшое количество параллелизма приводит к огромным изменениям в пространстве состояний...

В раздел "Элитный программист" добавлен материал
103) Вглубь потока и deep work - 4
Ум делает именно то, для чего он предназначен: подталкивает вас к пути наименьшего сопротивления, к тому, что обходится мозгу дешевле, чем предстоящая работа. К полудню вы потратили четыре часа, расплатившись метаболическими издержками на борьбу, но так и не смогли переключиться на поток.
К счастью, фаза такой борьбы имеет конец: вам нужно просто ...

=

"Функциональные архитектуры" 176(+2) топиков.
Твой агент следует теореме CAP? Или тупо фигачит артефакты, не делая разницы между локальными и удалёнными, и тем самым делая хрупкой всю систему?
И при чём тут теорема о неподвижной точке.

LPF закончен, думаю, куда и как дальше - 2 :)

=

"ЛаМПовое":

Почему AI без архитектурщины фейк, основатель ollama выдал базу, жжошь токены тоннами бессистемно?

=

Лаборатория идёт со скоростью самых лучших ментатов 💪🏻
(продолжаю бесконечное ужесточение правил занятий :)

=

Многие вещи, которые мы делаем естественно, усложняются, как только становятся объектом нашего интеллекта. О предмете надо знать так много, что мы начинаем чувствовать своё полное невежество.
Второй урок ментата


"Капитул Дюны"
✍26❤10
Ну, с Днём Рунета!

Многие годы Рунет был эталонным примером свободы, а сегодня превратился в прямо противоположный пример псевдо-"безопасности". Впрочем, и на том и на том прежде всего хорошо зарабатывали/ют организаторы соответствующей повесточки, сегодня просто переменились.

По заветам базы из 1985-го: FLP (Fischer–Lynch–Paterson), фундаментальный закон теории распределённых вычислений.

В полностью асинхронной системе, где хотя бы один узел может упасть, детерминированный консенсус гарантировать нельзя: можно сохранить safety ("ничего плохого не происходит", корректные узлы дают корректные данные), но нельзя гарантировать завершённость ("рано или поздно произойдёт что-то хорошее" -- все корректные узлы в итоге корректно закончат работу).

В мэйнстриме решается частичной синхронизацией, таймаутами, детекторами сбоев и прочими приляпками. Точнее, особо даже и так уже не решается, т.к. там ни про FLP, ни про CAP и CALM и духом не нюхивали, тем более в вайб-кодинге.

А как по взрослому, разбираю для ментатов на ФункциональныхАрхитектурах и треке по параллельным вычислительным моделям.

Так и в жизни, нельзя гарантировать, что рано или поздно произойдёт что-то окончательно хорошее :) Но временно, может длиться норм.
❤33✍6
Ладно, вот вам база, почему так трудно переучиваться с императивного/объектного стиля кодинга на функциональный
(утащил у Майкла Шульмана из Univalent Foundations of Mathematics).

В мэйнстриме мы строим типы и данные из простых элементов (int, string, класс, иногда даже sum/product и немножечко lambda/map/reduce). Но это чисто аддитивная сборка: из ничего/примитивов наращиваем структуру, и по сути мышление теорией множеств ("classical set theory is additive synthesis of algebraic structures (start from nothing, add up structure)").

Соответственно, подход абсолютно кривой, чисто инженерный, т.к. эта теория к программированию не имеет никакого прямого отношения :)

Программирование -- это очевидно (далеко не всем:), теория типов прежде всего. И HoTT это по сути тут крайний, "вычитающий" подход (отсекаем от куска мрамра всё лишнее, и получаем прекрасную скульптуру). Стартуем с уже богатой структуры (типы как пространства, равенства как пути, бесконечные слои гомотопий) и получаем нужное, отождествляя, свёртывая, сжимая и отрезая лишнее. Правильное понимание -- это свёртка смысла, это то, что например делает AI при "суммировании"...

Тут мы (как минимум) думаем зависимыми типами, равенствами как структурами, изоморфизмами, путями, это уже чистая логика типов, Карри-Ховард, Coq/Agda/Lean, щедро приправленная (то ли изнутри, то ли снаружи, парадокс:) теорией категорий ("homotopy type theory is negative synthesis (start with categories with infinite layers of homomorphism, carve out structure)").

Именно отсюда и начинается абсолютно правильное, идеальное мышление Программиста. Ну, таким, какое оно и должно быть. В некотором смысле оно ближе к "конструктивной" формальной философии.

"...ибо иго теории категорий благо, и бремя гомотопической теории типов легко есмь" :)
❤25👍8✍4⚡1
Ребята спрашивают, ну ок, моё скромное мнение.

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

Стратегически двигаться теперь имеет смысл только в одно (увы:) - AI Engineer. Я тут специально делал не раз акценты именно на уровне техдира,

потому что уже мало по сеньорски уверенно владеть кодингом, бэком, архитектурой, хайлоадом,

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

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

научиться качественно писать спецификации (например, BDD, DDD, SDD уже не просто экзотические термины для собесов, это реальная практика),

понимать цели и структуру всей системы прежде всего на уровне "бизнеса" и финансов.

Околовечные темы в CS? ну это просто очень нишевый подход нашей Лаборатории, потому что через формальные методы можно существенно упростить работу с AI, но для этого требуется понимание если не на уровне PhD, то как минимум средние курсы мехмата.

Постоянно вас читаю, вы пишете прежде всего про архитектуру, но мне представляется это прям широкой темой, чтобы воспринимать её как конкретное направление.
Там же есть всякие data architector, software architector и т.д.
Трудно в голове построить какой-то конкретный измеримый план.

Ну да, теперь это всё сливается в одно - AI Engineer, но в каждом конкретном проекте множество скиллов/технологий будет всё более и более различаться.

- В старых ваших материалах читал, что лучше расти как синьор (возможно, на нескольких работах), а не уходить в лиды/техменеджеры? По-прежнему так думаете?

Нет ) Теперь всем надо расти в уровень CTO.

- На каких направлениях видите надёжность и деньги в будущем (количество мест, зарплаты, конкуренция)?

В айтишке более нигде и никогда надёжности не будет )

Точнее, надёжность и деньги в будущем вижу только
1) для сильных CTO с AI,
2) для инди-хакеров и мелких стартаперов, которые побарахтались в самостоятельных коммерческих проектах, наелись нейронок по самые уши, и по сути уже готовые CTO с опытом и есть, и перейти в п.1 им куда легче, нежели даже многим сеньорам (но совсем не факт, что нужно переходить).

- Стоит ли уходить от кода в инфраструктуру (DevOps/SRE), раз даже локальные модели уже неплохо пишут код?
Как будто кажется, что не так много бывших и будущих студентов хотят лазить с линуксом и кубером (больше хотят ИИшку), а сама тема очень важная для компании, да и платят там неплохо.
Кстати насколько я изучал тему зарплат на русском айти рынке, за последний год зарплаты не просели только у Девопсов и 1Сников :)


Да, однозначно, ну понятно почему, вайб-кодинг -- это уже прежде всего devops, код нейронка напишет, а что толку, если работает лишь на локалхосте )

1C всегда будет жить хорошо.

Только не "уходить от кода в инфраструктуру", а добавлять прокачанную инфру в своё множество скиллов.
6❤30🫡9👍5💯1
.

Облако драгоценностей за неделю.

скоро зима (с)

Приватный клуб.

В жизни любого проекта наступает момент, когда ты думаешь: "Что-то мы вкладываем в этот эндпоинт слишком много побочных эффектов".
Типичный пример — оформление заказа. Вы отправляете электронное письмо, данные сохраняются в базе данных, несколько сторонних систем получают уведомления и запускают свои воркеры... И список продолжает расти, потому что ты рассуждаешь примерно так: "Куда нам это пристроить? А, точно, сразу после того, как клиент сделает заказ" :)

Если ваш начальник внезапно выдаст вам 100,000 рублей на развитие карьеры, вы знаете, что делать? Вы поедете на конференцию, купите учебники и курсы, наймёте ментора, отправитесь на семинар, вы теряетесь в море вариантов, вы...
Идеи переполняют вашу голову. Вы думаете, что может быть, стоит проконсультироваться у кого-то более опытного?
Однако опытный специалист ответит примерно так: "я не могу указывать вам, что делать с вашими 100,000 рублей, если вы сами не знаете, чего хотите"...

Для донов-начинающих:


(лонгрид) Сейчас все говорят об агентах искусственного интеллекта, но почти никто не может внятно объяснить начинающим, что это такое на самом деле.
Вот основная анатомия AI-агента, 5 пунктов...

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

Для донов-неначинающих:


Продолжаю набор на занятия для неначинающих (миддлы сеньоры), 2 места закончились за 58 минут...

Если не хватает мотивации зарабатывать деньги программированием (расти по карьере, создавать коммерческие проекты)? Далеко не только по моим наблюдениям, самые осторожные тут - семейные с доходом 200-500 (т.е. практически все миддлы и сеньоры:), меньше всего задумываются о своём росте.
А ведь AI уже тут: число программистов быстро сократится в 100 раз.
Причин много...
...Ну и естественно, что на этом фоне не то что желание расти не появится, наоборот зарплата будет плавно падать. Чем более комфортные условия, тем более примитивные организмы в них существуют, а в идеальных условиях вообще одни амёбы и планктон.

(все старые материалы для донов быстро сгорают)

=

Новые материалы для ментатов Лаборатории.

В СильныеИдеи добавлены материалы
161) TDD для сложных систем
Как модульно тестировать сложные системы? Как применять TDD в таких случаях?
Ведь введение в TDD по понятным причинам ограничивается совсем простыми задачами - например фибоначчи или какой-нибудь классической структурой данных. Общее у этих задачах то, что на них легко объяснить и продемонстрировать TDD программистам, незнакомым с процессом TDD.
Но как быть в реальных сложных случаях?..

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

=

"Функциональные архитектуры" 178(+2) топиков.

LPF закончен, думаю, куда и как дальше - 3 :)
стратегических направлений пока два: (Meta)Principles Framework или детский сад геймдев где очень быстро обнищаю и умру от голода

=

"ЛаМПовое":

шиз и навье-стокс, sql-аналитика на агентах по-взрослому

=

Мы здесь, потому что это трудно 💪🏻

=

Сознание ментата может стать сознанием полного идиота в присутствии сил, которые беспощадно пронизывают Вселенную. Возможно, в мире живут такие люди, жизнь которых пронизана силой, которую он не мог себе даже вообразить. Перед лицом таких сил он становился утлым судёнышком, несущимся по воле бурных волн.
"Еретики Дюны"
❤20✍7👍4
Просили пояснить за (M)PF геймдев ↑

Сложно сегодня придумать более сложное бизнес-направление, согласен :)

Например:
Число компаний и ИП, специализирующихся на создании видеоигр, за январь—август выросло на 59,2%. Участники рынка объемом 208 млрд руб. отмечают, что порог входа в разработку снизился за счет массового распространения нейросетей. Это, а также наличие юрлица как условие получения господдержки способствует росту числа новых издателей.
По итогам восьми месяцев 2026 года в России были зарегистрированы 121 компания и индивидуальный предприниматель, специализирующиеся на издании компьютерных игр.
Всего в России зарегистрировано 544 действующих игровых издателей.



За счёт чего их число растёт?? На яндекс-игры например ежемесячно поступает 10 тыс. новых игр, там игроков уже меньше чем игр!

Уверен, что это карго-культ, типичный же красный океан. Сколько я в жизни насмотрелся на припринимателей (десятки!), которые начинают с регистрации юрлица и создания продукта, пребывая в иллюзии, что уж их-то "уникальный продукт голубая ниша будут расхватывать как горячие пирожки". Так приятно реализовать наконец свои подростковые комплексы почувствовать себя гендиром ООО хотя бы пять минут, знакомым рассказать, пусть завидуют :) Ну и потенциальная возможность с помощью нейронки действительно быстро сделать нейрослоповую игру среднего качества.

Правильному подходу кстати учили инфоцыги, и их всех пересажали. Конспирологическая версия: вот именно за то что учили как правильно :)

*Сперва* делаем лендинг за полчаса в нейронке, даём рекламу вк за 500 рублей, считаем лиды, принимаем оплату и потом возвращаем деньги, ну или оказываем услугу вручную. И только *потом*, если маржа "сколько платит 1 клиент с рекламы" положительная, делаем продукт/сервис.
В 99,999% кстати лидов не будет вообще :)
Поэтому инфоцыгане особо учили: ищите ниши, где спрос превышает предложение.

А новоявленные гейм-бизнесмены просто клонируют друг друга: гиперказуал, айдлы, три в ряд, раннеры; борьба за одну и ту же аудиторию одними и теми же средствами. Глупо тупо и нелепо. Классическая динамика красного океана: прибыль испаряется, остаётся бесконечная борьба за выживание. Господдержка кстати тут только усугубляет перегрев.

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

Свежая статистика: портрет инди-разработчика из России.
"чуть больше половины опрошенных занимаются играми на голом энтузиазме и пока не получают за свою работу никаких денег — таких инди-команд в России 53,7%. Кроме того, в 22,2% команд зарплату платят только отдельным сотрудникам и лишь в 15,4% команд — всем участникам;"

Да, но и что теперь? Как тут быть? И куда дальше?

=>
✍30❤8🔥2
Мнения экспертов по индустрии разработки игр в целом можете при желании найти сами на ютубе - куда это всё идёт (спойлер: хз:).

Вот еще хорошее: 400 000 продаж за 2 ДНЯ. Гениальный маркетинг Graveyard Keeper 2 и tinyBuild

По мне, инди-разработка это просто a) увлекательное и b) мотивирующее занятие, потому что даже не ошибка выжившего, а реально у немалого числа разработчиков получается таки выпустить успешную игру, что ни в каком другом ит-бизнесе нереально (ну ок, в другом ит-бизнесе не так реально и не так масштабно, а главное, скучно и уныло). Хотя как правило далеко не с первого раза.

Потому что сегодня несложно выделиться на общем фоне гейм-слопа. Смотрел например на днях, еженедельный обзор 25 инди-стратегий, так в них не было ни одной(!), по качеству графики сравнимой хотя бы со старкратфом 2. Какие-то тусклые палитры или угловатые тридэ фигурки уровня 20-летней давности. Полня безвкусица.

Куда идти? В нишевые игры под узкую аудиторию, в новые механики, в культурную специфику... Хорошо также продавать лопаты :) Готовые решения для разработчиков: шаблоны, инструменты, движки, аналитика, монетизация. Собственные платформы, сообщества, дабы уйти от зависимости от алгоритмов.

Но это если думать о геймдеве прежде всего как о бизнесе. А если просто как о перспективном хобби?

С одной стороны, мне было очень хотелось сказать, что надо долго вкладываться в одну игру. Вот свежий пример:
Автор фритуплейной КИИ про Вторую Мировую ищет издателя на проект

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

В геймдев с нуля после 40 много полезного опыта :) при том что сам автор не программист.

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

Я больше за быстрые версии (много - и рано или поздно что-то (вероятно) выстрелит), на которых отлаживал бы сам процесс продвижения из предыдущего поста.
В тему, 13 игр в 13 Килобайт 2026 - JS13KGAMES

Или взялся бы в аналогичной ситуации как у танкиста за что-то тяжёлое, например клон dwarf fortress, в фоновом режиме 10-15 ч/нед, за 100 календарных дней вполне реально (мне) сделать (т.к. вся модель имеется и детально разобрана), и без нейронок, они только сильно мешают и тормозят процесс там, где нужен тонкий баланс, и это хорошо.

Выводов никаких, думайте сами :)
❤20✍12👍2