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

Собрали в одном месте самые важные ссылки
и сделали Тренажер IT-инцидентов для DevOps/SRE

     12.05.2017       Выпуск 177 (08.05.2017 - 14.05.2017)       Статьи

Метрики в задачах машинного обучения

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

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

     12.05.2017       Выпуск 177 (08.05.2017 - 14.05.2017)       Конференции, события, встречи разработчиков

16 митап нижегородского Python-сообщества rannts

20 мая в гостинице IBIS пройдет весенний митап нижегородского Python-сообщества, уже 16-ый. Весенний, расслабленный; последний сбор перед летом: 4 доклада, всякий разный свэг и немножко подарков.

Кроме того, пройдут lightning talks, так что все закончится несколько позже официальной программы.

     09.05.2017       Выпуск 177 (08.05.2017 - 14.05.2017)       Статьи

Как я писал свой логгер. Разбор ошибок

Относительно недавно я начал изучать Python. На чём бить шишки было непонятно, а делать упражнения ради упражнений наскучило достаточно быстро. Мне хотелось сделать что-то полезное и сделать это с энтузиазмом. Так родилась идея сделать логгер с цветным аутпутом. Проект был назван «SCLogger», начало было положено. Что получилось в итоге и какие ошибки при проектировании были допущены далее под катом.

     09.05.2017       Выпуск 177 (08.05.2017 - 14.05.2017)       Статьи

Пишем скрипт для синхронизации папок с Google Drive, плюс учимся использовать Google Drive API

В этой статье мы рассмотрим основные инструменты работы с Google Drive REST API, осуществим "прямую" и "обратную" синхронизацию папки на компьютере с папкой в облаке Гугл Диска, а заодно выясним какие сложности могут возникнуть при работе с Google Docs через API Диска и как правильно их импортировать и экспортировать чтобы (почти) никто не пострадал.

     09.05.2017       Выпуск 177 (08.05.2017 - 14.05.2017)       Статьи

Изменяемые свойства классов в питоне: польза для дела и мелкого хулиганства

В питоне аттрибуты класса можно сколько угодно модифицировать во время работы, и изменения видны всем объектам этого класса и других подклассов. Под катом — одно полезное применение этого факта.

     08.05.2017       Выпуск 177 (08.05.2017 - 14.05.2017)       Статьи

Нейрокурятник ч.0. Или нейро- без курятника

Или как правильно закоптиться в нейросети
Курочка снесла яичко. Сам процесс выглядит ужасно. Результат — съедобно. Массовый геноцид кур.
В этой статье будет описано:

  1. Где, как и почему можно получить небольшое качественное самообразование в сфере работы с нейросетями БЕСПЛАТНО, СЕЙЧАС и СОВСЕМ НЕ БЫСТРО;
  2. Будет описана логика рекурсии и будут порекомендованы книги по теме;
  3. Будет описан список основных терминов, которые нужно разобрать на 2-3 уровня абстракции вниз;
  4. Будет приведен ipynb-notebook, который содержит необходимые ссылки и базовые подходы;
  5. Будет немного своеобразного саркастичного юмора;
  6. Будут описаны некоторые простые закономерности, с которыми вы столкнетесь при работе с нейросетями;

     07.05.2017       Выпуск 176 (01.05.2017 - 07.05.2017)       Статьи

Профилирование и оптимизация символьных вычислений для будущего сервера

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

     06.05.2017       Выпуск 176 (01.05.2017 - 07.05.2017)       Статьи

Простая модель адаптивного фильтра Калмана средствами Python

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

     05.05.2017       Выпуск 176 (01.05.2017 - 07.05.2017)       Видео

Монады. Экспликация

Павел Петлинский (Rambler&Co)

 "В докладе мы разберемся, что за зверь такой эта "Монада", и где прекрасный чистый мир математики ломается об особенности языков программирования".
Слайды: http://www.moscowpython.ru/meetup/44/monady-eksplikacija/

     05.05.2017       Выпуск 176 (01.05.2017 - 07.05.2017)       Видео

Authentication with JWT

Антон Егоров (Sabaka.io, CTO)
"Многие разработчики теряются, когда сталкиваются с таким, казалось бы простым, вопросом как авторизация. Все понятно, когда мы имеем дело с человеком на сайте, который вбивает свой логин и пароль. Но процедура становится в совсем другой, когда нужна аутентификация для API".
Слайды: http://www.moscowpython.ru/meetup/44/authentication-with-jwt/

     05.05.2017       Выпуск 176 (01.05.2017 - 07.05.2017)       Видео

