PythonTalk
4.77K subscribers
1.46K photos
49 videos
7 files
1.32K links
Привет, меня зовут Олег Булыгин 👋

🐍 Здесь я делюсь полезной информацией для тех, кто пишет код на Python: от разработки до Data Science.

По вопросам: @obulygin91
Download Telegram
🏋️‍♂️ Миссия: сбалансировать нагрузку!

Представьте, что вы менеджер проекта. У вас есть список последовательных задач nums, каждая со своей оценкой трудоемкости (в часах). Вам нужно распределить все эти задачи между k разработчиками.

Правила распределения:
* Каждый разработчик получает непрерывный блок задач из списка.
* Каждый из k разработчиков должен получить хотя бы одну задачу.

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

🎯 Задача:
Написать функцию split_array(nums: list[int], k: int) -> int, которая разбивает nums на k непустых непрерывных подсписков и возвращает минимально возможную наибольшую сумму среди этих подсписков.

Пример 1:
nums = [7, 2, 5, 10, 8], k = 2
Нужно разделить задачи между двумя разработчиками.

* Вариант 1: [7] | [2, 5, 10, 8]. Нагрузка: 7 и 25. Максимальная нагрузка: 25.
* Вариант 2: [7, 2] | [5, 10, 8]. Нагрузка: 9 и 23. Максимальная нагрузка: 23.
* Вариант 3: [7, 2, 5] | [10, 8]. Нагрузка: 14 и 18. Максимальная нагрузка: 18.
* Вариант 4: [7, 2, 5, 10] | [8]. Нагрузка: 24 и 8. Максимальная нагрузка: 24.

Сравниваем максимальные нагрузки: 25, 23, 18, 24. Самая маленькая из них — 18.
➡️ Результат: 18.

Пример 2:
nums = [1, 2, 3, 4, 5], k = 2
* Оптимальное разделение: [1, 2, 3] | [4, 5].
* Нагрузка: 6 и 9. Максимальная нагрузка: 9.
➡️ Результат: 9.

Присылайте решения в комменты 👇🏻
👨‍💻2👍1🔥1🤔1
AI больше не опция. Теперь это приказ👺

Новость-огонь из стана Microsoft. По данным Business Insider, корпорация добра теперь будет учитывать использование своих же AI-инструментов при оценке перформанса сотрудников.

Президент дев-дивизиона Джулия Льюсон прямо так и написала в письме менеджерам:

> «Использование ИИ больше не является опциональным — это основа для каждой роли и каждого уровня».


Говоря по-простому: не нагенерил в GitHub Copilot положенную норму — жди интересных бесед на ревью.

Причина проста до безобразия: сотрудники не очень-то торопятся использовать внутренние AI-сервисы, а тем временем конкуренты вроде Cursor откусывают долю рынка.

Классический менеджерский ход: когда не можешь сделать продукт, которым хочется пользоваться, — просто введи KPI на его использование 🌝
😁7🤯3😱222👍1🤔1🌚1👨‍💻1👀1
Моржовый оператор в Python: полный гайд от основ до хардкорных трюков 🦭

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

Так где же правда? 🤔

Давайте разложим всё по полочкам и разберём не только каноничные примеры с while и list comprehensions, но и копнём глубже:
- 🔥 трюки с any()/all() и f-строками.
- 🤯 Как «морж» помогает в накопительных вычислениях.
- 👺 И, конечно, тёмная сторона: где можно больно выстрелить себе в ногу, попав в ловушки с областью видимости и «ленивыми» вычислениями.

Обо всём этом читайте в статье 👈🏻
1👍721🔥1🙏1🤓1👨‍💻11
✍️ Решения вчерашней задачи

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

def split_array(nums: list[int], k: int) -> int:
def can_split(capacity: int) -> bool:
developers_needed = 1
current_load = 0
for task in nums:
if task > capacity:
return False

if current_load + task <= capacity:
current_load += task
else:
developers_needed += 1
current_load = task

return developers_needed <= k

left, right = max(nums), sum(nums)
ans = right

while left <= right:
mid_capacity = (left + right) // 2
if can_split(mid_capacity):
ans = mid_capacity
right = mid_capacity - 1
else:
left = mid_capacity + 1

return ans


🤔 Как это работает?

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

1. Определяем границы ↔️
- Минимально возможный ответ не может быть меньше самой большой задачи (left = max(nums)).
- Максимально возможный ответ — это когда все задачи достаются одному разработчику (right = sum(nums)).

