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

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

     26.10.2020       Выпуск 358 (26.10.2020 - 01.11.2020)       Статьи

Создаём установщик веб-приложения Python, включающий Apache, Django и PostgreSQL для ОС Windows

Данный пост является продолжением первой части статьи на Хабре, где было подробно рассказано о развертывании Django стека на MS Windows. Далее будет представлена пошаговая инструкция по созданию инсталлятора, который будет автоматизировать процесс установки стека на других компьютерах без необходимости работы в командной строке, созданием виртуальных машин и т.д., где вся последовательность действий будет сводится к действиям Далее -> Далее -> Готово.

     25.10.2020       Выпуск 357 (19.10.2020 - 25.10.2020)       Статьи

Что происходит, когда вы выполняете manage.py test?

Вы запускаете тесты командой manage.py test, но знаете ли вы, что происходит под капотом при этом? Как работает исполнитель тестов (test runner) и как он расставляет точки, E и F на экране?

Когда вы узнаете, как работает Django, то откроете для себя множество вариантов использования, таких как изменение файлов cookie, установка глобальных заголовков и логирование запросов. Аналогично, поняв то, как работают тесты, вы сможете кастомизировать процессы, чтобы, например, загружать тесты в другом порядке, настраивать параметры тестирования без отдельного файла или блокировать исходящие HTTP-запросы.

     25.10.2020       Выпуск 357 (19.10.2020 - 25.10.2020)       Статьи

Pylint: о попытке снизить потребление памяти

Мне приходится работать с огромной кодовой базой, написанной на Python. Этот код, с помощью системы непрерывной интеграции, проверяется с помощью Pylint. Подобная проверка всегда была немного медленной, но недавно я обратил внимание на то, что при её проведении ещё и потребляется очень много памяти. Это, при попытке распараллеливания проверок, приводит к сбоям, которые связаны с нехваткой памяти.

     24.10.2020       Выпуск 357 (19.10.2020 - 25.10.2020)       Статьи

Hack The Box. Прохождение Dyplesher. Memcached, Gogs, RCE через создание плагина и LPE через AMQP

Продолжаю публикацию решений, отправленных на дорешивание машин с площадки HackTheBox.

В данной статье мы получим хеши пользователей благодаря memcached, разбираемся с GIT репозиториями, пишем плагин с бэкдором на Java, анализируем трафик и повышаем привилегии благодаря RabbitMQ.

     22.10.2020       Выпуск 357 (19.10.2020 - 25.10.2020)       Статьи

Как просто и быстро искать данные с помощью Whale

В этом материале рассказывается о простейшем и быстром инструменте обнаружения данных, работу которого вы видите на КДПВ. Интересно, что whale создан таким образом, чтобы размещаться на удаленном git-сервере. Подробности под катом.

     22.10.2020       Выпуск 357 (19.10.2020 - 25.10.2020)       Статьи

Сказ о том, как я токен в Линуксе хранил

Когда речь идёт о хранении sensitive data в браузере, достаточно воспользоваться одним из двух доступных вариантов: cookies или localStorage. Тут каждый выбирает по вкусу. Однако я посвятил эту статью Secret Service – службе, которая работает через D-Bus и предназначена для хранения «секретов» в Linux.

У службы есть API, которым пользуется GNOME Keyring для хранения секретов приложений.

     22.10.2020       Выпуск 357 (19.10.2020 - 25.10.2020)       Статьи

Автоматизация работы с проектом Python

Сегодня делимся с вами переводом статьи DevOps инженера из IBM, об автоматизации сборки быстро собираемых и удобно отлаживаемых образов Docker для проектов на Python с помощью Makefile. Этот проект не только упрощает отладку в Docker, но и заботится о качестве кода вашего проекта. Подробности, как всегда, под катом.

     22.10.2020       Выпуск 357 (19.10.2020 - 25.10.2020)       Статьи

Мелкая питонячая радость #11: реактивное программирование, парсинг страниц и публикация моделей машинного обучения

На этой неделе мы посмотрим, как можно работать чуточку быстрее, чем вчера. Разбираемся и внедряем в свои проекты пайплайны реактивного программирования, автоматически потрошим тексты и превращаем модели машинного обучения в интерактивные веб приложения.

     22.10.2020       Выпуск 357 (19.10.2020 - 25.10.2020)       Статьи

Deep Learning Inference Benchmark — измеряем скорость работы моделей глубокого обучения

Перед разработчиками встает задача определения производительности железа в задаче исполнения глубоких моделей. Например, хочется решить проблему анализа пола-возраста покупателей, которые заходят в магазин, чтобы в зависимости от этого менять оформление магазина или наполнение товаром. Вы уже знаете какие модели хотите использовать в вашем ПО, но до конца не понятно как выбрать железо. Можно выбрать самый топ и переплачивать как за простаивающие мощности, так и за электроэнергию. Можно взять самый дешевый i3 и потом вдруг окажется, что он может вывезти каскад из нескольких глубоких моделей на 8 камерах. А может быть камера всего одна, и для решения задачи достаточно Raspberry Pi с Movidius Neural Compute Stick? Поэтому хочется иметь инструмент для оценки скорости работы вашего инференса на разном железе, причем еще до начала обучения.

     21.10.2020       Выпуск 357 (19.10.2020 - 25.10.2020)       Статьи

