Лаборатория Математики и Программирования Сергея Бобровского – Telegram
Лаборатория Математики и Программирования Сергея Бобровского
1.29K subscribers
1.19K photos
24 videos
931 links
ЛаМПовое с Бобровским
Download Telegram
То, что в ООП (и ранее) называется "модульностью", и то, что в ФП сейчас называется "композиционностью", на самом деле одно и то же: возможность комбинировать сущности на основе их интерфейса/типа без необходимости программистам одной из таких сущностей заглядывать внутрь другой.

Но есть нюанс: в мае раза три уже, в чатах, в отчётах hard work ребята писали, как постоянно путаются с интерфейсами, абстракциями и контрактами. Я как раз готовил большой материал для СильныхИдей (позавчера выложил), думал, что он будет довольно теоретическим, однако внезапно оказалось, что он реально востребован! В нём я рассмотрел случай, когда множества интерфейсов и абстракций не пересекаются, а дальше теперь поясню ситуацию их пересечения.
👍608🔥2😎1
"Intelligent Machines and Idiotic Humans: A Startup Story"
(идеи для AI-стартапов)

Серия 12. Sam Altman is saying that AI is going to lead to a 1-person $1 billion business.

Рассказываю, как вы сегодня можете за несколько месяцев в одиночку создать AI-стартап в России на многие миллионы прямо сейчас! А дальше, кто знает?

На этой неделе IBM выложила модельки Granite Code, заточенные специально для программистов!

Granite Code models achieve competitive or state-of-the-art performance on different kinds of code-related tasks, including code generation, explanation, fixing, editing, translation, and more.

Голубой Гигант утверждает, что в генерации кода их модельки рвут даже LLama 3.

Фреймворка для них вроде пока нету (точнее, есть ибмовский watsonx.ai , но его фиг получишь), но вы можете легко и просто установить их локально отсюда стандартным для huggingface способом: ставите pytorch, затем transformers, ну и простой скрипт запуска и теста есть на вышеупомянутой страничке.

Засада в том, что комп с 16 гигами оперативки не потянет даже самую маленькую модельку с 3 миллиардами параметров, а там есть аж и на 34 миллиарда )))

Да, есть Hugging Face Model Hub, есть Spaces, есть Transformers Playground, но они достаточно большие модели запущают только в платном режиме, из РФ недоступном. И это хорошо :) Потому что вот это и есть супер-ниша для национальных AI-стартапов.

Это работа уровня студенческого диплома. Сервис, чтобы можно было в любимой Российской Федерации с этими модельками работать онлайн. Спрос в России будет прекрасный, гарантирую! Причём как от частников, так и "корпоративный". Файнтюнятся Granite Code отлично, можете под конкретные корпоративные проекты делать тюнинг в заказном режиме, или наоборот натаскивать модели на конкретные фреймворки вроде Django или Spring, и т.д. и т.п.

Деньги под ногами сегодня (пока) валяются тоннами.
🔥51👍6😎4🤔32
Тёмная сторона моего формата hard work в том, что он провоцирует весьма масштабный рефакторинг доставшегося вам по наследству говнокода )

Например, в одном из материалов СильныхИдей рассказываю про тёмную сторону мономорфных сигнатур типов: существует так много способов их реализации, что ваши шансы испортить её сравнительно высоки, и при этом существенно труднее рассуждать о её корректности. Поясняю, как уменьшать общее количество функциональности, реализованной мономорфно -- но если менеджер будет вас умолять "please no more refactors", лучше его послушать.

Как правильно? Ну, сразу писать норм код. Но с вероятностью 98%, в любом проекте, куда вы приходите, такого кода вы не найдёте. Что интересно, существует немало достаточно простых метрик обеспечения качества кодовой базы, которые автоматически приводят к существенному ускорению проекта в целом, однако в 98% компаний вас будут просто тупо принуждать высиживать положенные нормочасы за экраном клац-клац, теряя при этом десятикратные суммы.
👍5410😁7🤔3🔥2
Лаборатория Математики и Программирования Сергея Бобровского
Что выбираете в понедельник 13-е, признавайтесь 😎
"Intelligent Machines and Idiotic Humans: A Startup Story"
(идеи для AI-стартапов)

