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

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

     10.03.2021       Выпуск 377 (08.03.2021 - 14.03.2021)       Статьи

[Перевод] Трассировщик лучей с нуля за 100 строчек Python

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

Примечание: Эта статья ни в коем случае не является полным руководством/объяснением трассировки лучей, поскольку эта тема слишком обширна, а скорее просто введением для любопытствующих.

     09.03.2021       Выпуск 377 (08.03.2021 - 14.03.2021)       Статьи

Пять распространенных ошибок Django

Django — это фантастический фреймворк для создания веб-приложений. Когда вы только начинаете работать с Django, вы можете часто совершать одни и те же небольшие ошибки из-за недостатка знаний. Я написал этот пост чтобы помочь осветить некоторые часто встречаемые мною ошибки в чужом коде.

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

     09.03.2021       Выпуск 377 (08.03.2021 - 14.03.2021)       Статьи

HTTP атака на Azure

Будем ломать веб-сервер и закидывать его пачками HTTP запросов. Потихоньку заполнять всё вокруг HTTP-флудом и наблюдать полнейшую деградацию. Готовься Azure, будет не до смеха!

     09.03.2021       Выпуск 377 (08.03.2021 - 14.03.2021)       Статьи

Маленькие Python для маленьких embedded-программистов: CircuitPython и MicroPython для MeowBit

На Хабре уже немало писали про обучающий микрокомпьютер BBC micro:bit, который в 2016 раздали всем британским школьникам, и сейчас он продаётся по $15. С прошлого года появились в продаже и micro:bit v2, в которых ОЗУ расширена с 16 КБ до 128 КБ. Неизменным остался форм-фактор: две кнопки для ввода, матрица 5х5 светодиодов для вывода, всё что сверх этого – подключайте через 25-контактный edge connector. Очевидно, что создатели задумывали micro:bit не как самостоятельное устройство, а как «мозг» для более сложного проекта со внешними датчиками, индикаторами, релюшками, сервоприводами и т.п. – этакий «детский Arduino».

     08.03.2021       Выпуск 377 (08.03.2021 - 14.03.2021)       Статьи

Перегон картинок из Pillow в NumPy/OpenCV всего за два копирования памяти

Стоп, что? В смысле «всего»? Разве преобразование из одного формата в другой нельзя сделать за одно копирование, а лучше вообще без копирования?Да, это кажется безумием, но более привычные методы преобразования картинок работают в 1,5-2,5 раза медленнее (если нужен не read-only объект). Сегодня я покопаюсь в кишках обеих библиотек, расскажу почему так получилось и кто виноват. А также покажу финальный результат, который работает так же, только быстрее. Никаких репозиториев или пакетов не будет, только рассказ и рабочий код в конце. Но давайте обо всём по порядку.

     05.03.2021       Выпуск 376 (01.03.2021 - 07.03.2021)       Статьи

Как убедить гейм-дизайнера запустить тесты?

Полагаю, ни для кого не секрет, что в разработке игр участвует очень много специалистов, а не только программисты. Выпуск игры невозможен без художников, моделлеров, VFX-художников, и, конечно, гейм-дизайнеров. Кстати о последних. Мы их очень любим, но они часто ломают ресурсы. Не то чтобы они хотят это делать, но из-за особенностей работы им нужно делать много мелких правок, и шанс накосячить выше. И ведь множество ошибок — это тривиальные опечатки, недописанная или, наоборот, лишняя удалённая строка. Всё это можно исправить не отходя от кассы. Но как это сделать? Прописать в регламенте, что перед коммитом обязательно запустить %my_folder%/scripts/mega_checker? Мы проверяли — не работает. Человек — существо сложное и забывчивое. А проверять ресурсы хочется.

Но мы нашли выход — теперь нельзя закоммитить в репозиторий без тестов. По крайней мере незаметно и безнаказанно.

     05.03.2021       Выпуск 376 (01.03.2021 - 07.03.2021)       Статьи

Как прикрутить нейросеть к сайту по быстрому

В данном материале предлагается, приложив небольшие усилия, соединить python 3.7+flask+tensorflow 2.0+keras+небольшие вкрапления js и вывести на web-страницу определенный интерактив. Пользователь, рисуя на холсте, будет отправлять на распознавание цифры, а ранее обученная модель, использующая архитектуру CNN, будет распознавать полученный рисунок и выводить результат. Модель обучена на известном наборе рукописных цифр MNIST, поэтому и распознавать будет только цифры от 0 до 9 включительно. В качестве системы, на которой все это будет крутиться, используется windows 7.

     05.03.2021       Выпуск 376 (01.03.2021 - 07.03.2021)       Статьи

