IT-новости про Python, которые стоит знать

Собрали в одном месте самые важные ссылки
читайте авторский блог

     24.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Elsie: программируемые презентации

Как известно, существует целый ряд инструментов для создания информативных технических слайдов, и у этих инструментов есть свои недостатки.

     24.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Реализация функции потерь Triplet Loss в Python (функция тройных потерь)

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

     24.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Mela: асинхронный фреймворк на Python для сервисов, работающих с RabbitMQ

В 2023 году писать сервисы, взаимодействующие друг с другом через RabbitMQ, всё ещё неоправданно сложно. Ещё больше сложностей возникает с тестированием бизнес-логики в них, с согласованием контрактов между ними, с организацией монорепозиториев.

     23.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Все DETRы мира. Часть 1

Я - большой фанат задачи детекции, она мне нравится по всем критериям. Она самая интересная концептуально - одновременно нужно и искать объекты, и определять их тип. Классификация целых изображений скучновата и не так часто применима на практике (по крайней мере в медицине), а сегментация мне кажется нудноватой - ну их, эти конкретные пиксели. Ещё статьи про детекцию - самые интересные для меня в техническом плане. Мне нравится разбираться в разных видах архитектур - anchor-based и anchor-free, one-stage и multi-stage, а ещё я очень люблю разные крутые идеи, которые улучшают тот или иной компонент детекционного пайплайна - например,PISA для умного взвешивания разных сэмплов в лоссе,Precise RoIPooling иDeformable RoIPooling для более точного и хитрого пулинга фичей,D2Det для декаплинга задач локализации и классификации,SoftNMS для замены традиционного NMS.

     23.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Как разработать модель выявления связанных компаний на основании анализа транзакций

Сегодня мы хотим поделиться с вами процессом разработки модели выявления связанных компаний на основании транзакционных данных. Пришли к нам заказчики и говорят: «Хотим по имеющимся транзакциям наших клиентов определять, кто из контрагентов является с ними связанным».

     23.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Пишем на Python как на Rust

Я начал программировать на Rust несколько лет назад, и это постепенно изменило мой подход к разработке программ на других языках программирования, особенно на Python. До того, как я начал использовать Rust, я обычно писал код на Python очень динамично, без подсказок типов, повсюду передавая и возвращая словари и время от времени возвращаясь к интерфейсам со «строковой типизацией». Однако, испытав на себе строгость системы типов Rust и заметив все проблемы, которые она предотвращает, я внезапно стал сильно беспокоиться всякий раз, когда возвращался к Python и не получал тех же гарантий.

     23.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Улучшенная эвристика при квантовании цветовой палитры

В 2015 году я написал статью о том, как было улучшено квантование цветовой палитры в FFmpeg для создания красивых анимированных гифок. По какой-то причине эта статья — по сей день самая популярная из всех моих постов.

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

 

     22.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Поймай меня, если сможешь: руководство по обработке исключений в Python

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

     22.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Особенности асинхронности в Python

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

     22.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Безопасная разработка на Python. Часть 3.О фреймворке Flask

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

     22.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Хорошая замена Celery

Речь пойдет о библиотеки для работы с AMPQ - aio-pika. Она имеет всего в районе 1К звёзд на GitHub (по сравнению с 20К+ у Celery). Я расмотрел абсолютно все популярные (500+ звёзд) решения и остановился именно на этом из-за активной (на текущий момент) разработке и относительной популярности.Стек, который вы увидите в статье: FastAPI, RabbitMQ, aio_pika и docker. Статья будет полезна тем кто использует Celery в своих проектах, а так же тем, кто только слышал о том, что такое очереди и RabbitMQ.

     20.05.2023       Выпуск 491 (15.05.2023 - 21.05.2023)       Статьи

Новый синтаксис для generic-типов в Python 3.12

