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

Собрали в одном месте самые важные ссылки
читайте нас в Twitter

     17.04.2020       Выпуск 330 (13.04.2020 - 19.04.2020)       Статьи

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

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

 

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

     16.04.2020       Выпуск 330 (13.04.2020 - 19.04.2020)       Статьи

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

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

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

     16.04.2020       Выпуск 330 (13.04.2020 - 19.04.2020)       Статьи

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

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

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

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

     15.04.2020       Выпуск 330 (13.04.2020 - 19.04.2020)       Статьи

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

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

 

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

     15.04.2020       Выпуск 330 (13.04.2020 - 19.04.2020)       Статьи

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

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

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

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

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

     15.04.2020       Выпуск 330 (13.04.2020 - 19.04.2020)       Статьи

Ускоряем 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), чтобы оптимизировать всю программу целиком, а не каждую функцию в отдельности.

     14.04.2020       Выпуск 330 (13.04.2020 - 19.04.2020)       Статьи

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

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

     14.04.2020       Выпуск 330 (13.04.2020 - 19.04.2020)       Статьи

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

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

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

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

     14.04.2020       Выпуск 330 (13.04.2020 - 19.04.2020)       Статьи

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

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

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

     13.04.2020       Выпуск 330 (13.04.2020 - 19.04.2020)       Статьи

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

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

     12.04.2020       Выпуск 329 (06.04.2020 - 12.04.2020)       Статьи

Общий финансовый анализ на Python (Часть 3)

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

     11.04.2020       Выпуск 329 (06.04.2020 - 12.04.2020)       Статьи

API Тиньков.Инвестиции. Первые шаги

Практически с первых дней я стал клиентом Тиньков.Инвестиции.

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

     12.04.2020       Выпуск 329 (06.04.2020 - 12.04.2020)       Статьи
     10.04.2020       Выпуск 329 (06.04.2020 - 12.04.2020)       Статьи

Чистая архитектура в платёжной платформе

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

     10.04.2020       Выпуск 329 (06.04.2020 - 12.04.2020)       Статьи

Raspberry Pi, Python и полив комнатных растений

У меня не складываются отношения с комнатными растениями. Дело в том, что я забываю их поливать. Зная это, я начал размышлять о том, что кто-то, наверняка, уже нашёл способ автоматизации полива. Как оказалось, способов таких существует очень много. А именно, речь идёт о решениях, основанных на Arduino или на Raspberry Pi. В этом материале я хочу рассказать о том, как создал систему, основанную на Raspberry Pi и Python, предназначенную для автоматизации полива растений.

     10.04.2020       Выпуск 329 (06.04.2020 - 12.04.2020)       Статьи

Фракталы на Python. Пошаговое руководство

Сегодняшний пост про фракталы попался в рамках проработки темы Python, в частности, Matplotlib. Последуем примеру автора и предупредим, что в посте много тяжелой анимации, которая может даже не работать на мобильном устройстве. Зато как красиво.

     09.04.2020       Выпуск 329 (06.04.2020 - 12.04.2020)       Статьи

Подбор важности фич для k-nearest neighbors (ну или других гиперпараметров) спуском похожим на градиентный

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

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

     07.04.2020       Выпуск 329 (06.04.2020 - 12.04.2020)       Статьи

Автоматизация обслуживания клиентов: An End-To-End решение от DeepPavlov

Сегодня мы все чаще используем приложения для обмена мгновенными сообщениями (Facebook Messenger, WhatsApp, Telegram и т. д.) и устройства в виде голосовых помощников (Amazon Echo и Google Home и т. д.), помогающих получать моментальный ответ на запрос. Поэтому современные компании закладывают значительный бюджет в разработку искусственных помощников, чтобы предоставлять своим пользователям наилучший клиентский сервис, когда это необходимо. В этой статье мы расскажем, как использовали технологию искусственного интеллекта DeepPavlov для расширения возможностей обслуживания клиентов компании Интерсвязь.

     07.04.2020       Выпуск 329 (06.04.2020 - 12.04.2020)       Статьи

Как избавиться от размытых фотографий с помощью Python

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

Некачественные снимки напрямую снижают прибыль.

 

  • Как приложению распознавать нечеткие фотографии на уровне алгоритма?
  • Как измерить четкость RGB-изображения?

     07.04.2020       Выпуск 329 (06.04.2020 - 12.04.2020)       Статьи

Тестирование производительности Python ORM методом, основанном на бенчмарке TPC-C

При написании приложений на Python, для работы с базами данных часто используются объектно-реляционные мапперы (ORM). Примерами ORM являются SQLALchemy, PonyORM и объектно-реляционный маппер, входящий в состав Django. При выборе ORM довольно важную роль играет её производительность.