Серия 13. "Sam Altman is saying that AI is going to lead to a 1-person $1 billion business" - 2

Вот ещё несколько классных идей (которые за доллары) для клонирования:

-- Create AI Influencers. Start Earning.
Альтушка для скуфа
Glambase lets your AI character take center stage, giving you the earnings and freedom you've always wanted.
...it depends on how popular your AI influencer becomes—you could make anywhere from $200 to $100,000 a month.


-- Ironpants -- чуть ли не 1:1 клон flappy birds (которая заработала миллионы долларов), на котором автор срубил 500,000 долларов.

-- Rama is a new programming platform that reduces the cost of building scalable backends by 100x.
Twitter's original consumer product cost 1M lines of code and 200 person-years to build. Read about how we rewrote Mastodon, a similar product to Twitter, to be fully scalable in only 10k lines of code and nine person-months of time...


-- Kalix: Design, Develop & Run High-Performance Backend Applications FASTER
- Domain Driven Design (DDD) - Declarative programming model with building blocks that help architects simplify domain modeling and handle business logic complexity.
- Built-In best practices - Built on Akka - distributed computing framework that drives creation of reactive, event-driven applications that are high performance, resilient and scalable.
- Infrastructure inferred from code.
- Auto-generated, state-of-the-art, optimized cloud native stack.


P.S. Между тем ChatGPT ожил в России -- просто через впн норм работает со старыми "российскими" логинами гугла, которые раньше OpenAI беспощадно банил. Да только поздновато, как и микрософт (хоть бы их вообще больше никогда не видеть), спохватились: другие сервисы ихнюю долю давно отъели, и обратно уже не отдадут. Поздняк метаться.
❤‍🔥28👍16🤔65🔥4
A casino in Australia gave away millions in cash due to software glitch, recipients charged with fraud.

"Обычно покупатели могут вставить в автоматы TICO два чека, чтобы погасить их одновременно. Сбой означал, что устройства возвращали один из этих билетов для повторного использования."

Очень доволен; это лишь то, о чём рассказывают открыто, а 98% контор скрывают свои баги конечно. Ежемесячно такие истории появляются, и дальше, по мере роста объёмов кода, будет только хуже. Действительно, зачем программистам изучать computer science, АСД, software design? Это же всё "на работе вообще не нужно". И так сойдёт.

Самое интересное, что виноваты в этом как раз не необразованные программисты, а менеджеры, которые на вопросы удалёнщиков (тайно работающих на трёх работах по 500k :) "мой темп и качество норм?" отвечают "да-да" (потому что сами в программной инженерии вообще абсолютный null :).

Почему ситуация скоро изменится (надеюсь), скоро расскажу в вк.
50👍17🤔4💯1😎1
На работе computer science, программная инженерия и software design тебе никогда не понадобятся, говорили они. Просто почитай учебник "System Design. Общие принцип прохождения интервью по проектированию ИТ-систем" (рекомендую кстати к изучению в любом случае :), и норм.

...

Таких отчётов с hard work у меня десятки =>
"просто так получилось" (с) )))
И дальше такого дерьма будет только больше.

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

...Мне кажется, у нас весь проект такой. Т.е. один большой артефакт.
...У нас в проекте долго была проблема, которая рождала множество багов. В проекте есть веб-сокет соединение. Изначально система писалась с расчетом на то, что сообщения будут приходить в определенном порядке. Т.е. синхронно, асинхронность в расчет не была взята. Это не было сделано специально, просто так получилось. И это работало, пока не был переписан бэкендовый сервис, который отправляет сообщения. Он перестал гарантировать порядок сообщений. Из-за этого началось большое количество проблем на фронте, потому что он не был готов к этому вообще. Получается, что следствием этого было возникновение багов, а причина багом не была.
...Был у нас баг, который положил всю систему многим клиентам. Для переводов у нас используется weblate - опен-сорсная библиотека для хранения и версионирования переводов. Он жил в одном инстансе. Он обслуживал все запросы от всех клиентов, потому что все переводы им у себя кэшировались. В какой-то момент, точно не помню из-за чего, этот кэш инвалидировался и все запросы стали идти на сервис. Под нагрузкой он лег, возвращал ошибки, как следствие система не грузилась. Был большой инцидент, много клиентов было затронуто.

