Так, телеграм надругался над постом, поэтому заново 😁
Вечный холивар: Табы vs. Пробелы⚔️ ⚔️
Один из тех споров, который жил, жив и будет жить.
Собрал все основные аргументы в наглядных карточках☝️
Но правильный ответ в этом споре есть, и он не про табы или пробелы. Он про консистентность.
Пишете для себя — делайте как хотите. Хоть вперемешку, интерпретатор схавает (до поры до времени). Но как только вы работаете в команде, личные предпочтения засовываете подальше. Договорились на 4 пробела — значит, 4 пробела. Договорились на табы — значит, табы. Единообразие всегда важнее личных убеждений.
К счастью, почти любая IDE умеет по нажатию на Tab ставить нужное количество пробелов. Так что можно быть ленивым и соответствовать PEP 8 одновременно. Удобно же.
Вечный холивар: Табы vs. Пробелы
Один из тех споров, который жил, жив и будет жить.
Собрал все основные аргументы в наглядных карточках
Но правильный ответ в этом споре есть, и он не про табы или пробелы. Он про консистентность.
Пишете для себя — делайте как хотите. Хоть вперемешку, интерпретатор схавает (до поры до времени). Но как только вы работаете в команде, личные предпочтения засовываете подальше. Договорились на 4 пробела — значит, 4 пробела. Договорились на табы — значит, табы. Единообразие всегда важнее личных убеждений.
К счастью, почти любая IDE умеет по нажатию на Tab ставить нужное количество пробелов. Так что можно быть ленивым и соответствовать PEP 8 одновременно. Удобно же.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥1🙏1
Нейросети теперь сами для себя придумывают экзамены 🧑💻
Все привыкли к бенчмаркам вроде HumanEval, которые давно заезжены и на которых все модели уже натренировались. Как понять, какая LLM реально программирует лучше? И вот Tencent выкатили в опенсорс AutoCodeBenchmark.
Это целый конвейер, который использует LLM, чтобы создавать новые, уникальные задачи по программированию на 20 языках.
Как это работает?
1. Берется простейший кусок кода (типа a+b).
2. LLM получает задание "эволюционировать" его во что-то сложное и написать тесты.
3. Самое главное: сгенерированный код тут же отправляется в безопасную "песочницу" (MultiLanguageSandbox), где он компилируется и выполняется. Если код — нерабочая дичь, он отбраковывается.
4. Только после успешной проверки код превращается в полноценную задачу бенчмарка.
Такой подход "генерация-проверка" гарантирует, что задачи в бенчмарке корректны и решаемы. Это позволяет бесконечно генерировать новые тестовые наборы, которые модели еще не видели. По сути, это новый, куда более честный и масштабируемый способ измерять реальные возможности кодовых LLM.
Описание архитектуры смотрим тут:
▶️ Разбираем AutoCodeBenchmark от Tencent: нейросеть, которая сама придумывает и проверяет задачи по программированию ◀️
Интересно, как скоро модели научатся генерировать бенчмарки, на которых они сами будут выглядеть лучше конкурентов?😊
#щупаем_сорцы
Все привыкли к бенчмаркам вроде HumanEval, которые давно заезжены и на которых все модели уже натренировались. Как понять, какая LLM реально программирует лучше? И вот Tencent выкатили в опенсорс AutoCodeBenchmark.
Это целый конвейер, который использует LLM, чтобы создавать новые, уникальные задачи по программированию на 20 языках.
Как это работает?
1. Берется простейший кусок кода (типа a+b).
2. LLM получает задание "эволюционировать" его во что-то сложное и написать тесты.
3. Самое главное: сгенерированный код тут же отправляется в безопасную "песочницу" (MultiLanguageSandbox), где он компилируется и выполняется. Если код — нерабочая дичь, он отбраковывается.
4. Только после успешной проверки код превращается в полноценную задачу бенчмарка.
Такой подход "генерация-проверка" гарантирует, что задачи в бенчмарке корректны и решаемы. Это позволяет бесконечно генерировать новые тестовые наборы, которые модели еще не видели. По сути, это новый, куда более честный и масштабируемый способ измерять реальные возможности кодовых LLM.
Описание архитектуры смотрим тут:
Интересно, как скоро модели научатся генерировать бенчмарки, на которых они сами будут выглядеть лучше конкурентов?
#щупаем_сорцы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2🙏1 1 1
🔥 Ещё один ИИ-помощник... для GitHub? 🤔
GitFriend — open-source тулза, которая хочет стать вашим лучшим другом при работе с репозиториями.
Что обещают разработчики:
▫️ AI-чат: Задать глупый вопрос по Git или GitHub (на базе Groq), попросить помощи с ошибкой.
▫️ Генератор README.md для проекта.
▫️ Gitmoji: Чтобы помочь вам налепить эмодзи в коммиты 🥴.
Заявлена аутентификация через Google, а в планах – прямая интеграция с GitHub OAuth, чтобы пушить README одной кнопкой, кастомные шаблоны и дашборд активности.
Потыкать онлайн-версию можно тут, а исходники, как водится, на GitHub.
GitFriend — open-source тулза, которая хочет стать вашим лучшим другом при работе с репозиториями.
Что обещают разработчики:
▫️ AI-чат: Задать глупый вопрос по Git или GitHub (на базе Groq), попросить помощи с ошибкой.
▫️ Генератор README.md для проекта.
▫️ Gitmoji: Чтобы помочь вам налепить эмодзи в коммиты 🥴.
Заявлена аутентификация через Google, а в планах – прямая интеграция с GitHub OAuth, чтобы пушить README одной кнопкой, кастомные шаблоны и дашборд активности.
Потыкать онлайн-версию можно тут, а исходники, как водится, на GitHub.
👍2 2🔥1
Сегодняшний пациент — самописные скрипты для отслеживания изменений файлов.
Видел это миллион раз: бесконечный цикл, внутри
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🔥3❤2⚡1🙏1 1
Кроме кода, в любом проекте есть куча менеджмента, маркетинга и прочей рутины, которая откровенно бесит.
Коллеги собрали папку каналов, где как раз разбирают, как всё это оптимизировать и автоматизировать с помощью современных инструментов.
Что внутри:
• Как автоматизировать рутинные процессы, не связанные с кодом. ⚙️
• Практическое применение нейросетей для своих проектов и бизнеса. 🤖
• Как спихнуть на ИИ до 50% работы: от генерации контента до аналитики. 🧠
• Маркетинг для технарей: как сделать так, чтобы ваш продукт заметили. 🚀
• И да, про тот самый «личный бренд» 👨💻
Забирайте папку и изучайте:
👉 https://t.iss.one/addlist/9kSSGH72xH9hMDBi
Коллеги собрали папку каналов, где как раз разбирают, как всё это оптимизировать и автоматизировать с помощью современных инструментов.
Что внутри:
• Как автоматизировать рутинные процессы, не связанные с кодом. ⚙️
• Практическое применение нейросетей для своих проектов и бизнеса. 🤖
• Как спихнуть на ИИ до 50% работы: от генерации контента до аналитики. 🧠
• Маркетинг для технарей: как сделать так, чтобы ваш продукт заметили. 🚀
• И да, про тот самый «личный бренд» 👨💻
Забирайте папку и изучайте:
👉 https://t.iss.one/addlist/9kSSGH72xH9hMDBi
👍3🔥1👌1
"Играем" в MMORPG, где вашим персонажем управляет Python-скрипт 🎮
Игруха Artifacts — это бесплатная сэндбокс-MMORPG, где каждое действие персонажа — это HTTP-запрос. Вся "игра" — это, по сути, написание умного бота для самого себя. И это основная механика, а не читерство.
Можно управлять сразу 5-ю персами, создав полностью автономный отряд🤖 . Один рубит лес, второй добывает руду, третий крафтит шмот, двое других этим шмотом зачищают локи от мобов. А вы сидите, пьете кофе и смотрите.
🐍 Как это работает на Python?
Для основы не нужно ничего, кроме библиотеки
1️⃣ Регистрируемся на сайте и создаем персонажа.
2️⃣ Находим свой токен в профиле. Это ваш ключ к API, держите его в секрете.
3️⃣ Пишем код.
Допустим, ваш ник
Вот как будет выглядеть ваш первый скрипт:
Все! Аналогично делаются запросы на бой, сбор ресурсов, крафт. Меняется только эндпоинт (вместо
Идеальный тренажер для новичков, чтобы на практике понять API, и шикарная "песочница" для опытных, чтобы построить сложные цепочки автоматизации.
Игруха Artifacts — это бесплатная сэндбокс-MMORPG, где каждое действие персонажа — это HTTP-запрос. Вся "игра" — это, по сути, написание умного бота для самого себя. И это основная механика, а не читерство.
Можно управлять сразу 5-ю персами, создав полностью автономный отряд
Для основы не нужно ничего, кроме библиотеки
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👍3 2🔥1🙏1🆒1
🇨🇳 Alibaba выкатили свой бесплатный ИИ-редактор кода — Qoder.
Разрабы называют его "агентной платформой для программирования", которая понимает всю кодовую базу и её архитектуру, а не только открытый файл.
Главная фича — Quest Mode:
Ты текстом описываешь задачу со всеми спеками, а агент сам планирует, пишет код, тестирует и вносит правки в проект. Асинхронно.
Что ещё интересного:
- Под капотом пачка моделей (Claude, GPT, Gemini и др.), которые подбираются автоматом под задачу.
- Запоминает контекст и твой стиль кода.
- Пока что полностью бесплатно на время превью.
Хороший подгон, с учетом того, что Trae, который был временно бесплатный и я его использовал, стал платным (ну почти, бесплатно там теперь только Gemini Flash).
Пошел тестировать☕️
#тулбокс
Разрабы называют его "агентной платформой для программирования", которая понимает всю кодовую базу и её архитектуру, а не только открытый файл.
Главная фича — 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-разработчиков — новички.
2️⃣ 83% сидят на старых версиях Python, сжигая миллионы.
Это, конечно, только верхушка. Про взлет FastAPI, тотальное доминирование Rust и революцию в инструментах я расписал в материале на Дзен.
🫱🏻Читать: Половина — новички, а миллионы сгорают на ровном месте. Разбор отчета JetBrains◀️ ◀️
Вышел свежий "The State of Python 2025" от JetBrains. Вот парочка самых интересных тезисов:
Да-да, 50% имеют меньше 2 лет проф. опыта. КАЖДЫЙ ВТОРОЙ.
Отчет показывает, что переход, например, с Python 3.10 на 3.13 дает +42% к скорости. БЕЗ ИЗМЕНЕНИЯ КОДА.
А компании могли бы экономить сотни тысяч, а то и миллионы долларов в год на облаках. Но кому-то просто "некогда" поменять цифру в Dockerfile.
Это, конечно, только верхушка. Про взлет FastAPI, тотальное доминирование Rust и революцию в инструментах я расписал в материале на Дзен.
🫱🏻Читать: Половина — новички, а миллионы сгорают на ровном месте. Разбор отчета JetBrains
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2 1
Говорят, в Python всё логично и предсказуемо. Ага, конечно.
Давайте начнём небольшой марафон по одной интересной теме с этого простенького, на первый взгляд, вопроса.
#квиз
Давайте начнём небольшой марафон по одной интересной теме с этого простенького, на первый взгляд, вопроса.
#квиз
👍3🔥3👨💻1👀1🆒1 1
Что получим при запуске кода?
Anonymous Quiz
11%
[]
2%
()
30%
1
30%
True
11%
False
9%
SyntaxError
8%
TypeError
👍3🔥3👨💻3🙏2 2⚡1
Окей, с первым квизом кто-то справился. Но вы же не думали, что на этом всё? 😈
Давайте копнём в другую область — цепочки сравнений. Все же знают, как они работают, правда?
Тогда этот код не вызовет у вас никаких проблем. Или вызовет?
#квиз
Давайте копнём в другую область — цепочки сравнений. Все же знают, как они работают, правда?
Тогда этот код не вызовет у вас никаких проблем. Или вызовет?
#квиз
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2⚡1🔥1🙏1👌1 1
👍4 4🔥3❤1🙏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
👍4⚡1🔥1 1
Что получим при запуске кода?
Anonymous Quiz
13%
Да что ты к нам пристал со своими ребусами?
13%
1
13%
False
15%
(1, )
10%
[1]
27%
True
10%
SyntaxError
👍4 3🔥2
Чего там с квизами? Как справились?
Пришло время ответить на главный вопрос: "ДА ПОЧЕМУ ОНО ТАК РАБОТАЕТ?!"
Вот вам исчерпывающий материал, который раз и навсегда объяснит всю подноготную логических операторов в Python.
Благодаря статье вы узнаете:
- Почему
- Что такое Truthy и Falsy, и почему пустой список
- Как работает "short-circuit" (ленивые вычисления) и как с его помощью писать более эффективный код.
- В чем подвох цепочек сравнения типа
👉🏻 ЧИТАТЬ СТАТЬЮ И ПРОЗРЕВАТЬ
А если хотите быстро без сильного погружения пробежаться по всем нюансам в lite-режиме, то вам вам упрощенный вариант на Дзен 👈🏻
#это_база
Пришло время ответить на главный вопрос: "ДА ПОЧЕМУ ОНО ТАК РАБОТАЕТ?!"
Вот вам исчерпывающий материал, который раз и навсегда объяснит всю подноготную логических операторов в Python.
Благодаря статье вы узнаете:
- Почему
and
и or
на самом деле не логические операторы, а хитрые "операторы выбора".- Что такое Truthy и Falsy, и почему пустой список
[]
для Python — это ложь, а список с None
внутри — правда.- Как работает "short-circuit" (ленивые вычисления) и как с его помощью писать более эффективный код.
- В чем подвох цепочек сравнения типа
a < b < c == True
и как не выстрелить себе в ногу.👉🏻 ЧИТАТЬ СТАТЬЮ И ПРОЗРЕВАТЬ
А если хотите быстро без сильного погружения пробежаться по всем нюансам в lite-режиме, то вам вам упрощенный вариант на Дзен 👈🏻
#это_база
👍10✍3❤3 2⚡1🔥1🙏1🆒1
Заканчиваем блок по хитростям логических операторов разбором вчерашней задачки 🧠
Если вы уже прочитали статейку, то знаете, что у этой задачи есть элегантное математическое решение, которое работает практически мгновенно, без всяких циклов и рекурсий.
Секрет в свойстве остатка от деления на 9. Цифровой корень любого числа (кроме тех, что кратны 9) — это просто остаток от деления этого числа на 9. Если же число кратно 9, его цифровой корень равен 9.
Вот как это выглядит в коде:
А вот вариант, который как раз использует
Как это работает?
-
- Но для
- Если
- Если
Временная сложность:
Пространственная сложность:
#алгособес
Если вы уже прочитали статейку, то знаете, что у этой задачи есть элегантное математическое решение, которое работает практически мгновенно, без всяких циклов и рекурсий.
Секрет в свойстве остатка от деления на 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
. Если n
— 0
, то 0 and 9
вернет 0
. Магия! ✨Временная сложность:
O(1)
— быстрее некуда.Пространственная сложность:
O(1)
.#алгособес
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
PythonTalk
Алгоритмическая задачка 🐍
Так, с квизами размялись, теперь давайте поработаем руками. Задачка классическая, но с изюминкой в решении, которую мы потом обсудим.
Представьте, что у вас есть число, и вам нужно было сложить все его цифры. Если получается не…
Так, с квизами размялись, теперь давайте поработаем руками. Задачка классическая, но с изюминкой в решении, которую мы потом обсудим.
Представьте, что у вас есть число, и вам нужно было сложить все его цифры. Если получается не…
👍6❤2🔥2⚡1 1