Лаборатория Математики и Программирования Сергея Бобровского
1.41K subscribers
1.49K photos
28 videos
1.13K links
ЛаМПовое с Бобровским
Download Telegram
.

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

7-й гайд "Programming in Large" (по материалам СильныхИдей для ментатов), основной акцент на избавлении от зависимости от зависимостей.

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

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


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


(лонгрид) Прежде чем приступить к какому-либо проекту по программированию...

Продолжаю набор (эксклюзивно для донов) на занятия для начинающих с полного/около нуля, 2 места закончились за 11 минут.

Почему большинство онлайн-школ по программированию — просто красивая ложь?
Эта показная лёгкость. Эти "За полгода в ИТ средняя зарплата 170,000 рублей". Это "Доступно каждому ". Это "Гарантия трудоустройства".
Эти шаблонные лендинги и рекламные тексты от нейросетей про успешный успех в айтишке.
Я не против обучения программированию. Я против вранья...

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


Чтение книг помогает. Курсы помогают. Видео помогают. AI помогает. Но создание проекта — это то, что заставляет абстрактные идеи воплощаться в жизнь. В тот момент, когда вы пытаетесь спроектировать даже "простую" систему самостоятельно, вы перестаёте думать ярлыками, и начинаете мыслить ограничениями.
На первый взгляд, это кажется простым: разрешить 100 запросов в минуту, и блокировать остальные. Но как только вы попытаетесь это сделать, появятся настоящие вопросы...

99. Как и зачем отказываться от хранения логических значений в базе
Как вам такая идея, как отказ от хранения логических значений в базе? Что-то, конечно, вместо них всё равно надо хранить, но что?

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

=

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

null

=

"Функциональные архитектуры" 150(+3) топиков
Полиморфная консистентность, (тестовое) равенство сущностей в DDD как identity type.
После 150 материалов цена гайда (для новых) вырастет.

Last Principles Framework: готовы 21(+2) задач, закрыты 12(+2) тем из ~20 первого уровня. Вы же понимаете например, почему паттерн Builder и IoC / Callback - конструктивный отстой в сравнении с сопряжением теорката как идеальной архитектурой "API - Очередь - Воркер"? А когда формируете JOIN, это отнюдь не сборка результата, а наоборот стрелки из него исходящие (greatest lower bound)? Тотальная математическая контринтуитивщина уничтожит последние ваши мэйнстримовские иллюзии )))

=

"ЛаМПовое":

7-й гайд "Programming in Large"

=

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

=

Мыслящие машины - это зло, которое должно быть уничтожено до того, как человечество начнёт срывать плоды своей высшей награды.
Бене Гессерит, "Песчаные черви Дюны"
1279👍1
Вы до сих пор думаете, что Kubernetes - это решение? Поздравляю. Ваша платформенная команда уже выросла до семи человек, а разработчики проходят 12-шаговый квест, чтобы задеплоить простую хрень. Но главный вопрос: когда этот инструмент стал врагом народа? Ответ тихо вползает на сервера, и это не ещё один оператор в Helm.

Что не так с K8s:

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

Спаситель (барабанная дробь): WebAssembly. Помните мой сериал про него в Клубе несколько лет назад?

Да-да, тот самый, из браузера. Только теперь он на сервере, весит 5 килобайт и стартует за миллисекунду. Без контейнеров, без ядра, без боли.

Проект WASI делает его кроссплатформным, а Docker-папа ещё в 2019-м году сказал: "Был бы Wasm, Docker бы не родился". Но все сделали вид, что не расслышали. Ну штош.

Почему все молчат: потому что вложились в k8s по самые помидоры и сейчас пилят внутренние порталы, а не думают о будущем. Да, те, кто в 2017-м сел в поезд Kubernetes, сейчас пока в дамках. Но Wasm это тот же поезд, только экспресс, и он уже на перроне.

Что делать (чтобы не опоздать):
Дать двум миддлам неделю поиграться со Spin или WasmEdge.
Посмотреть на свои API и подумать: "А точно ли им нужен контейнер??"
Следить за CNCF: если там зашевелились, за считанные годы это станет стандартом.

