Лаборатория Математики и Программирования Сергея Бобровского – Telegram
Лаборатория Математики и Программирования Сергея Бобровского
1.29K subscribers
1.19K photos
24 videos
931 links
ЛаМПовое с Бобровским
Download Telegram
У меня в вк 13т дорогих папищеков, поэтому как законопослушный гражданин с 1 ноября сего года я не смогу ↑↑↑ в своих постах указывать, например, ссылку на Chymyst Core (a domain-specific language for purely functional, declarative concurrency, implemented as a Scala library), на реализацию чистой системы типов по Барендрехту (System F) на питончике, на версию браузерного постгреса , к которому прикрутили AI (курсант прислал ссылочку) и т.д. Потому что это не СМИ и не госструктуры. Возможно правда, что авторы этих чудных творений захотят зарегистрироваться в РКН как блогеры.
52😁57🤯9🫡9🤔8👍5
"Модель домена" (предметной области) не равно "модель данных". Если пытаться реализовывать такое отображение напрямую, можно быстро запутаться в множестве зависимостей. По этой причине и кодирование новых фич -- далеко не самое узкое место в больших легаси-базах. Критически важно понимание полного контекста домена и того, как схема БД и кодовая база были написаны именно так, как они была написаны, и по каким причинам. Эти "почему" обычно не документированы и существуют только в виде мистического корпоративного знания :)
105515👍10🤯2👌2
Ставь китика, если когда-нибудь честно использовал vim + ctags/cscope.
Кто не пробовал, очень рекомендую (это я готовлю большое обновление курса "Ясное легаси", как вникать в доставшиеся вам по наследству огромные кодовые базы lol; 50 конкретных рекомендаций, сгруппированных по 7 разделам; на этой неделе выкачу).
👍47🤔21🐳96❤‍🔥2
Такое мы одобряем: с 1 сентября сего года при расчёте оплаты за сверхурочную работу (которая в айтишке очень распространена), должен будет учитываться весь заработок программиста, включая премии, бонусы, надбавки и т.д.
Подготовьте морально своих менеджеров.
50🔥159👍6💯6
Готовлю расширенную версию СильныхИдей (скоро 100 материалов), дополненную в частности множеством примеров, для всех желающих.
Выкладываться будет, начиная с 1 сентября, для донов в группе для неначинающих (и с 1 сентября стоимость подписки там вырастет, лучше не тяните). Там же продолжу и трек "Элитный Программист".

Краткое описание всех материалов СИ и ЭП и др. (для моих курсантов) выкладываю тут.

"ФБР США потребовалось несколько десятков лет слежки за венгерским математиком Полом Эрдешом, чтобы сделать вывод, что "ему просто очень нравится математика".
8🔥45👍143😁2
Ben Mann, кофаундер Anthropic AI, на днях дал 30% вероятности, что Claude можно зафайнтюнить прямо сейчас так, что она сможет реплицироваться и распространяться самостоятельно, что приведёт к "thousands of deaths or hundreds of billions in damage".

Ну наверное, если LLM сможет разобраться с колмогоровской сложностью (длина самого короткого промпта, который даст эффект). И это новая причина, на которую теперь можно сваливать эпичные сбои вроде вчерашнего. У меня после него ютуб внезапно заработал :) Хотя, уверен, ненадолго, осенью забанят и телеграм, и гугл, и стим, и всё остальное.

В ЦРУ сейчас наверняка массово раздают премии и награды своим агентам влияния: в торе (который и был исходно разработан военными для обмена разведданными) после блокировки ютуба 50% всех пользователей стало из России. И ещё 20% из Ирана.

=

Легендарный кибернетик Грегори Бэйтсон ("Ангелы страшатся", "Групповая динамика шизофрении"...) разработал многократно подтверждённую и в психологии, и в антропологии, и в экологии, и в социологии, и в программировании, концепцию double-bind: когда противоречивые послания и требования могут вызывать патологические вторичные эффекты как у людей (шиза), так и у общества в целом. И микро-, и макро-системы обладают саморегулирующимися свойствами, и вмешательства, не учитывающие вторичные эффекты, могут привести к разрушительным результатам. Эти эффекты могут быть как краткосрочными, так и долгосрочными, и часто они оказываются непредсказуемыми и нежелательными. Он также отмечал, что внимание к этим вторичным эффектам крайне важно для эффективного управления любой системой.

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

Программисты, помните ↑↑↑