Fastcore — недооцененная но полезная библиотека Python

Недавно я начал оттачивать владение языком программирования Python. Я хотел изучить продвинутые паттерны, идиомы и методы программирования. Начал я с чтения книг по продвинутому Python, но информация, похоже, не откладывалась в голове без применения навыков. Хотелось иметь возможность задавать вопросы эксперту, пока учусь, а такую возможность трудно найти! Тогда ко мне и пришла идея: что, если я найду проект с открытым и достаточно продвинутым кодом и напишу документацию и тесты? Я сделал ставку, что это заставит меня изучать все очень глубоко, а поддерживающие проект люди оценит мою работу и будут готовы ответить на мои вопросы.

     20.10.2020       Выпуск 357 (19.10.2020 - 25.10.2020)       Статьи

Как я получил пожизненный запас чесночной пиццы с помощью Python и Selenium

История голодного студента с пытливым умом Не знаю, как вы, а я обожаю пиццу. Особенно если это особые чесночные пицца-палочки Papa John’s. Поэтому я был в восторге, когда после заказа еды навынос получил от них следующее письмо: Papa John’s (с) Заголовок письма с опросом Бесплатная еда! Мне определённо нужно было пройти этот опрос

     20.10.2020       Выпуск 357 (19.10.2020 - 25.10.2020)       Статьи

Абстрагируемся от фреймворков глубокого обучения с Neuropod от Uber

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

     20.10.2020       Выпуск 357 (19.10.2020 - 25.10.2020)       Статьи

О полезности contextvars

В Python есть множество возможностей и языковых конструкций. Какие-то мы используем каждый день, а о некоторых даже опытные программисты узнают с удивлением после нескольких лет работы с языком (привет, Ellipsis!). Совсем недавно вышел Python 3.9, но в этой статье я расскажу о функциональности, представленной еще в версии 3.7. На мой взгляд, она совершенно незаслуженно обделена пристальным вниманием. Речь, конечно же, о contextvars.

     19.10.2020       Выпуск 357 (19.10.2020 - 25.10.2020)       Статьи

Головоломка для ИИ

Как я учил агента собирать клетку 2048 в игре “2048”

     19.10.2020       Выпуск 357 (19.10.2020 - 25.10.2020)       Статьи

Визуализация использования GIL в CPython

Интересно, как ведут себя потоки, когда борются за GIL, или немного информации отсюда только для Python3.

Сразу оговорюсь, что использую Ubuntu 16.04 c ядром 4.15.0-115-generic, на машине стоит 4-х ядерный процессор Intel(R) Core(TM) i5-4200U CPU @ 1.60GHz с 4 GB RAM.

     19.10.2020       Выпуск 357 (19.10.2020 - 25.10.2020)       Статьи

Подключение Yandex Database к serverless телеграм боту на Yandex Functions

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

В качестве базы данных мы будем использовать Yandex Cloud Database.

     18.10.2020       Выпуск 356 (12.10.2020 - 18.10.2020)       Статьи

Песочный алфавит при помощи генеративных алгоритмов


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

     17.10.2020       Выпуск 356 (12.10.2020 - 18.10.2020)       Статьи

Конфигурация проекта внутри и вне Kubernetes

Недавно я написал ответ о жизни проекта в Докерах и отладке кода вне него, где мельком упомянул о том, что можно сделать свою систему конфигурирования, чтобы сервис и в Кубере хорошо работал, подтягивал секреты, и локально удобно запускался, в том числе вообще вне Докера. Ничего сложного, но описанный "рецепт" может кому-то пригодится :) Код на Питоне, но логика к языку не привязана.

     17.10.2020       Выпуск 356 (12.10.2020 - 18.10.2020)       Статьи

Зарплаты Python-разработчиков: самые большие зарплаты не в Москве, а в Воронеже нет сеньоров

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

     16.10.2020       Выпуск 356 (12.10.2020 - 18.10.2020)       Статьи

Парсинг и аудит

Начнем с идеи. Допустим, вы, как настоящий аудитор, хотите провести экспертизу отчетности заводчика собак, используя в том числе и сторонние ресурсы. Для этого вы пробуете получить систематизированную информацию о щенках заводчика, зная, к примеру, лишь название их пород, и составить из нее таблицу в Pandas, пригодную к дальнейшей обработке любого характера (всевозможные статистические изыскания, агрегация и так далее). Но ваши данные хранятся в глубине некоторого абстрактного вебсайта, откуда вы можете вынуть их в только виде архива, где сложены документы нескольких форматов, внутри которых есть текст, картинки, таблицы. А если пород щенков много, а на каждую из них есть по десятку pdf-файлов с таблицами, откуда вам нужна не вся информация, а также, например, нужны названия этих таблиц или сноски? Добавим в наш проект несколько функций, решающих следующие задачи: выгрузка и распаковка архива с данными, поиск и обработка pdf файлов из архива, анализ полученных данных.