Python и исследование операций

Сергей Сундуков (Borlas Consulting Group, Ведущий консультант)
"Хочу рассказать об успешном опыте применения питона и опен-сорсных библиотек при решении реальных бизнес-задач планирования и оптимизации".
Слайды: http://www.moscowpython.ru/meetup/44/python-i-issledovanie-operacij/

     04.05.2017       Выпуск 176 (01.05.2017 - 07.05.2017)       Статьи

Нейрокурятник: часть 1. Установка Raspberry Pi и камеры в курятник и их настройка

 

Большой брат следит за тобой, птица!

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

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

     02.05.2017       Выпуск 176 (01.05.2017 - 07.05.2017)       Конференции, события, встречи разработчиков

Юбилейный PYCON RUSSIA пройдёт 16-17 июля

Пятый российский PyCon пройдёт 16-17 июля в отеле «Cronwell Яхонты Таруса» в 95 км. от Москвы. Если вы не знаете, что такое PyCon, посмотрите ролик ниже — в нём коротко про PyCon-2016 и историю конференции. 

     02.05.2017       Выпуск 176 (01.05.2017 - 07.05.2017)       Статьи

От двух камертонов из опытов Лиссажу к одной эллиптической уровнемерной трубке с шагом в столетия и всё на Python

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

     01.05.2017       Выпуск 176 (01.05.2017 - 07.05.2017)       Статьи

Поиск в Django REST Framework с помощью Elasticsearch Elasticsearch Django

 

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

 

Для работы с elasticsearch используется библиотека elasticsearch-py или elasticsearch-dsl-py. elasticsearch-dsl-py это надстройка над elasticsearch-py, она проста в использовании и поддерживает elasticsearch версии 5.x. На базе этой библиотеки была создана библиотека django-rest-elasticsearch, которая основана на идеологии существующего поиска в Django REST Framework. Ниже я детально распишу как реализовать поиск в Django REST Framework с помощью elasticsearch используя данную библиотеку.

     30.04.2017       Выпуск 175 (24.04.2017 - 30.04.2017)       Статьи

Django - Like Dislike система с помощью GenericForeignKey Django

Статья описывает пример использования GenericForeignKey из инструментария Django/Python для создания системы Like Dislike на сайте с использованием полиморфных связей, что позволяет использовать одну модель данных Like Dislike для контента различного типа: Статьи, Комментарии и т.д.

     25.04.2017       Выпуск 175 (24.04.2017 - 30.04.2017)       Статьи

«Почему вы просто не перепишете это на язык X?»

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

«Привет, я тут заметил, что ваш проект написан на [языке программирования X]. Вам бы стоило все переписать на языке Y, потому что он лучше в плане функции Z. Спасибо-до свидания!»

Изложенное в таком виде, предложение кажется совсем не трудным. Раз функция Z лучше, то, конечно, всем следует тут же переписать свои проекты на Y.

     24.04.2017       Выпуск 175 (24.04.2017 - 30.04.2017)       Статьи

Открытый курс машинного обучения. Тема 9. Анализ временных рядов с помощью Python

Cсегодня поговорим о временных рядах.

Посмотрим на то, как с ними работать в Python, какие возможные методы и модели можно использовать для прогнозирования; что такое двойное и тройное экспоненциальное взвешивание; что делать, если стационарность — это не про вас; как построить SARIMA и не умереть; и как прогнозировать xgboost-ом. И всё это будем применять к примеру из суровой реальности.

     24.04.2017       Выпуск 175 (24.04.2017 - 30.04.2017)       Статьи

The uWSGI Spooler

 

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

Самой популярной системой очередей в Python является Celery, она обладает широким набором возможностей по управлению задачами. К сожалению, системы на базе Celery сложно поддерживать в работоспособном состоянии, и когда что-то идёт не так, то найти проблему бывает весьма не просто. Можете спросить любого девопса об опыте работы с Celery, но будьте готовы услышать не очень приятные слова.

К счастью, есть альтернативное решение — uWSGI Spooler, и в этой статье я расскажу о нём подробнее.