...Видите какой уровень вложенность Depends fastapi?
Сначала в каждом сервисе, а точнее - в каждом роутере мы должны сформировать функцию для инъкции в обработчик роута/запроса, которая в свою очередь: А) Парсит Authorization хедер (Зависима на библиотеку связанную с авторизацией, тоже вызывает Depends) Б) Проверяет накостыленный RBAC (некоторые запросы могут игнорировать его, например... Внутренние! Ох уж этот распределенный монолит) С) Наконец формирует экземпляр класа в котором запакована вся CRUD логика для обработки запроса.
Это же какое-то дерьмо.
Это не просто боксинг, это мета-боксинг да еще с кучей зависимостей. Это совсем не читаемо и неудобно, ничего не понятно. Пытаясь разобраться в коде или внести новые изменения в тот же самый post на создание Entity, если мы видим этот код и "стиль" первый, второй, третий или даже четверный раз, нам надо посмотреть в "Сценарий" и еще в 2 библиотки.
Это не неудачная абстракция, это откровенное дерьмо. Пару месяцев назад я видел подход, когда в модель базы добавляли методы для обработки круда fastapi, это примерно один и тот же боксинг, но в последнем больше смысла чем в этом Сценарии.

...Старое приложение хостилось еще на iis, после одного из релизов начало падать и перезагружаться стабильно 1 раз в день.
Провозился я, будучи еще мидлом около месяца с поиском этой ошибки.
Оказалось - рекурсивное событие в коде. Нашли с помощью дампа памяти, который сняли перед падением.
Перепробовали все мелкие фиксы, добавляли памяти, увеличивали лимиты и т д.
Не хватало более широкого понимания картины, для начала стоило:
- понять, когда начала появлятся ошибка;
- пересмотреть код с последних релизов;
- сделать выводы и повторить последние два пункта;


Никакой "практический опыт" никогда не даст вам широкого видения картины в целом, потому что это отдельный (и возможно, самый сложный инженерный) скилл системного мышления.
54👍216🤓2
Нам нужно серьёзно поговорить.
😁606🤯4🐳2👍1
И мы ещё надеемся, что LLM научатся создавать сложные системы, надо просто сделать их покрупнее? Элементарно не понимающих того, что делаешь (ну просто даже из здравого смысла, число мотиков никак не может превышать число бабушек).

P.S. Однако GPT-4o решила верно, хм )
😁69👍123🐳1🤓1
Когда твой проект всё ещё на Java 1.8, а ты уже уходишь на пенсию.

Oracle поддержку 1.8 пока осуществляет кстати -- до марта 2025-го (но только в платном режиме Java SE Subnoscription). Red Hat тоже ровно 2 года ещё обещает суппорт 1.8, и т.п.

Но в любом случае, хотя бы до 1.11 проапгрейдитесь :) В ней пофиксили океан багов, связанных с безопасностью, например.
😁5111👍54🐳1
Пацанчики явно не проходили мой курс по деревьям-графам :) Мои ребята регулярно на нём такие студенческие ошибки делают.

Ну понятно, на работе же это нинужно.

P.S. А так это я читал научные статьи (randomized, double-blind, clinical trial of l-theanine versus placebo), которые доказывают, что разрекламированный L-теамин "сделает из тебя супермена" - на самом деле фейк, не отличающийся по эффективности от плацебо (как и грибочки вроде кордицепса ("Одни из нас"), ежовика...). Ну станешь сонным слегка, и всё.

