Выпуск 330

(13.04.2020 - 19.04.2020)

pythondigest.ru: Выпуск 330

Статьи

      Строим города по клику мыши с Houdini и Python

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

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

В этом материале я разберу базовую настройку инструмента City Builder в Houdini, который может строить города простыми кликами мышью. Обратите внимание, что он работает только внутри Houdini с использованием Python Viewer States.

      PyDERASN: как я добавил big-data поддержку

Продолжаю прошлую статью о PyDERASN — свободном ASN.1 DER/CER/BER кодеке на Python. За прошедший год, с момента её написания, кроме всяких мелочей, небольших исправлений, ещё более строгой проверки данных (хотя и прежде он был уже самым строгим из известных мне свободных кодеков), в этой библиотеке появился функционал для работы с большими объёмами данных — не влезающих в оперативную память. Об этом и хочу рассказать в данной статье.

      Представляем PyCaret: открытую low-code библиотеку машинного обучения на Python

Рады представить вам PyCaret – библиотеку машинного обучения с открытым исходным кодом на Python для обучения и развертывания моделей с учителем и без учителя в low-code среде. PyCaret позволит вам пройти путь от подготовки данных до развертывания модели за несколько секунд в той notebook-среде, которую вы выберете.

По сравнению с другими открытыми библиотеками машинного обучения, PyCaret – это low-code альтернатива, которая поможет заменить сотни строк кода всего парой слов. Скорость проведения более эффективных экспериментов возрастет экспоненциально. PyCaret – это, по сути, оболочка Python над несколькими библиотеками машинного обучения, такими как scikit-learn, XGBoost, Microsoft LightGBM, spaCy и многими другими.

      «Как зеницу ока...» или делаем простенькую охранную систему на базе микроконтроллера (Сanny или Arduino) и Raspberry PI

Во время подготовки статьи, про распознавание микроконтроллеров с помощью TensorFlow и OpenCV мне одновременно на глаза попались Craftduino, Canny 3 tiny и Raspberry PI, после чего я решил, что будет здорово еще раз объединить их в одной статье. Я долго думал, о чем писать, а потом стыдно признаться, вспомнил, что я здоровый дядька, а еще ни разу не подключал ничего по UART. «В жизни надо попробовать всё» — подумал я. Но писать только про подключение к UART скучно, поэтому незамедлительно были заказаны всякие «игрушки», среди которых были новенькая Arduino, и пара датчиков.

Итак, сегодня мы будем делать охранную систему для моей любимой ручки.

      Когда использовать метаклассы в Python: 5 интересных вариантов использования

В статье описывается 5 способов применения метаклассов в Python. Статья подразумевает что читатель уже знает что такое метаклассы и имеет опыт их практического использования.

Оригинальная статья: Sebastian Buczyński – When to use metaclasses in Python: 5 interesting use cases

Метаклассы упоминаются среди самых продвинутых возможностей Python. Знание того, как их использовать, воспринимается коллегами как наличие черного пояса Python. Но полезны ли они для всех собеседований или конференций? Давай выясним! Эта статья покажет вам 5 практических применений метаклассов.

      StegoPy — Инструмент LSB-стеганографии на Python

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

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

LSB — метод стеганографии, при котором меняются младшие биты одного из RGB цветов в пикселе на биты кодируемого текста.

Потом я познакомился с библиотекой Pillow для работы с изображениями и Cryptography. Вторая в моем случае была нужна для создания DES-шифрования, которое впоследствии будет закодировано побитно в изображение.

      Ускоряем numpy, scikit и pandas в 100 раз с Rust и LLVM: интервью с разработчиком Weld

Представляю вашему вниманию перевод статьи «Interview with Weld’s main contributor: accelerating numpy, scikit and pandas as much as 100x with Rust and LLVM».

Проработав несколько недель с data science инструментарием в Python и R, я начал задаваться вопросом, а нет ли какого промежуточного представления (Intermediate representation, IR) наподобие CUDA, которое можно использовать в разных языках. Должно же быть что-то получше, чем реимплементация и оптимизация одних и тех же методов в каждом языке. В дополнение к этому было бы неплохо иметь общую среду выполнения (common runtime), чтобы оптимизировать всю программу целиком, а не каждую функцию в отдельности.

      Как убить на мелкий скрипт кучу времени или история одного пулл-реквеста

