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

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

     13.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Статьи

Local Binary Patterns на Python & OpenCV

Этот пост покажет вам, как использовать оператор Local Binary Patterns, чтобы автоматически классифицировать и идентифицировать текстуры и структуры в образах

     10.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Статьи

Введение в Chainer: Нейронные сети на Python

Статья описывает библиотеку Chainer

     10.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Статьи

Поднимаем сложный проект на Django с использованием Docker

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

Исходные данные у нас такие: начинается разработка проекта, в которой планируется «тонкий бэкенд». Т.е. бэк у нас состоит из закешированных страниц (рендерятся любым шаблонизатором), объёмных моделей с сопутствующей логикой (ORM) и REST API, выполняющего роль контроллера. Фактически, View в такой системе редуцировано и вынесено в JS, благо есть разные реакты, ангуляры и прочие вещи, которые позволяют фронтендщикам считать себя «белыми людьми».

     09.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Статьи

Простой метапоисковый алгоритм на Python

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

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

     08.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Статьи

Нейросеть на Python, часть 2: градиентный спуск

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

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

     08.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Статьи

Калибровка Kinect v2 с помощью OpenCV на Python

Не так давно мы начали пару проектов, в которых необходима оптическая система с каналом дальности, и решили для этого использовать Kinect v2. Поскольку проекты реализуются на Python, то для начала нужно было заставить работать Kinect из Python, а затем откалибровать его, так как Kinect из коробки вносит некоторые геометрические искажения в кадры и дает сантиметровые ошибки в определении глубины.

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

     07.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Статьи

Django: Как быстро получить ненужные дубликаты в простом QuerySet

Только что обнаружил интересный баг (баг с точки зрения человеческой логики, но не машины), и решил им поделиться с сообществом. Программирую на django уже довольно долго, но с таким поведением столкнулся впервые, так что, думаю, кому-нибудь да пригодится. Что ж, к делу!

     07.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Статьи

Разбираемся с бинарными данными на Python

Статья содержит довольно подробный вводный материал для работы с бинарными данными. Рассказывается про Bytearray, как читать бинарные данные, как конвертировать между типами данных, как использовать struct

     07.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Статьи

Используем JSON Schema для валидации JSON данных

Статья описывает использование JSON Schema для валидации JSON данных на Python

Аналогичный подход можно применять для валидации XML данных.

     05.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Статьи
     05.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Статьи

Анализ данных: волны для серфинга на восточном побережье Ирландии

Статья рассказывает применение анализа данных для вычисления удачных дней для сервфинга

     05.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Статьи

Emacs - лучший Python редактор?

Статья описывает применение Emacs в качестве редактора для Python

     04.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Статьи

Если бы я проектировал механизм импорта с нуля

Статья описывает соображения про систему импорта. 

Автор рассматривает возможность избавиться глобального состояния, расширение возможностей импорта и другие идеи.

     04.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Статьи

История одной оптимизации: передача и обработка результатов боя

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

     03.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Статьи

Визуальное объяснение List Comprehensions

Статья описывает конструкцию list comprehensions в Python

     01.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Статьи

Строим конвейер вычислений на asyncio и Python 3

Статья описывает как реализовать конвейер вычислений. На подобии этого:

     29.11.2015       Выпуск 101 (23.11.2015 - 29.11.2015)       Статьи
     28.11.2015       Выпуск 101 (23.11.2015 - 29.11.2015)       Статьи

Подсчет ссылок и сборка мусора в Python

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

     27.11.2015       Выпуск 101 (23.11.2015 - 29.11.2015)       Статьи

Библиотека Python 3 для подключения к ЕСИА — esia-connector

Все началось с того, что Минкомсвязи разрешило использовать портал госуслуг для идентификации и аутентификации пользователей на негосударственных веб-узлах. Это реализуется с помощью службы ЕСИА (Единая Система Идентификации и Аутентификации — esia.gosuslugi.ru). Заказчик нашего проекта входил в число первых 5-ти участников, которые подали заявки на интеграцию с ЕСИА, что выразилось для нас задачей эту интеграцию поддержать. В свободном доступе мы не нашли открытого бесплатного решения подходящего для своего стека технологий, поэтому после разработки, с благословления заказчика, решили поделиться собственным (BSD license). Итак, представляем вам проект esia-connector, написан на Python 3, использует утилиту openssl, проверялся в работе только в Debian-based системах. Пакет: pypi.python.org/pypi/esia-connector Проект: github.com/saprun/esia-connector