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

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


Новый материал в ленте
  Его величество Граф

Графы для меня особенная тема, в них есть нечто таинственное и мощное. Цель статьи - поделиться с вами некоторыми случаями из моей практики, когда графы становились естественной частью какой-то задачи. Иногда без них задачу решить было невозможно. Иногда через них решение получалось более изящное. А иногда просто тяга к перфикционизму, графы это круто же)


Python Дайджест. Выпуск 492

(22.05.2023 - 28.05.2023)

поделиться выпуском 
pythondigest.ru: Выпуск 492

Статьи

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

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

  Сравнение нейросетей для перевода

С помощью GPT-4 можно решать самые разнообразные задачи по преобразованию текста, включая перевод на разные языки.Мне стало интересно, кто переводит лучше: GPT-4 или специализированные нейронки для перевода, такие как Google Translate и DeepL?Сегодня мы сравним качество перевода от различных нейросетей на 24 языковых парах.

  Книга «Рекурсивная книга о рекурсии»

Книга «Рекурсивная книга о рекурсии» содержит примеры кода на языке Python и JavaScript, которые иллюстрируют основы рекурсии и проясняют фундаментальные принципы всех рекурсивных алгоритмов. Из книги вы узнаете о том, когда стоит использовать рекурсивные функции (и, главное, когда этого не нужно делать), как реализовывать классические рекурсивные алгоритмы, часто обсуждаемые на собеседованиях, а также о том, как рекурсивные методы помогают решать задачи, связанные с обходом дерева, комбинаторикой и другими сложными темами.

  Propan — Python фреймворк для написания микросервисов с использованием брокеров сообщений

Так исторически сложилось, что последние 5 лет своей продуктовой разработки я работаю с микросервисами вокруг брокеров сообщений (преимущественно RabbitMQ и Kafka).

И все это время меня не покидало чувство некой неудовлетворенности и неполноценности инструментария, который был мне доступен.

  Клеточные автоматы. Игра «Жизнь». Часть 1

В этой статье мы поговорим о 'Жизни' - игре без участия человека, которую можно описать и провести с помощью карандаша и клетчатого листа бумаги. Всё начинается с нескольких простых правил, но куда это приведёт? Ответ поразит вас!Не пугайтесь, всё довольно просто: даже ребенок может разобраться. Но несмотря на простоту, 'Жизнь' таит в себе уйму интересных вопросов и задач.В статье мы покажем, как создать красивую симуляцию 'Жизни' на Python.

  Пишем первый ML-пайплайн на Airflow: подробный туториал

В этом туториале мы пошагово разберем, как создать с нуля и запустить локально свой первый пайплайн на Airflow. Данный пайплайн специально адаптирован под задачи машинного обучения. В этом примере мы будем загружать новости из открытого источника и использовать NLP-модель для их классификации (zero-shot classification).

  Правильное подключение к БД: почему, зачем и как

Как подключить базу данных? Казалось бы, простейший вопрос, однако частенько здесь совершают ошибки. Как правило, даже если сделать всё плохо, проблем не возникнет, но это до поры до времени. Как только проект вырастет и увеличится нагрузка, эти ошибки дадут о себе знать, и отследить их будет сложно. В этой небольшой статье, я последовательно буду создавать подключения к БД, а затем показывать на примере, что может пойти не так. На мой взгляд, понимание, почему нужно делать именно так, а не иначе, лучше, чем простое заучивание и использование паттернов. Статья рассчитана на начинающих и всех, кто интересуется этой темой.

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

  Как мы сделали игру для разработчиков в телеграм на 10+ тыс юзеров

Это создатель игры Dev's Battle (Образовательной MMO-RPG игры для разработчиков в Телеграм). В этой статье я решил рассказать про наш опыт создания продукта в телеграм. Надеюсь, что данная статья будет полезна всем кто сейчас разрабатывает или думает разрабатывать какие-либо продукты в телеграме.

  Как поиск жилья заставил менеджера вспомнить программирование и уйти из Яндекса

В 2019ом году я работал продактом в Яндекс.Погоде и мечтал запилить что-то свое. Начал смотреть, какие есть большие рынки и в чем их боль. Перебирая варианты, вспомнил, каким изнуряющим был для меня поиск съемного жилья. 

  Я написал одну из самых быстрых библиотек датафреймов

У меня в портфолио есть несколько готовых пет-проектов на Rust, и я заметил, что позиция «а у нас уже получилась DataFrame?» нисколько меня не устраивает. Поэтому я подумал, не сделать ли мне элементарный контейнер, который решал бы мою конкретную задачу. Но этот проект вышел из-под контроля.

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

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

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

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

Интересные проекты, инструменты, библиотеки

  jazzband/django-widget-tweaks

Tweak the form field rendering in templates, not in python-level form definitions. CSS classes and HTML attributes can be altered.

Релизы

  Fabric - 3.1.0

Утилита для удаленного исполнения команд. Скачать можно по ссылке: https://pypi.python.org/pypi/Fabric/

  sentry - 23.5.1

Мощная система логгирования и платформа агрегации ошибок. Скачать можно по ссылке: https://pypi.python.org/pypi/sentry/

  coverage - 7.2.6

Утилита позволяющая измерить процент покрытия тестами. Скачать можно по ссылке: https://pypi.python.org/pypi/coverage/

  requests - 2.31.0

Простая библиотека для создания HTTP запросов. Скачать можно по ссылке: https://pypi.python.org/pypi/requests/