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

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

По вопросам: @obulygin91
Download Telegram
Нейросети теперь сами для себя придумывают экзамены 🧑‍💻

Все привыкли к бенчмаркам вроде HumanEval, которые давно заезжены и на которых все модели уже натренировались. Как понять, какая LLM реально программирует лучше? И вот Tencent выкатили в опенсорс AutoCodeBenchmark.

Это целый конвейер, который использует LLM, чтобы создавать новые, уникальные задачи по программированию на 20 языках.

Как это работает?
1. Берется простейший кусок кода (типа a+b).
2. LLM получает задание "эволюционировать" его во что-то сложное и написать тесты.
3. Самое главное: сгенерированный код тут же отправляется в безопасную "песочницу" (MultiLanguageSandbox), где он компилируется и выполняется. Если код — нерабочая дичь, он отбраковывается.
4. Только после успешной проверки код превращается в полноценную задачу бенчмарка.

Такой подход "генерация-проверка" гарантирует, что задачи в бенчмарке корректны и решаемы. Это позволяет бесконечно генерировать новые тестовые наборы, которые модели еще не видели. По сути, это новый, куда более честный и масштабируемый способ измерять реальные возможности кодовых LLM.

Описание архитектуры смотрим тут:
▶️Разбираем AutoCodeBenchmark от Tencent: нейросеть, которая сама придумывает и проверяет задачи по программированию ◀️

Интересно, как скоро модели научатся генерировать бенчмарки, на которых они сами будут выглядеть лучше конкурентов? 😊

#щупаем_сорцы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2🙏111
🔥 Ещё один ИИ-помощник... для GitHub? 🤔

GitFriend — open-source тулза, которая хочет стать вашим лучшим другом при работе с репозиториями.

Что обещают разработчики:
▫️ AI-чат: Задать глупый вопрос по Git или GitHub (на базе Groq), попросить помощи с ошибкой.
▫️ Генератор README.md для проекта.
▫️ Gitmoji: Чтобы помочь вам налепить эмодзи в коммиты 🥴.

Заявлена аутентификация через Google, а в планах – прямая интеграция с GitHub OAuth, чтобы пушить README одной кнопкой, кастомные шаблоны и дашборд активности.

Потыкать онлайн-версию можно тут, а исходники, как водится, на GitHub.
👍22🔥1
👨‍💻 Минутка почти еженедельной рубрики «какого черта вы это делаете руками в 2025?».

Сегодняшний пациент — самописные скрипты для отслеживания изменений файлов.

Видел это миллион раз: бесконечный цикл, внутри os.walk, time.sleep(1) и сверка mtime. Наивный, прожорливый и кривой костыль, который жрет CPU впустую, даже когда ничего не происходит. Чуть лучше — взять старый-добрый watchdog.

Но есть watchfiles.

Это библиотека с ядром на Rust, использующее нативные API ОС (inotify на Linux, FSEvents на macOS и т.д.), и удобная обертка на Python. Пока событий нет — потребление ресурсов нулевое. Реакция мгновенная.

Это тот же паттерн, что и у Ruff, Polars или uv: тяжелую, низкоуровневую работу, где важна производительность, мы делегируем нативному коду. А в Python оставляем удобство и бизнес-логику.

Я тут расписал все это в деталях: заглянул под капот watchfiles, сравнил с watchdog и самописными костылями, показал, как пользоваться CLI и для чего это вообще нужно в разработке.

👉 Читать: watchfiles: руководство по эффективному мониторингу файлов в Python

Или вы до сих пор считаете, что while True + os.walk — это норм? Расскажите, почему 🌚

#это_база
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥321🙏11
Кроме кода, в любом проекте есть куча менеджмента, маркетинга и прочей рутины, которая откровенно бесит.

Коллеги собрали папку каналов, где как раз разбирают, как всё это оптимизировать и автоматизировать с помощью современных инструментов.

Что внутри:
• Как автоматизировать рутинные процессы, не связанные с кодом. ⚙️
• Практическое применение нейросетей для своих проектов и бизнеса. 🤖
• Как спихнуть на ИИ до 50% работы: от генерации контента до аналитики. 🧠
• Маркетинг для технарей: как сделать так, чтобы ваш продукт заметили. 🚀
• И да, про тот самый «личный бренд» 👨‍💻