Итог: Kubernetes никто пока не закапывает. Но если вы прямо сейчас не начнёте коситься в сторону Wasm, то через пару лет будете объяснять CFO, почему ваши биллинги за облако в 10 раз выше, чем у конкурентов.

А если ты тайком заглянешь через плечо твоего продвинутого коллеги, то увидишь на экране, что он втихомолку вовсю изучает Wasm. Он уже на год впереди тебя.
1👍30137
Гарри Поттер и Методы Математического Мышления

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

Глава 17/23 (и все предыдущие). Где спит Хогвартс

- Я не говорил, что Хогвартс — это и есть рекурсия. Я думал, что Хогвартс — это комбинатор. Оказалось, что комбинатор — это только интерфейс. Сам замок — это неподвижная точка.

— Комбинатор Мерлина, — сказал Гарри. — Ядро Хогвартса. Машина, которая комбинирует примитивы в заклинания, комнаты, правила. Но это не просто комбинатор. Это функтор, который отображает категорию «магия» в категорию «реальность».
Драко сделал шаг вперёд.
— Люциус говорил о нём. Он сказал: «Когда коснёшься ядра, ты сможешь управлять всеми комбинациями. Ты станешь тем, кто решает, какие заклинания существуют».
— Люциус ошибался, — сказал Гарри.
35
Моя Лаборатория всегда будет непопулярной, потому что то я пишу --  это негатив в духе "что же представляет мэйнстрим в контексте взрослого университетского топового программирования, computer science и math": даже многие синьоры тут абсолютный нуль:) При том, что это по сути ортогонально теме "зороботать в айтишке".
Можешь быть очень умным и ничего не зарабатывать, а можешь быть тупым и успешно работать айтишником в трёх цветных банках одновременно.

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

Тут моё отношение абсолютно противоположно всем этим онлайн-школам менторам карьерным коучам и т.д., которые будут за тобой долго бегать и заманивать к себе сказочными плюшками, дескать это всё не так и сложно. Нет, взрослое программирование крайне сложно и по силам далеко не всем, даже мехматовцы сбегают :)
 
Поэтому я фильтрую везде занимающихся по максимуму: если вижу, что человек хотя бы на 2% не подходит к моим, лютым:) требованиям, быстро его исключаю. Продолжаю бесконечное ужесточение правил занятий.
 
Самые большие награды в жизни находятся в конце самых длинных путей.
 
Куда и как правильно например (пацанам респекты!) =>
Теория категорий: открытый онлайн-курс
29 июля, среда 20:00 MSK
Онлайн, вход свободный

(так то с ментатами мы это всё разберём в Last Principles Framework, но в прикладном контексте system design)
627🐳5🤝52❤‍🔥1
Продолжаю работу с ментатами 🤓
 
А если архитектура четко задана и реализована, то я не увидел большой разницы между жпт 5.6 и дипсиком 4. От проектирования не уйти в любом случае...
 
В целом, пока для агентов самую подходящая задача у нас - код ревью, для этого специального агента уже сделали...
 
Само по себе это хорошо, но концептуально противоречит базовому подходу, когда агент пишет код, а человек его читает и контролирует :)
 
Коллеги в микросервисном мире решили жить по DRY и, чтобы в нескольких сервисах не повторять буквально 2 (!) строчки кода (была проверка на if), они выделили эту функцию в отдельной библиотеке, которую использовала другая библиотека, которую использовало 3 или 4 сервиса.
Как итог, чтобы минимально скорректировать этот if, приходилось править его не в одном месте, а в шести, так как шла правка одной библиотеки, затем обновление другой и поднятие версий библиотек в каждом из сервисов...
 
 Требования не расписывал, промпт был достаточно «сухой». Trae справился. Результат рабочий (хотя одну ошибку я сразу нашел – не было защиты для случая, когда файл не выбран). Но в общем, для «непродакшена» хорошо – даже с промптом возиться не пришлось (так и в конец можно облениться :)
 
