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

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

     05.03.2020       Выпуск 324 (02.03.2020 - 08.03.2020)       Статьи

Trio – асинхронное программирование для людей

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

     04.03.2020       Выпуск 324 (02.03.2020 - 08.03.2020)       Конференции, события, встречи разработчиков

[бесплатно] Python School в Челябинске

Первого апреля в Челябинске стартует школа разработки на языке Python. Это отличная возможность для старта карьеры в IT. Обучение будет включать в себя теоретическую подготовку и разработку учебного проекта. Эксперты поделятся фундаментальными знаниями, необходимыми каждому профессиональному разработчику для создания современных веб-приложений на Python. Они передадут свой опыт, начиная с основ языка, заканчивая разработкой реального проекта на фреймворке Flask. Обучение бесплатное.

     04.03.2020       Выпуск 324 (02.03.2020 - 08.03.2020)       Статьи

Двойная проверка блокировки с Django ORM

Оригинальная статья: Luke PlantDouble-checked locking with Django ORM

Шаблон блокировки с двойной проверкой может быть полезен, когда:

  1. Вам необходимо ограничить доступ к определенному ресурсу, чтобы параллельные процессы не могли работать с ним одновременно.
  2. Другие доступные вам схемы блокировки сложны или медленные.

Этот пост о том, как можно реализовать этот шаблон в Django, используя функции ORM и блокировки на уровне базы данных. Шаблон может использоваться с любой другой ORM, но я проверил его только с Django, и подтвердил, что он работает, как и ожидается, используя PostgreSQL.

     04.03.2020       Выпуск 324 (02.03.2020 - 08.03.2020)       Видео

How we test 1'000 Python projects in Kiwi / Alex Viscreanu (Kiwi.com)

At Kiwi.com we have lots and lots of Python projects, some important ones are more than 5 years old. With our explosive growth from a small start-up into an international company, it's critical for us to manage code quality at scale. If we find some issue with nginx configuration, we need an automated way to check all projects for it.

     03.03.2020       Выпуск 324 (02.03.2020 - 08.03.2020)       Статьи

Бесполезный REPL. Доклад Яндекса

REPL (read-eval-print loop) бесполезен в Python, даже если это волшебный IPython. Сегодня я предложу одно из возможных решений этой проблемы. В первую очередь доклад и мое расширение TheREPL будет полезны тем, кого интересует более быстрая и эффективная разработка, а также тем, кто пишет stateful-системы.

     03.03.2020       Выпуск 324 (02.03.2020 - 08.03.2020)       Учебные материалы

Beautiful Soup на русском языке

Перевод официальной документации Beautiful Soup на русский язык.

     03.03.2020       Выпуск 324 (02.03.2020 - 08.03.2020)       Статьи

Как заставить машину написать тесты из кода за тебя

Мы живем в неидеальном мире. Здесь код пишут люди, а люди по своей природе склонны совершать ошибки. Все бы ничего, ошибки можно отловить на этапе тестирования и не дать им никому навредить. Можно, если писать тесты. Чего люди делать почему-то не любят. Но возможно, есть надежда — автогенерация тестов из написанного кода.

     02.03.2020       Выпуск 324 (02.03.2020 - 08.03.2020)       Статьи

Задача для разработчика, или как мы без вендора ручные сканеры прошивали

Cегодня расскажем о своем опыте работы с USB-девайсами через Python PyUSB и немного о реверс-инжиниринге.

     29.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Введение в архитектурный фреймворк для анализа данных Lena

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

 

Lena написана на популярном языке Python и работает с версиями Python 2, 3 и PyPy. Она опубликована под свободной лицензией Apache (версия 2) здесь. В данный момент она ещё разрабатывается, однако описываемое в данном руководстве уже используется, тестировано (общее покрытие всего фреймворка около 90%) и вряд ли будет изменено. Lena возникла при анализе данных экспериментов в физике нейтрино и названа в честь великой сибирской реки.

     28.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Новостной агрегатор за две недели

18 ноября Telegram запустил соревнование по кластеризации данных: Data Clustering Contest. Нужно было за две недели сделать свой новостной агрегатор. Ограничения, которые были установлены в этом соревновании отпугнули кучу людей, но не меня и моих коллег. Я расскажу от том, каким путём мы прошли, какие выборы сделали и с какими сложностями столкнулись. Решение, которое мы заслали в соревнование обрабатывало 1000 документов за 3,5 секунды, занимало 150 Мб, заняло 6 место на публичном голосовании и 3 место в итоговых результатах. Мы допустили много ошибок, из-за которых не заняли место повыше, большинство из них сейчас исправлены. Весь код и все модели можно найти в репозитории. Все скрипты для обучения моделек перенесены на Colab.

     28.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Видео

Micropython для квестов в реальности и аркадных игр / Никита Левонович (КВЕСТОДЕЛЫ)

