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

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

     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 Django Elasticsearch

 

Пользователи ищут товары в интернет-магазине, ищут стати, поиск это неотъемлемый компонент сайта. Быстрый и гибкий поиск сложно реализовать средствами реляционных баз данных. Для таких задач используют поисковые движки, один из которых 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, и в этой статье я расскажу о нём подробнее.

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

Публикация постов Вконтакте через Trello

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

     21.04.2017       Выпуск 174 (17.04.2017 - 23.04.2017)       Статьи

Введение в pandas: анализ данных на Python Pandas

pandas это высокоуровневая Python библиотека для анализа данных. Почему я её называю высокоуровневой, потому что построена она поверх более низкоуровневой библиотеки NumPy (написана на Си), что является большим плюсом в производительности. В экосистеме Python, pandas является наиболее продвинутой и быстроразвивающейся библиотекой для обработки и анализа данных. В своей работе мне приходится пользоваться ею практически каждый день, поэтому я пишу эту краткую заметку для того, чтобы в будущем ссылаться к ней, если вдруг что-то забуду. Также надеюсь, что читателям блога заметка поможет в решении их собственных задач с помощью pandas, и послужит небольшим введением в возможности этой библиотеки.

     21.04.2017       Выпуск 174 (17.04.2017 - 23.04.2017)       Статьи

Предсказываем популярность статьи на TJ

 

Однажды томным вечером, сидя напротив мелькающей ленты tjournal и попивая ромашковый чай, внезапно обнаружил себя за чтением статьи про советскую лампочку, которая освещала чей-то подъезд уже 80 лет. Да, весьма интересно, но все же я предпочитаю статьи про политику достижения ИИ в игре дум, приключения ракет SpaceX и, в конце концов, — с наибольшим кол-вом просмотров. А какие вообще статьи набирают внушительные рейтинги? Посты размером с твит про какую-то политическую акцию или же талмуды с детальным анализом российской киноиндустрии? Ну что же, тогда самое время расчехлять свой Jupyter notebook и выводить формулу идеальной статьи.

     19.04.2017       Выпуск 174 (17.04.2017 - 23.04.2017)       Статьи

Чат-бот для ВКонтакте на Python на Callback API

Чат-боты стали уже очень распространенным явлением, и появляются во всех мессенджерах ежедневно.

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

     19.04.2017       Выпуск 174 (17.04.2017 - 23.04.2017)       Статьи

Как я сделал самый быстрый ресайз изображений. Часть 2, SIMD

 

В прошлый раз мы получили ускорение в среднем в 2,5 раза без изменения подхода. В этот раз я покажу, как применять SIMD-подход и получить ускорение еще в 3,5 раза. Конечно, применение SIMD для обработки графики не является ноу-хау, можно даже сказать, что SIMD был придуман для этого. Но на практике очень мало разработчиков используют его даже в задачах обработки изображений. Например, довольно известные и распространенные библиотеки ImageMagick и LibGD написаны без использования SIMD. Отчасти так происходит потому, что SIMD-подход объективно сложнее и не кроссплатформенный, а отчасти потому, что по нему мало информации. Довольно просто найти азы, но мало детальных материалов и разбора реальных задач. От этого на Stack Overflow очень много вопросов буквально о каждой мелочи: как загрузить данные, как распаковать, запаковать. Видно, что всем приходится набивать шишки самостоятельно.

     19.04.2017       Выпуск 174 (17.04.2017 - 23.04.2017)       Видео

Юрий Половинкин о том, зачем Python сисадмину

Выпускник курсов Learn Python Юрий Половинкин рассказал о том, зачем он записался на курсы и что из этого получилось.

     18.04.2017       Выпуск 174 (17.04.2017 - 23.04.2017)       Статьи

Обманываем время: о тестировании с «подставным» временем на Linux и Docker

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

Менять системное время глобально ой, как не хотелось. Муторно, плюс у меня в ней столько всего понаставлено, не дай Б-г что-то заглючит (вряд ли, но мало ли). Думал запустить VirtualBox, но уж больно лень было ставить «чистую» Убунту, расшаривать папки, и т. д., тем более что этот вариант жрёт, как троглодит серьёзно потребляет машинные ресурсы.

 

Но буквально недавно я начал ковырять Docker. «У него просто обязан быть механизм контроля системного времени внутри контейнера», — подумал я. Рассмотрим, что же в результате вышло.