Я настроил агента, дал ему Рид онли доступ на все сервера и базы данных, также у него есть вся документация и сохраняется история каждой нашей сделанной задачи. Время сократилось практически до 10% в день, если не меньше...
Очень большой проблемой является мое отвлечение на телефон во время работы, особенно когда агент что-то думает и у меня свободные 2-3 минуты, стал замечать, что в сумме это съедает по несколько часов в день. Начал читать ваши заметки про deep work и трек слитный программист.
 
Я сам в принципе никогда не считал полчаса малым промежутком времени, а сейчас и несколько минут сгодятся )
И в целом сейчас такая мода "перекусы упражнениями": есть буквально 2-3 минуты, можно извлечь пользу => Feeling stuck? Try ‘productivity snacking’
 
Мысли про увеличение времени помидорки были, но пока не готов. Иногда бывает сильное нежеление работать, я смотрю на таймер, вижу что там осталось минут 15 и мне становится проще...
 
Всё думаю, дать ли ментатам мой личный инструмент SelfHack (тайм-менеджемент, личная продуктивность и всё такое). Скорее всего, надо.
 
Есть ощущение, что некоторые моменты я так до конца и не понял, либо понял, но не совсем правильно. К пятому прочтению часть вопросов ушла, но часть из них до сих пор осталась...
 
услышав, что пол атрейдес император вселенной в трейлере дюны 3 ИЗВИНЯЕТСЯ за то, что он наделал, я был очень расстроен…
 
"— У меня нет союзников, - ответил Император, - только слуги, ученики и враги."
 
На работе переводил докер-образы наших сервисов с centos на red os. По ходу дела познакомился с этой ОС. Подключил туда наши репозитории, чуть лучше стал понимать как всё устроено у нас в плане пакетов и репозиториев. Red os показался менее удобным, чем centos, так как из коробки там отсутствует ряд привычных утилит...
 
Так-то по идее centos была просто обрезанная ред хат, странно что в ней что-то отсутствует, а наоборот не присутствует ))) Хотя и ред ос это видимо не ред хат.
 
Заметил, что после курса ООАП3 стал иначе смотреть на архитектуру приложения. Возникало такое ощущение, что я немного возвысился над кодом и стал думать более абстрактными вещами и концепциями. Видеть, что некоторые вещи, по сути, реализуют одно и то же. Наверное я просто дошёл до очередной ступени развития, благодаря вашим курсам и занятиям с формата HardWork. Даже впервые поучаствовал в архитектурном споре :)
 
Получить список всех отрядов и количество гномов в каждом отряде. Также включите в выдачу отряды без гномов.
Рефлексия: Женя, практикуй алиасы=)
Для каждого типа предметов узнать средний возраст гномов, владеющих этими предметами.
Рефлексия: Женя, все таки практикуй алиасы=)
 
Раньше я думал, что создавать интерфейс на каждый класс - это признак хорошего тона и залог тестируемости. Но теперь я понял, что это была иллюзия: интерфейс 1:1 с реализацией - это не абстракция, а просто дублирование кода. Такие интерфейсы не скрывают сложность, а добавляют её, заставляя всех клиентов тащить методы, которые им не нужны. Я понял, что хороший интерфейс - это не список методов класса, а точное и минимальное обещание клиенту, которое легко понять, легко реализовать и легко заменить...
 
Можно также упомянуть известную критику NULL, связанную с Тони Хоаром. Он называл введение null reference своей "ошибкой на миллиард долларов". Смысл этой формулировки в том, что специальное “пустое” значение оказалось источником огромного числа ошибок и сбоев. В контексте задания эта мысль хорошо подчеркивает главный вывод: NULL удобен локально, но при чрезмерном использовании делает систему менее надежной и менее выразительной...
 
В команде из людей обучение и слаживание происходят "естественным" образом, есть огромный пласт неписанных правил и неформальных договоренностей. С нежитью так не работает, надо все максимально бюрократизировать. По крайней мере я сейчас так это вижу.
В качестве сайд-эффекта от экспериментов открыл много новых для себя вещей. Язык OWL, стандарт C4, Structurizr DSL
Спасибо что дали живительного пинка, сам бы еще долго в это не полез...
23010
Просили пояснить за генеративщину =>

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