Квестоделы применяют Micropython для разработки квестов в реальности последнего поколения и аркадных игр. Современный квеструм - это около 15 электронно-вычислительных устройств, общающихся по сети (MQTT). Большинство из этих ЭВУ - микроконтроллеры (ESP32), которые управляют периферийными устройствами: mp3-плееры, реле и различные датчики, и используют устройства ввода-вывода: дисплеи, диоды, кнопки, клавиатуры и многие другие

     27.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Оптимизация кода на Python с помощью ctypes

Я написал это руководство, поскольку не смог найти такого, которое будет объединять в себе все полезное о ctypes. Надеюсь, эта статья сделает чью-то жизнь намного легче.

     27.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Подсчет запросов: Базовое тестирование производительности на Django

Очень часто можно услышать о методах тестирования, таких как TDD, и о том, как тестировать бизнес-логику приложения. Однако тестирование производительности приложения – это совсем другая задача. Есть много разных способов, но самым общим подходом считается создание среды, в которой можно проводить DDoS-атаку на свое приложение и наблюдать за его поведением. Это очень интересная тема, но это не то, о чем я хочу сегодня поговорить. Сегодня мы рассмотрим более простой тест, тот, который вы можете сделать с использованием юнит-тестов Django по умолчанию: то есть тестирование количество обращений вашего приложения к базе данных.

     27.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Анализ качества работы чат-бота в IBM Watson Assistant

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

За счет постоянного совершенствования продукта команда IBM Watson Assistant старается сделать процесс создания и запуска виртуального ассистента максимально простым. Сегодня мы расскажем о Dialog Skill Analysis Notebook — фреймворк для Python, который позволяет в кратчайшие сроки разработать высококачественного ИИ ассистента в IBM Watson.

     26.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Строим Data Lake на Amazon Web Services

С развитием мобильных устройств, дешевого и доступного мобильного Интернета, объём генерируемых данных пользователями значительно увеличился. IoT устройства уже реалии нашего времени, а не удел фантастов прошлого века. Большая часть имеющихся данных была произведена в течение последнего десятилетия, мне страшно представить что будет в следующие 10 лет.

Инфографика ниже показывает масштабы этой дата-эпидемии.

     26.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Видео

Разработка плагинов к mypy / Владимир Пузаков (Rambler&Co)

Mypy помогает нам писать качественный код. Но не со всеми ситуациями он может справиться в одиночку. Для решения этой проблемы в mypy есть плагины. В данном докладе будет рассказано о ситуациях, в которых их нужно писать. Я покажу, как писать свой плагин для решения этих проблем, какие инструменты есть в mypy для этого, и как тестировать свой плагин

     26.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Все, что вы хотели узнать об LDPC кодах, но стеснялись спросить (наверное)

С кодами малой плотности проверок на чётность, которые дальше мы будем именовать коротко LDPC (Low-density parity-check codes), мне удалось познакомиться более или менее близко, работая над семестровым научным проектом в ТУ Ильменау (магистерская программа CSP). Моему научному руководителю направление было интересно в рамках педагогической деятельности (нужно было пополнить базу примеров, а также посмотреть в сторону недвоичных LDPC), а мне из-за того, что эти коды были плюс-минус на слуху на нашей кафедре. Не все удалось рассмотреть в том году, и поэтому исследование плавно перетекло в мое хобби… Так я набрал некоторое количество материала, которым сегодня и хочу поделиться!

     25.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Интеграция Gitlab, Jira и Confluence на Python для автоматизации сборки релизов

Недавно на стендапе коллега внес рацпредложение: автоматизировать сборку релизов, взяв за основу готовые уже наработки по взаимодействию с Jira, написанные на Python.

Процесс деплоя у нас следующий: когда накапливается достаточное количество задач, прошедших тестирование из них собирается Релиз-кандидат (RC) в каждом проекте, затронутом задачами, затем задачи тестируются в составе RC. После этого RC заливается на стейджинг сервер, где в близком к боевому окружении все еще раз тестируется и проводится полный регресс. И затем, после необходимых деплойных действий свежий релиз заливается в мастер.

     25.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Анализируем резюме юристов на hh.ru без api

Hh.ru — неплохой сайт, не нуждающийся в дополнительном представлении. Поиск вакансий на нем удобен и прозаичен. Однако, порой интереснее посмотреть со стороны работодателя:

 

  • как выглядит выдача резюме по целевому запросу,
  • как видно собственное резюме в выдаче,
  • как «проседает» резюме со временем, заодно собрать резюме коллег-юристов для построения мини-статистики.
Несмотря на то, что у hh есть собственное api и оно добротно задокументировано, доступ к нему тщательно оберегается.

     25.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Видео

Аsync и await в production / Сергей Борисов (ДомКлик)

В "Домклик" больше 50 Python-разработчиков, и мы используем асинхронное программирование с самого начала наших проектов. Польза от корутин с async и await огромна, но вместе с этой пользой приходят специфические сложности. Неожиданно для разработчиков течет память, не ловятся исключения, а доступные "асинхронные" библиотеки для типовых задач часто очень сырые.