Обновить
1024K+

Python *

Высокоуровневый язык программирования

496,52
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Бесплатных опционов не бывает

Уровень сложностиСложный
Время на прочтение8 мин
Охват и читатели14K

Когда мы берем ипотеку или потребительский кредит, мы редко задумываемся о том, что банк, помимо денег, выдает нам сложный производный финансовый инструмент. Право в любой момент вернуть долг без штрафов — это классический call-опцион. Для заемщика это «бесплатная» страховка от падения ставок: если рынок пошел вниз, можно рефинансироваться и платить меньше.

Однако в финансах действует закон сохранения риска. Если у клиента есть право выбора, значит, у кого-то другого этого выбора нет. В структуре банка этим «кем-то» оказывается Казначейство (ALM).

Спустимся на уровень глубже в механику ценообразования банковских продуктов (Transfer Pricing, FTP) и попробуем оцифровать один из самых скрытых компонентов банковской маржи: Cost of Optionality.

Читать далее

3 ошибки при работе с dataclasses в Python

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели13K

Dataclasses появились в Python 3.7 и быстро стали стандартом: меньше бойлерплейта, чем у обычных классов, проще, чем attrs, и не требуют зависимостей. Выглядят настолько просто, что кажется, что ломаться там нечему. Но у них есть три ловушки, которые не видны при написании.

Разобрать ошибки

Почему ваши логи бесполезны и как это починить за полчаса

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели13K

Когда продакшен падает в три часа ночи, строка ERROR Something went wrong не помогает никому. В статье разбираем, почему привычные текстовые логи быстро превращаются в шум при реальной нагрузке, как перейти на structured logging, зачем каждому запросу нужен request_id и как настроить нормальные JSON‑логи в Python и Go без лишней инфраструктуры.

Читать далее

Менеджер паролей на python

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели8.2K

Повесть о том как один программист решил разработать для себя и для всех программу, а получилась небольшая система.

Весь мой путь наполнен любовью к русским разработчикам и открытому коду, а также желанием продвигать российские IT‑продукты (не все конечно).

Читать далее

Чей Гамлет лучше?

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели9.1K

Сравнил два канонических перевода трагедии Шекспира "Гамлет, принц датский" с помощью Python и NLP.

Читать далее

Pyrog. Основа для приложения мечты

Уровень сложностиСредний
Время на прочтение31 мин
Охват и читатели8.3K

Признайтесь честно, кто из вас любит рутину? Вы не любите? Вот и я не люблю, поэтому около трёх лет назад я выпустил программный комплекс для ускорения разработки и управления мини-приложениями на Python + PySide6, которые помогают мне в повседневной работе.

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

Присоединиться к проекту

5 слоев кэширования в веб-приложениях: Полное руководство для Python-разработчиков

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели8.3K

Содержание

Кэширование — ключевой механизм оптимизации производительности веб-приложений, позволяющий снизить задержки и уменьшить нагрузку на серверы. В этой подробной статье рассмотрим пять основных уровней кэширования, применимых в современных веб-системах. Ты узнаешь о внутреннем и внешнем кэше, кэшировании на уровне reverse proxy, браузера и фронтенда. 

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

Читать далее

Почему ваши моки не ловят реальные баги?

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели7.2K

Вы можете замокать aiohttp.ClientSession._request и получить зелёный CI. Но этот тест всё ещё не доказывает, что у вас работает timeout. И не доказывает, что клиент переживёт обрезанный JSON. И не доказывает, что retry реально делает три HTTP-запроса через сокет.

В этой статье я прогоняю один и тот же сценарий через пять уровней тестирования внешнего API — от DI-заглушки до настоящего HTTP-сервера — и показываю, где каждый уровень врёт.

Читать далее

Ваша модель показывает 95% accuracy и при этом бесполезна: метрики для несбалансированных классов

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели7.5K