Поиск нарушений на видео с помощью компьютерного зрения

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

     05.03.2021       Выпуск 376 (01.03.2021 - 07.03.2021)       Статьи

Делаем тесты частью приложения

Сегодня я собираюсь обсудить абсолютно новую для многих пользователей идею: интеграцию тестов в ваше приложение.

     04.03.2021       Выпуск 376 (01.03.2021 - 07.03.2021)       Статьи

Как ML помогает при аудите качества клиентского сервиса

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

     04.03.2021       Выпуск 376 (01.03.2021 - 07.03.2021)       Статьи

Бесплатный удобный ETL инструмент с открытым кодом на основе Python — фантастика или нет?

Мы давно ищем идеальный ETL инструмент для наших проектов. Ни один из существующих инструментов нас полностью не удовлетворял, и мы попробовали собрать из open-source компонентов идеальный инструмент для извлечения и обработки данных. Кажется, у нас это получилось! По крайней мере, уже многие аналитики попробовали эту технологию и отзываются очень позитивно. Сборку мы назвали ViXtract и опубликовали на GitHub под BSD лицензией. Под катом — рассуждения о том, каким должен быть идеальный ETL, рассказ о том, почему его лучше делать на Python (и почему это совсем не сложно) и примеры решения реальных задач на ViXtract. Приглашаю всех заинтересованных к дискуссии, обсуждению, использованию и развитию нового решения для старых проблем!

     04.03.2021       Выпуск 376 (01.03.2021 - 07.03.2021)       Статьи

Мульти-классовое целе-вероятностное кодирование (Multi-Class Target Encoding)

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

     03.03.2021       Выпуск 376 (01.03.2021 - 07.03.2021)       Статьи

Тестирование скриншотами

Сегодня хочу рассказать о нашем опыте тестирования скриншотами с использованием python, selenium, и Pillow.

Зачем? У нас был довольно большой (~1000) набор тестов на стеке python, pytest, selenium, которые отлично проверяли, что кнопки кликаются, а статистика отправляется (с использованием browserup proxy), но пропускали баги

     02.03.2021       Выпуск 376 (01.03.2021 - 07.03.2021)       Статьи

Как за 60$ создать систему распознавания лиц с помощью Python и Nvidia Jetson Nano 2GB

Новый набор инструментов для разработчиков Nvidia Jetson Nano 2GB представляет собой одноплатный компьютер с графическим ускорителем стоимостью 59$, работающий под управлением программного обеспечения с искусственным интеллектом.

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

     02.03.2021       Выпуск 376 (01.03.2021 - 07.03.2021)       Статьи

Книга «Глубокое обучение: легкая разработка проектов на Python»

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

Эта практическая книга представляет собой вводный курс для всех, кто занимается обработкой данных, а также для разработчиков ПО. Вы начнете с основ глубокого обучения и быстро перейдете к более сложным архитектурам, создавая проекты с нуля. Вы научитесь использовать многослойные, сверточные и рекуррентные нейронные сети. Только понимая принцип их работы (от «математики» до концепций), вы сделаете свои проекты успешными.

     02.03.2021       Выпуск 376 (01.03.2021 - 07.03.2021)       Статьи

Популярность BPM в разных жанрах музыки. Анализ скорости исполнения 500 лучших песен

Несколько лет назад, занимался изучением теории музыки, продавал и писал аудио-инструментал для аренды или заказов. Изначально, процесс явно творческий, но вскоре, мой интерес к коммерческой части превысил и возник вопрос: «В каком же темпе создавать ритм музыки?».

Мною была замечена тенденция вариаций темпа популярных песен одного жанра, поэтому идея анализа крупной выборки лучших композиций, для определения популярного [часто: самого продаваемого] диапазона темпа исполнения, не покидала с тех пор…

     01.03.2021       Выпуск 376 (01.03.2021 - 07.03.2021)       Статьи

Нейродайджест: главное из области машинного обучения за февраль 2021

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

     01.03.2021       Выпуск 376 (01.03.2021 - 07.03.2021)       Статьи

Новое тестирование фичей в Django 3.2

Пару недель назад Django 3.2 выпустил свой первый альфа-релиз, а финальный релиз выйдет в апреле. Он содержит микс новых возможностей, о которых вы можете прочитать в примечаниях к релизу. Эта статья посвящена изменениям в тестировании, некоторые из которых можно получить на более ранних версиях Django с пакетами backport.

     01.03.2021       Выпуск 376 (01.03.2021 - 07.03.2021)       Статьи

Архитектура в Django проектах — как выжить

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