🛡 Вышел Python 3.10.20 (Security Release)
Если ваши проекты всё ещё крутятся на ветке 3.10, пришло время обновиться.
Вчера, 3 марта 2026 года, вышел критический патч безопасности для серии 3.10.
Разработчики закрыли сразу несколько серьезных дыр, которые могли привести к инъекциям и отказам в обслуживании (DoS):
🔛 Исправлены ошибки в
🔛 Обновлена библиотека
🔛 Модули
🔛 Исправлены критические ошибки «use-after-free» в модуле
Если вы до сих пор на 3.10 — это серьезный повод запланировать миграцию на Python 3.14 (текущий стабильный релиз). В новых версиях не только безопаснее, но и значительно быстрее.
🔗 Полный чейнджлог: https://clc.to/9505nQ
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Если ваши проекты всё ещё крутятся на ветке 3.10, пришло время обновиться.
Вчера, 3 марта 2026 года, вышел критический патч безопасности для серии 3.10.
Разработчики закрыли сразу несколько серьезных дыр, которые могли привести к инъекциям и отказам в обслуживании (DoS):
email.generator, которые позволяли подделывать заголовки писем.libexpat до версии 2.7.4. Это защита от вредоносных XML-файлов, которые могли переполнить память сервера.http.cookies и wsgiref теперь жестко блокируют управляющие символы, предотвращая манипуляции с заголовками.ssl и при сравнении списков, которые могли привести к падению интерпретатора или выполнению произвольного кода.Если вы до сих пор на 3.10 — это серьезный повод запланировать миграцию на Python 3.14 (текущий стабильный релиз). В новых версиях не только безопаснее, но и значительно быстрее.
🔗 Полный чейнджлог: https://clc.to/9505nQ
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤3
🐍 Лексикографический порядок в Python
Почему в Python
Python не просто знает алфавит, он смотрит на Unicode-код каждого символа.
✅ Сравнение идет посимвольно: первая пара, вторая и т.д.
✅ Как только найдено различие — результат готов.
✅ Если одна строка — префикс другой (напр.
Любая последовательность в Python (списки, кортежи, байтовые строки) сравнивается точно так же — индекс за индексом.
Пример с кортежами:
Это свойство Python безумно полезно, когда нужно отсортировать данные по нескольким критериям сразу. Просто упакуйте их в кортежи.
Пример: Сортируем студентов по году выпуска, а затем по фамилии:
Python сначала сравнит годы, а при равенстве — фамилии sorted_students = sorted(students)
Результат: Anders (1977), затем Gonzalez (1978), затем Little (1978)
Главные выводы:
1. Заглавные буквы в Unicode идут раньше строчных. Чтобы сортировка была честной, используйте
2. Вы не можете сравнить список и кортеж или строку и число — Python выдаст
3. Если нужно отсортировать объекты по приоритету, создайте список кортежей
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Почему в Python
"apple" > "animal" возвращает True, а "Apple" < "apple" — тоже True? Всё дело в лексикографическом порядке.Python не просто знает алфавит, он смотрит на Unicode-код каждого символа.
"cat" и `"catastrophe"`), то та, что короче, считается «меньшей».Любая последовательность в Python (списки, кортежи, байтовые строки) сравнивается точно так же — индекс за индексом.
Пример с кортежами:
x = (45, 1, 13)
y = (45, 7, 4)
print(x < y) # True, потому что на индексе [1] единица меньше семерки.
Это свойство Python безумно полезно, когда нужно отсортировать данные по нескольким критериям сразу. Просто упакуйте их в кортежи.
Пример: Сортируем студентов по году выпуска, а затем по фамилии:
students = [
(1978, "Little"),
(1978, "Gonzalez"),
(1977, "Anders"),
]
Python сначала сравнит годы, а при равенстве — фамилии sorted_students = sorted(students)
Результат: Anders (1977), затем Gonzalez (1978), затем Little (1978)
Главные выводы:
1. Заглавные буквы в Unicode идут раньше строчных. Чтобы сортировка была честной, используйте
.lower().2. Вы не можете сравнить список и кортеж или строку и число — Python выдаст
TypeError.3. Если нужно отсортировать объекты по приоритету, создайте список кортежей
(приоритет, объект).📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3
⚡️ Google представил CEL-expr-python: мощный язык правил теперь нативно в Python
Google официально открыл исходный код CEL-expr-python — реализации Common Expression Language (CEL) для Python.
Если вы строите системы, где нужно безопасно вычислять условия «на лету» (например, правила доступа или валидацию данных), этот инструмент станет вашим фаворитом.
💎 Вы можете позволить пользователям писать свои правила (фильтры, политики доступа) и не бояться, что они «положат» сервер бесконечным циклом или украдут данные.
💎 Библиотека написана как обертка над официальной реализацией на C++. Это значит, что вы получаете максимальную производительность и 100% совместимость со стандартами Google.
💎 Выражение, написанное для Python, будет работать точно так же в Go или C++ сервисах.
Где это использовать:
1. Написание гибких правил RBAC/ABAC.
2. Проверка сложных условий, которые приходят из конфигов или БД.
3. Если нужно дать пользователю возможность самому настраивать логику фильтрации в UI.
Пример кода:
🔗 Репозиторий
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Google официально открыл исходный код CEL-expr-python — реализации Common Expression Language (CEL) для Python.
Если вы строите системы, где нужно безопасно вычислять условия «на лету» (например, правила доступа или валидацию данных), этот инструмент станет вашим фаворитом.
CEL (Common Expression Language) — это не-Тьюринг-полный язык выражений. Он специально создан простым, быстрым и, главное, безопасным. В отличие от обычного eval(), CEL гарантирует отсутствие побочных эффектов и всегда завершает выполнение.💎 Вы можете позволить пользователям писать свои правила (фильтры, политики доступа) и не бояться, что они «положат» сервер бесконечным циклом или украдут данные.
💎 Библиотека написана как обертка над официальной реализацией на C++. Это значит, что вы получаете максимальную производительность и 100% совместимость со стандартами Google.
💎 Выражение, написанное для Python, будет работать точно так же в Go или C++ сервисах.
Где это использовать:
1. Написание гибких правил RBAC/ABAC.
2. Проверка сложных условий, которые приходят из конфигов или БД.
3. Если нужно дать пользователю возможность самому настраивать логику фильтрации в UI.
Пример кода:
from cel_expr_python import cel
# Создаем среду и объявляем переменные
env = cel.NewEnv(variables={"age": cel.Type.INT})
# Компилируем условие
expr = env.compile("age >= 18 ? 'Доступ разрешен' : 'Доступ запрещен'")
# Вычисляем
print(expr.eval(data={"age": 21})) # Доступ разрешен
🔗 Репозиторий
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍1
This media is not supported in your browser
VIEW IN TELEGRAM
📅 Старт курса — 20 апреля.
Если хотите разобраться, как строить управляемые агентные системы:
P.S.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
🚪 Knock-Knock: кто стучится в мой SSH
Проект Knock-Knock — это стильный и информативный дашборд-медоед (honeypot), который в реальном времени визуализирует атаки на ваш SSH-порт. Вместо скучных логов вы получаете живую ленту «стуков» со всеми подробностями.
Что можно увидеть на дашборде:
— Live Feed: поток попыток входа с указанием логина, пароля, IP и провайдера атакующего.
— 3D-Глобус: визуализация локации последнего «стука» и тепловая карта стран-агрессоров.
— Стена позора (Leaderboards): топы самых популярных паролей, логинов и наглых ISP.
Архитектура проекта проста и эффективна:
1. Honeypot (Python): слушает порт 22 и перехватывает данные.
2. Monitor: обогащает IP данными GeoIP (город, страна, провайдер).
3. Backend (FastAPI + Redis): хранит статистику в SQLite и транслирует живые события через WebSockets.
4. Frontend: адаптивный дашборд, который отлично работает и на десктопе, и на мобилках.
🔗 Демо в реальном времени: https://clc.to/P8C1mw
📂 GitHub проекта: https://clc.to/cjZX7Q
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Проект Knock-Knock — это стильный и информативный дашборд-медоед (honeypot), который в реальном времени визуализирует атаки на ваш SSH-порт. Вместо скучных логов вы получаете живую ленту «стуков» со всеми подробностями.
Что можно увидеть на дашборде:
— Live Feed: поток попыток входа с указанием логина, пароля, IP и провайдера атакующего.
— 3D-Глобус: визуализация локации последнего «стука» и тепловая карта стран-агрессоров.
— Стена позора (Leaderboards): топы самых популярных паролей, логинов и наглых ISP.
Архитектура проекта проста и эффективна:
1. Honeypot (Python): слушает порт 22 и перехватывает данные.
2. Monitor: обогащает IP данными GeoIP (город, страна, провайдер).
3. Backend (FastAPI + Redis): хранит статистику в SQLite и транслирует живые события через WebSockets.
4. Frontend: адаптивный дашборд, который отлично работает и на десктопе, и на мобилках.
🔗 Демо в реальном времени: https://clc.to/P8C1mw
📂 GitHub проекта: https://clc.to/cjZX7Q
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3
🔍 Сравнение тайп-чекеров: как они «видят» пустые списки
Когда вы пишете
Стратегия 1: Все дозволено (`Any`)
Кто использует: Pyright, Pyre, Ty.
Как работает: Тайп-чекер просто помечает список как
Плюс: Минимум ложных ошибок. Можно класть что угодно.
Минус: Нулевая безопасность. Ошибки (например, добавление списка вместо строки) проскочат в продакшен и вызовут краш в рантайме.
Стратегия 2: Анализ всех использований
Кто использует: Pytype.
Как работает: Чекер смотрит на весь код функции. Если вы добавили в список
Плюс: Максимально близко к поведению Python в рантайме.
Минус: Если ошибка закралась в начале функции, тайп-чекер может подсветить её только в самом конце (на `return`), что затрудняет отладку.
Стратегия 3: Вывод по первому использованию
Кто использует: Mypy, Pyrefly (по умолчанию).
Как работает: Тип фиксируется по первой операции
Пример: Если сначала добавили число, а потом пытаетесь добавить строку — вы получите ошибку сразу на строке с кодом.
Плюс: Ошибки подсвечиваются именно там, где они возникли. Это делает их максимально понятными и легко исправимыми.
🔗 Полный текст статьи
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Когда вы пишете
x = [], интерпретатор Python знает, что это список, но не знает, что в нем будет лежать. Разные тайп-чекеры решают эту загадку по-разному.Стратегия 1: Все дозволено (`Any`)
Кто использует: Pyright, Pyre, Ty.
Как работает: Тайп-чекер просто помечает список как
list[Any].Плюс: Минимум ложных ошибок. Можно класть что угодно.
Минус: Нулевая безопасность. Ошибки (например, добавление списка вместо строки) проскочат в продакшен и вызовут краш в рантайме.
Стратегия 2: Анализ всех использований
Кто использует: Pytype.
Как работает: Чекер смотрит на весь код функции. Если вы добавили в список
1, а потом "foo", он выведет тип list[int | str].Плюс: Максимально близко к поведению Python в рантайме.
Минус: Если ошибка закралась в начале функции, тайп-чекер может подсветить её только в самом конце (на `return`), что затрудняет отладку.
Стратегия 3: Вывод по первому использованию
Кто использует: Mypy, Pyrefly (по умолчанию).
Как работает: Тип фиксируется по первой операции
append или add.Пример: Если сначала добавили число, а потом пытаетесь добавить строку — вы получите ошибку сразу на строке с кодом.
Плюс: Ошибки подсвечиваются именно там, где они возникли. Это делает их максимально понятными и легко исправимыми.
🔗 Полный текст статьи
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2
🐼 Pandas: 4 фатальные ошибки, которые делают 51% разработчиков
Даже в 2026 году Pandas остается главной «головной болью» Python-разработчика. С выходом версий 2.x и 3.x правила игры изменились.
1. Итерация по строкам
❌ iterrows() — забудьте о нем. Он конвертирует каждую строку в
✅ itertuples() — если цикл неизбежен, он быстрее в 10–100 раз.
✅ Векторизация (np.where) — в 4000 раз быстрее.
> DS-совет: Если логика сложнее обычного сложения — используйте
2. Переименование
✅
✅
✅
3. Война с NaN
NaN — это не просто пустая ячейка, это сигнал о проблеме в данных.
✅ Диагностика:
✅ ffill() / bfill() — критически важны для временных рядов (Time Series), чтобы не терять динамику.
✅ fillna(median) — классика для ML-пайплайнов, но всегда проверяйте природу пропусков. Иногда
4. Фильтрация
✅ Булевы маски:
✅ `.query()` — читается как SQL, поддерживает переменные через
✅
🔗 Ссылка на пост
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Даже в 2026 году Pandas остается главной «головной болью» Python-разработчика. С выходом версий 2.x и 3.x правила игры изменились.
1. Итерация по строкам
pd.Series, создавая дикий overhead.> DS-совет: Если логика сложнее обычного сложения — используйте
.apply(), но стремитесь к векторизации через NumPy.2. Переименование
.rename(columns=...) — самый безопасный путь. Не ломается при изменении схемы..str.lower().str.replace() — лучший способ массово привести колонки к snake_case.add_prefix() — спасение при сложных merge, когда нужно быстро разделить признаки из разных таблиц.3. Война с NaN
NaN — это не просто пустая ячейка, это сигнал о проблеме в данных.
df.isna().sum() — база.dropna(subset=[...]) — единственный честный путь.4. Фильтрация
df[(df['A'] > 0) & (df['B'] < 1)] — классика. Важно: забудьте скобки — получите ошибку приоритета.@. Идеально для длинных условий..loc[] — единственный верный способ, если нужно одновременно отфильтровать строки и выбрать колонки.🔗 Ссылка на пост
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍5
📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих»
Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!
🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas
Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!
🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas
❤5👍2
Что выведет код?
Anonymous Quiz
8%
Error, False, False, Error
10%
True, None, 0, True
63%
True, False, False, True
19%
False, False, False, False
👍7
💥 Открытый вебинар | ИИ-агенты в продакшене: от хайпа к деньгам
Агенты уже везде. Но мало кто признаётся, сколько денег сжёг на бесконечных циклах, галлюцинациях в RAG и отсутствии мониторинга.
Полина Полунина, руководитель AI-направления Альфа-Банка, расскажет честно:
▪️ Чем агент отличается от «просто GPT с промптом» и когда бизнесу достаточно обычного LLM
▪️ 3 реальных кейса из корпоративной среды: что взлетело, а что нет
▪️ Live-демо работающего агента
▪️ ТОП-5 граблей, на которые наступают команды при внедрении
⏱️ 10 марта в 19:00 (МСК)
🎁 Участники получат промокод на скидку на самый полный курс по ИИ-агентам
👉 Регистрируйся
Агенты уже везде. Но мало кто признаётся, сколько денег сжёг на бесконечных циклах, галлюцинациях в RAG и отсутствии мониторинга.
Полина Полунина, руководитель AI-направления Альфа-Банка, расскажет честно:
▪️ Чем агент отличается от «просто GPT с промптом» и когда бизнесу достаточно обычного LLM
▪️ 3 реальных кейса из корпоративной среды: что взлетело, а что нет
▪️ Live-демо работающего агента
▪️ ТОП-5 граблей, на которые наступают команды при внедрении
⏱️ 10 марта в 19:00 (МСК)
🎁 Участники получат промокод на скидку на самый полный курс по ИИ-агентам
👉 Регистрируйся
🤓 Листайте, улыбайтесь и узнавайте себя.
Если у вас есть свои любимые — делитесь в комментариях
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7❤1
Многие знают о list, set и dict comprehensions. Но что, если вам нужен tuple comprehension или frozenset comprehension? В синтаксисе Python их не существует, но мы можем их имитировать.
Главный секрет: Генераторные выражения
Генераторные выражения (generator expressions) — это «строительные блоки», которые позволяют создавать итерируемые объекты на лету без выделения памяти под весь список.
Как это работает:
Если передать генераторное выражение в функцию как единственный аргумент, лишние скобки можно опустить:
# Вместо этого:
all((n > 1 for n in numbers))
# Пишем так:
all(n > 1 for n in numbers)
🛠 Примеры «кастомных» включений
1. Tuple Comprehension
Формально его нет, но передача генератора в конструктор tuple() дает тот же результат:
>>> numbers = [2, 1, 3, 4, 7]
>>> tuple(n**2 for n in numbers)
(4, 1, 9, 16, 49)
2. Frozenset Comprehension
Если вам нужен неизменяемый (immutable) сет:
>>> word_fset = frozenset(w.lower() for w in ["Apple", "Orange", "Apple"])
frozenset({'apple', 'orange'})
3. Counter Comprehension
Класс Counter из модуля collections идеально сочетается с генераторами для быстрого подсчета объектов:
from collections import Counter
words = Counter(w.strip() for w in text.split())
📉 Агрегация через Reducer-функции
Генераторные выражения отлично работают с функциями, которые «сворачивают» (reduce) итерируемый объект в одно значение:
— sum(n**2 for n in numbers) — сумма квадратов.
— "".join(str(n) for n in numbers) — конкатенация строк.
— math.prod(n for n in numbers) — произведение элементов.
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👏1😢1
🚀 Лестница оптимизации Python
Все знают, что Python медленный. Но мало кто знает, на какой «ступеньке» пора остановиться, чтобы не тратить недели на оптимизацию того, что и так работает.
Разработчик провел масштабный бенчмарк (март 2026) на Apple M4 Pro и составил «лестницу» инструментов.
Оказалось, что дело не только в GIL. Главный виновник — максимальная динамичность. На каждый
🪜 Ступени лестницы (от простого к сложному):
1. Обновите CPython (Уровень: Легко)
• Профит: до 1.4x (переход с 3.10 на 3.11+).
• Цена: Смена версии в Dockerfile.
• Нюанс: 3.14t (без GIL) в однопотоке чуть медленнее из-за накладных расходов на атомарные операции.
2. Альтернативные рантаймы (PyPy, GraalPy)
• Профит: 6x – 66x.
• Цена: Просто запустить код другим интерпретатором.
• Нюанс: Совместимость с C-библиотеками (pandas, numpy) может быть кривой.
3. Mypyc (Компиляция типов)
• Профит: 2.4x – 14x.
• Цена: Написать нормальные Type Annotations.
• Нюанс: Отлично работает, если ваш код и так проходит строгую проверку mypy.
4. Numba (@njit)
• Профит: 50x – 135x.
• Цена: Один декоратор и перевод данных в массивы NumPy.
• Нюанс: Идеально для тяжелых математических циклов.
5. Cython (Путь джедая)
• Профит: до 124x (уровень нативного C).
• Цена: Знание C и борьба с «минным полем» (например,
6. Новая волна (Mojo, Codon, Taichi)
• Профит: до 198x.
• Цена: Сырые инструменты, отсутствие колес (wheels) под новые версии Python. Mojo — это вообще новый язык "в шкуре" Python.
7. Rust (PyO3)
• Профит: 113x – 154x.
• Цена: Изучение Rust.
• Главный плюс: Не чистая скорость, а «владение данными». Rust может распарсить JSON в свои структуры, вообще не создавая медленные Python-словари.
Стеклянный потолок: Словари и JSON
Если ваша задача — гонять JSON (как в реальном мире), то Cython и Rust дадут лишь 4x-6x профита, пока вы используете стандартный
Полный отчет и код бенчмарков: https://clc.to/NgPptA
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
Все знают, что Python медленный. Но мало кто знает, на какой «ступеньке» пора остановиться, чтобы не тратить недели на оптимизацию того, что и так работает.
Разработчик провел масштабный бенчмарк (март 2026) на Apple M4 Pro и составил «лестницу» инструментов.
Оказалось, что дело не только в GIL. Главный виновник — максимальная динамичность. На каждый
a + b Python должен спросить: «Что такое a? Что такое b? Есть ли у них метод add? Не подменили ли его секунду назад?». В итоге обычное число в C занимает 4 байта, а в Python — 28 байт «обвязки».🪜 Ступени лестницы (от простого к сложному):
1. Обновите CPython (Уровень: Легко)
• Профит: до 1.4x (переход с 3.10 на 3.11+).
• Цена: Смена версии в Dockerfile.
• Нюанс: 3.14t (без GIL) в однопотоке чуть медленнее из-за накладных расходов на атомарные операции.
2. Альтернативные рантаймы (PyPy, GraalPy)
• Профит: 6x – 66x.
• Цена: Просто запустить код другим интерпретатором.
• Нюанс: Совместимость с C-библиотеками (pandas, numpy) может быть кривой.
3. Mypyc (Компиляция типов)
• Профит: 2.4x – 14x.
• Цена: Написать нормальные Type Annotations.
• Нюанс: Отлично работает, если ваш код и так проходит строгую проверку mypy.
4. Numba (@njit)
• Профит: 50x – 135x.
• Цена: Один декоратор и перевод данных в массивы NumPy.
• Нюанс: Идеально для тяжелых математических циклов.
5. Cython (Путь джедая)
• Профит: до 124x (уровень нативного C).
• Цена: Знание C и борьба с «минным полем» (например,
x ** 0.5 в Cython может быть в 40 раз медленнее, чем `sqrt(x)`).6. Новая волна (Mojo, Codon, Taichi)
• Профит: до 198x.
• Цена: Сырые инструменты, отсутствие колес (wheels) под новые версии Python. Mojo — это вообще новый язык "в шкуре" Python.
7. Rust (PyO3)
• Профит: 113x – 154x.
• Цена: Изучение Rust.
• Главный плюс: Не чистая скорость, а «владение данными». Rust может распарсить JSON в свои структуры, вообще не создавая медленные Python-словари.
Стеклянный потолок: Словари и JSON
Если ваша задача — гонять JSON (как в реальном мире), то Cython и Rust дадут лишь 4x-6x профита, пока вы используете стандартный
json.loads().Золотое правило: Потолок скорости в вебе — это создание Python-объектов. Если хотите реального рывка, нужно уходить от dict и парсить данные сразу в C-структуры или Rust-типы.Полный отчет и код бенчмарков: https://clc.to/NgPptA
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍2🥱1
⏳ Часовая готовность: создаём ИИ-агента в прямом эфире
В 19:00 МСК в рамках нашего курса «Разработка AI-агентов» стартует вебинар «ИИ-агенты в продакшене: от хайпа к деньгам». Спикер — Полина Полунина, руководитель AI-направления в Альфа-Банке.
Будет live-демо работающего агента, реальные метрики из корпоративной среды и честный разбор архитектурных граблей — без воды и «успешного успеха».
Всем зрителям эфира дадим эксклюзивный промокод AGENTS на скидку 10 000 ₽ на любой тариф курса.
👉 Занять место на вебинаре
В 19:00 МСК в рамках нашего курса «Разработка AI-агентов» стартует вебинар «ИИ-агенты в продакшене: от хайпа к деньгам». Спикер — Полина Полунина, руководитель AI-направления в Альфа-Банке.
Будет live-демо работающего агента, реальные метрики из корпоративной среды и честный разбор архитектурных граблей — без воды и «успешного успеха».
Всем зрителям эфира дадим эксклюзивный промокод AGENTS на скидку 10 000 ₽ на любой тариф курса.
👉 Занять место на вебинаре
👍1
Algorithm_Manual.pdf
3.9 MB
The Algorithm Design Manual считается «Библией» для подготовки к собеседованиям в BigTech и незаменимым справочником для тех, кому нужно решать реальные задачи, а не просто доказывать теоремы.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека питониста
#буст
📍 Навигация: Вакансии • Задачи • Собесы
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1