Moscow Python
1.33K subscribers
70 photos
2 videos
1 file
633 links
Канал Python.ru и Moscow Python. Новости сообщества, события, статьи, интервью.

Чат: @moscowpythonconf
Download Telegram
#НеПереключайтеКанал
Сегодня выкладываем доклад Ильи Лебедева (Bestsoctor.ru) «Как варить вкусный статический анализ кода»

«У вас настроен супер-стрикт-набор валидаторов кода, обязательная аннотация типов без Any и требования стопроцентного покрытия кода тестами? У меня тоже нет. Это не потому, что мы с вами бесполезные и непрофессиональные разработчики, а потому что надо дело делать, а не типы вылизывать.

В докладе я расскажу, как придумать и внедрить систему статического анализа, которая совмещает плюсы со всех сторон: позволяет релизить фичи быстрее, код делает лучше, а разработчиков дружнее. Покажу пару примеров и расскажу про свой опыт».
https://youtube.com/watch?v=Riylu4HngfI
#НеПереключайтеКанал

Сегодня делимся видео доклада «Async и await в production» Сергея Борисова (ДомКлик)

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

В докладе я расскажу про наш опыт написания асинхронного кода, и как мы решаем возникающие трудности, начиная от отладки и заканчивая выбором тех или иных библиотек».
https://youtube.com/watch?v=6pjuJSvt2to
Moscow Python Conf++, считай, через месяц. У Программного комитета всё готово, а работа организаторов мероприятия и спикеров в самом разгаре. Пора подключаться и участникам!

Начнем подробно изучать расписание с доклада-введения — «Introduction to low-level profiling and tracing».

🗂 Christian Heimes — Core-разработчик CPython, член Python security team и Python Software Foundation, работает в Red Hat и специализируется на профилировании и ускорении Python-кода.
📆 27 марта в 16:00 в зале 3 Кристиан расскажет, как понять, почему код тормозит и что с этим делать.

📌 NB: Этот доклад отлично дополнит воркшоп Алексея Романова из Wargaming.
#НеПереключайтеКанал

Сегодня делимся докладом Владимира Пузакова (Rambler&Co) «Разработка плагинов к mypy»

«Mypy помогает нам писать качественный код. Но не со всеми ситуациями он может справиться в одиночку. Для решения этой проблемы в mypy есть плагины. В данном докладе будет рассказано о ситуациях, в которых их нужно писать. Я покажу, как писать свой плагин для решения этих проблем, какие инструменты есть в mypy для этого, и как тестировать свой плагин».
https://youtube.com/watch?v=l7hDWA5uC0A
🗂Андрей Светлов — Python Core Developer, разработчик asyncio и автор aiohttp.

🗓 Доклад Андрея традиционно посвящен асинхронности и называется «Многопоточность и async/await: подход разный, проблемы общие». Проблемы современных разработчиков с использованием асинхронного подхода далеко не новы. Копнув немного вглубь истории разработки, узнаем, как похожие проблемы решались 10, 20 лет назад, и попробуем понять, как с ними удобнее всего справляться сейчас.
#НеПереключайтеКанал

Сегодня выкладываем доклад Николая Фоминых (S7) «Делаем Dashboard для авиакомпании: Dash и не только».

«У нас в S7 много разных данных, например, мы собираем параметры наших самолетов и определяем лучшее время для техосмотра. Данные сложные, их много, показывать надо разным людям с разными целями. На ум сразу приходят Grafana и Dash, но действительно ли это лучшие решения?

Мы проанализировали много решений, и в докладе я расскажу об их сильных и слабых сторонах, а также области применения. Больше всего достанется нашему любимому Dash: пытаясь сделать на нем все, что нужно, мы набили все возможные шишки. И теперь хотим делиться!»
https://youtube.com/watch?v=mzIB5zxn6kg
Кирилл Борисов в прошлом году рассказывал о работе с legacy-кодом и попытках внедрить в него тесты. Читайте в статье по следам того выступления, как укрощать зверя, то есть legacy-код: работать с кодом и людьми, внедрять тестирование, и зачем вообще это нужно разработчику.

А 27 марта Кирилл расскажет о технической стороне рефакторинга кода с Python 2 на Python 3. Что может быть актуальнее, да еще если подкреплено опытом такой крупной компании как Booking.com!
#НеПереключайтеКанал

Сегодня делимся докладом Никиты Левоновича (Квестоделы) «Micropython для квестов в реальности и аркадных игр»

«Квестоделы применяют Micropython для разработки квестов в реальности последнего поколения и аркадных игр.

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

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

