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

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

     19.05.2020       Выпуск 335 (18.05.2020 - 24.05.2020)       Статьи

Авторизация пользователя при помощи Starlette + Vue.js

Задача — создать пример авторизации пользователя с использованием фреймворков Starlette (https://www.starlette.io/) и Vue.js *, который был бы максимально комфортным разработчикам Django для «миграции» в асинхронный стек.

Почему Starlette? В первую очередь скорость. Starlette ультимативно быстр, и в тестах уступает только BlackSheep (https://pypi.org/project/blacksheep/). Во вторых Starlette весьма прост и писать на нем в силу его продуманности легко и приятно.

В качестве ORM мы будем использовать Tortoise ORM (со моделями и выборками «аля Django ORM»). В качестве сессионного механизма мы будем использовать JWT.

     19.05.2020       Выпуск 335 (18.05.2020 - 24.05.2020)       Статьи

Как построить диаграмму Венна с 50 кругами? Визуализация множеств и история моего Python-проекта с открытым кодом

Сегодня хочу рассказать вам про задачу визуализации пересекающихся множеств и про пакет для Python с открытым кодом, созданный мной для её решения. В процессе мы узнаем, чем различаются диаграммы Венна и Эйлера, познакомимся с сервисом распределения заказов и по касательной заденем такую область науки, как биоинформатика. Двигаться будем от простого к более сложному. Поехали!

     19.05.2020       Выпуск 335 (18.05.2020 - 24.05.2020)       Статьи

Как не править Python тесты

И вынести тестируемые результаты вне кода. Это статья об автоматизации и увеличения удобства тестирования на Python.

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

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

Результаты выполнения можно проверять в python коде тестов. Это близко к контексту выполнения и зачастую удобно.

     18.05.2020       Выпуск 335 (18.05.2020 - 24.05.2020)       Статьи

5 визуализаций, который помогут улучшить Data Story

Сторителлинг – один из важнейших навыков для специалистов, которые занимаются анализом данных. Чтобы доносить идеи и делать это убедительно, нужно простраивать эффективную коммуникацию. В этой статье мы познакомимся с 5 методами визуализации, которые выходят за рамки классического понимания, и могут сделать вашу Data Story более эстетичной и красивой. Работать мы будем с графической библиотекой Plotly на Python (она также доступна на R), которая позволяет создавать анимированные и интерактивные диаграммы с минимальными усилиями.

     18.05.2020       Выпуск 335 (18.05.2020 - 24.05.2020)       Статьи

Материальный Python. Кастомные карточки с OpenGL эффектами

В этой статье я покажу вам, как применять эффекты OpenGL к своим кастомным карточкам, если вы используете в своих приложениях такие кроссплатформенные инструменты как фреймворк Kivy и библиотеку материального дизайна для этого фреймворка — KivyMD. Погнали!

     17.05.2020       Выпуск 334 (11.05.2020 - 17.05.2020)       Статьи

Сравниваем работу open source Python — библиотек для распознавания именованных сущностей

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

Для решения это задачи я опробовал десятки решений в области обработки естественного языка, в том числе решения с открытым кодом и хотел бы поделиться опытом работы с open source Python — библиотеками для распознавания именованных сущностей.

     15.05.2020       Выпуск 334 (11.05.2020 - 17.05.2020)       Статьи

Сказка о лишнем и потерянном времени. По версии py3

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

     14.05.2020       Выпуск 334 (11.05.2020 - 17.05.2020)       Статьи

Разбираем EM-algorithm на маленькие кирпичики

В этой статье, как Вы уже, наверное догадались, речь пойдет об устройстве EM-алгоритма. Статья прежде всего может быть интересна тем, кто потихонечку уже вступает в сообщество датасайнтистов. Материал изложенный в статье в большей степени будет полезен тем, кто недавно начал проходить третий курс «Поиск структуры в данных» в рамках специализации «Машинное обучение и анализ данных» от МФТИ и Яндекс.

     14.05.2020       Выпуск 334 (11.05.2020 - 17.05.2020)       Статьи

Кому на бюджете жить хорошо?

Пару месяцев назад на одном IT мероприятии мне довелось лицезреть в работе Pandas. Парень, который с ним работал не делал ничего особенно удивительного. Но простые сложения значений, вычисления средних, группировки производились так виртуозно, что, даже при всей своей предвзятости к Питону, я был очарован. Манипуляции выполнялись на довольно приличных датасетах по данным капитального ремонта за период кажется с 2004 по 2019 год. Сотни тысяч строк, но все работало очень быстро.
В общем когда мне еще через пару месяцев пришлось кое-что анализировать, я решил попробовать сделать это с помощью Pandas. Провозился пару дней с тем, что с помощью Excel я бы смог сделать за день. Тем не менее мне удалось.

     13.05.2020       Выпуск 334 (11.05.2020 - 17.05.2020)       Статьи

Пагинация для телеграм бота на Python

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

     13.05.2020       Выпуск 334 (11.05.2020 - 17.05.2020)       Статьи

Пилим веб-опросник как у Meduza: пошаговый гайд для начинающих

Меня зовут Егор, я Full-stack разработчик в Leader-ID. В этой статье я хочу поделиться простым рецептом по созданию красивого и удобного веб-опросника наподобие тех, что делает Meduza. Он умеет показывать статистику после ответа на отдельные вопросы, подсчитывать общий балл, выдавать комментарии, выгружать данные для анализа и шарить результаты в соцсети. Для реализации этой задачи я выбрал Django, DRF, Python и базу данных PostgreSQL.

     13.05.2020       Выпуск 334 (11.05.2020 - 17.05.2020)       Статьи

Мобильный eye-tracking на PyTorch

Рынок eye-tracking'а, как ожидается, будет расти и расти: с $560 млн в 2020 до $1,786 млрд в 2025. Так какая есть альтернатива относительно дорогим устройствам? Конечно, простая вебка! Как и другие, этот подход встречает много сложностей, будь то: большое разнообразие устройств (следовательно, сложно подобрать настройки, которые будут работать на всех камерах одинаково), сильная вариативность параметров (от освещения до наклона камеры и ее положения относительно лица), порядочные вычислительные мощности (несколько cuda-ядер и Xeon — самое то)...

     12.05.2020       Выпуск 334 (11.05.2020 - 17.05.2020)       Статьи

Внутри виртуальной машины Python. Часть 1

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

     12.05.2020       Выпуск 334 (11.05.2020 - 17.05.2020)       Статьи

MASK-RCNN для поиска крыш по снимкам с беспилотников

Все чаще можно слышать про планы правительства провести полную инвентаризацию объектов недвижимости с целью уточнения кадастровых данных. Для первичного решения этой задачи можно применить простой способ, основанный на расчете площади крыш капитальных строений по аэрофотоснимкам и дальнейшее сопоставление с кадастровыми данными. К сожалению, ручной поиск и расчет занимает много времени, а поскольку новые дома сносятся и строятся непрерывно, то расчет требуется повторять снова и снова. Сразу возникает гипотеза, что этот процесс можно автоматизировать с помощью  алгоритмов машинного обучения, в частности, Computer Vision. В этой статье я расскажу о том, как мы в «НОРБИТ» решали эту задачу и с какими сложностями столкнулись.

     12.05.2020       Выпуск 334 (11.05.2020 - 17.05.2020)       Статьи

Повторяем когортный анализ, выполненный в Power BI, силами Python

Поводом для написания данной публикации послужил вебинар, который я посмотрел на Youtube. Он был посвящен когортному анализу продаж. Автор использовал для работы с данными платформу Power BI Desktop. Ссылку на указанное видео приводить не буду, чтобы эта статья не была расценена как реклама, но по ходу повествования постараюсь делать спойлеры к первоисточнику, чтобы лучше объяснять логику собственного решения. Данный вебинар натолкнул меня на идею, что интересно было бы повторить возможности формул DAХ функциями библиотеки Pandas.

     12.05.2020       Выпуск 334 (11.05.2020 - 17.05.2020)       Статьи

Визуализация сетевых топологий, или зачем еще сетевому инженеру Python #2

Эта статья написана по мотивам решения задания на недавно прошедшем онлайн-марафоне DevNet от Cisco. Участникам предлагалось автоматизировать анализ и визуализацию произвольной сетевой топологии и, опционально, происходящих в ней изменений.

 

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

     11.05.2020       Выпуск 334 (11.05.2020 - 17.05.2020)       Статьи

Настройка Debian, Nginx и Gunicorn для Django проекта

Была задача поднять свой Debian сервер на Nginx для проектов Django 3.х. Перерыв кучу информации в интернете, удалось это сделать соединив рекомендации с нескольких разных сайтов. Если вам интересно почитать, как настроить свой первый сервер для Django-проекта, то — добро пожаловать.

     11.05.2020       Выпуск 334 (11.05.2020 - 17.05.2020)       Статьи

Apple TimeCapsule/AirPort Extreme. Root доступ и побег из привязанного региона

Наверняка многие владельцы сетевых устройств Apple, которые читают эту статью, таких как TimeCapsule или Airport Extreme, рано или поздно задумывались почему у купленных в России устройств нет поддержки beamforming и максимальная ширина канала 40МГц? И как следствие максимальная скорость приема и передачи данных – 600 Мбит/с (вместо заявленных 1300 Мбит/с).

     10.05.2020       Выпуск 333 (04.05.2020 - 10.05.2020)       Статьи

Домашний кластер на Dask

Я недавно проводил исследование, в рамках которого было необходимо обработать несколько сотен тысяч наборов входных данных. Для каждого набора — провести некоторые расчеты, результаты всех расчетов собрать вместе и выбрать "лучший" по некоторым критериям. По сути это bruteforce перебор. Тоже самое происходит при подборе параметров ML моделей с помощью GridSearch.

 

Однако, с некоторого момента размер вычислений может стать для одного компьютера великоват, даже если запускать ее в несколько процессов с помощью joblib. Или, если сказать точнее, он становится слишком долгим для нетерпеливого экспериментатора.

     10.05.2020       Выпуск 333 (04.05.2020 - 10.05.2020)       Статьи

Groupby aggregation в pandas

Агрегация является одной из самых частых операций при анализе данных. Разные технологии предлагают нам кучу способов эффективно группировать и агрегировать интересующие нас поля(столбцы, признаки). В этой статье будет рассказано про реализацию агрегации в pandas.
По своей специализации я очень мало работаю с python, но часто слышу про плюсы и мощь этого языка, в особенности когда речь заходит про работу с данными. Поэтому я проведу здесь параллель операций с T-SQL и приведу некотрые примеры кода. В качестве данных я буду использовать наверное самый популярный data set — Ирисы Фишера.