Привык, что в mysql например end можно использовать (если не ansi-режим) в качестве названия столбца, влепил новым столбцом except, и ппц.

INSERT INTO pomo (start, end, flag, target, prod, today_prod, except) 
VALUES (1785311306, 1785312869, 1, 2, 20, 100, 16);


Даже подсветка для малышей намекает, какие слова зарезервированы ) но это по-постгресовски видимо, start (trans) только в нём кмк.

16 - это количество моих переключений между разными программами/вкладками/... в течение одной помидорки, ужос...
а prod = 20% - это моя "продуктивность" за эту помидорку 🙈

Правильно так:

INSERT INTO pomo (start, [end], flag, target, prod, today_prod, [except]) ...

Признавайся, тоже используешь Order или User как названия полей в таблице базы? )))
1🤔247😁5
В (уже совсем недалеком) будущем профессионально важными в ИТ останутся только два скила: умение делать качественный текстовый контент без нейронок, и умение делать качественный софт с нейронками.

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

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

Опубликуйте что-нибудь сегодня на любой платформе: это может быть например ВК или Бусти, Дзен или LinkedIn, на ютубе кстати можно вести текстовые блоги, которые рекомендательные алгоритмы неплохо цепляют. Проще всего это сделать в телеграме, так как его уже скоро всё равно окончательно закроют, а всех у кого платные аккаунты, посадят в тюрьму за экстримизм и будут пытать до конца быстро кончающейся жизни (оценочное личное суждение :).

Важно: только не надо никаких понтов! Вы боитесь, потому что самооценка низкая, вот с неё и надо начинать. Как? Вот просто пишите постоянно, как вы мощно развиваетесь (вы же мощно развиваетесь? :), только вы должны быть уверены в таких своих скиллах на 100%, для чего их надо реально прокачивать.

Боже то поможi,
Да и сам мужик не лежи!
Aмвросий Oптинский
1💯21❤‍🔥13🫡10🐳54
Представь: у тебя есть сверхумный AI, который напишет тетрис за 5 секунд, но когда ты его спрашиваешь: "а в каком файле у нас этот дерьмовый класс по заказам??" он тупит. Потому что знания есть, но они размазаны по confluence, notion, головам лысых сеньоров и забытым слак-чатам.

Гугл посмотрел на это и говорит: "А давайте просто навалим всё в каталог с файликами .md и YAML-шапкой, типа как git-репозиторий. Без базы, без серверов, без регистрации и смс". Они так и сделали, и назвали это Open Knowledge Format (OKF).

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

И это работает, потому что они не стали городить очередную супер-платформу, а просто сказали: "Парни, используйте файлики, это же очевидно". Гениально, потому что просто. Как забор из штакетника вместо космического корабля.

Короче, OKF -- это сегодня как git для знаний. И если это приживётся, завтра все компании будут обмениваться папками с документацией как мемами. Ну и да, это не MCP (тот про унификацию действий), это про стандартизацию контекста. Чтобы AI наконец перестал быть красивым, но бесполезным болваном.
1326🔥4😁1
Топологи тут? Сколько дырок в майке?

= по здравому смыслу 16 = но формально 11+ =
1🤯26👍11🤔8❤‍🔥3
Кент Бек (автор TDD и экстремального программирования) развивает темку TDD в 2026-м.

1. Научитесь писать тестируемый код, прежде чем беспокоиться о тестах и "нужно ли вам TDD". В конце концов, тестирование в конечном итоге - это всё же про хороший дизайн. Как только вы начнёте писать код, в котором будет легко разбираться, тесты станет легко добавлять позже. Но пока такой код у вас особо не получается, значит вам точно надо начинать с тестов.

2. Если под вами есть джуны/миддлы/сеньоры, всегда позиционируйте отсутствие тестов как отсутствие в вашей "команде". А во время обзоров кода / pr никогда не указывайте на ошибки: указывайте на "пропущенный" тест. Каждый добавленный тест выявляет реальную ошибку, такая схема более убедительна, чем любая лекция.

