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

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

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

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

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

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

     09.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Колонка автора

Практические задачи: Задача #002 - собрать данные о погоде в одном месте

Продолжаем предлагать различные задачи для практики. Кто заинтересуется решением этих задач, просим помогать друг-другу. Но при этом в течении недели не кидать ссылок на полностью готовое решение. А также, чтобы читать код было удобно - публикуйте его на https://gist.github.com/ или какой-то подобный сервис.

Описание задачи:

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

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

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

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

     08.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Колонка автора

Таинство стандартной библиотеки: shelve - база данных для объектов

Модуль shelve из стандартной библиотекой можно описать одной фразой - "pickle + anydbm".

shelve позволяет сериализовать объект (прям как pickle), а потом сохранить его в виде похожем на БД (интерфейс anydbm).

     08.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Колонка автора
     08.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Колонка автора

Синтаксис Python: strip, rstrip, lstrip

Не редко возникает задача убрать лишние пробелы с начала/конца строки. Например

a = 'Доброе утро, Иван'
message, name = a.split(',') 
print(name)
> ' Иван' # (лишний пробел сначала строки)

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

     05.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Колонка автора

Таинство стандартной библиотеки: asyncio в Python. Как устроено и зачем нужно?

Видео со свежего Moscow Python митапа. В python 3.4 появился asyncio. До сих пор многие разработчики не знают, что это такое, как реализуется асинхронность в Python и в чем её сильные и слабые места. Повторим пройденное и заглянем под капот.

     05.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Колонка автора

Python на службе народа: оповещения в Linux

Оповещения - это зло для продуктивности, но без них тяжело. Сервер упал - как узнать об этом мгновенно? СМС, письмо на email, оповещение на рабочем столе.

К сожалению, без Qt, Wx и других фреймворков кроссплатформенные оповещения не сделать. Поэтому рассмотрим только Linux. Для linux есть библиотека libnotify и обязка для нее python-notify

     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)       Колонка автора

API всему голова: gitter api - пишем в чат от своего лица

Gitter - это система для создания чатов для пользователей Github. Чаты бесплатны, есть интеграция с Github, есть API - что еще для небольшого чата надо?

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

     03.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Колонка автора

Python на службе народа: добавляем водяной знак на изображение

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

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

     03.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Колонка автора

Интересные концепции: опциональная статическая типизация

Не секрет, что Python (CPython) - динамически типизируемый язык (все типы выясняются во время выполнения программы). Это как дар так и проклятие. С одной стороны - можно быстрее писать программы, с другой - тяжелее найти ошибки. При этом, если была бы статическая типизация - уже на этапе компиляции мы знали бы где мы затупили с типами.

В русскоязычном Python Андрей Власовских из Jetbrains наиболее часто говорит об этой концепции. Представляю сборку материалов от этого докладчика:

     03.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Колонка автора

Пишем web-проекты: django сигналы

Хочется поделиться ссылкой на статью - https://zxmd.wordpress.com/2013/05/23/django_signals/

Что такое сигнал в Django Framework ?

На бытовом уровне это система (диспетчер сигналов) которая обрабатывает некоторые виды событий которые генерирует система. По сути система сигналов разделяется на два компонента:

sender — компонент посылающий сигнал;

receiver — компонент отвечающий за обработку сигнала. ...

     03.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Видео

Пишем web-проекты: Гексагональная архитектура в приложениях Django

Видео со свежего Moscow Python митапа. Как не превратить свой проект в груду урлов? Как не потерять расширяемость с ростом кодовой базы? Как писать поддерживаемый код? Об этих проблемах и их возможных решениях на примере Django расскажет и покажет Малышев Артем.

     02.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Конференции, события, встречи разработчиков

PyNSK #5 — пятая встреча Новосибирского Python сообщества

Питонисты Новосибирска, приглашаем вас на встречу сообщества Python сообщества — PyNSK. 

12-го декабря (суббота) состоится пятая встреча. Она пройдет в новом для нас месте — Культурный Центр «Этаж» и начнется 13-00.
На встрече вас ждет море общения и 2 доклада

     01.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Колонка автора

Синтаксис Python: lambda-функции

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

     01.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Колонка автора

Полезные инструменты: sandman - админка над базой + REST за пару секунд

Сейчас редкий проект обходится без базы данных. Это может быть реляционная БД, или NoSQL, да может просто текстовые файлы. И каждый раз возникает необходимость посмотреть данные в ней, а иногда и другим показать.

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

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

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