Модель может показывать 95–99% accuracy и при этом не решать задачу: особенно если редкий класс важнее всего для бизнеса. В статье разбираем, почему accuracy ломается на несбалансированных данных, как читать precision, recall и F1, зачем смотреть PR‑кривую и confusion matrix, а также как подбирать порог классификации с учетом стоимости ошибок.

Понять ошибки

RAG в enterprise: 70-80% проблем не в модели, а в данных

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели9K

Эта статья родилась из работы над AlpinaGPT. Мы недавно зарелизили в нём по-настоящему крутых AI-ассистентов и AI-проекты: с подключаемыми базами знаний, общим контекстом чатов и нормальной памятью между сессиями. Я начал смотреть, как RAG сделан у других — и оказалось, что во многих продуктах на рынке всё гораздо проще и грубее, чем нам кажется. 

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

В этой статье — разбор конкретных причин, по которым RAG ломается в enterprise, стратегии чанкинга, антипаттерны архитектуры и практический чек-лист внедрения. 

Читать далее

Основы тестирования и правила, которые помогают надёжно тестировать сложные приложения: примеры на Python

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели14K

За годы работы разработчиком я сталкивался с разными подходами к тестированию. В этой статье я хочу показать, какие практики кажутся мне неэффективными, и объяснить, как довольно просто писать надёжные тесты, которые дают и хорошее покрытие, и устойчивость. Статья может быть полезна не только Python-разработчикам, но и инженерам-программистам в целом.

Читать далее

fast-volleyball-tracking-inference — детектор волейбольного мяча на скорости 80 fps (CPU). Или «не YOLO единым»

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели12K

Так сложилось, что я люблю играть в волейбол и активно снимаю свои игры и тренировки.

У любителей обычно стоит стационарная камера на штативе, которая захватывает всю площадку (или почти всю) в формате 16:9. При этом современные соцсети потребляют контент вертикально (9:16) и короткими роликами около минуты.

Задача: быстро делать вертикальные видео из любительских волейбольных съёмок.

Центральный объект внимания в волейболе — мяч. Значит, нужно определять начало розыгрыша и дальше уверенно следить за мячом. Если сопровождать мяч и делать кроп из 16:9 в 9:16 — получаем готовый вертикальный ролик.

При изучении темы детекции объектов почти сразу попадаешь на семейство YOLO. Отличные модели. В предобученных весах есть класс sport ball.

Но возникает проблема. Площадка 18×9 метров, диаметр мяча — 65–67 см. Чем дальше мяч от камеры, тем он меньше на изображении и тем хуже его определяет YOLO.

Человек легко отслеживает мяч даже на сложных кадрах, потому что видит движение и контекст последовательности. А при покадровой обработке YOLO часто «теряет» маленький объект.

На первом этапе мы попробовали superframe — три grayscale-кадра, записанные в RGB-каналы. Это позволило явно подсветить движущиеся объекты.

Читать далее

Выделение одного значащего признака из набора данных с помощью машинного обучения. Используется Apache Spark

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели9.7K

В первой части была создана инфраструктура для запуска машинного обучения. Там же была создана БД с данными для использования в примерах.

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

Будет использоваться машинное обучение в Apache Spark.

Читать далее

Ближайшие события

Как работают lambda-функции в Python: замыкания, позднее связывание и антипаттерны

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели15K

Вы всё ещё используете map и filter с лямбдами в 2026 году? Подготовил большой гайд по анонимным функциям в Python: от самого первого lambda x для новичков до разбора байт-кода, замыканий и жестких антипаттернов, за которые бьют по рукам на код-ревью.

Читать далее

manage.py migrate в пятницу в 17:30 на проде с 3K RPS и таблицей 200М строк

Уровень сложностиСредний
Время на прочтение29 мин
Охват и читатели12K

Всем привет! Меня зовут Макс, я Lead Backend и автор YouTube‑канала PyLounge

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

В этом же материале поговорим о самом интересном: что происходит, когда python manage.py migrate запускается в 17:30 в пятницу на проде, под 3k RPS и таблицей в 200 миллионов строк. 

