Собрали в одном месте самые важные ссылки
читайте нас в Twitter
7 сентября 2021 года мне пришло электронное письмо: fsb795 Добрый день. не планируете библиотеку подправить под свежие изменения в приказе 795 ?Было понятно, что речь идет о пакете fsb795, написанном на Python для разбора квалифицированных сертификатов. Требования к составу и форме квалифицированного сертификата установлены Приказом ФСБ России от 27.12.2011 №795. Но 29 января 2021 года в этот приказ были внесены изменения. Именно об этих изменениях мне и напомнил автор письма. Письмо я получил 7 сентября, а изменения вступили в силу 1-го сентября 2021 года.
Dash является довольно интересным Веб-фреймворком для визуализации данных и имеет в семе довольно много полезных функций в сочетании с простотой их применения.
Это первая часть серии руководств «Разработка игр с помощью Pygame». Она предназначена для программистов начального и среднего уровней, которые заинтересованы в создании игр и улучшении собственных навыков кодирования на Python.
История о том, как я собирал ретро-консоль на базе Raspberry Pi 4 и подружил ее с проездными московского метро в качестве «картриджей».
Подробное руководство по использованию строковых методов center, find, isalnum, replace, casefold, endswith, index, isdecimal, isdigit, join, split, isnumeric, isspace, isupper, partition в Python
Фильтрация шума очень важная вещь, при работе с различными датчиками. Сигнал, получаемый от них всегда приходит с шумами, и важно уметь их грамотно отфильтровать. Качественная фильтрация шума способна уменьшить погрешность и увеличить качество измерения датчика. Этим мы сегодня и займемся.
Осенью в Python завезут pattern matching. Так же как десять лет назад с аннотациями, разработчики языка пока не очень понимают для чего и как новая фича будет использоваться. И будет ли использоваться вообще. Мы перерыли черновики, обсуждения, посмотрели на другие языки — и поделимся своими прогнозами. В докладе: лучшие применения для pattern matching, концепция «как рассказать кодом историю» и деревья. Много разных деревьев.
Расскажу о том, как можно ускорить пайплайн, который включает в себя обработку данных, обучение XGBoost модели и предсказание, даваемой этой моделью, за счет распределения вычислений на множество процессов. При этом вам не придется изучать новые библиотеки и их API. Фокус будет сосредоточен вокруг небольшого ряда библиотек хорошо известных людям, которые знакомы с Data Science и Machine Learning. В частности, речь пойдет о таких библиотеках как pandas, Modin и XGBoost. Покажу, как Modin позволяет ускорить pandas запросы, всего лишь, изменив одну строку кода вашего сценария, а также расскажу о его распределенной реализации обучения и прогнозирования XGBoost модели.
Часто при выборе шины сообщений для Python проекта выбор сводится к Kafka или RabbitMQ. Однако, есть ещё одна менее известная в Python-сообществе альтернатива — NSQ. Сергей расскажет как прийти к выбору NSQ для вашего проекта, про положительные и отрицательные стороны использования NSQ в продакшене. Олег покажет библиотеку ansq, приемы её удобного использования и расскажет про подводные камни, с которыми пришлось столкнуться. Доклад основан на опыте использования NSQ в большом реальном продукте на протяжении последних 1.5 лет.
На тему использования опциональной статический типизации в Python написано много статей. В докладе мы не будем повторять прописные истины, а попробуем ответить на вопрос для чего нужно ее использовать, на примерах разберем, как это можно делать и покажем преимущества, которая она дает. Также мы коснемся сложностей, которые возникают при использовании типизации и продемонстрируем способы их решения.
В корпорациях любят всё автоматизировать. Большое количество энтерпрайз-продуктов и внутренних веб-сервисов, которые общаются между собой — все это привычные задачи внутренней и инфраструктурной разработки. Но что, если необходимо автоматизировать выдачу оборудования сотруднику компании? Это возможность выйти за рамки стандартных веб-сервисов и узнать что происходит на уровне железа. Как включить огромную железную коробку, которая умеет только принимать байты на серийный порт, в привычный нам, веб-разработчикам, стек Django, React. js, PostgreSQL, Celery и заставить все это общаться между собой? Посмотрим на консьюмеры Kombu, RabbitMQ. Поучимся управлять пружинами вендинга при помощи Python, читать оптические датчики. Построим всю систему до пользовательского интерфейса «снизу-вверх». И постараемся по пути не отрезать себе палец, когда будем перекидывать питание крутящих серво-приводов между шинами :)
В своем докладе я расскажу о том, что на самом деле может django.contrib.admin, как и зачем преодолевать внутреннее сопротивление при работе с ним. Django Admin Panel — сложный и мало документированный инструмент в Django Framework, который способен значительно повысить скорость разработки, если в нём по-настоящему разобраться. — «A Не проще ли нам написать свой Backend?» Я отвечу: «Нет, не проще!». Семь лет инсайтов и открытий в моем докладе.
Расскажу о том, как экономить время на старте проектов. Посмотрим как тут выручает генерация кода и что есть из готовых решений. Как можно, просто введя 2 команды из DDL схемы базы данных, получить готовый CRUD REST сервис с моделями и endpoint-ами. Зачем мне в 2020 пришлось писать свой ddl парсер и генерацию ORM & Pydantic моделей, и как это облегчило жизнь проекту. Что из чего вообще можно генерировать, чтобы не писать это руками. Бегло посмотрим какие есть готовые библиотеки на сегодняшний день (основные их категории) и кейсы их использования. Обсудим плюсы данного тренда. Лично мне кажется, что это тренд — с каждым годом таких библиотек все больше и больше, и мы стараемся не писать тот код, который можно не писать. Рассмотрим кейсы, когда это удобно/полезно (про быстрые PoC, RnD) и направления, куда двигаться дальше, если тема интереса.
Сегмент данных взрослеет и за этим следует потребность в их валидации. Расскажу как построить процесс тестирования на данных на проекте на основе фреймворка great expecations. Как интегрироваться в дата пайплайн в AWS. Расскажу, как мы решили проблему репортинга и дашбординга + как на результатах Data QA устроить ML QA
Мы много лет используем Sentry (28k звёзд, 3.2k форков на гитхабе) для мониторинга исключений на проектах, а так же мессенджер Telegram для общения. Когда я захотел получать уведомления об инцидентах из Sentry в Telegram, я не нашёл такой возможности, но что самое интересное — ни слова в официальной документации как добавить такой плагин. Пройдя путь от изучения устройства плагинов, поддерживаемых авторами Sentry и работы с ними в самом ядре Sentry, до создания своего плагина, используемого многими компаниями, я вижу, по поступающим вопросам, что интерес к теме не уменьшается со временем, а актуальной информации в сети всё так же нет. Я вижу, что отдельные разработчики регулярно создают свои плагины для Sentry, но каждый из них вынужден проходить этот путь с нуля и самостоятельно, как это делал я. Неплохо разобравшись в процессе с вопросом, я был бы рад поделиться знаниями с участниками PyCon. Вместе со участниками мы пройдём по таким пунктам как: общее устройство плагина для Sentry: от простого к более сложному его место в общей архитектуре Sentry и как он запускается проблема с использованием популярных плагинов в cloud версии Sentry правильный способ установки плагинов в Sentry (грабли, по которым прошёл я, и провёл за собой N пользователей первых версий своего плагина) добавление своих интерфейсов настроек в интерфейс Sentry работа с сетью из вашего плагина: отправка запросов и получение их от внешних систем работа с базой данных и миграциями недокументированные, но вычленённые из исходников, best practice которые следует использовать при создании плагинов, чтобы не поотстреливать ноги себе и своему админу, который поддерживает Sentry
В докладе поделюсь опытом настройки политики кэширования данных в Python-приложениях. Наверное, каждый, кто решал эту проблему, столкнулся с ней в неподходящий момент. Давайте сразу настроим «агрессивное» кэширование, а дальше будем оптимизировать инфраструктуру вокруг. А именно — решим вопросы: — Какой backend использовать: redis, keydb? А, может, in memory? — В каком формате хранить данные? — Как мы можем это мониторить? Нам точно нужен кэш? — Какой инструмент лучше всего подходит?
FastAPI уже не первый год с нами. Последние пару лет фреймворк явно на подъеме: количество звезд на гитхабе уже больше чем 50% от мастодонтов рынка — django, flask. В ds среде и в каждом туториале flask, в каждой второй вакансии суперсовременные горизонтально масштабируемые сервисы на… django. Однако, про fastapi разговоров довольно немного и проникновение как в рынок, так и в публичное пространство у него не велико. И уж тем более, пока ещё про него не говорили с позиции продакшена (как минимум, на конференциях). Так сложилось, что в банке мы сделали на нем несколько десятков сервисов и уже больше года активно эксплуатируем как раз в том самом продакшене, а так же рекомендуем его внутри, как основной, практически всем. За это время мы успели полюбить этот фреймворк, но при этом нашли его «зоны роста». В своем докладе я постараюсь раскрыть три темы: сделаю краткий обзор на сам фреймворк поделюсь тем, чего ему не хватает для полноценной жизни в продакшене (с моей точки зрения) подсвечу довольно очевидные потенциальные проблемы. Ну и, конечно же, займусь неймдроппингом: FastAPI!
На рынке веб-разработки Django, пожалуй, один из самых популярных фреймворков. Но может ли оказаться так, что в документации такого «старичка» есть неточности? В докладе расскажу о том, как оптимизация простого поискового запроса пошла не по плану. Вспомним старые добрые индексы и разберёмся, какие нам действительно нужны, и как соединить их с нашим приложением. В конце обсудим, что же нового случилось в 3 версии и как она упростила нам жизнь.
Временные ряды — это любые данные, у которых есть временная метка. Некоторые ряды нужно прогнозировать — например, сколько глазированных сырков купят на этой неделе, сколько посетителей будет в магазине, сколько наличных останется в банкомате. Для их прогноза нужны разные модели и признаки, но подход к исследованию проблемы будет одинаковый. Сначала мы пробовали решать каждую отдельную задачу усилиями разных ML-специалистов: это было долго, каждый пилил свой собственный «велосипед», не было обмена опытом и не спасало от ошибок. Поэтому мы решили сделать ML-эксперименты с временными рядами простыми и быстрыми — и придумали библиотеку ETNA.
В нашем IT-мире есть только один достоверный источник информации — исходный код. Документация может быть не актуальной, книжка может устареть, статья может осветить только один аспект. А исходный код — честен, доступен и открывает тайны всем, кто достаточно смел, чтобы заглянуть в него. На мой взгляд нет ничего интереснее, чем поковыряться в нем и понять как работает та или иная технология, тот или иной инструмент на самом деле. Я приглашаю Вас в увлекательное приключение по обработке ошибок в Python cо стороны исходного кода — мы заглянем внутрь, увидим как работают основные механизмы обработки ошибок, рассмотрим частные виды исключений и их особенности и еще много чего интересного.