Первоначально python как язык с динамической типизацией не предполагал никакого явного описания типов используемых объектов и список возможных действий с объектом определялся в момент его инициализации (или изменения значения). С одной стороны это удобно для разработчика, поскольку не нужно беспокоиться о корректности определения типов (но в то же время осложняло работу IDE, поскольку механизмы автодополнения требовали анализа типа выражения в ближайшей инициализации). Но это также приводило к появлению странных ошибок (особенно при использовании глобальных переменных, что само по себе уже плохое решение) и стало особенно неприятным при появлении необходимости контроля типа значений в коллекциях и созданию функций с обобщенными типами. В Python 3.12 будет реализована поддержка нового синтаксиса для generic-типов (PEP 695) и в этой статье мы обсудим основные идеи этого подхода.

     20.05.2023       Выпуск 491 (15.05.2023 - 21.05.2023)       Статьи

Дополнительная клавиатура своими руками

Давно интересовался как можно объединить микроконтроллеры, Python и пк, и мне в голову приходила идея дополнительной клавиатуры для пользователя, которая будет заменять сочетания клавиш, всего лишь одной кнопкой. Сначала я пробовал объединить платы NodeMCU на базе ESP8266 с пк, с помощью Python. Знаний для написания скетча на ардуино у меня не было, и погуглив, нашел язык MicroPython.

     20.05.2023       Выпуск 491 (15.05.2023 - 21.05.2023)       Статьи

Асинхронный ETL-процесс на Python

Продолжаю цикл статей по разработке ETL-процессов на Python. На этот раз мы преобразуем синхронный etl-процесс из статьи Пишем ETL-процесс на Python в асинхронный.

     19.05.2023       Выпуск 491 (15.05.2023 - 21.05.2023)       Статьи

Использование компьютерного зрения для игры в покер

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

     19.05.2023       Выпуск 491 (15.05.2023 - 21.05.2023)       Статьи

Проектирование ML-сервиса для прогнозирования котировок акций (для Advisors’ Axiom от Росбанка)

Задача сервиса — получение, оценка (классификация) финансово-экономических новостей на основе машинного обучения модели нейронной сети для классификации текстов финансово-экономической направленности по трем видам тональностей: 

     18.05.2023       Выпуск 491 (15.05.2023 - 21.05.2023)       Статьи

Восстановить удаленную фотографию с флешки? Искусственный интеллект в помощь

В статье хотел бы поделиться своим опытом восстановления данных (на самом деле, всего одной фотографии), который перерос в любопытный кейс применения методов машинного обучения для решения задачи реконструкции файлов изображений. Думаю, что проблема с восстановлением удаленной информации с носителей весьма актуальна для читателей Хабра (и обычных юзеров, и целых компаний), поэтому поделюсь некоторыми наработками. Все это – под катом.  

     18.05.2023       Выпуск 491 (15.05.2023 - 21.05.2023)       Статьи

TestRail для автоматизации тестирования. Делаем интеграцию: отправляем результаты и собираем репорты

Но сегодня речь не обо мне, как долго я этим занимаюсь, а только лишь об одном инструменте, с которым меня связывают лет пять работы. Речь пойдёт о TestRails. Я понимаю, что инструмент не новый, но всё-таки он ещё является достаточно популярным инструментом для ручного, и, что реже и больнее - автоматизированного тестирования. По-хорошему, поделиться своими наработками можно было раньше, но главное - это осознать такую необходимость, не правда ли?

     18.05.2023       Выпуск 491 (15.05.2023 - 21.05.2023)       Статьи

(Не)безопасная разработка, часть 2: заимствование метаданных популярных пакетов для подделки рейтинга Python-проектов

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

     18.05.2023       Выпуск 491 (15.05.2023 - 21.05.2023)       Статьи

Как заставить бэкендера писать фронтенд

Сегодня я хочу поделиться с вами историей написания очередной панели администрирования и как из этого мы собрали подходящие подходы и практики.Для начала давайте вспомним, что же это за панели. Панель администрирования (или админка) — это приложение, которое используется для управления и настройки приложения. То есть это такой продукт для продукта. Панели администрирования нужны для различных целей, например, для создания и редактирования контента, настройки параметров продукта или управления пользователями.Но иногда в проектах важна скорость и ресурсов на создание админки с привлечением команды фронтенда откровенно не хватает. И тогда бэкендеру приходится брать процесс в свои руки.