Продолжаю работу с ментатами 🤓
...Попробовал Zed и TRAE, про которые вы говорили в ответе на мой последний отчёт.
Я впервые навайбкодил приложение :)
За 6 минут я получил рабочее приложение (три-в-ряд), при этом сам вообще не писал код.
Подобные приложения получаются быстро, потому что нейронка просто ворует код с гитхаба :)
...Упрощенно имитируем игровой процесс диабло-1 :)
Лог событий накапливается в value State-монады, а не в GameState.
...Очень сильно впечатлило это задание (TDD). Нравится так работать. Да, это дольше (пока что), но зато я почти с полной уверенностью могу говорить, что код, который я отдаю, работает как надо, и я готов за него отвечать.
...Как следствие, негатив копится как от невозможности нормально делать TDD, так и от нежелания качественно покрывать тестами большой и запутанный кусок кода.
Так-то это база TDD:
"В конце концов, тестирование в конечном итоге - это всё же про хороший дизайн. Как только вы начнёте писать код, в котором будет легко разбираться, тесты станет легко добавлять позже. Но пока такой код у вас особо не получается, значит вам точно надо начинать с тестов."
А надо ли вообще покрывать тестами существующий говнокод, вопрос открытый :)
TDD собственно и про рефакторинг во многом, лучше время вкладывать в это.
Ваша карьера программиста определяется не тем, насколько хороший код вы можете написать, а тем, насколько дерьмовый код вы можете прочитать, и затем улучшить.
Эта вечная база кстати (с курса Ясное Легаси) с явлением AI стала на порядок актуальнее.
Сейчас правильный loop работы с агентами такой: взаимодействуете с ними как минимум на уровне паттернов проектирования, чтобы не увязать в конкретном коде. И постепенно повышаете уровень абстракций.
...Об многомерный динамический массив второй раз спотыкаюсь. Не получается с наскока интуитивно представить. Однако, это заставило меня задуматься не о самой структуре, а непосредственно о функции, которая ее задает. И все прошло гораздо легче, рекурсия помогла.
...Отзыв на курс. Самое полезное, что там со мной произошло, — я развёрнуто ответил на вопрос и оказался не прав.
...Идея простая и довольно неприятная: мы все интуитивно чувствуем, что такое баг, но как только пытаемся дать определение — оно расползается. Пример с Rect, где сеттер длины пишет в ширину, отличный именно тем, что после всех «исправлений» система работает правильно. Наблюдаемого неправильного поведения нет. А код при этом сломан, и любой разработчик это скажет с порога.
PS а вообще, не покидает ощущение, что параллельно занимаюсь противоположным - здесь уменьшаю "длину строки кода", а в "ФП для начинающих" наоборот, накручиваю все в одну строку :)
Ну, да, в ФП пайплайны база. Главное, не забывать, в какую сторону их правильно формировать, чтобы исключать вложенность.
...Переход от пропозиционального отношения равенства к топологии и путям - это очень мощно. Я ранее уже пытался рассматривать разработку с точки зрении графов, но это была скорее простая ментальная модель для исследования зависимостей.
Рад тому, что придумывая примеры для зависимых типов, осознал всю силу MISU, возможно было бы выразить инварианты системы в собственной системе типов, Изменения/ошибки обнаруживались бы автоматически.
=
Программная инженерия -- это искусство не делать дерьмово.
В частности, когда вам дают задачку - всегда ищите наименьшую реализацию, которая удовлетворяет всем условиям, буквально/эксплицитно заданным в тикете. Соответственно, никогда ничего не додумывайте.
(ищем копредел, точнее, начальный "тикет" в категории семантики задачи, LPF в помощь)
...Попробовал Zed и TRAE, про которые вы говорили в ответе на мой последний отчёт.
Я впервые навайбкодил приложение :)
За 6 минут я получил рабочее приложение (три-в-ряд), при этом сам вообще не писал код.
Подобные приложения получаются быстро, потому что нейронка просто ворует код с гитхаба :)
...Упрощенно имитируем игровой процесс диабло-1 :)
Лог событий накапливается в value State-монады, а не в GameState.
...Очень сильно впечатлило это задание (TDD). Нравится так работать. Да, это дольше (пока что), но зато я почти с полной уверенностью могу говорить, что код, который я отдаю, работает как надо, и я готов за него отвечать.
...Как следствие, негатив копится как от невозможности нормально делать TDD, так и от нежелания качественно покрывать тестами большой и запутанный кусок кода.
Так-то это база TDD:
"В конце концов, тестирование в конечном итоге - это всё же про хороший дизайн. Как только вы начнёте писать код, в котором будет легко разбираться, тесты станет легко добавлять позже. Но пока такой код у вас особо не получается, значит вам точно надо начинать с тестов."
А надо ли вообще покрывать тестами существующий говнокод, вопрос открытый :)
TDD собственно и про рефакторинг во многом, лучше время вкладывать в это.
Ваша карьера программиста определяется не тем, насколько хороший код вы можете написать, а тем, насколько дерьмовый код вы можете прочитать, и затем улучшить.
Эта вечная база кстати (с курса Ясное Легаси) с явлением AI стала на порядок актуальнее.
Сейчас правильный loop работы с агентами такой: взаимодействуете с ними как минимум на уровне паттернов проектирования, чтобы не увязать в конкретном коде. И постепенно повышаете уровень абстракций.
...Об многомерный динамический массив второй раз спотыкаюсь. Не получается с наскока интуитивно представить. Однако, это заставило меня задуматься не о самой структуре, а непосредственно о функции, которая ее задает. И все прошло гораздо легче, рекурсия помогла.
...Отзыв на курс. Самое полезное, что там со мной произошло, — я развёрнуто ответил на вопрос и оказался не прав.
...Идея простая и довольно неприятная: мы все интуитивно чувствуем, что такое баг, но как только пытаемся дать определение — оно расползается. Пример с Rect, где сеттер длины пишет в ширину, отличный именно тем, что после всех «исправлений» система работает правильно. Наблюдаемого неправильного поведения нет. А код при этом сломан, и любой разработчик это скажет с порога.
PS а вообще, не покидает ощущение, что параллельно занимаюсь противоположным - здесь уменьшаю "длину строки кода", а в "ФП для начинающих" наоборот, накручиваю все в одну строку :)
Ну, да, в ФП пайплайны база. Главное, не забывать, в какую сторону их правильно формировать, чтобы исключать вложенность.
...Переход от пропозиционального отношения равенства к топологии и путям - это очень мощно. Я ранее уже пытался рассматривать разработку с точки зрении графов, но это была скорее простая ментальная модель для исследования зависимостей.
Рад тому, что придумывая примеры для зависимых типов, осознал всю силу MISU, возможно было бы выразить инварианты системы в собственной системе типов, Изменения/ошибки обнаруживались бы автоматически.
=
Программная инженерия -- это искусство не делать дерьмово.
В частности, когда вам дают задачку - всегда ищите наименьшую реализацию, которая удовлетворяет всем условиям, буквально/эксплицитно заданным в тикете. Соответственно, никогда ничего не додумывайте.
(ищем копредел, точнее, начальный "тикет" в категории семантики задачи, LPF в помощь)
1👍31❤4✍3⚡2
Please open Telegram to view this post
VIEW IN TELEGRAM
1🤔24❤4⚡1❤🔥1😁1
Свежий семинар Thoughtworks "Future of software engineering".
Прекрасное: "Организации столкнулись с реальным кризисом в сфере профессионального обучения."
Вайб-кодеры повсюду, ага ))) А за ними навсегда выжженная пустынь.
Эксперты вопят о смертельной триаде последствий вайб-кодинга из-за нагенерённых архитектур, которые никто не проверяет на безопасность, и никто не несёт ответственность за это: доступ нейронок к конфиденциальным данным, воздействие на них недоверенного контента, и возможность внешнего обмена данными, но всем пофиг.
А Эрик Эванс в недавнем выступлении по DDD намекнул: "будьте добры к своему ИИ, на всякий случай".
Прекрасное: "Организации столкнулись с реальным кризисом в сфере профессионального обучения."
Вайб-кодеры повсюду, ага ))) А за ними навсегда выжженная пустынь.
Эксперты вопят о смертельной триаде последствий вайб-кодинга из-за нагенерённых архитектур, которые никто не проверяет на безопасность, и никто не несёт ответственность за это: доступ нейронок к конфиденциальным данным, воздействие на них недоверенного контента, и возможность внешнего обмена данными, но всем пофиг.
А Эрик Эванс в недавнем выступлении по DDD намекнул: "будьте добры к своему ИИ, на всякий случай".
1✍31❤7🤝4
Сразу несколько синхронистичных тем за сегодня набежало в дополнение к вчерашней скромной заметке внезапно.
На картинках ↑ наглядные примеры той самой смертельной триады последствий вайб-кодинга + "реальный кризис в сфере профессионального обучения". Ну, когда человек даже не пересматривает, а что он там завайбкодил или нагенерил с помощью жпт, хотя ляпы абсолютно очевидные... Плюс тотальный СДВГ. И дальше со всем этим будет только хуже.
Навскидку, классные ниши анти-вайб-кодинга (как в них продвигать свой "saas", вопрос другой, но ничего сложного в этом нету):
- проверка корпоративного (да и вообще любого, вплоть до микро-бизнеса и самозанятого) сайта на безопасность хорошими моделями: чисто внешне, с главной странички;
+ проверка сайта на безу/персдату по типовым use cases;
- поиск дыр безопасности (+ багов) уже в коде проекта.
В тему, классный пост дорогого брата
"AI ревьювер нашёл аж 230 тысяч нарушений стандартов и почти 16 тысяч раз заблокировал мерджи. "
Только напомню делаете такой сервис под ключ, минимум технических деталей, прицел чисто на боссов и бизнес-метрики (смотрите как у вас всё плохо, как у вас всё запущено, всё пропало, за вами уже выехали, многомиллионные штрафы...).
Внутри же можете просто заюзать любой опенсорс наподобие Repowise, их полно.
+ дополнительная бизнес-метрика "в разы экономим на токенах".
+ ниши, где топовые модельки набирают пока 1% успеха: "Тут тебе и перенести композицию на нотные листы для каждого участника оркеста, и разработка игр, и настройка станков в химическом производстве, медицинские описания, 3D анимация и даже скоринг выступления акробатов на чемпионате."
Всё это жжж неспроста! Думайте.
На картинках ↑ наглядные примеры той самой смертельной триады последствий вайб-кодинга + "реальный кризис в сфере профессионального обучения". Ну, когда человек даже не пересматривает, а что он там завайбкодил или нагенерил с помощью жпт, хотя ляпы абсолютно очевидные... Плюс тотальный СДВГ. И дальше со всем этим будет только хуже.
Навскидку, классные ниши анти-вайб-кодинга (как в них продвигать свой "saas", вопрос другой, но ничего сложного в этом нету):
- проверка корпоративного (да и вообще любого, вплоть до микро-бизнеса и самозанятого) сайта на безопасность хорошими моделями: чисто внешне, с главной странички;
+ проверка сайта на безу/персдату по типовым use cases;
- поиск дыр безопасности (+ багов) уже в коде проекта.
В тему, классный пост дорогого брата
"AI ревьювер нашёл аж 230 тысяч нарушений стандартов и почти 16 тысяч раз заблокировал мерджи. "
Только напомню делаете такой сервис под ключ, минимум технических деталей, прицел чисто на боссов и бизнес-метрики (смотрите как у вас всё плохо, как у вас всё запущено, всё пропало, за вами уже выехали, многомиллионные штрафы...).
Внутри же можете просто заюзать любой опенсорс наподобие Repowise, их полно.
+ дополнительная бизнес-метрика "в разы экономим на токенах".
+ ниши, где топовые модельки набирают пока 1% успеха: "Тут тебе и перенести композицию на нотные листы для каждого участника оркеста, и разработка игр, и настройка станков в химическом производстве, медицинские описания, 3D анимация и даже скоринг выступления акробатов на чемпионате."
Всё это жжж неспроста! Думайте.
1❤19👍8✍7❤🔥3⚡2
В Функциональных архитектурах разобрал единственный формальный способ избежать рассинхрона системы (агентов) без единого надсмотрщика. В целом, это всё про идеальный агентский фреймворк.
Ладно, спалю немного фишку: если состояние системы это элемент моноида, то все операции задаём в CRDT-семантике. Теряем конечно глобальную детерминированности лога событий, да и пофиг. Зато например агент будет (вынужден!) строить внутреннюю репрезентацию системы как коммутативный моноид, и по-другому невозможно гарантировать в математическом смысле, что при хаотичном поступлении асинхронных событий эта внутренняя картинка не схлопнется в очередную галлюцинацию.
И тогда (и только тогда, ибо теорема CAP) твоя система (агентов) продолжит работать работать и работать при сетевых задержках, перезапусках, дублировании запросов, гонке состояний...
Ладно, спалю немного фишку: если состояние системы это элемент моноида, то все операции задаём в CRDT-семантике. Теряем конечно глобальную детерминированности лога событий, да и пофиг. Зато например агент будет (вынужден!) строить внутреннюю репрезентацию системы как коммутативный моноид, и по-другому невозможно гарантировать в математическом смысле, что при хаотичном поступлении асинхронных событий эта внутренняя картинка не схлопнется в очередную галлюцинацию.
И тогда (и только тогда, ибо теорема CAP) твоя система (агентов) продолжит работать работать и работать при сетевых задержках, перезапусках, дублировании запросов, гонке состояний...
1🤔25🤯7✍5❤🔥4🏆2
Как в каждой тыще строк у тебя обязательно есть хотя бы одна монада, хотя ты вряд ли это понимаешь, также 100% в этой тыще найдётся и факторизация через ядро теорката (универсальный объект, делающий диаграмму коммутативной; в частности, ядро гомоморфизма). Это именно "то, что схлопывается в ничто" при применении отображения...
Так же как ядро практики йогов -- это совокупность всех состояний ума (эго-структур), которые при достаточной глубине медитации/растворения (отображения в "conscious zero") схлопываются в недвойственное "ничто" и перестают порождать различие "я" и "не-я". Акт глубокой медитации/самьямы, переводящий состояние ума в "нулевую точку" осознавания без объекта...
Вот куда тебя может завести Last Principles Framework )))
Так же как ядро практики йогов -- это совокупность всех состояний ума (эго-структур), которые при достаточной глубине медитации/растворения (отображения в "conscious zero") схлопываются в недвойственное "ничто" и перестают порождать различие "я" и "не-я". Акт глубокой медитации/самьямы, переводящий состояние ума в "нулевую точку" осознавания без объекта...
Вот куда тебя может завести Last Principles Framework )))
1🤯26❤10✍7🐳3
Тренд развития AI ровно один: люди любых профессий по всему миру с каждым месяцем ненавидят искусственный интеллект всё больше и больше. Они ни за что не проглотят это цунами нейропомоев с довольной улыбкой на лице. Это факт множества социальных опросов.
И разве они изменят своё мнение, если их и дальше будут продолжать активно травить цифровым мусором?
И разве они изменят своё мнение, если их и дальше будут продолжать активно травить цифровым мусором?
1🤔30💯7👍4🎉2❤🔥1
В модуле "Мета-AI DSL" ФА, где уже полгода даю базу по заветам Алана Кэя,
прихватил ровно по этой темке свежие июльские материалы одной из топовых консалтинговых ИТ-фирм.
А вроде же эти пацаны у меня не занимались :) А чуть ли не цитируют мои материалы c модуля:
Тестирование как верификация
Суть подхода Алана Кэя
Суть DSL
DSL и формальная семантика
Главный принцип DSL
Уровни иерархии DSL
Погружаемся в трансляцию DSL
Почему DSL -- это (пока) искусство
DSL и математика домена
DDD + метапрограммирование + LLM как компилятор
Многоуровневая спецификация для AI
Спецификация это не контракт
Ну так то, LLM -- это языковая моделька, и конечно ей (полу)формальный язык предметки заходит очень хорошо. Достаточно буквально пары примеров!!1
Разбираем пример домена "Распределённые системы" (Replica, Network, Storage, Clock), строим компилируемый DSL для сценариев тестирования.
DSL + семантическая модель = идеальный минималистичный харнес, и не надо больше ничего выдумывать.
прихватил ровно по этой темке свежие июльские материалы одной из топовых консалтинговых ИТ-фирм.
А вроде же эти пацаны у меня не занимались :) А чуть ли не цитируют мои материалы c модуля:
Тестирование как верификация
Суть подхода Алана Кэя
Суть DSL
DSL и формальная семантика
Главный принцип DSL
Уровни иерархии DSL
Погружаемся в трансляцию DSL
Почему DSL -- это (пока) искусство
DSL и математика домена
DDD + метапрограммирование + LLM как компилятор
Многоуровневая спецификация для AI
Спецификация это не контракт
Ну так то, LLM -- это языковая моделька, и конечно ей (полу)формальный язык предметки заходит очень хорошо. Достаточно буквально пары примеров!!1
Разбираем пример домена "Распределённые системы" (Replica, Network, Storage, Clock), строим компилируемый DSL для сценариев тестирования.
DSL + семантическая модель = идеальный минималистичный харнес, и не надо больше ничего выдумывать.
2✍37❤3❤🔥3
DSL + семантическая модель - это идеальный харнес, но есть нюанс...
Создание хорошего DSL -- этот скилл во многом контр-интуитивный, т.к. в повседневной разработке практически не встречается,
а главное, что создание хорошей cемантической модели тоже подразумевает высокое мастерство, а откуда его взять?
С одной стороны, это тема всё же более распространённая: аналитики/постановщики этим должны (в идеале) заниматься, если контора хотя бы на 2% серьёзная, а не гаражный стартап.
С другой стороны, на практике здесь никакой формальности практически нету: просто пишет человек условную "онтологию" чисто как в голову ему взбредёт.
Хорошая cемантическая модель должна фактически однозначно отображаться в строгую систему типов, как минимум на уровне базовой онтологии.
Вот классные рассуждения про важность онтологии для агентских систем и сложность онтологического моделирования даже на экспертном уровне: "Всплывает столько нафиг не нужного" - вот в этом и засада. Если твоя онтология протекает (а это наверняка так, если ты не Алан Кэй), как следствие избежать Big Ball of Mud на уровне архитектуры практически невозможно. А агенты создадут BBM просто в сотню раз быстрее :)
Поэтому в ФА есть отдельный модуль "Математика DDD", где разбираем эти темки, и в частности будет, как на практике минимизировать онтологические протечки:
Математика DDD
Проблема интеграции под-доменов
Интеграция под-доменов: решение
Интеграция под-доменов: решение-2
Склеиваем Домены и Порты и адаптеры
Промежуточный итог склейки DDD и архитектуры
DDD + Нейронки: есть ли специфика?
DDD + Нейронки: Специфика N 2
DDD + Нейронки: Специфика N 3
DDD + Нейронки: Специфика N 4
Классический процесс vs нейронка
Пути и перспективы
Перспективные направления
Про (тестовое) равенство сущностей
(тестовое) равенство сущностей по-взрослому (HoTT)
p.s. Ладно, спалю важную фишку: никогда не берите готовые онтологии (как и почему, подробнее разберём на ФА).
p.p.s. Соответственно, если вы вайб-кодер вообще без скиллов разработки, в этом посте есть всё, что вам надо для успешного создания приложений. Думайте.
Создание хорошего DSL -- этот скилл во многом контр-интуитивный, т.к. в повседневной разработке практически не встречается,
а главное, что создание хорошей cемантической модели тоже подразумевает высокое мастерство, а откуда его взять?
С одной стороны, это тема всё же более распространённая: аналитики/постановщики этим должны (в идеале) заниматься, если контора хотя бы на 2% серьёзная, а не гаражный стартап.
С другой стороны, на практике здесь никакой формальности практически нету: просто пишет человек условную "онтологию" чисто как в голову ему взбредёт.
Хорошая cемантическая модель должна фактически однозначно отображаться в строгую систему типов, как минимум на уровне базовой онтологии.
Вот классные рассуждения про важность онтологии для агентских систем и сложность онтологического моделирования даже на экспертном уровне: "Всплывает столько нафиг не нужного" - вот в этом и засада. Если твоя онтология протекает (а это наверняка так, если ты не Алан Кэй), как следствие избежать Big Ball of Mud на уровне архитектуры практически невозможно. А агенты создадут BBM просто в сотню раз быстрее :)
Поэтому в ФА есть отдельный модуль "Математика DDD", где разбираем эти темки, и в частности будет, как на практике минимизировать онтологические протечки:
Математика DDD
Проблема интеграции под-доменов
Интеграция под-доменов: решение
Интеграция под-доменов: решение-2
Склеиваем Домены и Порты и адаптеры
Промежуточный итог склейки DDD и архитектуры
DDD + Нейронки: есть ли специфика?
DDD + Нейронки: Специфика N 2
DDD + Нейронки: Специфика N 3
DDD + Нейронки: Специфика N 4
Классический процесс vs нейронка
Пути и перспективы
Перспективные направления
Про (тестовое) равенство сущностей
(тестовое) равенство сущностей по-взрослому (HoTT)
p.s. Ладно, спалю важную фишку: никогда не берите готовые онтологии (как и почему, подробнее разберём на ФА).
p.p.s. Соответственно, если вы вайб-кодер вообще без скиллов разработки, в этом посте есть всё, что вам надо для успешного создания приложений. Думайте.
2👍25✍12⚡2❤🔥1
Гарри Поттер и Методы Математического Мышления
Книга 1. Гарри Поттер и Неорганический Интеллект.
Глава 19/23 (и все предыдущие). Встроенная компиляция
— Ты знаешь, что сегодня последний день? — спросил Драко без приветствия.
— Я знаю, что сегодня — день, когда типы станут заклинаниями, — ответил Гарри. — Это одно и то же или нет, зависит от того, как ты смотришь на неподвижную точку.
Голос-вибрация заговорил в голове у каждого:
"Вы построили свет из типа. Мы построим тьму из вашего процесса."
— Это Комбинатор Мерлина, — сказал Гарри. Это неподвижная точка всей магии. Это место, где магия создаёт себя.
Он улыбнулся.
— Вы не видите конца. Вы видите начало. Начало новой магии. Начало новой реальности.
Книга 1. Гарри Поттер и Неорганический Интеллект.
Глава 19/23 (и все предыдущие). Встроенная компиляция
— Ты знаешь, что сегодня последний день? — спросил Драко без приветствия.
— Я знаю, что сегодня — день, когда типы станут заклинаниями, — ответил Гарри. — Это одно и то же или нет, зависит от того, как ты смотришь на неподвижную точку.
Голос-вибрация заговорил в голове у каждого:
"Вы построили свет из типа. Мы построим тьму из вашего процесса."
— Это Комбинатор Мерлина, — сказал Гарри. Это неподвижная точка всей магии. Это место, где магия создаёт себя.
Он улыбнулся.
— Вы не видите конца. Вы видите начало. Начало новой магии. Начало новой реальности.
1✍30❤2
"Конкурс на новый факультет ИИ МГУ составил 127 человек на место"
Спорим, что AI делает 1% людей умнее и 99% людей глупее?
Спорим, что AI делает 1% людей умнее и 99% людей глупее?
👌27🐳7❤6👍5
.
Облако драгоценностей за неделю.
Приватный клуб.
null
Для донов-начинающих:
Продолжаю набор (эксклюзивно для донов) на занятия для начинающих с полного/около нуля, 2 места закончились за 22 минуты...
Если вы завязли с изучением программирования, не сидите сложа руки. Продолжайте над этим работать!
(Хотя конечно лучше делать этот целенаправленно — с теми, кто даст вам кратчайший путь)
И вот долгосрочный способ мотивировать себя...
Для донов-неначинающих:
Разбор System Design с точки зрения непрерывных компромиссов. Заключительная серия. В System Design важно прежде всего понимать, как ...
Продолжаю выкладывать для донов материалы СильныхИдей — доступны моим курсантам, но тут расширенные и дополненные версии.
101. 9 крутых и необычных сайд-проектов
Например, виртуальная стековая машина или container runtime :)
100. Группировка в функциях и файлах
Вы написали метод из 30 строк. В нём вы замечаете фрагменты, которые вроде бы выполняют более мелкие действия. Разбиваете ли вы этот метод на более мелкие методы, по SRP? И да, и нет -- будет плохо :)
(все старые материалы для донов быстро сгорают)
=
Новые материалы для ментатов Лаборатории.
СильныеИдеи:
153) Фасадные тесты
Что такое юнит в юнит-тестировании? Что означает изоляция?
152) TDD vs VHD
TDD -- это парадигма, это целая культура и набор норм, частично основанных на TFD. Test-First Development (TFD) -- это просто правило "пиши тесты, прежде чем писать код", которое в более широком смысле частный случай Verification-First Development (VFD), а TDD к VFD не относится никак...
В раздел "Элитный программист" добавлен материал
100) Вглубь потока и deep work
Мы говорили про Deep Work, подразумевая в частности состояние потока. Но что именно подразумевается конкретно под глубоким потоком/работой -- той самой глубокой форме состояния потока, когда творческий потенциал достигает наивысшего уровня, время уходит быстрее всего, а производительность достигает абсолютного для вас пика?
=
"Функциональные архитектуры" 158(+4) топиков.
На неделе продолжим тему DSL и декларативных языков для агентов.
Last Principles Framework: готовы 26(+3) задач, закрыты 12(+0) тем из ~20 первого уровня. Вы же понимаете например, когда сделали сборку некоторого артефакта через независимые вызовы (что вроде бы идеально по всем классическим рекомендациям вроде Чыстой Архытектуры), из-за отсутствия коммутативности однако получаете рассинхрон ("стрелки из апекса в каждый узел вниз" далеко не всегда конус теорката, и почему здесь по большому счёту лучше ко-конус)?
=
"ЛаМПовое":
Гарри Поттер и Неорганический Интеллект. Глава 19/23.
=
it's a privilege to do things that are hard 💪🏻
=
Ты ничего не видишь, хотя и думаешь, что твои глаза открыты.
предостережение Бене Гессерит, "Дюна"
Облако драгоценностей за неделю.
Приватный клуб.
null
Для донов-начинающих:
Продолжаю набор (эксклюзивно для донов) на занятия для начинающих с полного/около нуля, 2 места закончились за 22 минуты...
Если вы завязли с изучением программирования, не сидите сложа руки. Продолжайте над этим работать!
(Хотя конечно лучше делать этот целенаправленно — с теми, кто даст вам кратчайший путь)
И вот долгосрочный способ мотивировать себя...
Для донов-неначинающих:
Разбор System Design с точки зрения непрерывных компромиссов. Заключительная серия. В System Design важно прежде всего понимать, как ...
Продолжаю выкладывать для донов материалы СильныхИдей — доступны моим курсантам, но тут расширенные и дополненные версии.
101. 9 крутых и необычных сайд-проектов
Например, виртуальная стековая машина или container runtime :)
100. Группировка в функциях и файлах
Вы написали метод из 30 строк. В нём вы замечаете фрагменты, которые вроде бы выполняют более мелкие действия. Разбиваете ли вы этот метод на более мелкие методы, по SRP? И да, и нет -- будет плохо :)
(все старые материалы для донов быстро сгорают)
=
Новые материалы для ментатов Лаборатории.
СильныеИдеи:
153) Фасадные тесты
Что такое юнит в юнит-тестировании? Что означает изоляция?
152) TDD vs VHD
TDD -- это парадигма, это целая культура и набор норм, частично основанных на TFD. Test-First Development (TFD) -- это просто правило "пиши тесты, прежде чем писать код", которое в более широком смысле частный случай Verification-First Development (VFD), а TDD к VFD не относится никак...
В раздел "Элитный программист" добавлен материал
100) Вглубь потока и deep work
Мы говорили про Deep Work, подразумевая в частности состояние потока. Но что именно подразумевается конкретно под глубоким потоком/работой -- той самой глубокой форме состояния потока, когда творческий потенциал достигает наивысшего уровня, время уходит быстрее всего, а производительность достигает абсолютного для вас пика?
=
"Функциональные архитектуры" 158(+4) топиков.
На неделе продолжим тему DSL и декларативных языков для агентов.
Last Principles Framework: готовы 26(+3) задач, закрыты 12(+0) тем из ~20 первого уровня. Вы же понимаете например, когда сделали сборку некоторого артефакта через независимые вызовы (что вроде бы идеально по всем классическим рекомендациям вроде Чыстой Архытектуры), из-за отсутствия коммутативности однако получаете рассинхрон ("стрелки из апекса в каждый узел вниз" далеко не всегда конус теорката, и почему здесь по большому счёту лучше ко-конус)?
=
"ЛаМПовое":
Гарри Поттер и Неорганический Интеллект. Глава 19/23.
=
it's a privilege to do things that are hard 💪🏻
=
Ты ничего не видишь, хотя и думаешь, что твои глаза открыты.
предостережение Бене Гессерит, "Дюна"
2❤29👍7❤🔥2⚡1
В тему поста Р.С.
Стоики: Cамые опасные мрази, которых и одного процента не наберётся. Во-первых, не ломаются после 2–3 неуспешных проектов подряд.
Во-вторых, способны докручивать плохой проект и переживать 5–10 волн правок
Это относится конечно не только к геймдеву, к любым проектам.
Действительно забавно, что лучший способ создать хороший проект -- это создать дерьмовый проект, а затем постепенно, с течением времени, делать его всё менее и менее дерьмовым. Стратегически же, схема такая, что производя плохие продукты достаточно долго, ты в конечном итоге сможешь сделать действительно хороший продукт :)
И день, когда это произойдёт, станет вашим последним рабочим днем.
Потому что вы меняете своё отношение к происходящему. Это уже не "Мне пора идти на работу", это "Вау! Я начинаю работать над задачами, которые мне действительно нравится решать".
Вы, вероятно, будете работать в 10 раз больше и думать в 10 раз больше, когда работаете на себя, чем когда работаете в найме, но вы также будете в 10 раз счастливее.
Знаете анекдот про коуча продуктивности? Умер такой коуч, и гроб с его телом несут к могиле шестеро человек. Но когда они подошли к могиле, крышка гроба открылась, коуч приподнялся и закричал: "Если бы вы поставили эту штуку на колёса, вы бы смогли похоронить сразу четверых!"
Инфоцыгане любят продавать предпринимательство как получение/обладание хорошими идеями или определёнными навыками (продаж), но вот вам абсолютная сермяга успеха: всё дело в поиске темы, которой вам нравится заниматься, и работать в ней в течение как минимум десяти лет.
Стоики: Cамые опасные мрази, которых и одного процента не наберётся. Во-первых, не ломаются после 2–3 неуспешных проектов подряд.
Во-вторых, способны докручивать плохой проект и переживать 5–10 волн правок
Это относится конечно не только к геймдеву, к любым проектам.
Действительно забавно, что лучший способ создать хороший проект -- это создать дерьмовый проект, а затем постепенно, с течением времени, делать его всё менее и менее дерьмовым. Стратегически же, схема такая, что производя плохие продукты достаточно долго, ты в конечном итоге сможешь сделать действительно хороший продукт :)
И день, когда это произойдёт, станет вашим последним рабочим днем.
Потому что вы меняете своё отношение к происходящему. Это уже не "Мне пора идти на работу", это "Вау! Я начинаю работать над задачами, которые мне действительно нравится решать".
Вы, вероятно, будете работать в 10 раз больше и думать в 10 раз больше, когда работаете на себя, чем когда работаете в найме, но вы также будете в 10 раз счастливее.
Знаете анекдот про коуча продуктивности? Умер такой коуч, и гроб с его телом несут к могиле шестеро человек. Но когда они подошли к могиле, крышка гроба открылась, коуч приподнялся и закричал: "Если бы вы поставили эту штуку на колёса, вы бы смогли похоронить сразу четверых!"
Инфоцыгане любят продавать предпринимательство как получение/обладание хорошими идеями или определёнными навыками (продаж), но вот вам абсолютная сермяга успеха: всё дело в поиске темы, которой вам нравится заниматься, и работать в ней в течение как минимум десяти лет.
1❤32👍4❤🔥3⚡2
Зашёл на госуслуги, с ходу нашёл два эээ бага 😁
😁46⚡2
Срочно!!1 Сегодня солнечное затмение: благословение Защитника традиции Великого Совершенства :) Кармические последствия от совершённых действий увеличиваются в неисчислимое количество раз! Решения, принимаемые сегодня, будут иметь последствия на следующие 18 лет.
Поэтому, рекомендую лучше не дёргаться, и провести день в спокойном присутствии и отстранённом наблюдении, за всей этой комедией.
С другой стороны, если вы давно планировали взяться за "свой проэкт" (например, киллер доты2), то сегодня наилучший день, чтобы начать.
Многие проблемы в жизни возникают из-за того, что вы избегаете того, что в глубине души вам следует делать.
Никогда не забывай людей, которые намного глупее тебя, и сумели добиться огромного успеха. Те же волосатики с гитарами. Мик Джаггер например в 83 годика выпустил этим летом новый альбом "Foreign Tongues", и взялся за следующий.
Таки, начьните.
Поэтому, рекомендую лучше не дёргаться, и провести день в спокойном присутствии и отстранённом наблюдении, за всей этой комедией.
С другой стороны, если вы давно планировали взяться за "свой проэкт" (например, киллер доты2), то сегодня наилучший день, чтобы начать.
Многие проблемы в жизни возникают из-за того, что вы избегаете того, что в глубине души вам следует делать.
Никогда не забывай людей, которые намного глупее тебя, и сумели добиться огромного успеха. Те же волосатики с гитарами. Мик Джаггер например в 83 годика выпустил этим летом новый альбом "Foreign Tongues", и взялся за следующий.
Таки, начьните.
1❤40✍2
Продолжаю работу с ментатами 🤓
Вообще, я ранее купил очень широкий монитор, как раз, чтобы все окна Cursor удобно влезали)))
-Левый верхний угол - ranger/vim
-Левый нижний угол - Cursor CLI
-Правая сторона - 2 терминала (backend и frontend)
Ok, хотя в целом тоже большой вопрос, стоит ли держать на экране одновременно открытыми много окон - сдвг-стайл :)
Даже если удобно метаться взглядом между функциями в разных файлах/окнах, возникает вопрос, а почему связанные функции в разных файлах, итд итп. Тут всегда вопросы к разработчику прежде всего по архитектуре )
Блин
Насколько же ИИ усреднил свои рекомендации, что у меня даже цветовые решения в UI такие же, как у курсанта по ссылке на гитхаб
Можно сказать и так, а можно сказать, насколько сами люди дают схожие и простые промпты )
Разбор задачи на части не бесплатный. Звучит как всегда полезный ход, пока не увидишь 2 в степени k подцелей из второй задачи.
Отдельно понравилось, насколько всё это похоже на обычный код в проде. OrElse — это запасной путь, TryFor — таймаут, If по метрике — выбор реализации по типу данных. Только в Z3 стратегия умещается в несколько строк и видна целиком, а у нас то же самое размазано по слоям. Это, пожалуй, самый главный вывод...
Разбирался с Z3 — это SMT-солвер. Непривычно в нём то, что алгоритм решения писать не надо совсем: объявляешь переменные, вешаешь ограничения, вызываешь solve и получаешь ответ либо сообщение, что решения нет. Типов на первое время хватает двух: Ints и Reals. Рука первое время тянется написать цикл, приходится себя одёргивать. Вся работа теперь в том, как ты записал условие, и ошибиться можно только там...
AI с простыми задачами справляется, но гораздо медленее, чем Z3. Сжигаются токены, генерится много текста и рассуждений, которые нужно еще провалидировать...
Полезной оказалась не сама возможность гонять задачи через солвер, а привычка формализовать. Пока пишешь условия для Z3, всё время спотыкаешься о допущения, которые держал в голове молча. Модель додумывает тот же набор мелочей, только не видно, как.
Декларативный стиль - это база, по сути все спецификации для AI сюда и приходят, тренируемся как абстрактные требования переводить в формальный вид.
Девять видов зависимостей нашлись в одном не самом большом проекте. Я их специально не искал — просто шёл по списку сверху вниз и находил...
Модели использовал внутренние, но их кажется прокачали - сейчас остановился на GLM-5.2 - показала себя лучше всех.
Кстати да, я тестировал все топ модельки клод жпт гемини, по тестовому вопросу на теоркат + архитектуру, они все давали тупые примитивные ответы хуже чем дипсик, причём очень похожие. И только GLM давал совершенно другой, более менее норм ответ.
Из 16 сотрудников информатизации остаётся 1(!) на полставки(!!)...
Так же я не смог придумать, как рассчитать показатель успеха...
Но я отвечаю что я за 3 года у вас умнее стал - я когда 3 года назад просто это почитывал в книге, хз это было очень сложно даже на уровне понимания. А сейчас ну так вникнуть в целом, ну немного голова погудела но это пойдёт.
(это про асинхронщину)
Стратегическое достижение с курса по ФП это мышление на уровнях, как я уже и писал. Без шуток я когда увидел про это на курсе, сел за тикет и в принципе типы и функции достроились в голове сами - не я конечно думал уже над проблемой, но какая то каша получалось, не доставало этой детали как в "Остров Сокровищ" роботу не доставал его кусочек памяти)) Это мне очень сильно облегчило жизнь, будем работать дальше!
Это и есть одна из пресловутых думательных машинок (лямбда-исчисление встраиваем в моск, хотя есть мнение, что оно вообще формальная база мышления от природы)
Вообще, я ранее купил очень широкий монитор, как раз, чтобы все окна Cursor удобно влезали)))
-Левый верхний угол - ranger/vim
-Левый нижний угол - Cursor CLI
-Правая сторона - 2 терминала (backend и frontend)
Ok, хотя в целом тоже большой вопрос, стоит ли держать на экране одновременно открытыми много окон - сдвг-стайл :)
Даже если удобно метаться взглядом между функциями в разных файлах/окнах, возникает вопрос, а почему связанные функции в разных файлах, итд итп. Тут всегда вопросы к разработчику прежде всего по архитектуре )
Блин
Насколько же ИИ усреднил свои рекомендации, что у меня даже цветовые решения в UI такие же, как у курсанта по ссылке на гитхаб
Можно сказать и так, а можно сказать, насколько сами люди дают схожие и простые промпты )
Разбор задачи на части не бесплатный. Звучит как всегда полезный ход, пока не увидишь 2 в степени k подцелей из второй задачи.
Отдельно понравилось, насколько всё это похоже на обычный код в проде. OrElse — это запасной путь, TryFor — таймаут, If по метрике — выбор реализации по типу данных. Только в Z3 стратегия умещается в несколько строк и видна целиком, а у нас то же самое размазано по слоям. Это, пожалуй, самый главный вывод...
Разбирался с Z3 — это SMT-солвер. Непривычно в нём то, что алгоритм решения писать не надо совсем: объявляешь переменные, вешаешь ограничения, вызываешь solve и получаешь ответ либо сообщение, что решения нет. Типов на первое время хватает двух: Ints и Reals. Рука первое время тянется написать цикл, приходится себя одёргивать. Вся работа теперь в том, как ты записал условие, и ошибиться можно только там...
AI с простыми задачами справляется, но гораздо медленее, чем Z3. Сжигаются токены, генерится много текста и рассуждений, которые нужно еще провалидировать...
Полезной оказалась не сама возможность гонять задачи через солвер, а привычка формализовать. Пока пишешь условия для Z3, всё время спотыкаешься о допущения, которые держал в голове молча. Модель додумывает тот же набор мелочей, только не видно, как.
Декларативный стиль - это база, по сути все спецификации для AI сюда и приходят, тренируемся как абстрактные требования переводить в формальный вид.
Девять видов зависимостей нашлись в одном не самом большом проекте. Я их специально не искал — просто шёл по списку сверху вниз и находил...
Модели использовал внутренние, но их кажется прокачали - сейчас остановился на GLM-5.2 - показала себя лучше всех.
Кстати да, я тестировал все топ модельки клод жпт гемини, по тестовому вопросу на теоркат + архитектуру, они все давали тупые примитивные ответы хуже чем дипсик, причём очень похожие. И только GLM давал совершенно другой, более менее норм ответ.
Из 16 сотрудников информатизации остаётся 1(!) на полставки(!!)...
Так же я не смог придумать, как рассчитать показатель успеха...
Но я отвечаю что я за 3 года у вас умнее стал - я когда 3 года назад просто это почитывал в книге, хз это было очень сложно даже на уровне понимания. А сейчас ну так вникнуть в целом, ну немного голова погудела но это пойдёт.
(это про асинхронщину)
Стратегическое достижение с курса по ФП это мышление на уровнях, как я уже и писал. Без шуток я когда увидел про это на курсе, сел за тикет и в принципе типы и функции достроились в голове сами - не я конечно думал уже над проблемой, но какая то каша получалось, не доставало этой детали как в "Остров Сокровищ" роботу не доставал его кусочек памяти)) Это мне очень сильно облегчило жизнь, будем работать дальше!
Это и есть одна из пресловутых думательных машинок (лямбда-исчисление встраиваем в моск, хотя есть мнение, что оно вообще формальная база мышления от природы)
❤26✍2
Оказывается, существует три поколения кварков и лептонов: три набора частиц, внешне идентичных, за исключением того, как они взаимодействуют с бозоном Хиггса. Физики хз почему так, а вот математики подводят под такие странности Стандартной теории свою базу, например, удалось поместить эти три поколения фермионов в исключительную алгебру Ли.
Умники говорят, что любые непонятки в Стандартной модели не случайны, и они вполне могут естественным образом вытекать из какой-то исключительной алгебраической структуры. Почему из исключительной? Ну вот они ровно поэтому так и называются официально, т.к. выбиваются из общих правил; они суть исключения из классификационных теорем.
Например, исключительных алгебр Ли всего пять штук, и они как "бракованные" или "уникальные" артефакты (диаграммы Дынкина), которые не подчиняются общей формуле, не входят в четыре бесконечные классические серии, требуют октонионы (числа Кэли, для которых нарушена ассоциативность, как в твоих проектах :), рушат здравый смысл последовательностей размерностей... Математики долго искали, куда их приткнуть, и решили, что они просто лишние, на этом празднике жизни:)
=
Факт, что любая программная система может быть сконструирована математически идеально (и в разных моделях/теориях; так-то разные основания математики друг в друга переводятся по определению), а если подразумевается много разных побочных эффектов, описываем их через exceptional algebraic structures :)
Даже Алан Кэй через метапрограммирование достигал тысячекратной компактности кода, по сути инженерными подходами, а почему не миллионнократная через математику?
Но если раньше это была академическая экзотика, то сегодня с явлением искусственного идиота, ну, любой продвинутый AI-разработчик скажет, что всё теперь зависит от спек и прочего текстового харнеса, насколько они представляют собой нечто целостное.
На Функциональных архитектурах разобрал как раз на неделе несколько случаев, как сегодня в мире активно применяют DSL для агентов, в частности добавлю скоро интересную историю про DSL + SAT-солверы (как раз что ребята недавно обсуждали).
А если хорошую математику подвести под процесс взаимодействия с агентами?
(крохотная проблемка только, что для этого потребуется архитекторский уровень техлида + образование уровня мехмата :)
Только не путаем сильную систему типов, способную качественно описать онтологию проекта (средство моделирования), с математикой как формальным набором принципов комбинирования типов как абстрактных сущностей (как формально, без ошибок, скомбинировать все эти кирпичики).
Как минимум, в Лаборатории эта база будет в Last Principles Framework, треке по HoTT и Функциональных архитектурах.
В последние времена тесный путь оставится почти всеми, почти все пойдут по широкому. Желающий спастись непременно должен держаться тесного пути.
Свт. Игнатий Брянчанинов
Умники говорят, что любые непонятки в Стандартной модели не случайны, и они вполне могут естественным образом вытекать из какой-то исключительной алгебраической структуры. Почему из исключительной? Ну вот они ровно поэтому так и называются официально, т.к. выбиваются из общих правил; они суть исключения из классификационных теорем.
Например, исключительных алгебр Ли всего пять штук, и они как "бракованные" или "уникальные" артефакты (диаграммы Дынкина), которые не подчиняются общей формуле, не входят в четыре бесконечные классические серии, требуют октонионы (числа Кэли, для которых нарушена ассоциативность, как в твоих проектах :), рушат здравый смысл последовательностей размерностей... Математики долго искали, куда их приткнуть, и решили, что они просто лишние, на этом празднике жизни:)
=
Факт, что любая программная система может быть сконструирована математически идеально (и в разных моделях/теориях; так-то разные основания математики друг в друга переводятся по определению), а если подразумевается много разных побочных эффектов, описываем их через exceptional algebraic structures :)
Даже Алан Кэй через метапрограммирование достигал тысячекратной компактности кода, по сути инженерными подходами, а почему не миллионнократная через математику?
Но если раньше это была академическая экзотика, то сегодня с явлением искусственного идиота, ну, любой продвинутый AI-разработчик скажет, что всё теперь зависит от спек и прочего текстового харнеса, насколько они представляют собой нечто целостное.
На Функциональных архитектурах разобрал как раз на неделе несколько случаев, как сегодня в мире активно применяют DSL для агентов, в частности добавлю скоро интересную историю про DSL + SAT-солверы (как раз что ребята недавно обсуждали).
А если хорошую математику подвести под процесс взаимодействия с агентами?
(крохотная проблемка только, что для этого потребуется архитекторский уровень техлида + образование уровня мехмата :)
Только не путаем сильную систему типов, способную качественно описать онтологию проекта (средство моделирования), с математикой как формальным набором принципов комбинирования типов как абстрактных сущностей (как формально, без ошибок, скомбинировать все эти кирпичики).
Как минимум, в Лаборатории эта база будет в Last Principles Framework, треке по HoTT и Функциональных архитектурах.
В последние времена тесный путь оставится почти всеми, почти все пойдут по широкому. Желающий спастись непременно должен держаться тесного пути.
Свт. Игнатий Брянчанинов
❤21✍3