3. Лучший момент в тестировании -- это внезапность. Тест, который проходит именно тогда, когда вы и ожидали, что он пройдёт, ни о чём не говорит. Самое интересное -- это предсказать появление красного, увидеть красный, и обнаружить ошибку, которая, к вашему счастью, так и не была выпущена в прод. Особенно для джуниоров, когда каждый тест становится маленьким открытием.

Да, но...

На Hard Work в частности с ментатами разбираем, и где-то в гайдах "Programming in Large" есть материал "Как правильно относиться к TDD". Что это: техника тестирования, или техника проектирования?

Засада в том, что те кто не в теме, просто путают Test-Driven Development (TDD) с Test-First Development (TFD).

TDD -- это парадигма, это целая культура! А TFD -- это карго-культ TDD, а по сути просто частный случай Verification-First Development (VFD).

А TDD к VFD никак не относится, это концептуально другое.

Ну а мы тут понемножечку развиваем Math-First Development...

( btw, рекомендую прямо сейчас @PremiumBot -> /stop )
👍3072
Писать в телеграмм теперь экстремизм, а айтишка в 2027-м окончательно сдохнет под напором искусственного интеллекта?
 
Закон Беттериджа о заголовках гласит, что если журналистский заголовок заканчивается знаком вопроса, то ответом на 98% будет "нет" :)
 
Кстати, если у вас оф.блог ВК, его надо срочно перерегистрировать в РКН с vk.com на vk.ru.
Как => vk.ru/wall-39599132_382291
 
Вообще, ВК хорошая площадка, планирую и дальше Лабораторию на ней активно развивать. Ни одна другая соцсеть (из российских, да и не только) по отдаче от вложений в контент и близко не стоит (например сотни платных подписчиков и десятки тысяч обычных реальных в моих пабликах vk). Это не пиар, это мой семилетний опыт работы с самыми разными соцсетями. Телеграм кстати тоже и близко к ВК не стоит (т.к. нету рекомендательных алгоритмов). Просто голову надо правильно включать.
 
Кстати, ни на что не намекаю, но каждая аккредитованная ИТ-компания обязана направлять на поддержку ИТ-образования 3% от средств, сэкономленных на льготном налогообложении. Как-то совсем не чувствуется :)
 
...Но, честно говоря, я учу самым разным вещам, и пишу блоги, только для того, чтобы завладеть вашим вниманием. Хотя вы и уверены, что именно обучение конкретным темам -- самое важное дело в Лаборатории, оно таковым не является. Значение имеет лишь сдвиг вашего ума в математику и computer science, а он зависит не от явных инструкций и заданий, а от (мета)понимания абстракций, что мы и стараемся делать эксплицитным.
 
Люди часто слишком полагаются на один способ, который называется "отладка" и заключается в запуске частично понятой программы, чтобы увидеть, делает ли она то, что вы ожидали. Другой способ, который поддерживается в ML (OCaml/F#) - встроить некоторые средства понимания в сами программы.
святой Робин Милнер
❤‍🔥27👍159🤔1
А вы что, сейчас реально не работаете (на себя, а не на дядю)??

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

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

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

Кстати, с 1 сентября мои консультации ментатам по AI будут платными,
процесс отладил на десятках ребят.

=

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

Например, Sir, We Have an Orc Problem, я её вообще сразу прошёл залпом, хотя визуально ни в жизнь не подумаешь, что это вообще может продаться.
350+ тыс. долл. за сутки, 200 долларов на маркетинг.
Два пацана пилили её 4 месяца; так навскидку, я бы сделал за месяц при условии безлимитных токенов.

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

=

p.s. что это за помойка? а, это брюссель))) какой контраст с девушками msk
1🔥24👌53🤔2🐳1
Гарри Поттер и Методы Математического Мышления

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

Глава 18/23 (и все предыдущие). Кто держит внешнюю петлю?

- Ты думал, что я просто наследник, который пытается контролировать Неорганический Интеллект. Ты думал, что я контейнер для ошибки. Ты даже думал, что я — неподвижная точка твоего плана. Но я всегда был внешней петлёй, Поттер. Ты — игра внутри моей игры.

