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

Собрали в одном месте самые важные ссылки
консультируем про IT, Python

     22.07.2020       Выпуск 344 (20.07.2020 - 26.07.2020)       Статьи

Динамическое определение класса в Python

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

     22.07.2020       Выпуск 344 (20.07.2020 - 26.07.2020)       Статьи

Декодируем JPEG-изображение с помощью Python

Cегодня мы будем разбираться с алгоритмом сжатия JPEG. Многие не знают, что JPEG — это не столько формат, сколько алгоритм. Большинство JPEG-изображений, которые вы видите, представлены в формате JFIF (JPEG File Interchange Format), внутри которого применяется алгоритм сжатия JPEG. К концу статьи вы будете гораздо лучше понимать, как этот алгоритм сжимает данные и как написать код распаковки на Python. Мы не будем рассматривать все нюансы формата JPEG (например, прогрессивное сканирование), а поговорим только о базовых возможностях формата, пока будем писать свой декодер.

     22.07.2020       Выпуск 344 (20.07.2020 - 26.07.2020)       Статьи

Устройство CPython. Доклад Яндекса

Мы публикуем конспект вступительной лекции видеокурса «Бэкенд-разработка на Python». В ней Егор Овчаренко egorovcharenko, тимлид в Яндекс.Такси, рассказал о внутреннем устройстве интерпретатора CPython.

     21.07.2020       Выпуск 344 (20.07.2020 - 26.07.2020)       Статьи

Учим ИИ распределять пироги по магазинам с помощью обучения с подкреплением

Как-то во время чтения книги «Reinforcement Learning: An Introduction» я задумался над дополнением своих теоретических знаний практическими, однако решать очередную задачу балансировки бруска, учить агента играть в шахматы или же изобретать другой велосипед желания не было.

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

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

     22.07.2020       Выпуск 344 (20.07.2020 - 26.07.2020)       Статьи

Стоит ли переходить с Python на Nim ради производительности?

Nim — это сочетание синтаксиса Python и производительности C.
Несколько недель назад я бродил по GitHub и наткнулся на любопытный репозиторий: проект был полностью написан на языке Nim. До этого я с ним не сталкивался, и в этот раз решил разобраться, что это за зверь.

     21.07.2020       Выпуск 344 (20.07.2020 - 26.07.2020)       Статьи

Опыт использования фреймворка Featuretools

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

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

Об одной из них, featuretools, а также о практическом опыте ее использования мы сегодня и поговорим.

     21.07.2020       Выпуск 344 (20.07.2020 - 26.07.2020)       Статьи

Между дизайн-системой и Server Driven UI

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

 

  • хотим добавить много новых блоков, поэтому система должна полностью управлять структурой выдачи на клиентах;
  • хотим иметь возможность таргетировать выдачу;
  • хотим иметь возможность проводить A/B-тесты выдачи.

     20.07.2020       Выпуск 344 (20.07.2020 - 26.07.2020)       Статьи

Голосовой бот + телефония на полном OpenSource. Часть 1 — создание и обучение текстового бота RU

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

 

 

  1. Распознавание голоса ASR.
  2. Выяснение смысла сказанного и поиск необходимых сущностей в тексте(к примеру адрес, сумма, ФИО итд )
  3. Генерация ответа, преобразование текста в речь TTS. Мы пройдем от пути создания простого текстового бота до интеграции с системой телефонии freeswitch с распознаванием голоса и озвучиванием подготовленных ответов. Данная статья описывает используемые инструменты и путь по их интеграции вместе для создания голосового робота.

     20.07.2020       Выпуск 344 (20.07.2020 - 26.07.2020)       Статьи

OpenSSL и Network Security Services (NSS) — две стороны одной медали

О какой медали идет речь в заголовке? Речь идет об инфраструктуре открытых ключей (Public Key Infrastructure — PKI/ИОК) на базе стандартов криптографии с открытым ключом (Public Key Cryptography Standards — PKCS).

     19.07.2020       Выпуск 343 (13.07.2020 - 19.07.2020)       Статьи

Spothiefy: как переехать из Яндекс.Музыки быстро, бесплатно

Итак, в июле жизнь в стране наконец стала меняться к лучшему, ведь произошло то, чего многие жители с нетерпением ждали: Spotify запущен в России и ряде других стран.

Но потоковая музыка появилась не вчера и наверняка есть такие, кто подсел на иглу Яндекса и пользуется подпиской на Яндекс.Музыку, которая впоследствии стала Яндекс.Плюсом.

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

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

     18.07.2020       Выпуск 343 (13.07.2020 - 19.07.2020)       Статьи

Реализация ARP-спуфинга на Python

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

     18.07.2020       Выпуск 343 (13.07.2020 - 19.07.2020)       Статьи

Погода-бот: DialogFlow + OpenWeather + Python

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

     17.07.2020       Выпуск 343 (13.07.2020 - 19.07.2020)       Статьи

Код аудита: поиск дублей, face detection и аномальные изображения

Сегодня я расскажу, как мы делали аудит изображений, используя компьютерное зрение, сверточную нейронную сеть FaceNet, а также про кластеризацию гистограмм с целью поиска аномальных изображений.

     17.07.2020       Выпуск 343 (13.07.2020 - 19.07.2020)       Статьи
     17.07.2020       Выпуск 343 (13.07.2020 - 19.07.2020)       Статьи

Трюки с переменными среды

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

     16.07.2020       Выпуск 343 (13.07.2020 - 19.07.2020)       Статьи

Общий обзор архитектуры сервиса для оценки внешности на основе нейронных сетей

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

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

 

     16.07.2020       Выпуск 343 (13.07.2020 - 19.07.2020)       Статьи

Практики хорошего code review, или что такое code review за 15 минут

икита на протяжении почти 40 минут пытался вскипятить мозги слушателей секции Backend, рассуждая о code review. Сегодня хотим привести расшифровку этого «взрывного» доклада, чтобы если уж мозги бурлили, то у всех сразу :)

     16.07.2020       Выпуск 343 (13.07.2020 - 19.07.2020)       Статьи

PgGraph — утилита для архивации и поиска зависимостей таблиц в PostgreSQL

Сегодня я хочу представить читателям Хабра утилиту, написанную на Python, для работы с зависимостями таблиц в СУБД PostgreSQL.

API утилиты простое и состоит из трех методов:

 

  • archive_table — рекурсивная архивация/удаление строк с указанными Primary Keys
  • get_table_references — поиск зависимостей для таблицы (покажет таблицы, на которые ссылается указанная и ссылающиеся на нее)
  • get_rows_references — поиск строк в других таблицах, которые ссылаются на указанные строки в нужной таблице

     15.07.2020       Выпуск 343 (13.07.2020 - 19.07.2020)       Статьи

Как мы автоматизировали весь жизненный цикл серверов

Меня зовут Алексей Назаров. Я занимаюсь автоматизацией в отделе администрирования инфраструктурных систем в Национальной системе платежных карт (АО НСПК) и хотел рассказать немного о наших внутренних продуктах, которые помогают нам развиваться.

 

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