Этой заметкой я хочу еще раз показать, что оценка времени на задачу — это нетривиальная проблема. Даже элементарные задачи по написанию 15-строчного скрипта могут растягиваться на несколько часов.

 

Понадобилось мне дублировать информацию из markdown-заметок в телеграм-канал. Казалось быть, что тут рассусоливать — Ctrl+C и Ctrl+V в помощь. Однако выяснился маленький нюанс: markdown в телеге не совсем полноценный и ссылки в таком формате [text](http://example.com) клиент не поддерживает. Ладно, подумал я, попробуем что-то с этим сделать.

      Пробуждение спящего института: как мы убираем ходунки у Python в REAPER

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

 

Однако, сегодня нежданно вырвался из локдауна ментейнер героя сегодняшнего обзора, и, буквально несколько часов назад в PyPi ушел reapy v0.6.0. Под катом — последний changelog, и мне особенно приятно, что в той или иной степени я поучаствовал в появлении каждой его строчки.

Итак: зачем нужен reapy, и что происходит с Python в REAPER.

      Делаем модем: передаем цифровые данные по воздуху с помощью OFDM и GNU Radio

Данный текст можно считать продолжением статьи "Разбираем звук Dial-up модема", в которой разбирался метод установки связи между модемами. Сегодня мы пойдем дальше, и посмотрим на практике как передаются данные, для чего создадим простую реализацию модема с помощью OFDM и GNU Radio.

Данные мы будем передавать по воздуху, в прямом смысле этого слова — для приема и передачи будет достаточно динамика и микрофона.

Для тех, кому интересно как это работает, продолжение под катом.

      Как извлечь текст из PDF

Список библиотек

      Tcl/Tk. Алтернативный файловый проводник для платформ Linux и Android

Чем дольше я пишу различные программы на tcl/tk, тем больше восхищаюсь его возможностями и продуманностью. Но была одна вещь, которая не давала мне покою до последнего времени. При разработке GUI часто приходится пользоваться файловым проводником (tk_getSaveFile, tk_getOpenFile или tk_chooseDirectory). И если на платформах Windows или OS X, загружается нативный файловый проводник этих платформ, то на платформах Linux загружается проводник от tcl/tk (ну нет в Linux нативного проводника):

      Пишем Domain-Specific Language на textX

Язык + подсветка синтаксиса

      Dissecting a Web stack

An in-depth review of the components of a (Python) web stack, and the reasons behind each part of it

      Множественное наследование и mixin классы

Подробный обзор инструментов

      Плавная сортировка

Продолжаем погружение в разнообразные кучи.

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

Многие слыхали про эту сортировку, однако мало кто знает как именно она работает. Сегодня увидим, что ничего сложного в ней нет.

      Множественное наследование и миксины в Python

Перевод статьи: Leonardo Giordani – Multiple inheritance and mixin classes in Python

Недавно я пересмотрел три своих старых статьи о представлениях на основе классов Django (class-based views), которые написал для своего блога, обновив их до Django 3.0 (вы можете найти их здесь), и еще раз обнаружил, большое количество кода использующего классы mixin для улучшения повторного использования кода. По своему опыту я понял, что миксины не очень популярны в Python, поэтому решил изучить их лучше, тем самым освежив свои знания теории ООП.

      Запускаем Jupyter на орбиту LXD

Приходилось ли вам экспериментировать с кодом или системными утилитами в Linux так, чтобы не трястись за базовую систему и не снести всё с потрохами в случае ошибки кода который должен запустится с root-привилегиями?

 

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

      Простой робот на МК esp8266 c micropython

Эта статья описывает процесс апгрейда самоходной платформына базе МК esp8266 с micropython, до простейшего робота, оснащённого сканирующим ультразвуковым датчиком препятствий, мигающим светодиодом, кнопкой «старт/стоп», а также встроенным веб-сервером, в рамках учебного проекта.





Разместим вашу рекламу

Пиши: mail@pythondigest.ru

Нашли опечатку?

Выделите фрагмент и отправьте нажатием Ctrl+Enter.

Система Orphus