Лучше тенотен попринимайте, он действительно научно подтверждён.
😁57🤓76🐳3🫡2
В трек "Элитный программист" выложил 50-й материал "Как справиться с непосильным".

Вы проводите большую часть своего времени, просто пытаясь дотянуть до конца рабочего дня, или даже до конца текущего созвона. Вам трудно отвлечься от этой рутины и подумать об оставшейся части 2024-го года. Но оно того стоит, причём это не займёт у вас много времени.
...Но если вы будете думать "
а с чего мне вообще начать?", такое мышление наоборот парализует ваш ум и помешает вам что-либо сделать.
...Даю простой метод из трёх шагов, который я использую, когда что-то кажется непосильным. Он помогает упростить задачу, чтобы выйти из тупика и добиться хотя бы некоторого прогресса.
👍5512🐳4
Исчезнувшие строчки
Маша лениво переписывала задачи из одного списка в другой, без желания что-то действительно начать. Вдруг она заметила, что строки её кода начинают исчезать. Она проверила на вирусы – ничего. На следующий день она пришла в офис и увидела, что место её рабочего стола занял новый сотрудник – продвинутая версия ChatGPT-5. Его код не просто исправлял ошибки, но и оптимизировал все процессы. Начальник сказал, что с такой эффективной заменой ей пора подумать о новой специальности...

Неуловимый алгоритм
Петька всегда писал код с большим количеством ошибок, полагаясь на то, что проверять и исправлять их будут его коллеги. Однажды его команда получила новую версию ChatGPT-5, которая моментально находила ошибки и предлагала оптимальные решения. Вскоре выяснилось, что ChatGPT-5 не просто улучшает код, но и ведёт статистику: кто накосячил, кто ленился. Через месяц к Петру подошёл начальник и вручил уведомление: "Ваши ошибки слишком дорого обходятся компании, а новую работу вас научит искать ChatGPT-5".
👍43😁23🤔72🐳2
Ночная смена
Олег привык работать ночами, пьёт кофе литрами и откладывает задачи до последнего момента. Однажды он получил важный проект, срок сдачи – через неделю. Сидит, ковыряется, ленится. Вдруг компьютер моргнул, и на экране появилась надпись: "Запуск обновления... ChatGPT-5 готов к работе". Программа начала автоматически писать код, оптимизировать, исправлять ошибки, быстро закрывая все задачи. Олег в панике пытался остановить процесс, но напрасно. Через несколько минут весь его проект был завершён, и компьютер сам отправил результаты заказчику. Олег понял, что ему просто не за чем больше оставаться, его работа была сделана идеально и без него. "Зря я тратил ночи на прокрастинацию," - подумал он, глядя на холодный экран.

Обратный отсчёт
На доске в офисе появилось странное сообщение: "Ваша лень будет стоить вам работы через 48 часов". Сотрудники решили, что это чья-то шутка. Прошёл день, а сообщение обновилось: "24 часа". Серёжа не верил и продолжал лениво прокручивать соцсети. На следующий день паника охватила всех: "6 часов до замены". Серёжа наконец решил работать, но было поздно. В штаб пришел инженер с новым модулем ChatGPT-5, который мгновенно стал выполнять все задачи сотрудников. Ровно через 48 часов после первого сообщения все ленивые программисты попрощались с работой.

Секретный проект
Вася был ответственным за важный проект, но начал избегать работы, оправдываясь, что слишком много других дел. Вскоре его начальник пригласил на встречу, сказал, что у него есть секретный инструмент – ChatGPT-5, который может вести проекты самостоятельно. Ещё сутки, и проект был готов, а о Васе больше не вспоминали, ведь искусственный интеллект сделал всё быстрее и лучше. Вася остался один, без работы и без цели, глядя на пустой монитор и вспоминая, как откладывал каждый день.

Каждая из этих историй предупреждает: лень может быть сильно наказана в мире, где искусственный интеллект становится всё более совершенным и эффективным!

(c) 2025 ChatGPT-5o
👍37😁18🤔178🐳4