Забирайте папку и изучайте:
👉 https://t.iss.one/addlist/9kSSGH72xH9hMDBi
👍3🔥1👌1
"Играем" в MMORPG, где вашим персонажем управляет Python-скрипт 🎮

Игруха Artifacts — это бесплатная сэндбокс-MMORPG, где каждое действие персонажа — это HTTP-запрос. Вся "игра" — это, по сути, написание умного бота для самого себя. И это основная механика, а не читерство.

Можно управлять сразу 5-ю персами, создав полностью автономный отряд 🤖. Один рубит лес, второй добывает руду, третий крафтит шмот, двое других этим шмотом зачищают локи от мобов. А вы сидите, пьете кофе и смотрите.

🐍 Как это работает на Python?

Для основы не нужно ничего, кроме библиотеки requests.

1️⃣ Регистрируемся на сайте и создаем персонажа.
2️⃣ Находим свой токен в профиле. Это ваш ключ к API, держите его в секрете.
3️⃣ Пишем код.

Допустим, ваш ник CodeWarlock и вы хотите переместить его на клетку (0, 1), где пасутся нубские курицы для фарма.

Вот как будет выглядеть ваш первый скрипт:

import requests
import time

# --- Ваши данные ---
MY_TOKEN = "Bearer ВАШ_TOKEN_СЮДА"
CHARACTER_NAME = "CodeWarlock"
BASE_URL = "https://api.artifactsmmo.com/my"

# --- Заголовки для всех запросов ---
headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": MY_TOKEN
}

def move_character(x, y):
"""Отправляет персонажа на указанные координаты."""
url = f"{BASE_URL}/{CHARACTER_NAME}/action/move"
payload = {"x": x, "y": y}

try:
response = requests.post(url, headers=headers, json=payload)
response.raise_for_status() # Проверит на ошибки HTTP (типа 4xx, 5xx)

data = response.json()
print(f"Перемещаемся на ({x}, {y})...")

# После любого действия есть кулдаун. Его нужно дождаться.
cooldown = data.get('cooldown', 0)
print(f"Кулдаун: {cooldown} секунд. Ждем...")
time.sleep(cooldown)
print("Готов к следующему действию!")

except requests.exceptions.RequestException as e:
print(f"Ошибка запроса: {e}")
# Тут можно посмотреть тело ответа, чтобы понять, что не так
if 'response' in locals():
print(f"Ответ сервера: {response.text}")

# --- Запускаем нашего "игрока" ---
if __name__ == "__main__":
# Двигаемся на клетку с курицами
move_character(0, 1)

# Тут можно добавить следующую логику:
# fight_monster("chicken")
# ...и так далее


Все! Аналогично делаются запросы на бой, сбор ресурсов, крафт. Меняется только эндпоинт (вместо /move будет /fight) и payload.

Идеальный тренажер для новичков, чтобы на практике понять API, и шикарная "песочница" для опытных, чтобы построить сложные цепочки автоматизации.
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍32🔥1🙏1🆒1
🇨🇳 Alibaba выкатили свой бесплатный ИИ-редактор кода — Qoder.

Разрабы называют его "агентной платформой для программирования", которая понимает всю кодовую базу и её архитектуру, а не только открытый файл.

Главная фича — Quest Mode:
Ты текстом описываешь задачу со всеми спеками, а агент сам планирует, пишет код, тестирует и вносит правки в проект. Асинхронно.

Что ещё интересного:
- Под капотом пачка моделей (Claude, GPT, Gemini и др.), которые подбираются автоматом под задачу.
- Запоминает контекст и твой стиль кода.
- Пока что полностью бесплатно на время превью.

Хороший подгон, с учетом того, что Trae, который был временно бесплатный и я его использовал, стал платным (ну почти, бесплатно там теперь только Gemini Flash).

Пошел тестировать ☕️

#тулбокс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍1🎉1🙏1👨‍💻1🆒1
Два интересных факта из нового отчета JetBrains 🤔

Вышел свежий "The State of Python 2025" от JetBrains. Вот парочка самых интересных тезисов:

1️⃣ Половина Python-разработчиков — новички.
Да-да, 50% имеют меньше 2 лет проф. опыта. КАЖДЫЙ ВТОРОЙ.


2️⃣ 83% сидят на старых версиях Python, сжигая миллионы.
Отчет показывает, что переход, например, с Python 3.10 на 3.13 дает +42% к скорости. БЕЗ ИЗМЕНЕНИЯ КОДА.
А компании могли бы экономить сотни тысяч, а то и миллионы долларов в год на облаках. Но кому-то просто "некогда" поменять цифру в Dockerfile.