Расскажу какие блокировки в PostgreSQL берёт каждая операция Django, что внутри atomic = False, как пишется правильный паттерн expand‑migrate‑contract, зачемнужны AddIndexConcurrentlyAddConstraintNotValidSeparateDatabaseAndState и как обновлять данные на больших таблицах.

P. S. примеры намеренно упрощены, чтобы влезли в статью и не задушили. В реальной жизни всё ещё хуже — но шаги те же.

P. S.S. При подготовки этого материала ни одна продовая база данных не пострадала. 

Читать далее

PLC-Tracer — новый взгляд на Ladder логику

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели9.6K

PLC-Tracer новый взгляд на Ladder логику. Это бесплатный браузерный инструмент диагностики для ПЛК Allen-Bradley (ControlLogix, CompactLogix, MicroLogix и PLC-5). Он разбирает и визуализирует лестничную логику как в офлайн-режиме, так и по данным из живого контроллера. Инструмент умеет записывать состояния переменных в реальном времени через прямое подключение к ПЛК и воспроизводить сессии в режиме офлайн.

Читать далее

Как запихнуть килограмм LLM в телеграм-бота и не сойти с ума

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели11K

Все началось с прикола, я сидел с друзьями и подумал, а вот было бы прикольно запихать разные модели нейросетей в один чат и заставить их думать, что они реальные люди и работают в корпорации. Весь смысл был в том, чтобы это были действительно разные модели и пользователь мог просто между ними переключаться по запросу. Для начала мне нужно было найти зоопарк апи ключей с бесплатными лимитами. Я прошерстил весь интернет и в итоге нашел относительно норм варианты: Groq для LLama, Google AI Studio для Gemma и Gemini. В целом в это время код был простой, правда все время происходил забавный баг, когда пользователь переключался между моделями, одна модель не хотела отдавать очередь другой и просто притворялась ею, но я в целом без трудностей поправил это через системный промт. Однако до конца у меня исправить это так и не получилось, видимо, мои модели слишком тупые.

Читать далее

Возвращение блудного программиста (ч. 4)

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели9.9K

Эта часть про то, как я пилю бэкенд, учусь на этом и получаю эмоциональные качели.

Для начала, напомню о себе: после 12 лет отсутствия в сфере я решил вернуться к своему базовому образованию – инженер-программист. Что-то приходится «вспоминать с нуля», но я не люблю начинать изучение полностью с теории, я больше экспериментатор.

Читать далее

Инженерный подход к MLOps: как принципы расчётной механики ложатся в архитектуру AutoML

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели11K

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

В предыдущих статьях мы разобрали AutoML на задаче о Титанике и показали систему мониторинга моделей. Это были туториалы по компонентам OutBoxML. Сегодня я хочу подняться на уровень выше и поговорить о принципах, на которых эти компоненты и вся система держатся. И поговорить про это через мой опыт в судостроении и страховании.

Читать далее

FlakyDetector 2.0: Как я превратил сырое исследование в продакшен-инструмент с AST, ML и красивым дашбордом…

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели11K

Представь: пятница, вечер. Ты запускаешь CI для последнего пулл-реквеста, идёшь наливать кофе, возвращаешься… а билд упал. Один тест. Ты перезапускаешь проходит. «Флаки», — вздыхаешь ты и ставишь лейбл flaky. На следующей неделе история повторяется. Потом ещё раз.

Мы привыкли, что нестабильные тесты — это неизбежное зло. Их ловят повторными прогонами, а если повезёт вырезают. Но знаешь, что реально бесит? В 80% случаев корень проблемы можно найти, просто посмотрев на код теста.

Я написал инструмент, который это делает автоматически. Без логов CI, без истории прогонов — только AST и машинное обучение.

Назвал его FlakyDetector. Первая версия была исследовательским прототипом (про него у меня выходила статья на Хабре). А теперь — это полноценный продукт: CLI, веб-дашборд, CI-интеграция и даже React-фронтенд. И да, он open source.

Давай разберёмся, как это устроено.

Читать далее