2. Проверяем гипотезу 🙋
- Берем среднее значение mid_capacity из нашего диапазона [left, right]. Это наша гипотеза: "А можем ли мы разбить задачи так, чтобы ни у кого не было нагрузки больше mid_capacity?".
- Для проверки пишем жадную функцию can_split: она идет по задачам и формирует группы, не превышая лимит mid_capacity. Если для этого потребовалось k или меньше разработчиков — значит, гипотеза верна.

3. Сужаем диапазон 🔎
- Если can_split(mid_capacity) вернула True, значит, такая нагрузка возможна. Мы запоминаем этот удачный результат (ans = mid_capacity) и пытаемся найти еще лучше (меньше): right = mid_capacity - 1.
- Если False — значит, лимит слишком жесткий. Нужно его ослабить: left = mid_capacity + 1.

Этот цикл продолжается, пока left не станет больше right, а в ans останется наилучший из найденных результатов.

📈 Сложность: Время — O(N * log(S)), где N — количество задач, а S — их суммарная трудоемкость. Пространство — O(1).
👍22🔥1👨‍💻1
Король хакатонов, который не умеет программировать 👑

Знакомьтесь, Рене Турсиос. Этот парень за два года посетил 200+ хакатонов и пачками забирал призовые. Прикол в том, что он сам не написал ни строчки кода.

Его секрет? Вайб-кодинг 👨‍💻 Да, он просто мастерски промптил AI-инструменты задолго до того, как это стало мейнстримом.

Чувак — бывший про-игрок в Yu-Gi-Oh!, он привык искать и абьюзить мету. Сначала в картонках, теперь — в IT.

Сейчас он в соло, без единого нанятого разраба, пилит собственный AI-стартап.

Разработчик? Программист? Или надо какое-то новое слово придумывать?
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔8👍3🏆3🔥2😱21👨‍💻11
Делаем подкасты из репозиториев 🎧

Опенсорсный проект GitPodcast превращает любой GitHub-репозиторий в... подкаст! Просто меняете hub на podcast в URL репы – и вуаля, можно слушать полезное о проекте.

🧑‍💻Технологии под капотом: backend на Python с FastAPI, Frontend – Next.js + TypeScript. База – PostgreSQL.

Можно не разворачивать локально, а просто воспользоваться бесплатно на сайте.
🔥221👍1🙏1
ByteDance снова в деле: новый ИИ-агент для программирования 👨‍💻

Китайцы из ByteDance выкатили в опенсорс Trae Agent — еще одного LLM-помощника для инженегров.

На бенчмарке SWE-bench Verified он показывает лучший результат среди опенсорс аналогов (75,2%).

Что под капотом?

🧠 Мульти-LLM: Жрет почти все — OpenAI, Anthropic, Azure, Doubao и OpenRouter. Можно подцепить хоть Claude 3.5 Sonnet, хоть GPT-4o, хоть Llama 3.1.

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

⚙️ Удобный CLI и тулзы: Работает из консоли (trae-cli run "почини мой баг"), умеет в файлы, баш и даже в sequential_thinking для сложных задач. Все шаги логируются в trajectory-файлы для дебага.

По сути это исследовательская платформа и конструктор для создания своих агентов.


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

Ссылка на GitHub: тык сюда
Please open Telegram to view this post
VIEW IN TELEGRAM
👍321🔥1🤔1🙏1
Метод print вызывает встроенную функцию print. А сам метод вызывается через класс, а не через объект.

ЧТО БЫЛО ДАЛЬШЕ?😨
👍44🔥1
Что получим при запуске кода?
Anonymous Quiz
22%
<__main__.SomeClass object at …>
21%
AttributeError
7%
None
14%
SyntaxError
36%
42
🔥421👍1💋1
match-case в Python: полный гайд по структурному сопоставлению ↔️

Если ваша первая мысль при виде match-case из Python 3.10 была: "А, ну наконец-то switch завезли!", то стоит сказать, что это на самом деле, это гораздо больше, чем просто синтаксический сахар для замены громоздких if-elif-else. Его настоящая суперсила заключается в работе со структурой данных.

Хватит городить монструозные if-лесенки!
В гайде мы:
▫️ Начнем с основ на простых примерах, чтобы освоить синтаксис.
▫️ Научимся элегантно парсить команды.
▫️ Перейдем к главной "боевой" задаче — разбору JSON-ответов от API.
▫️ И, конечно, разберем антипаттерны — когда match использовать не нужно, чтобы не усложнить код.
👍73🔥2👨‍💻21
🎨 Носорог Дюрера на matplotlib! Когда художник – Python-разработчик, а муза – гравюра 16-го века.

