Собрали в одном месте самые важные ссылки
консультируем про IT, Python
Новая серия code review от нашей команды дотошных питонистов. На сей раз разбору подвергся код предназначенного для организации волонтёрских активностей Telegram-бота GoLocal (написан на базе фреймворка Telegram Bot API). Операцию ведут тимлид NVIDIA Злата Обуховская, сооснователь W12 и соорганизатор Moscow Python Conf++ Михаил Осипов, соорганизатор Moscow Python Conf++ и сооснователь Itcanfly Владимир Филонов. Они объясняют, зачем код даже простого бота целесообразно разносить по разным модулям, в чём ужас хардкод-логирования ошибок, как без лишних манипуляций реализовать многоязычность в программе на Python, чем полезен middleware и как всё-таки называть переменные правильно
Пост актуальный для майских праздников. 6 недель назад я подал документы, чтобы получить визу в Ирландию. Вылет запланирован на 30 апреля. Существует сайт посольства, на котором публикуются списки решений по визам. Они это делают по понедельникам и четвергам. И вот я сижу в воскресенье, 28 апреля, по моей визе решения еще нет. И дальнейшие мои действия в понедельник зависят от того, будет ли мое заявление в новом отчете или нет. Если нет, то надо будет ехать в посольство и разбираться. Если есть, то дергать визовый центр. Сидеть и обновлять страничку целый день в понедельник казалось унылым времяпрепровождением, поэтому я написал скрипт на Python.
Формальная верификация — это проверка одной программы либо алгоритма с помощью другой.
Это один из самых мощных методов, который позволяет найти в программе все уязвимости либо же доказать, что их нет.
Более подробное описание формальной верификации можно увидеть на примере решения задачи о Волке, Козе, и капусте в моей предыдущей статье.
В этой статье я перехожу от формальной верификации задач, к программам, и опишу,
каким образом можно конвертировать их в системы формальных правил автоматически.
Быстрое преобразование Фурье (БПФ — англ. FFT) является одним из важнейших алгоритмов обработки сигналов и анализа данных. Я пользовался им годами, не имея формальных знаний в области компьютерных наук. Но на этой неделе мне пришло в голову, что я никогда не задавался вопросом, как БПФ так быстро вычисляет дискретное преобразование Фурье. Я стряхнул пыль со старой книги по алгоритмам, открыл ее, и с удовольствием прочитал об обманчиво простой вычислительной уловке, которую Дж. В. Кули и Джон Тьюки описали в своей классическойработе 1965 года, посвященной этой теме.
В трудное время мы живем, не находите? Люди эгоистичны, не признают ценность чужих трудов, любят приходить сразу на все готовое. Интеллектуальная собственность для многих вообще выглядит не более чем бюрократической шуткой: «Как же это так, информация должна быть свободной, ведь это ИН-ФОР-МА-ЦИЯ!!!11». Согласен, в идеале это так. Эти ваши анархии, мятежнические настроения и философии андерграундных хакеров/пиратов, стоящих на страже прав простого люда, мне не чужды. Но парадокс в том, что истинная справедливость – это еще и отплачивать всем за их труд и заслуги, поэтому в большинстве случаев пиратство – антагонистическое предприятие. Но вот политика предоставления услуг по защите интеллектуальной собственности, предлагаемая таким замечательным вендором, как ИнфоПротектор, вызвал у меня праведный гнев.
В этом уроке мы собираемся обсудить поверхностное (shallow) и глубокое (deep) копирование с помощью примеров на Python. Мы рассмотрим определение глубокого и поверхностного копирования, а также их реализации на языке Python, чтобы оценить основные различия между двумя типами копирования.
Во многих программах, которые мы пишем, нам часто приходится копировать объекты по какой либо причине, например, из-за улучшения вычислительной эффективности. Есть два способа сделать это: сделать полную копию или поверхностную копию. Прежде чем мы обсудим различия между ними, давайте сначала рассмотрим, что такое глубокое и поверхностное копирование.
На повестке дня интересная тема — будем создавать с нуля собственную нейронную сеть на Python. В ее основе обойдемся без сложных библиотек (TensorFlow и Keras).
Основное, о чем нужно знать — искусственная нейронная сеть может быть представлена в виде блоков/кружков (искусственных нейронов), имеющие между собой, в определенном направлении, связи. В работе биологической нейронной сети от входов сети к выходам передается электрический сигнал (в процессе прохода он может изменяться).
Доклад о том зачем начинающему (и не очень) разработчику участвовать в развитии OSS-проектов. Поговорим про PyPI, pip и Poetry, а также о не совсем очевидном следствии создания своего проекта.
В ЦИАН мы постоянно пользуемся линтером для проверки качества кода. Но случаются моменты, когда хочется проверять код на соответствие внутренним соглашениям, про которые линтер ничего не знает. Разработчикам приходится держать все соглашения в голове и самостоятельно проверять качество кода. Это усложняет и затягивает код-ревью. Я расскажу о том, как мы решили эту проблему с помощью Pylint, который имеет мощную систему создания плагинов. Покажу на примерах как плагины могут упростить процесс код-ревью. Рассмотрим процесс написания плагинов и попутно разберемся как работает сам Pylint изнутри.
* Какие мотивы стояли за созданием библиотеки asyncio?
* Как в ней реализовано асинхронное выполнение кода? * Почему это полезно знать, если пишешь код с её использованием?