Это, конечно, только верхушка. Про взлет FastAPI, тотальное доминирование Rust и революцию в инструментах я расписал в материале на Дзен.
🫱🏻Читать: Половина — новички, а миллионы сгорают на ровном месте. Разбор отчета JetBrains ◀️◀️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥11
Говорят, в Python всё логично и предсказуемо. Ага, конечно.

Давайте начнём небольшой марафон по одной интересной теме с этого простенького, на первый взгляд, вопроса.

#квиз
👍3🔥3👨‍💻1👀1🆒11
Что получим при запуске кода?
Anonymous Quiz
11%
[]
2%
()
30%
1
29%
True
11%
False
9%
SyntaxError
8%
TypeError
👍3🔥3👨‍💻321🙏1
Окей, с первым квизом кто-то справился. Но вы же не думали, что на этом всё? 😈

Давайте копнём в другую область — цепочки сравнений. Все же знают, как они работают, правда?
Тогда этот код не вызовет у вас никаких проблем. Или вызовет?

#квиз
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍21🔥1🙏1👌11
Что получим при запуске кода?
Anonymous Quiz
50%
True
4%
None
27%
False
14%
SyntaxError
5%
15
👍44🔥31🙏1👌1
Алгоритмическая задачка 🐍

Так, с квизами размялись, теперь давайте поработаем руками. Задачка классическая, но с изюминкой в решении, которую мы потом обсудим.

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

🎯 Задача:
Напишите функцию digital_root(n: int) -> int, которая принимает на вход целое положительное число n. Функция должна складывать все цифры этого числа до тех пор, пока результат не станет однозначным числом (то есть меньше 10). Именно это однозначное число и нужно вернуть.

Примеры для ясности:

Вход: n = 942
Шаг 1: 9 + 4 + 2 = 15 (результат двузначный, продолжаем)
Шаг 2: 1 + 5 = 6 (результат однозначный, останавливаемся)
Результат: 6


Вход: n = 16 -> 1 + 6 = 7 -> 7


Вход: n = 493193 -> 4+9+3+1+9+3 = 29 -> 2+9 = 11 -> 1+1 = 2 -> 2


Жду ваши элегантные и не очень решения в комментариях! 👇🏻
🔥3👍1🙏1👌1
Давайте вернемся к логическим операторам.
С or многие из вас уже ошиблись. А что насчет оператора and? Думаете, он проще? Как бы не так.

Вот вам финальная задачка из этого цикла. И уже завтра вы получите ответ на вопрос: "🤔 ДА ПАЧАМУ?!".

#квиз
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🔥11
Чего там с квизами? Как справились?

Пришло время ответить на главный вопрос: "ДА ПОЧЕМУ ОНО ТАК РАБОТАЕТ?!"

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

Благодаря статье вы узнаете:
- Почему and и or на самом деле не логические операторы, а хитрые "операторы выбора".
- Что такое Truthy и Falsy, и почему пустой список [] для Python — это ложь, а список с None внутри — правда.
- Как работает "short-circuit" (ленивые вычисления) и как с его помощью писать более эффективный код.
- В чем подвох цепочек сравнения типа a < b < c == True и как не выстрелить себе в ногу.

👉🏻 ЧИТАТЬ СТАТЬЮ И ПРОЗРЕВАТЬ

А если хотите быстро без сильного погружения пробежаться по всем нюансам в lite-режиме, то вам вам упрощенный вариант на Дзен 👈🏻

#это_база
👍103321🔥1🙏1🆒1
Заканчиваем блок по хитростям логических операторов разбором вчерашней задачки 🧠

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

Секрет в свойстве остатка от деления на 9. Цифровой корень любого числа (кроме тех, что кратны 9) — это просто остаток от деления этого числа на 9. Если же число кратно 9, его цифровой корень равен 9.

Это работает, потому что любое число N и сумма его цифр S(N) всегда дают одинаковый остаток при делении на 9.


Вот как это выглядит в коде:
def digital_root(n: int) -> int:
if n == 0:
return 0
return (n - 1) % 9 + 1


А вот вариант, который как раз использует or и and, еще более лаконичен и покрывает все случаи, включая n = 0:
def digital_root(n: int) -> int:
return n % 9 or n and 9