🦏 Есть такая знаменитая гравюра носорога Альбрехта Дюрера, он её создал в 1515 году по описанию и эскизу, так и не увидев зверя вживую. Она на века стала каноническим изображением носорога, не смотря на неточности.

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

В этом нелегком деле автору активно помогал GitHub Copilot 🤖, который, по его словам, продемонстрировал "энциклопедические знания matplotlib и бесконечное терпение", отвечая на бесконечные "А как сделать вот это?..".

Результат – постер "Современный Носорог", полностью созданный при помощи кода, который можно посмотреть здесь.
🔥64🤔2👍1🙏1
Вышел опенсорсный фреймворк Claude Code Development Kit, который превращает Claude Code в целую ИИ-команду.

Коротко:
- Оркестрация ИИ-агентов: Запускает сразу несколько "специалистов" (безопасник, архитектор, рефакторщик) для одной задачи.
- Самообновляемая документация: ИИ сам анализирует ваши коммиты и обновляет доки. Да, серьезно.
- Контекст, который не теряется: Специальная 3-уровневая система документации, которую ИИ реально понимает и не забывает через 5 минут.
- Хуки и безопасность: Автоматически проверяет код на забытые ключи и пароли перед отправкой во внешние сервисы.

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

👉 Более подробный обзор здесь
👉 Код проекта здесь
🔥7👍21🙏1👌1
Кстати, сами Anthropic, создатели Claude, выкатили целую пачку бесплатных курсов для разработчиков.

Там разное: и про работу с их API напрямую, и через облака Amazon/Google, и про Model Context Protocol.

В первую очередь рекомендовал бы обратить внимание на курс Claude Code in Action.

Если коротко, это практический гайд по их командному AI-ассистенту, который живёт прямо в терминале. Штука, которая умеет читать файлы, выполнять команды, сама править код и интегрироваться с GitHub для ревью пулл-реквестов.

👉🏻 Все курсы лежат здесь, они бесплатные и с сертификатами
5👍3🔥321🙏1🆒1
Встречайте, Kimi K2 от Moonshot AI 🇨🇳

🤯 Что за зверь?
Это MoE-модель на триллион (!!!) параметров, из которых 32 миллиарда — активные. Архитектура основана на DeepSeek V3, но с важными доработками.
Kimi K2 — это так называемая "агентная" модель. Говоря по-простому, это не просто болталка, которая генерит вам текст по запросу, а модель, которая может действовать: анализировать данные, писать и запускать код, исправлять ошибки, работать с инструментами.

В официальном блогпосте есть шикарный пример: модели дают задачу проанализировать данные по зарплатам, найти зависимости, построить графики и в конце сверстать HTML-страничку с результатами и интерактивным калькулятором. Kimi K2 последовательно выполняет 13 шагов в IPython, чтобы получить готовый результат.


И что по бенчмаркам?
В задачах на программирование (бенчмарк SWE-bench) эта модель, работая в "рефлекторном" режиме (без долгого обдумывания), обходит Claude 4 Sonnet и даже GPT-4.1. И это, напомню, открытая модель, которую можно развернуть у себя.

🤖 А что под капотом?
Китайские инженеры не просто скопировали архитектуру. Они использовали модифицированный оптимизатор MuonClip, который позволил им провести тренировку на 15.5 триллионах токенов с нулевой нестабильностью. Никаких "лосс спайков", которыми так славятся большие модели. Чистая, стабильная тренировка.

Ну и главное — деньги.
API у них стоит смешных денег по сравнению с конкурентами:
- $0.60 за миллион входных токенов
- $2.50 за миллион выходных токенов

Это почти в 5 раз дешевле, чем условный Claude 4 Sonnet.

Ссылочки
- Официальный блогпост с примерами
- Код на GitHub
- Веса на Hugging Face
4👍33🙏1
Прогресс не остановить: Google рапортует об успехах ИИ 🚀

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

Если коротко: всё просто великолепно.

Ключевые тезисы из их блога:

▫️ 50% кода (!) Google теперь пишутся с помощью ИИ. То есть объём кода, написанного руками, сравнялся с объёмом, сгенерированным нейронкой.

▫️ Секрет успеха, говорят, в том, что они годами собирали тонны своих внутренних данных о работе инженеров: правки кода, ревью, фиксы багов. И на этом всём обучили свои модели.