Доклад будет посвящен формированию архитектуры, используемой командой КВЕСТОДЕЛЫ для решения подобных задач на micropython применительно к популярным микроконтроллерам от Espressif Systems».
https://youtube.com/watch?v=1Vtgikz8ZyY
Мы так и не определились, считать ли Python Core-разработчиком заведующего разработкой Pytest и Hypothesis, помогите нам 🤔

В любом случаем, ждём доклад «Sufficiently Advanced Testing» с нетерпением.

🗂 Zac Hatfield-Dodds — Core-разработчик библиотеки для написания unit-тестов и мэйнтейнер Pytest. В ходе доклада Зак поделится своим мнением о современном тестировании и обсудит с гостями конференции их вопросы.
#НеПереключайтеКанал

Сегодня у нас доклад Benjamin Peterson (Dropbox) «Python Governance»

«Last summer, Guido van Rossum retired as BDFL of Python. Consequently, the CPython project has had to adopt a new governance model. This talk will cover the history of the Python project, how the new CPython governance model was selected, and what the future might hold for CPython and the Python language».

https://youtube.com/watch?v=CuhBzwYBdII
Шесть спикеров Moscow Python Conf++ сделают доклады на английском. Мы сгруппировали их в один поток в третьем зале (и пометили «en» в расписании). Синхронного перевода не будет — мы пробовали, получается плохо — поэтому если считаете, что это помешает получить максимум пользы, выбирайте другие выступления. Для этого у нас четыре параллельных трека.

🗂 Nicola Iarocci — автор большого количества популярных библиотек и создатель REST-фреймворка Eve.

🗓 Свой доклад Николя посвятит фреймворку для валидации данных Cerberus. С вопросами валидации данных рано или поздно сталкивается каждый проект, поэтому настоятельно рекомендуем.
🗂 Юлия Волкова работает в компании заказной разработки, в которую клиенты время от времени приносят legacy Python код на поддержку, починку и развитие. Если звезды складываются неудачно — такого кода десятки тысяч строк, а тестов к нему очень мало. Это приводит к печальной ситуации «тестов нет, код рефакторить нельзя». А работать с кодом надо надо: вносить изменения, фиксить баги, организовывать новую функциональность.

Раз за разом обкладывая тестами legacy-код Юлия стала замечать, что многие штуки можно сделать автоматически. Конечно, утилиты не смогут «понять» код и написать к нему «правильные» тесты — иногда такая задача предельно сложна даже для опытного разработчика. Зато автоматика сможет сделать много простых тестов на граничные случаи и создать «boilerplate» код, который можно дорабатывать напильником самому.

📆 27 марта в 16:00 в зале 2 Юлия расскажет о своих приключениях на пути от начальной идеи до работающего open source прототипа по автогенерации тестов.

А пока мы опубликовали интервью, в котором расспросили, откуда появилась сама идея, что лежит в основе и с чем еще предстоит справиться. Читайте на Хабре, чего стоит заставить машину генерировать тесты из кода без контрактов и дополнительных инструкций: https://habr.com/ru/company/oleg-bunin/blog/490670/
#НеПереключайтеКанал

Сегодня делимся докладом Xuye Qin (Alibaba) «Mars: A tensor-based unified framework for large scale data computation»

«Mars is a tensor-based unified framework for large-scale data computation.
Mars tensor provides a compatible interface like Numpy, users can obtain the ability to handle extreme huge tensor/ndarray by simple import replacement. We extend the interface of Numpy to support create tensor/ndarray on GPU by specifying gpu=True on all the implemented array creation, and also, create sparse matrix via noting sparse=True on some array creation like zeros, eye and so on.

Mars can scale in to a laptop, and scale out to a cluster with thousands of machines. Both the local and distributed version share the same piece of code, it's fairly simple to migrate from a single machine to a cluster due to the increase of data. Mars is evolving quickly aimed at reaching production-level.

Mars is completely open sourced, and takes advantage of the great projects from Python community like numpy, cupy, numexpr, pyarrow etc to build the entire project. In the long term, mars is aimed to create a distributed counterpart of scipy stack which is not subject to the ability of a single machine.

This talk will focus on why we start the project of Mars and how we have done to ensure the simplicity of API and performance on huge terabytes-scale tensor/ndarray computation».
https://youtube.com/watch?v=RFysn2oUjN8
#НеПереключайтеКанал

Сегодня делимся докладом Alex Viscreanu (Kiwi.com) «How we test 1'000 Python projects in Kiwi»

