🔥 Почему Python-библиотеки всё чаще пишут критичные части на Rust
Например, Pydantic v2 использует pydantic-core, написанный на Rust. Связка работает через PyO3: Rust-функции компилируются в нативную библиотеку, после чего Python импортирует её как обычный модуль.
Но есть интересный нюанс: ускорить сам алгоритм недостаточно.
При возврате большого результата Rust должен превратить свои структуры в Python dict, list, str, float и другие объекты. Для больших данных эта конвертация может занимать больше времени, чем сама обработка в Rust.
Главный вывод: если переносите горячий код Python на Rust через PyO3, профилируйте не только вычисления, но и границу между двумя языками.
Иногда именно она съедает весь выигрыш в производительности.
https://belderbos.dev/blog/how-libraries-run-rust-inside-python/
Например, Pydantic v2 использует pydantic-core, написанный на Rust. Связка работает через PyO3: Rust-функции компилируются в нативную библиотеку, после чего Python импортирует её как обычный модуль.
Но есть интересный нюанс: ускорить сам алгоритм недостаточно.
При возврате большого результата Rust должен превратить свои структуры в Python dict, list, str, float и другие объекты. Для больших данных эта конвертация может занимать больше времени, чем сама обработка в Rust.
Главный вывод: если переносите горячий код Python на Rust через PyO3, профилируйте не только вычисления, но и границу между двумя языками.
Иногда именно она съедает весь выигрыш в производительности.
https://belderbos.dev/blog/how-libraries-run-rust-inside-python/
👍7❤4🔥3
Python примеры кода 2026 - практическое руководство на русском языке: разбор лучших примеров кода на Python, современные паттерны Python 3.12–3.14, чистый код, асинхронность, типизация, тестирование и задачи для практики с решениями. Подходит для начинающих, junior- и middle-разработчиков, а также для подготовки к собеседованию по Python.
Ключевые темы: примеры кода Python, лучшие практики Python 2026, python для начинающих, задачи по Python с решениями, чистый код на Python, асинхронный Python, asyncio примеры, типизация в Python, pytest примеры, FastAPI пример, парсинг на Python, подготовка к собеседованию Python, Python 3.14 новые
https://github.com/justxor/python-primery-koda-2026/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4🔥2
Команда открытого движка инференса SGLang добавила эндпоинт
/v1/decisions, который превращает обычную чат-модель в модель для принятия решений.Второй эндпоинт,
/v1/systemone, отдаёт те же решения в формате System One API, который TypeSafe AI представила 19 сентября вместе со своей моделью Jev.API поддерживает выбор из 2–26 вариантов (до 255 с двухбуквенными метками), оценку по шкале из 2–10 уровней и вопрос «да или нет».
SGLang присваивает каждому варианту метку из одного токена - буквы для выбора, цифры для оценки,
yes и no для бинарных вопросов.Затем движок читает логарифмические вероятности следующего токена по всему словарю и переводит их в вероятности через софтмакс с учётом температуры.
Отсюда ограничение - метка обязана укладываться в один токен в позиции ответа.
Решение принимает один вход без истории диалога, а вероятности у холодного запроса и у запроса из префиксного кэша могут расходиться на несколько сотых.
Для демонстрации SGLang заставил Qwen3.8-27B играть в Pokémon FireRed. Модель по текущему состоянию игры выбирала между атакой, сменой покемона и лечением меньше чем за 100 мс на решение и прошла Элитную четвёрку и чемпиона.
Функция доступна в nightly-сборках SGLang из основной ветки. Её проверили на Qwen3.8-27B и Qwen3.5-35B-A3B, другие модели подойдут, если метки ответов укладываются в один токен.
Примеры запросов и описание формата есть в документации SGLang.
@ai_machinelearning_big_data
#news #ai #ml
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
Вопросы на собеседовании Python Senior: 100 вопросов с ответами (2026)
Вопросы на собеседовании Python Senior с ответами: 100 вопросов и примеры кода — CPython, GIL, asyncio, метаклассы, типизация, производительность, Python 3.14.
https://uproger.com/voprosy-na-sobesedovanii-python-senior/
Вопросы на собеседовании Python Senior с ответами: 100 вопросов и примеры кода — CPython, GIL, asyncio, метаклассы, типизация, производительность, Python 3.14.
https://uproger.com/voprosy-na-sobesedovanii-python-senior/
👍9😁2❤1🥰1
20 практик написания Python-кода в 2026 году, когда значительную часть кода пишут ИИ-ассистенты: uv, Ruff, типы, Pydantic, тесты, безопасность зависимостей, t-строки и новое в Python 3.14 и 3.15.
В 2026 году заметная часть Python-кода в командах появляется из Copilot, Claude Code, Cursor и других ассистентов. Код пишется быстрее, и плохие привычки обходятся дороже: агент охотно размножит неудачный паттерн по всему репозиторию, предложит несуществующую библиотеку или напишет код, который никто в команде толком не понимает.
Ниже 20 практик, которые помогают держать качество под контролем. Часть касается инструментов, часть процессов, и почти все одинаково полезны для кода, написанного руками, и для кода, который сгенерировала модель.
https://uproger.com/luchshie-praktiki-python-2026/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2🔥2
Forwarded from Machinelearning
🔎 Google выпустила EmbeddingGemma 2: мультимодальный поиск прямо на устройстве
Модель переводит текст, код, изображения, видео и аудио в единое векторное пространство. Например, позволяет найти нужный снимок по текстовому описанию.
Всего 740 млн параметров:
• 270 млн для текста;
• 170 млн для изображений;
• 300 млн для аудио.
Нужные модули можно подключать отдельно. В оптимизированном запуске на Pixel 11 Pro полная модель использует около 567 МБ активной RAM, текстовая часть около 191 МБ.
Лицензия Apache 2.0 допускает коммерческое использование. Практическое применение: локальный поиск по документам и медиа без отправки данных в облако.
https://deepmind.google/models/gemma/embeddinggemma/
@ai_machinelearning_big_data
#Gemma #Google
Модель переводит текст, код, изображения, видео и аудио в единое векторное пространство. Например, позволяет найти нужный снимок по текстовому описанию.
Всего 740 млн параметров:
• 270 млн для текста;
• 170 млн для изображений;
• 300 млн для аудио.
Нужные модули можно подключать отдельно. В оптимизированном запуске на Pixel 11 Pro полная модель использует около 567 МБ активной RAM, текстовая часть около 191 МБ.
Лицензия Apache 2.0 допускает коммерческое использование. Практическое применение: локальный поиск по документам и медиа без отправки данных в облако.
https://deepmind.google/models/gemma/embeddinggemma/
@ai_machinelearning_big_data
#Gemma #Google
👍7👏3
🔥 Бесплатный курс по Claude Code на русском: от установки до команды агентов
На GitHub выложили Claude Code PRO Course, бесплатный практический курс по Claude Code на русском языке. Он ведёт от первого запуска до настройки многоагентной работы в команде.
Внутри 12 модулей в четырёх уровнях сложности: основы, рабочий процесс, расширения и масштабирование. Сначала установка, промптинг, память проекта через CLAUDE.md, настройки и права доступа. Потом профессиональный рабочий процесс, скиллы и слэш-команды, сабагенты и хуки.
Дальше идут MCP, плагины и маркетплейсы, а в конце headless-режим, CI и GitHub Actions плюс продвинутые техники. Основной упор сделан на управление контекстом, разработку через тесты и автоматизацию через конфигурацию как код.
Теорией курс не ограничивается: есть 8 практических лабораторных, готовый стартовый набор, библиотека промптов и пример собственного плагина. Лицензия MIT.
https://github.com/justxor/claude-code-pro-course
На GitHub выложили Claude Code PRO Course, бесплатный практический курс по Claude Code на русском языке. Он ведёт от первого запуска до настройки многоагентной работы в команде.
Внутри 12 модулей в четырёх уровнях сложности: основы, рабочий процесс, расширения и масштабирование. Сначала установка, промптинг, память проекта через CLAUDE.md, настройки и права доступа. Потом профессиональный рабочий процесс, скиллы и слэш-команды, сабагенты и хуки.
Дальше идут MCP, плагины и маркетплейсы, а в конце headless-режим, CI и GitHub Actions плюс продвинутые техники. Основной упор сделан на управление контекстом, разработку через тесты и автоматизацию через конфигурацию как код.
Теорией курс не ограничивается: есть 8 практических лабораторных, готовый стартовый набор, библиотека промптов и пример собственного плагина. Лицензия MIT.
https://github.com/justxor/claude-code-pro-course
👍5❤2🔥1
Forwarded from Python/ django
Вышел Python 3.15: ленивые импорты, frozendict, UTF-8 по умолчанию и JIT, который наконец ускоряет код
Состоялся стабильный релиз Python 3.15. Над ним поработали 1012 контрибьюторов, в версию вошло 5643 коммита.
Самое заметное для повседневной работы это явные ленивые импорты из PEP 810. Тяжёлые модули вроде torch или transformers теперь можно подгружать только в момент первого обращения, и CLI-утилиты и скрипты стартуют заметно быстрее. Ещё одно долгожданное изменение: UTF-8 наконец стал кодировкой по умолчанию на всех платформах, так что сюрпризы с open() на Windows уходят в прошлое.
В языке появились встроенные типы frozendict и sentinel, а в генераторах списков и словарей теперь работает распаковка через звёздочку. Сообщения об ошибках снова стали понятнее.
Экспериментальный JIT серьёзно доработали. На x86-64 Linux он даёт в среднем 7-8% прироста к стандартному интерпретатору, на Apple Silicon 11-12%. Официальные сборки под Windows перешли на tail-calling интерпретатор, а установщик для macOS по умолчанию ставит поддержку free-threading. Для сборок без GIL появился стабильный ABI, это откроет дорогу бинарным пакетам под многопоточный Python.
Для тех, кто ищет узкие места в коде, в стандартной библиотеке появился отдельный пакет profiling и высокочастотный сэмплирующий профайлер Tachyon. Указатели фреймов теперь включены по умолчанию, и системные профайлеры видят Python-стек без танцев с бубном.
В типизации добавили TypedDict с типизированными дополнительными ключами, TypeForm и disjoint bases.
Один нюанс для маководов: на macOS 27.0 приложения на tkinter, включая IDLE, могут зависать при открытии диалогов. Если работаете с Tk, с обновлением системы лучше подождать.
Бонус от Барри Уорсо: текстовый квест whatsnewt, где каждая из 18 головоломок решается реальной фичей 3.15. Запускается командой uvx --python 3.15 whatsnewt.
https://discuss.python.org/t/python-3-15-0-final-is-here/109415
Состоялся стабильный релиз Python 3.15. Над ним поработали 1012 контрибьюторов, в версию вошло 5643 коммита.
Самое заметное для повседневной работы это явные ленивые импорты из PEP 810. Тяжёлые модули вроде torch или transformers теперь можно подгружать только в момент первого обращения, и CLI-утилиты и скрипты стартуют заметно быстрее. Ещё одно долгожданное изменение: UTF-8 наконец стал кодировкой по умолчанию на всех платформах, так что сюрпризы с open() на Windows уходят в прошлое.
В языке появились встроенные типы frozendict и sentinel, а в генераторах списков и словарей теперь работает распаковка через звёздочку. Сообщения об ошибках снова стали понятнее.
Экспериментальный JIT серьёзно доработали. На x86-64 Linux он даёт в среднем 7-8% прироста к стандартному интерпретатору, на Apple Silicon 11-12%. Официальные сборки под Windows перешли на tail-calling интерпретатор, а установщик для macOS по умолчанию ставит поддержку free-threading. Для сборок без GIL появился стабильный ABI, это откроет дорогу бинарным пакетам под многопоточный Python.
Для тех, кто ищет узкие места в коде, в стандартной библиотеке появился отдельный пакет profiling и высокочастотный сэмплирующий профайлер Tachyon. Указатели фреймов теперь включены по умолчанию, и системные профайлеры видят Python-стек без танцев с бубном.
В типизации добавили TypedDict с типизированными дополнительными ключами, TypeForm и disjoint bases.
Один нюанс для маководов: на macOS 27.0 приложения на tkinter, включая IDLE, могут зависать при открытии диалогов. Если работаете с Tk, с обновлением системы лучше подождать.
Бонус от Барри Уорсо: текстовый квест whatsnewt, где каждая из 18 головоломок решается реальной фичей 3.15. Запускается командой uvx --python 3.15 whatsnewt.
https://discuss.python.org/t/python-3-15-0-final-is-here/109415
🔥8❤6👍1
🐍 Ротация прокси в Python может обходиться без списка IP и `random.choice()`
Если провайдер поддерживает ротацию на шлюзе, скрипт обращается к одному адресу. Выходные IP меняет сам сервис по выбранному режиму. Именно такой подход разобран в статье.
Минимальный пример проверки:
Нюанс: ключ
Ещё важно различать два режима:
• Ротация меняет выходной IP согласно настройкам провайдера.
• Sticky session закрепляет IP на некоторое время.
При этом
https://unlimitedresidentialproxy.com/blog/how-to-rotate-proxies-python
Если провайдер поддерживает ротацию на шлюзе, скрипт обращается к одному адресу. Выходные IP меняет сам сервис по выбранному режиму. Именно такой подход разобран в статье.
Минимальный пример проверки:
import os
import requests
# PROXY_URL: адрес шлюза с учётными данными
proxy = os.environ["PROXY_URL"]
proxies = {"http": proxy, "https": proxy}
for _ in range(5):
r = requests.get(
"https://httpbin.org/ip",
proxies=proxies,
timeout=(5, 15),
)
r.raise_for_status()
print(r.json()["origin"])
Нюанс: ключ
"https" обозначает протокол целевого сайта. Сам адрес прокси при этом может начинаться с http://. Это корректная настройка для HTTP-прокси.Ещё важно различать два режима:
• Ротация меняет выходной IP согласно настройкам провайдера.
• Sticky session закрепляет IP на некоторое время.
При этом
requests.Session() сохраняет cookies и переиспользует соединения, но самостоятельно IP не меняет. Политику ротации нужно проверять у провайдера.https://unlimitedresidentialproxy.com/blog/how-to-rotate-proxies-python
❤1
Media is too big
VIEW IN TELEGRAM
Что нового в Python 3.15? Ленивые импорты, frozendict и JIT быстрее на 12%
Python 3.15 вышел, и в нём много полезного для разработчиков. Ленивые импорты ускоряют запуск, появились frozendict и sentinel, UTF-8 теперь включён по умолчанию, а JIT ускоряет код на 7–12%. Ещё в релизе профилировщик Tachyon, который подключается к живому процессу, новые возможности typing и стабильный ABI для сборок без GIL. Перед обновлением проверьте зависимости и тесты.
Полный разбор: https://uproger.com/python-3-15-chto-novogo/
Видео: https://uproger.com/python-3-15-chto-novogo/
#python #python315 #программирование #разработка #jit
Python 3.15 вышел, и в нём много полезного для разработчиков. Ленивые импорты ускоряют запуск, появились frozendict и sentinel, UTF-8 теперь включён по умолчанию, а JIT ускоряет код на 7–12%. Ещё в релизе профилировщик Tachyon, который подключается к живому процессу, новые возможности typing и стабильный ABI для сборок без GIL. Перед обновлением проверьте зависимости и тесты.
Полный разбор: https://uproger.com/python-3-15-chto-novogo/
Видео: https://uproger.com/python-3-15-chto-novogo/
#python #python315 #программирование #разработка #jit
❤3👍3
Трюк Карпаты сработал: локальная LLM на Mac M5 выдает 117 токенов в секунду
Как open-source движок Uzu от Mirai обходит потолок пропускной способности памяти на Apple M5 и разгоняет Qwen3.5 9B с 22 до 117 токенов в секунду: квантизация, спекулятивный декодинг, Weaver и бенчмарк против llama.cpp и MLX.
https://uproger.com/uzu-uskorenie-lokalnyh-llm-apple-m5/
Как open-source движок Uzu от Mirai обходит потолок пропускной способности памяти на Apple M5 и разгоняет Qwen3.5 9B с 22 до 117 токенов в секунду: квантизация, спекулятивный декодинг, Weaver и бенчмарк против llama.cpp и MLX.
https://uproger.com/uzu-uskorenie-lokalnyh-llm-apple-m5/
👍5❤3🔥1
👁👁 Тестовый собес на Python с разработчиком из Яндекса
[+ ответы на 50 сложных вопросов в подарок]
14 октября в 19:00 (МСК) приходи посмотреть открытое онлайн-собеседование на Python-разработчика.
Интервьюер: Хачатур Саркисян – разработчик из Яндекса, работает с высоконагруженными сервисами, Kafka и микросервисной архитектурой.
На эфире нет сценария ↓
Кандидат – случайный разработчик, который не знает вопросов заранее.
На обычном собесе ты не знаешь, что думает интервьюер, пока не придёт фидбек. На этом эфире Хачатур проговорит всё вслух:
А в конце ответит на твои вопросы.
Эфир проходит в рамках менторской программы от ШОРТКАТ для разработчиков, которые хотят повысить грейд, ЗП и прокачать скиллы!
Участие бесплатное 🔥
🎁 За регистрацию дарим файл с ответами на 50 сложных вопросов с Python-собеседований.
Зарегаться на эфир и забрать подарок можно в боте → @shortcut_py_bot
Реклама.
О рекламодателе.
[+ ответы на 50 сложных вопросов в подарок]
14 октября в 19:00 (МСК) приходи посмотреть открытое онлайн-собеседование на Python-разработчика.
Интервьюер: Хачатур Саркисян – разработчик из Яндекса, работает с высоконагруженными сервисами, Kafka и микросервисной архитектурой.
На эфире нет сценария ↓
Кандидат – случайный разработчик, который не знает вопросов заранее.
На обычном собесе ты не знаешь, что думает интервьюер, пока не придёт фидбек. На этом эфире Хачатур проговорит всё вслух:
— какие вопросы и задачи он даёт кандидатам в бигтехе;
— что в каждом ответе засчитал бы, а что нет – и почему.
А в конце ответит на твои вопросы.
Эфир проходит в рамках менторской программы от ШОРТКАТ для разработчиков, которые хотят повысить грейд, ЗП и прокачать скиллы!
Участие бесплатное 🔥
🎁 За регистрацию дарим файл с ответами на 50 сложных вопросов с Python-собеседований.
Зарегаться на эфир и забрать подарок можно в боте → @shortcut_py_bot
Реклама.
О рекламодателе.
❤1
🐍 Python умеет сравнивать числа как в математике
Проверку диапазона можно записать короче:
Это цепочка сравнений: оба условия должны выполняться. Границы включаются привычным способом:
💡 Есть полезная тонкость: в
Проверку диапазона можно записать короче:
# Вместо
if 60 < heart_rate and heart_rate < 100:
print("В пределах диапазона")
# Пишем
if 60 < heart_rate < 100:
print("В пределах диапазона")
Это цепочка сравнений: оба условия должны выполняться. Границы включаются привычным способом:
0 <= score <= 100
💡 Есть полезная тонкость: в
60 < get_value() < 100 функция вызывается только один раз. А если повторить вызов по обе стороны and, она может выполниться дважды.❤5🤯5🔥1
Python разбирает JSON на 66 ГБ/с: GIL больше не мешает
Свежий бенчмарк: 7,6 ГБ JSON обрабатываются в одном процессе Python примерно за 0,12 секунды. Это около 66 ГБ/с. Ещё пару лет назад такую цифру рядом со словом Python приняли бы за опечатку.
https://uproger.com/python-json-66-gbs-fastsimdjson/
Свежий бенчмарк: 7,6 ГБ JSON обрабатываются в одном процессе Python примерно за 0,12 секунды. Это около 66 ГБ/с. Ещё пару лет назад такую цифру рядом со словом Python приняли бы за опечатку.
https://uproger.com/python-json-66-gbs-fastsimdjson/
👍10❤2
🚩 Мок-собеседование с Senior Python разработчиком за 90₽ вместо 7 900₽
Да! Это не скам – собес правда стоит 90₽ 😎
Мок полезен, если ты ищешь работу, хочешь подняться в грейде или прокачать скиллы
Что внутри:
Дальше можно разбирать фидбек самостоятельно или с ментором. С ментором быстрее: он поможет закрыть пробелы и выйти на новый грейд и более высокую ЗП
МОК проходит в рамках менторской программы от ШОРТКАТ. Открыли всего 50 мест!
Для записи переходи в бота → @shortcut_py_bot
Реклама.
О рекламодателе.
Да! Это не скам – собес правда стоит 90₽ 😎
Мок полезен, если ты ищешь работу, хочешь подняться в грейде или прокачать скиллы
Что внутри:
📂 60 минут настоящего собеса с вопросами и задачами, которые реально задают
📂 подробный фидбек с разбором: что прозвучало сильно, а что стоит подтянуть
Дальше можно разбирать фидбек самостоятельно или с ментором. С ментором быстрее: он поможет закрыть пробелы и выйти на новый грейд и более высокую ЗП
МОК проходит в рамках менторской программы от ШОРТКАТ. Открыли всего 50 мест!
Для записи переходи в бота → @shortcut_py_bot
Реклама.
О рекламодателе.
🌚1
Media is too big
VIEW IN TELEGRAM
Python subprocess не умирает после отмены запроса: как остановить его правильно
Обрыв стрима не завершает подпроцесс: Python продолжает грузить CPU, хотя клиент давно ушёл. Запускайте процесс в отдельной группе (start_new_session=True) и отправляйте os.killpg(SIGTERM) всей группе, а если процесс завис, добивайте SIGKILL и вызывайте await proc.wait().
https://www.youtube.com/shorts/no9DlVbBGdY
Обрыв стрима не завершает подпроцесс: Python продолжает грузить CPU, хотя клиент давно ушёл. Запускайте процесс в отдельной группе (start_new_session=True) и отправляйте os.killpg(SIGTERM) всей группе, а если процесс завис, добивайте SIGKILL и вызывайте await proc.wait().
https://www.youtube.com/shorts/no9DlVbBGdY