Как это работает?
- n % 9 вернет остаток от деления. Для 16 это 7. Для 942 это 6.
- Но для 9, 18 и т.д. n % 9 вернет 0. Здесь в игру вступает or.
- Если n % 9 — не ноль, Python вернет его. Если ноль, он пойдет ко второй части: n and 9.
- Если n не ноль (например, 18), n and 9 вернет 9. Если n0, то 0 and 9 вернет 0. Магия!

Временная сложность: O(1) — быстрее некуда.
Пространственная сложность: O(1).

#алгособес
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥211
👨‍🏭 Сварщики > DevOps-инженеры? Что происходит с зарплатами в IT.

Тут вышли сразу две занятные новости про зарплаты, которые в сумме дают очень интересную картину.

Новость первая (исследование hh.ru): Сварщики внезапно возглавили топ самых высокооплачиваемых профессий в России за август. Средняя предлагаемая зарплата — 228 тыс. рублей. В топ-3 также вошли DevOps-инженер (200 тыс.) и Data Scientist (200 тыс.).

Вы только вдумайтесь: профессия, не связанная с IT, по предлагаемым деньгам обгоняет топовые айтишные роли. Причем рост у сварщиков какой-то бешеный — еще в мае им предлагали 129 тыс., а тут такой скачок.

Новость вторая (исследование Dream Job): В IT один из самых высоких "гигиенических минимумов" — это планка, ниже которой спецы уже не готовы работать. И она составляет 180-200 тыс. рублей. При этом реальные средние зарплаты, по их данным, такие:
▫️Backend-разработчик: 200 тыс.
▫️Data Scientist: 260 тыс.

🧐 А теперь давайте сложим два и два.

Получается парадокс. Рынок труда готов предлагать новым сварщикам больше, чем новым девопсам. Одновременно с этим, уже работающие дата сайентисты в среднем получают 260к, а в новых вакансиях им предлагают 200к. Это что, рынок так охладился или просто спрос на рабочие руки сейчас абсолютно ненормальный?

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

Самое любопытное в исследовании Dream Job — тезис о том, что как только "гигиенический минимум" достигнут, деньги перестают быть главным мотиватором. На первый план выходят другие вещи: коллектив, задачи, миссия.

Пора идти на курсы сварщиков ?
4👍2🔥1😁1🙏1
🚨 Ультиматум от CEO Coinbase: внедряй AI или уволен.

Помните, я писал про Canva, Microsoft и ещё одну компанию, которые теперь требуют от кандидатов использовать AI на собеседованиях? Тренд продолжается.

CEO криптобиржи Coinbase, Брайан Армстронг, форсирует внедрение AI в компании максимально жесткими методами.

Он поставил инженерам ультиматум: освоить AI-инструменты до конца недели. Тех, кто не выполнил требование без уважительной причины (вроде отпуска), просто уволили после личной встречи в субботу.

Зачем такая спешка? Армстронг в подкасте объяснил, что его не устроили прогнозы о внедрении за "квартал или два". Он поставил новую, куда более агрессивную цель: добиться, чтобы к концу текущего квартала 50% кода в Coinbase писалось с помощью AI.

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

Источник тут 👈🏻

Все происходит так, как и было очевидно ещё года полтора назад 🌝
💩3👍1🔥111
👨‍💻 Ночной подгон от Маска: xAI тихонько выкатили Grok Code

Пока все спали, команда xAI без лишнего шума зарелизила новую модель grok-4-code, заточенную под программирование.

Это гибридная модель с 37B активными параметрами и контекстным окном в 262K токенов. Раньше она светилась под кодовым именем «sonic», и первые тестеры в восторге от её скорости и точности. Бенчмарков пока нет.

Её уже завезли в:
▫️GitHub Copilot (для планов Pro, Pro+, Business и Enterprise) в VS Code. Нужно включить в настройках модели.
▫️
Cursor (вообще для всех).

Ну и на openrouter доступна по api и демо в чате.

И главное — и там, и там есть бесплатный тестовый период до 2 сентября! 🤩
👍42🔥1🙏1👌1
Попробовал я в режиме вайб-кодинга перенести свой сайт на другой стек при помощи Qoder... Опять провал 😳

Пока все эти мемы актуальны. Да, казино всё удобнее, красивее, но это по прежнему казино 🎰
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁123👍2🔥211