«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. One year ago we created our own "Zoo" project, which is open sourced! This "reverse-test-system" constantly crawls all our repositories and checks a wide range of issues, from simple "wrong dependency version" and up to tricky GitLab and deploy misconfiguration. In the talk I will showcase how you can set the "Zoo" for yourself and what tests we are using for our code. Hope some of them can be useful for you code base too!»
https://youtube.com/watch?v=av0hvjRg0NM
🗂 Пётр Ермаков специализируется на Data Science: за его плечами HeadHunter, Mail.ru, 5 лет преподавания, сейчас он работает с данными в Lamoda и в прошлом году запустил собственную школу машинного обучения DataGym.

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

💫 В центре внимания — Jupyter Notebook, в последние годы ставший одновременно и пропуском в профессию дата сайентиста, и главным инстурментом в их работе. Но то, что хорошо для обучения, не всегда хорошо для решения бизнес-задач крупных компаний и создания надежных сервисов. То, как математики и аналитики используют Jupyter, часто вызывает скупую слезу у разработчиков и заставляет вспомнить демотиватор «я сделаль».

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

🗓 Доклад сугубо практический: какие были сложности при развертывании и использовании хаба, как решать популярные задачи, что с интеграциями и стоит ли вообще игра свеч или нужно просто брать неработающие ноутбуки сайентистов и переписывать их силами командой разработки. Если в вашем проекте есть data science (а где его теперь нет), не пропустите выступление Петра Ермакова.
На повестке снова ML!

Как известно, Machine Learning часто начинается с ноутбука разработчика, на котором он и данные подготавливает, и модели обучает, и на прод получившееся деплоит. Когда данных становится слишком много, то ноутбук заменяют на что-нибудь серверно-распределенное, например Spark с его заслуженным интерфейсом PySpark. Но что делать с обучением моделей?

Перенести ML-решения из нераспределенной среды в распределенную не так просто, и Андрей Гаврилов из EPAM уже несколько раз сталкивался с такими ситуациями на разных проектах.

🗓 В своё докладе Андрей расскажет о своей практике адаптации алгоритмов машинного обучения к распределенной среде и миграции c Scikit-learn на аналоги из библиотеки распределённого машинного обучения MLlib. Будут подробно рассмотрены причины такой миграции, имеющиеся технологические ограничения, разница между распределенным и нераспределенным пайплайном.
#НеПереключайтеКанал

Сегодня выкладываем доклад Игоря Куценко (hh.ru) «ML в поиске и рекомендациях hh.ru»

«Из доклада вы узнаете:
- как устроена система рекомендаций вакансий hh.ru;
- как в hh.ru перешли от стандартного полнотекстового поиска к поиску на основе машинного обучения;
- почему поисковая выдача hh.ru зависит от вашего резюме;
- как ML-сервис на Python может интегрироваться с поисковым движком на Java (Lucene)».
https://youtube.com/watch?v=jNGg6dbGp7Q
Владимир Колясинский расскажет о Celery — одной из самых популярных очередей задач для Python — и брокерах сообщений. В течение девяти лет в Яндексе брокером была MongoDB, и альтернатив особо не наблюдалось, но со временем скопилась критическая масса «хотелок», и команда разработки отправилась на поиски замены!

В докладе Владимир расскажет про возможные альтернативы: RabbitMQ, Redis и собственную наработку Яндекса «YMQ». Сравнит их друг с другом и подчеркнет достоинства и недостатки, специфичные для больших компаний и сложных проектов. Но выбор нового брокера — только половина работы.

Вторая часть доклада будет посвящена вопросам переезда на новый брокер, и поднятые в ней темы будет интересно обсудить гораздо большему кругу разработчиков. Что нужно поменять в коде вообще и Django в частности, куда смотреть на графики и что из «хотелок» в результате удалось воплотить в жизнь — все это через призму большой компании и высоконагруженной разработки на Moscow Python Conf++ 27 марта.
Что такое DDD и какие инструменты в нем есть, читайте в статье, основанной на докладе Артёма Малышева на Moscow Python Conf++ 2019.

В статье обсуждаем подход DDD в Python, инструменты, подводные камни, контрактное программирование и проектирование продукта вокруг решаемой проблемы, а не используемого фреймворка. Всё, чтобы ваш проект не получился похожим на синего кита — морское животное, которое не может дышать под водой.
О ситуации с коронавирусом: что мы думаем и делаем?

Друзья, в связи с обилием вопросов о работе конференции в ситуации с коронавирусом, мы публикуем этот небольшой FAQ о том, какие меры мы предпринимаем, что обо всём этом думаем и что будем делать.

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

Одна из мер — тотальная проверка температуры у всех участников ещё до регистрации.

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