...Но настоящий судья — это тот, кто может выйти из игры целиком. Ты не можешь. Я не могу. Но есть кто-то, кто может.

...Драко почти кричал. — Почему она позволила нам играть в эти игры, строить планы, переписывать себя, если она знала, что это всё равно не имеет значения?

...А она знала, что кто-то когда-то поймёт её, что значит быть тем, кто всегда на шаг впереди.
12273🔥2
Много раз уже читал, как этот твит Боба трактуется так, что дескать это же типичный вайб-кодинг, и теперь каждый так может, программирование сдохло и всё такое.

"Множество других" - в программной инженерии в критических проектах, где высокие требования к качеству кода, применяется пайп из 50-100 подобных фильтров (точнее, скажем так, должен бы применяться, а в реале и в КИИ-проектах всем пофиг).

Вы сами пишете (когда-нибудь в жизни писали совместно с тестировщиками и заказчиками) сценарии на геркине например? или мутационное или fuzz-тестирование добавляете в агентский пайп? итд итп. И не будете никогда скорее всего.

А так-то да, если так делать по взрослому, то конечно можно добиться очень неплохой продуктивности, хотя тут тоже вопрос, а что за код и для каких проектов Боб так "пишет".

Кто на Функциональных архитектурах читал, почему SDD умерло, собственно, уже должен понимать это всё, и что пришло на смену спекам. Точнее, что пришло на смену карго-культу SDD, когда забросил якобы спецификацию агентам, и вроде норм.

В ФА кстати я уже давно разбирал в модуле "Анти-ClearArchitecture", что Боба прежде всего хороший инфоцыган бизнесмен, а его Чистая архитектура - нечто столь универсальное, что подходит везде == не подходит нигде. Ну и это прежде всего объектно-ориентированная архитектура, а вот гексагональщина - функциональный паттерн, очень прагматичный и полностью самодостаточный ("ядро - это чистые функции").
Clean Architecture же добавляет дополнительные слои (Entities / Use Cases / Interface Adapters / Frameworks), предлагая "универсальную" картинку, которая якобы охватывает всё. Но её чрезмерно строгие концепции ("богатые" vs. "анемичные" модели, границы слоёв...) на практике приводят больше к бесконечным спорам из-за отсутствия однозначных трактовок. По сути, Clean Architecture - переусложнённая подача того, что можно объяснить проще.

Так же и этот чисто инженерный подход Боба к агентам (который конечно сам по себе весьма хорош + сегодня прекрасно продаётся) - переусложнённая подача того, что можно объяснить проще эээ "по-математически" (формальный DSL из ФА например). Но и так конечно тоже никто не делает.

YAGNI
2👍32💯74
...Мозг — это что, сеть из десяти миллионов нейронов, подключенная к синтаксическому движку и дерьмовой базе знаний? Что это за основа для интеллекта?
Чарльз Стросс, "Акселерандо" 2005

Хороший роман кстати про технологическую сингулярность.

- Кто вы? - повторяет Манфред с подозрением.
- Служба, в прошлом известная как КГБ . ru
- Вы хотите сказать, что для возможности разговаривать вы выучили язык??
- Йес, было просто: наплоди нейронную сеть миллиард узлов, скачай Телепузики и улицу Сезам на максимальная скорости. Прощения извините за энтропию искусственно добавленная неграмотность, опасаемся цифровые отпечатков пальцев стеганографически кодированное мои пособия.

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


=

Математик живёт в "дикой логике", где разум - это слуга, а не хозяин.
Марстон Морс, президент Американского математического общества 1941-1945

Читаю американских математиков, как они ещё год назад насмехались над программистами: дескать AI убил вашу профессию, а теперь сами в панике )))

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

Может ли быть так, что структура естественного языка сама по себе каким-то тонким образом кодирует логику, так что достаточно большая выборка предоставляет достаточно статистической информации, чтобы не требовалась "явная" логика?