▫️ ИИ не только дописывает код, но и помогает исправлять комменты к код-ревью и адаптировать вставленный код под новый контекст.

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

Звучит как идеальный мир, правда? Корпорация добра в очередной раз победила рутину.

Вот только так ли всё радужно на самом деле? 😏

Завтра разберем одно ОЧЕНЬ интересное исследование на этот счёт 🤫
Please open Telegram to view this post
VIEW IN TELEGRAM
😱7🤔33👍21🔥1🙏1🏆1🆒11
А теперь наоборот... ИИ замедляет разрабов? 🐌

Прочитали отчёт от Google, где ИИ уже почти пишет код сам, а разработчики радостно хлопают в ладоши?

А сегодня читайте свежее исследование — ученые провели эксперимент: взяли 16 опытных разрабов из крупных open-source проектов и дали им реальные задачи из их же репозиториев. Половину задач они делали как обычно, а вторую — с использованием самых модных ИИ-инструментов (Claude 3.5/3.7).

И что в итоге?

😱 С ИИ-помощниками разработчики выполняли задачи на 19% медленнее.

Да, вы всё правильно прочитали. Медленнее.

Но самый сок не в этом. Самое смешное — это разрыв между реальностью и восприятием:
- До начала эксперимента разрабы ожидали, что ИИ ускорит их на 24%.
- Даже после того, как они по факту работали медленнее, они всё равно считали, что ИИ ускорил их на 20%.

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


Надо бы мне над собой эксперимент провести 🗒
Please open Telegram to view this post
VIEW IN TELEGRAM
😁104👀31👍1🌚1👾1
ЛОКАЛЬНЫЙ И ОПЕНСОРСНЫЙ AI-КОНСТРУКТОР ПРИЛОЖЕНИЙ 🤔

Все эти ваши облачные AI-билдеры типа v0 или Lovable — это, конечно, круто. Но есть нюансы: подписка, вендор-лок, данные улетают «на деревню дедушке», а иногда и просто тормозит из-за разницы между облачной средой и вашим локальным окружением. Знакомо?

Тут появился Dyad — дерзкий проект, который как v0, только он живёт прямо у вас на компе. Быстрый, приватный и полностью под вашим контролем.

Что в нём такого особенного?

⚡️ Полностью локально. Вся работа происходит на вашей машине. Это значит:
- Приватность: Никакой код и никакие данные никуда не отправляются. Можно даже работать с локальными моделями через Ollama.
- Скорость: Никаких сетевых задержек. Все изменения, превью и откаты происходят мгновенно.
- Никаких проблем с окружением: Что видите, то и получаете. Никаких сюрпризов при переносе на локалхост.

🔑 Свои ключи, любые модели. Вы не привязаны к одному поставщику. Используйте свои API-ключи от чего угодно:
- Gemini 2.5 Pro
- OpenAI GPT-4.1
- Claude Sonnet 3.7
- Любые модели через Ollama

🛠 Не только UI, а полноценный бэкенд. В отличие от многих UI-генераторов, Dyad идет дальше. Благодаря встроенной интеграции с Supabase, вы можете прямо в нём делать:
- Аутентификацию
- Базу данных
- Серверные функции
То есть, можно собрать и запустить полноценный MVP, не выходя из одного приложения.

❤️ Опенсорс и бесплатно. Никаких триалов, подписок и регистраций. Просто скачиваете бинарник под свою систему (Mac, Windows) и начинаете работать. Весь сгенерированный код остается у вас.

👉 Забираем и пробуем здесь: github.com/dyad-sh/dyad
👀 Посмотреть демки и почитать подробнее: dyad.sh
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2🔥22🙏1🌚1
Моя вчерашняя рабочая сессия с Gemini закончилась так.

Как думаете, решение оказалось по итогу рабочим? 😂
Please open Telegram to view this post
VIEW IN TELEGRAM
😁186🤣4🌚1🤪1
Общий сбор! 💪

Есть, кто может порекомендовать курсы / магистерские программы по таким критериям?

◽️Тематика — ИИ и около
◽️Наполнение — не стандартные от основ python и sql к перцептрону, а что-то более интересное (например, агенты, MCP, LLM, всё, что за рамками стандартного джентельменского набора)
◽️Формат — много практики внутри (хакатоны, kaggle, проекты, стартапы)
◽️Уровень — не для совсем начинающих

Ну или максимально приближенное к этому.

Не дайте мне разочароваться в мире, точно что-то должно быть 😳
Please open Telegram to view this post
VIEW IN TELEGRAM
🤓2👀21🤔1