Скоро выложу в СильныеИдеи материал ровно об этом, что делать/как предупредить, если ваша система внезапно начала вести себя как-то не так, но вроде бы и норм. Спойлер: Извините, вы обречены.
2👍51🫡9🤔8🔥3
Заканчиваю большое дополнение курса "Ясное легаси", в нём в частности есть раздел "Использование инструментов для навигации по коду". Вот, например, рекомендованная тулза rust-ontologist для визуализации больших кодовых баз на Rust за считанные секунды. Мгновенно всё становится ясным и понятным )))

Или нет.
4😁55👍167🐳2
В Java 9 появилась возможность очень компактно инициализировать Map с помощью Map.of(). На какой размер словаря этот метод рассчитан?
Anonymous Quiz
33%
на любой
34%
на 10 элементов
11%
на 10,000 элементов
14%
на 10,000,000 элементов
8%
на 10,000,000,000 элементов
5🤔41😁18👍5🤓4👌1
MIT выложил на рубут ютуб все лекции курса "The Missing Semester of Your CS Education": Shell Tools and Scripting, Editors, Data Wrangling, Command-line Environment, Version Control (Git), Debugging and Profiling, Metaprogramming, Security and Cryptography...

As computer scientists, we know that computers are great at aiding in repetitive tasks. However, far too often, we forget that this applies just as much to our use of the computer as it does to the computations we want our programs to perform. We have a vast range of tools available at our fingertips that enable us to be more productive and solve more complex problems when working on any computer-related problem. Yet many of us utilize only a small fraction of those tools; we only know enough magical incantations by rote to get by, and blindly copy-paste commands from the internet when we get stuck.
This class is an attempt to address this.


Как думаете, какой редактор там предлагают изучать? :) ..... vim .....
6🏆44👍32🐳6🔥5🤓3
Вкатываемся в понедельник. Мотивирующее от курсантов:

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

В рабочих проектах никакой многоуровневой архитектуры не придерживаемся. Есть нагромождение библиотек, от некоторых из которых (сore, utils) зависит почти весь остальной проект...

Начался ад, наш продукт прямо зависит от внешних сервисов, которые не уведомляют своевременно( а то месяцами) об изменениях схем, потому на меня сыпятся баги, которые я не могу отладить порой нормально, потому что у них же технические работы :)
Дали ещё задачу на разработку ещё одного конфига( по итогу у нас будет аппконфиг, локалконфиг, конфиги из бд, и ещё один который должен собрать повторяющуюся часть из трёх ранее) ах да, конфиг для стендов и образов...
Все это выяснилось спустя два дня после начала моей оказывается неправильной работы, тимлид неправильно сформулировал задачу и продумал архитектуру, отчего очередной созвон с главным разработчиком на два часа.
Документаций нет, все из уст в уста, и попробуй понять что эти уста сказали ибо в терминах ты ещё плаваешь.
Дали напутствие додумывать задачи во время чтения ТЗ от аналитиков, ибо они и пишут процессы, но по факту они могут сломать поломать в будущем другие...
👍48🤔17😁10💯3❤‍🔥2
В 98% компаний проблемы с ит случаются из-за занудных или некомпетентных начальников, скучных задач, плохо/никак не организованных рабочих процессов, непродуманных продуктов/сервисов, растущего технического долга и т.п. На долю ошибок в коде приходится от силы 2%. Пофиксить баги -- самая простая часть в айтишке.
🤔50👍23👏5😁2🫡2
vk, как известно, "рубит охваты", мои материалы редко когда хотя бы 10% папищеков показываются :)

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

Решил показать их всем моим дорогим читателям (типа, "социальная реклама"), но vk уже три раза отказывает в продвижении трёх разных постов по этой темке (ни одного не пропустив!), потому что там где-то мифические "пунктуационные ошибки". Модераторы vk такие умные, что могли бы выигрывать шахматные партии... если бы только знали, как правильно расставить фигуры.

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

Служба модерации vk напоминает мне королеву, у которой нет королевства: много короны на голове, а толку ноль.

Дуров, верни нормального начальника службы модерации.

Служба модерации vk похожа на сторожевого пса: много лает, но кусать не умеет. Они забанят тебя за отсутствие запятой, но пропустят откровенный спам.
11👍64💯8🤔21🙏1
software design -- это искусство принятия правильных решений.

Но ещё больше это искусство не принимать неправильные решения.

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

И знать, когда и как вы должны сделать всё правильно с самого начала.
125👍65🏆6🔥1🫡1
Классная опенсорсная штука: ChartDB. Выбираете марку своей СУБД (только нужны последние версии конечно), вам выдаётся SQL скрипт, который ломает всю вашу базу формирует json со структурой вашей базы; вставляете этот json в ChartDB и за 10 секунд получаете красивую диаграмму, которую можно вдобавок вручную править в редакторе.
(можно и локально на работе задеплоить и получить премию:)
1👍56🔥1941
А разве этот пост у меня не на русском написан? 😎 ну воля ваша, как монополиста. Конечно, я понимаю эти придирки, но принципиально не буду ничего править, потому что мне совершенно пофиг; моя позиция однозначна: я прав, а вк нет 🤘
Пусть получится lose-lose. Не увидят больше 90% подписчиков мои посты.