Был такой британский философ и логик Джон Стюарт Милль, который в работе "Система логики силлогистической и индуктивной" (19-й век) сформулировал пять логических методов индукции, но в своих исследованиях логики опирался именно на структуру естественного языка, за что впоследствии было жёстко высмеян математиками, прежде всего Готлобом Фреге, основоположником современной математической логики, который называл работы Милля "психологизмом" и разработал свою символическую логику отчасти для того, чтобы противостоять Миллю. Тем самым он запустил цепочку событий, тянувшуюся более ста лет и завершившуюся появлением моделей искусственного интеллекта, которые, по-видимому, показывают, что Милль таки был прав...

красивое
1👍3061🤯1
.

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

Шок! рептилоиды атакуют наш любимый arch linux1 зачем??

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

Я хочу кратко проинформировать вас о том, что происходит с зарплатами AI-разработчиков в мире прямо сейчас, летом 2026-го года.
Потому что цифры становятся просто сумасшедшими...

Так как надо было делать всё правильно (касается в том числе и тимлидов/постановщиков)?..

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


Какой язык программирования выбрать самым первым? (лонгрид база)

Хватит гладить себя по головке за старания; приберегите награды и похвалы для действительных достижений...

Если вы завязли с изучением программирования, не сидите сложа руки. Продолжайте над этим работать! И вот долгосрочный способ мотивировать себя...


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


Архитектурная схема, которую вы рисуете из квадратиков и стрелочек — это не System Design. Тут таится один из самых значительных сдвигов в мышлении при проектировании систем.
Люди часто путают картинку с архитектурой.
Клиент. Балансировщик нагрузки. Сервер приложений. Кэш. База данных. Очередь. Воркеры.
Эта картинка очень полезна.
Но это не настоящий дизайн. Настоящий System Design основан на правилах и ограничениях...

Учебные пособия обычно учат идеальному пути. Что учит реальности? Продолжение сериала System Design с точки зрения непрерывных компромиссов.

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

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

=

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

СильныеИдеи:
"151) Зачем вообще нужны формальные методы".
А как вообще формальные методы помогают моделировать системы, когда системные требования постоянно меняются?..

В курс карьеры добавлен 142-й материал "Минимаксимизируем рабочее время".
Компании обычно ожидают, что сотрудники будут вкладывать в свою работу кровь, пот и слёзы -- но при этом отказываются инвестировать в элементарное удержание сотрудников, даже если речь идет о потерях сотен миллиардов долларов!
Понимание этого означает, что вы должны навсегда покончить с концепцией корпоративной вины.
Не расстраивайтесь из-за того, что взяли отпуск.
Не расстраивайтесь из-за того, что уволились.
Не расстраивайтесь из-за того, что всё бросили "раньше времени"...

=

"Функциональные архитектуры" 154(+4) топика
Спецификация это не контракт, 7 шагов метаспек в прод,
и увы пришлось таки добавить новый модуль "AI и Прод" )))
Четыре уровня делегирования агентам.

Last Principles Framework: готовы 23(+2) задач, закрыты 12(+0) тем из ~20 первого уровня. Вы же понимаете например, почему пихание в DTO и IOrder и IInvoice вместе с мета-инфой — это нарушение универсального свойства предела (теоркат) как терминального объекта?

=

"ЛаМПовое":

Гарри Поттер и Неорганический Интеллект. Глава 18/23.

=

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

=

Ты отсекаешь всё, что тебя отвлекает, и блокируешь всякие бесполезные умственные блуждания.
Ты направляешь свои ответы и реакции в том направлении, которого должен избегать любой ментат. Об этом предупреждали все учителя: "на этом пути вы можете потерять себя". Студентам показывали людей, превратившихся в растения. Их сохраняли живыми в назидание будущим поколениям ментанов.
Однако какое же это искушение...
"Капитул Дюны"
22591👍1
Продолжаю работу с ментатами 🤓

...Попробовал Zed и TRAE, про которые вы говорили в ответе на мой последний отчёт.
Я впервые навайбкодил приложение :)
За 6 минут я получил рабочее приложение (три-в-ряд), при этом сам вообще не писал код.

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

...Упрощенно имитируем игровой процесс диабло-1 :)
Лог событий накапливается в value State-монады, а не в GameState.

