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

Собрали в одном месте самые важные ссылки
консультируем про IT, Python

     01.11.2021       Выпуск 411 (01.11.2021 - 07.11.2021)       Статьи

Простой GUI калькулятор на Python #1. Создание дизайна приложения

Наверное, каждый начинающий программист после "Hello, world!" хочет написать какой-нибудь простенький проект. Почти всегда в голову приходит идея создания калькулятора. Но консольный калькулятор - это как-то скучно и просто. Хочется сделать приложение вот прямо как в системе. Ну или хотя бы что-то похожее.

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

     01.11.2021       Выпуск 411 (01.11.2021 - 07.11.2021)       Статьи

Глобальная блокировка интерпретатора (GIL) и её воздействие на многопоточность в Python

Как вы, наверное, знаете, глобальная блокировка интерпретатора (GIL, Global Interpreter Lock) — это механизм, обеспечивающий, при использовании интерпретатора CPython, безопасную работу с потоками. Но из-за GIL в конкретный момент времени выполнять байт-код Python может лишь один поток операционной системы. В результате нельзя ускорить Python-код, интенсивно использующий ресурсы процессора, распределив вычислительную нагрузку по нескольким потокам. Негативное влияние GIL на производительность Python-программ, правда, на этом не заканчивается. Так, GIL создаёт дополнительную нагрузку на систему. Это замедляет многопоточные программы и, что выглядит достаточно неожиданно, может даже оказать влияние на потоки, производительность которых ограничена подсистемой ввода/вывода.

     30.10.2021       Выпуск 410 (25.10.2021 - 31.10.2021)       Статьи

Обучение с подкреплением на Python: Пример не из «качалки»

Обучение с подкреплением молодая и бурно растущая дисциплина. Это обстоятельство привело к тому что информации об этом мало на английском и почти нет на русском языке. Особенно, если дело касается объектно-ориентированного подхода, и практических задач не из арсенала Open Gym. Стало интересно, как решать задачи RL в других средах.

     30.10.2021       Выпуск 410 (25.10.2021 - 31.10.2021)       Статьи

Профилирование программ

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

     29.10.2021       Выпуск 410 (25.10.2021 - 31.10.2021)       Статьи

Пишем первого робота для банка

В этой статье мы разберемся, что такое "робот", поймем, как они помогают операционистам, напишем и запустим простого робота на Python.

Исходный код робота и данные для работы можно скачать здесь.

     29.10.2021       Выпуск 410 (25.10.2021 - 31.10.2021)       Видео

Moscow Python Podcast. Python в нефтехимии (level: all)

В гостях у Moscow Python Podcast старший владелец продукта компании Сибур Диджитал Вадим Щемелинин. Поговорили с Вадимом о Индустрии 4.0, видеоаналитике в нефтехимии и о многом другом.

     29.10.2021       Выпуск 410 (25.10.2021 - 31.10.2021)       Статьи

Pytorch lightning. Simple is better

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

     29.10.2021       Выпуск 410 (25.10.2021 - 31.10.2021)       Статьи

Лучший способ выбора случайной точки в круге

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

     28.10.2021       Выпуск 410 (25.10.2021 - 31.10.2021)       Статьи

Как правильно готовить автоматизацию или Что покрывать тестами в первую очередь

Каждый ручной тестировщик считает, что автоматизация — это круто и её непременно нужно втащить в проект. Что может быть лучше, чем полное покрытие автотестами продукта, когда тесты гоняются 24/7 и отлавливают баги? Вот прочитал я эти строки, и захотелось ещё раз всё заавтоматизировать!

     28.10.2021       Выпуск 410 (25.10.2021 - 31.10.2021)       Статьи

Python как инструмент сборки

Обычно, начиная проект на Java (или любой другой проект), вы не хотите заново изобретать колесо. Вы де-факто выбираете систему сборки, структуру папок, окружение и т.д. То, что использует весь остальной мир.

     26.10.2021       Выпуск 410 (25.10.2021 - 31.10.2021)       Статьи

Как сделали нейросеть для оцифровки паспортов и отправили её в облако

Уже не раз поднимали тему распознавания паспортов, и даже заявляли о том, что тема закрыта.

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

     26.10.2021       Выпуск 410 (25.10.2021 - 31.10.2021)       Статьи

Главный секрет операторов match/case в пайтоне

Не так давно увидела свет версия языка пайтон 3.10. В ней был добавлен pattern matching statement (оператор сопоставления с шаблонами). Как гласит официальное описание этого оператора в PEP622, разработчики в большей мере вдохновлялись наработками таких языков как: Scala, Erlang, Rust.

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

     25.10.2021       Выпуск 410 (25.10.2021 - 31.10.2021)       Статьи

Немного примеров match/case в Python 3.10

Не так давно (а именно 4 октября 2021 года) официально увидела свет юбилейная версия языка python, а именно версия 3.10. В ней было добавлено несколько изменений, а самым интересным (на мой взгляд) было введение pattern matching statement (оператор сопоставления с шаблонами). Как гласит официальное описание этого оператора в PEP622, разработчики в большей мере вдохновлялись наработками таких языков как: Scala, Erlang, Rust.

Для тех, кто еще не знаком с данным оператором и всей его красотой, предлагаю познакомиться с pattern matching в данной статье. 

     25.10.2021       Выпуск 410 (25.10.2021 - 31.10.2021)       Статьи

Подсчет автомобильного трафика с использованием COMPUTER VISION4

Иногда у нас встречаются задачи по подсчету клиентопотока. Мы можем считать очереди, заполнение общественных мест и т.д.

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

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

     24.10.2021       Выпуск 409 (18.10.2021 - 24.10.2021)       Статьи

Создаем начальную миграцию с alembic для существующей базы

Не так давно я пришел на проект, где пользовали SQLAlchermy и Alembic. Но по воле рока так случилось, что alembic подключили после того, как создали в базе кучу объектов. Для тех, кто не в курсе, SQLAlchemy - это библиотека и ORM для питона, а Alembic - это инстумент для работы с миграциями для SQLAlchemy.

     24.10.2021       Выпуск 409 (18.10.2021 - 24.10.2021)       Статьи

Получаем кривую плотности распределения вероятности случайного (или нет) процесса

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

     24.10.2021       Выпуск 409 (18.10.2021 - 24.10.2021)       Статьи

5++ способов в одну строку на Python решить первую задачу Проекта Эйлера

Однажды меня посетила мысль, а что если попробовать решить первую задачу Проекта Эйлера всевозможными способами, но с условием, что решение должно быть в одну строку. В итоге получилось более пяти однострочных решений с применением Filter, Map, Reduce, Generator Expression и т.д. В этой статье я покажу то, к чему я пришёл.

     24.10.2021       Выпуск 409 (18.10.2021 - 24.10.2021)       Статьи

Новая версия статьи про рисование трехмерных поверхностей в Matplotlib

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

     24.10.2021       Выпуск 409 (18.10.2021 - 24.10.2021)       Статьи

Игра в бисер на Python

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

     23.10.2021       Выпуск 409 (18.10.2021 - 24.10.2021)       Видео

Moscow Python Podcast. О развитии разработчика (level: all)

В гостях у Moscow Python Podcast руководитель подразделения World of Tanks Game Logic компании Wargaming Левон Авакян. Поговорили с Левоном о правильном развитии разработчика.