Готовлю продолжение, скоро будет:

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

Мы можем легко и просто реализовать поддержку последовательных цепочек событий, рассматривая например категорию событий (события как морфизмы, которые трансформируют состояние системы), и эндофункторы (функции, которые принимают состояние системы и возвращают новое состояние). Таким образом, цепочка взаимосвязанных событий может быть представлена как последовательное применение/композиция функций. Например, мы можем всю логику CRUD реализовать в контексте монады Maybe.

Но что с ассоциативностью? Да, мы теперь можем организовать свой код на монадах так, что порядок применения операций в нём будет предсказуем и инвариантен к способу комбинирования (функции будут работать правильно даже при изменении порядка комбинирования). И вроде бы очевидно, что вроде как "моноидальные" патчи в распределённой системе по всему CRUD ну никак не ассоциативны.

И вот что с этим делать...


P.S. В принципе, охват вк на 13 тыс. такой микроскопичный, что практически сравнялся с охватом тг на одну тыщу папищеков ) Поэтому, возможно, буду больше писать не в вк, а в тележку.
52👍33🔥10😁7🤯3
Как издеваться над программистами, делая code review? Набор анти-паттернов.
Особенно хорошо заходит в пятницу к концу рабочего дня.

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


Например:

"...При первом ревью кода вносите небольшие и простые изменения, но побольше: названия переменных немного непонятны, в комментариях есть опечатки и т.п.
Подождите, пока разработчик исправит это, а затем сообщите, что в риквесте есть гораздо более фундаментальная проблема, которая требует полного переписывания этой части кода (что означает также отказ от многих мелких исправлений, которые вы уже заставили разработчика сделать).
Ничто так не говорит о том, что
"ваш труд никому не нужен, а ваше время не ценится", как то, что заставляет кого-то выполнять много работы, а затем заставляет его её выбросить. Этого может быть достаточно, чтобы разработчик сдался.
140👍15🤓7🤯63
Запуск уже через пару часов:
PearAI: The Open Source AI Powered Code Editor
(пишут, что форк VSCode)

Заборет ли PearAI главного конкурента Cursor?
🤔47👍11😁9
В контексте мифического задержания Дурова пошла очередная волна разговоров про "свой мессенджер" (за очередной миллиард рублей из кармана налогоплательщиков). Чтобы в нём зарегистрироваться, потребуется личная явка в МФЦ и нотариально заверенное фото с паспортом и военным билетом. Он будет настолько безопасный, что даже сами создатели не смогут в него войти.

А под капотом у него будет (только это военная тайна) что-то из этого:

-- Rocket.Chat : куча фич: чаты, каналы, видео-/аудио-звонки, множество интеграций... заодно Meteor 3.0 полезно поизучать

-- Mattermost : микросервисный аналог слака

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

-- Zulip -- интересная фишка, внутри чата можно выделять разные тематические потоки.

и т.п.

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

=

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

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

Во-вторых, вы видели хотя бы одно неофициальное фото/видео, как Дуров в аэропорту ходил, как его арестовывали, из зала суда и т.п.?

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

Думайте 😎
1🤔56👍14😁7🫡3🤯2
С каждым днём в Сети появляется всё больше контента, сгенерированного AI, и одна из сопутствующих бед в том, что поисковики всё чаще по запросам текста, рисунков, фото (а скоро и видео) выдают искусственные результаты. Например, "похожие" на оригинал фото -- только вылизанные и облагороженные, словно после фотошопа (и постепенно они уходят всё дальше и дальше от оригинала), или цитаты великих, "похожие" на реальные. Кстати, уже для немалого числа известных личностей, и ныне прекрасно здравствующих, по запросам по ним начинают выдаваться "их слова", сгенерённые нейронкой :)

Фанатичные Свидетели AGI-евы, мега-секта которых располагается в Кремниевой Долине, делают сегодня невиданные ранее в мировой истории инвестиции, чтобы ускорить замену реального на фиктивное. В таких условиях ситуация очень скоро может зайти в тупик -- почти наверняка в течение следующих 12 месяцев.
5🤔57👍8🫡4💯31
Выбираете между Java и Python для вашего следующего проекта? Возьмите F# 💪🏻

-- мощь C#
-- простота Python
-- работает на .NET, нативный доступ ко всей экосистеме
-- несравненно более лучшая и сильная система типов.
153🔥16👍9🫡5💯2