...Очень сильно впечатлило это задание (TDD). Нравится так работать. Да, это дольше (пока что), но зато я почти с полной уверенностью могу говорить, что код, который я отдаю, работает как надо, и я готов за него отвечать.

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

Так-то это база TDD:
"В конце концов, тестирование в конечном итоге - это всё же про хороший дизайн. Как только вы начнёте писать код, в котором будет легко разбираться, тесты станет легко добавлять позже. Но пока такой код у вас особо не получается, значит вам точно надо начинать с тестов."

А надо ли вообще покрывать тестами существующий говнокод, вопрос открытый :)
TDD собственно и про рефакторинг во многом, лучше время вкладывать в это.

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

Эта вечная база кстати (с курса Ясное Легаси) с явлением AI стала на порядок актуальнее.

Сейчас правильный loop работы с агентами такой: взаимодействуете с ними как минимум на уровне паттернов проектирования, чтобы не увязать в конкретном коде. И постепенно повышаете уровень абстракций.

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

...Отзыв на курс. Самое полезное, что там со мной произошло, — я развёрнуто ответил на вопрос и оказался не прав.

...Идея простая и довольно неприятная: мы все интуитивно чувствуем, что такое баг, но как только пытаемся дать определение — оно расползается. Пример с Rect, где сеттер длины пишет в ширину, отличный именно тем, что после всех «исправлений» система работает правильно. Наблюдаемого неправильного поведения нет. А код при этом сломан, и любой разработчик это скажет с порога.
PS а вообще, не покидает ощущение, что параллельно занимаюсь противоположным - здесь уменьшаю "длину строки кода", а в "ФП для начинающих" наоборот, накручиваю все в одну строку :)

Ну, да, в ФП пайплайны база. Главное, не забывать, в какую сторону их правильно формировать, чтобы исключать вложенность.

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

=

Программная инженерия -- это искусство не делать дерьмово.

В частности, когда вам дают задачку - всегда ищите наименьшую реализацию, которая удовлетворяет всем условиям, буквально/эксплицитно заданным в тикете. Соответственно, никогда ничего не додумывайте.
(ищем копредел, точнее, начальный "тикет" в категории семантики задачи, LPF в помощь)
1👍30432
Свежий семинар Thoughtworks "Future of software engineering".
 
Прекрасное: "Организации столкнулись с реальным кризисом в сфере профессионального обучения."
                      
Вайб-кодеры повсюду, ага ))) А за ними навсегда выжженная пустынь.

Эксперты вопят о смертельной триаде последствий вайб-кодинга из-за нагенерённых архитектур, которые никто не проверяет на безопасность, и никто не несёт ответственность за это: доступ нейронок к конфиденциальным данным, воздействие на них недоверенного контента, и возможность внешнего обмена данными, но всем пофиг.
 
А Эрик Эванс в недавнем выступлении по DDD намекнул: "будьте добры к своему ИИ, на всякий случай".
1297🤝4
Сразу несколько синхронистичных тем за сегодня набежало в дополнение к вчерашней скромной заметке внезапно.

На картинках ↑ наглядные примеры той самой смертельной триады последствий вайб-кодинга + "реальный кризис в сфере профессионального обучения". Ну, когда человек даже не пересматривает, а что он там завайбкодил или нагенерил с помощью жпт, хотя ляпы абсолютно очевидные... Плюс тотальный СДВГ. И дальше со всем этим будет только хуже.

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

- проверка корпоративного (да и вообще любого, вплоть до микро-бизнеса и самозанятого) сайта на безопасность хорошими моделями: чисто внешне, с главной странички;
+ проверка сайта на безу/персдату по типовым use cases;

- поиск дыр безопасности (+ багов) уже в коде проекта.

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

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

+ ниши, где топовые модельки набирают пока 1% успеха: "Тут тебе и перенести композицию на нотные листы для каждого участника оркеста, и разработка игр, и настройка станков в химическом производстве, медицинские описания, 3D анимация и даже скоринг выступления акробатов на чемпионате."

Всё это жжж неспроста! Думайте.
117👍87❤‍🔥32