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

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

     06.04.2017       Выпуск 172 (03.04.2017 - 09.04.2017)       Учебные материалы

Книга «Программируем на Python»

Вы наверняка слышали о книге Майкла Доусона (Michael Dawson), в которой он учит языку программирования Python тем же самым путем, то есть через программирование несложных игр. Учиться, создавая свои собственные развлекательные программы. 

Несмотря на развлекательный характер примеров, демонстрируется вполне серьезная техника программирования. Ниже приведен отрывок из главы «Объектно-ориентированное программирование. Игра «Блек-джек»»

     05.04.2017       Выпуск 172 (03.04.2017 - 09.04.2017)       Статьи

Байесовские многорукие бандиты против A/B тестов

 У компании есть веб-сайт, на котором есть красная кнопка в форме прямоугольника с закругленными краями. Если пользователь нажимает на эту кнопку, то где-то в мире мурлычет от радости один котенок. Задача компании — максимизация мурлыкания. Также есть отдел маркетинга, который усердно исследует формы кнопок и то, как они влияют на конверсию показов в клико-мурлыкания. Потратив почти весь бюджет компании на уникальные исследования, отдел маркетинга разделился на четыре противоборствующие группировоки. У каждой группировки есть своя гениальная идея того, как должна выглядеть кнопка. В целом никто не против формы кнопки, но красный цвет раздражает всех маркетологов, и в итоге было предложено четыре альтернативных варианта. На самом деле, даже не так важно, какие именно это варианты, нас интересует тот вариант, который максимизирует мурлыкания. Маркетинг предлагает провести A/B/n-тест, но мы не согласны: и так на эти сомнительные исследования спущено денег немерено. Попробуем осчастливить как можно больше котят и сэкономить на трафике. Для оптимизации трафика, пущенного на тесты, мы будем использовать шайку многоруких байесовских бандитов (bayesian multi-armed bandits). Вперед.

     04.04.2017       Выпуск 172 (03.04.2017 - 09.04.2017)       Статьи

Модель колебательного звена с применением символьного и численного решений дифференциального уравнения на SymPy и NumPy

В статье использованы возможности пакета SymPy совместно с пакетом NumPy. Всё сводиться к преобразованию символьных выражений в функции способные работать с другими модулями Python.

Процесс решения дифференциальных уравнений становиться наглядным и хорошо контролируемым на каждом этапе вычислений. Следует отметить, что колебательное звено в разных интерпретациях обсуждается в сетях [1,2]. Например, в [3] приводиться модель колебательного звена с подробным исследованием переходных процессов.

Надеюсь, что подобные исследования колебательного звена на Python найдут своих сторонников.

     03.04.2017       Выпуск 172 (03.04.2017 - 09.04.2017)       Статьи

Открытый курс машинного обучения. Тема 6. Построение и отбор признаков

В рамках сегодняшней статьи хочется обзорно описать три похожих, но разных задачи:

  • feature extraction and feature engineering – превращение данных, специфических для предметной области, в понятные для модели векторы;
  • feature transformation – трансформация данных для повышения точности алгоритма;
  • feature selection – отсечение ненужных признаков.

Отдельно отмечу, что в этой статье почти не будет формул, зато будет относительно много кода.

     03.04.2017       Выпуск 172 (03.04.2017 - 09.04.2017)       Статьи

Спектральный анализ сигналов нелинейных звеньев АСУ на Python

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

Этот метод может быть использован в том случае, когда линейная часть системы является низкочастотным фильтром, т.е. отфильтровывает все возникающие на выходе нелинейного элемента гармонические составляющие, кроме первой гармоники [2]. Поэтому логическим продолжением моей первой статьи будет гармонический анализ рассмотренных нелинейных элементов. Кроме этого нужно рассмотреть аппаратную альтернативу методу гармонической линеаризации.

     03.04.2017       Выпуск 172 (03.04.2017 - 09.04.2017)       Статьи

Украшаем жизнь с помощью gdb PrettyPrinting API

 

Что gdb можно как-то улучшать на питоне, знает каждый, кто хоть раз заглядывал в документацию. А кто хоть раз просматривал ее по диагонали, знает про такую штуку, как «Pretty Printers» — которые вроде позволяют gdb красиво печатать разные сложные структуры. Я документацию по диагонали просматривал, хотя особо и не вникал. Но однажды, набирая в очередной раз что-то вроде (все примеры из исходников MariaDB, которые я дебажу по много раз каждый божий день, иногда исключая выходные):
 

     02.04.2017       Выпуск 171 (27.03.2017 - 02.04.2017)       Статьи

Создаем бота для Skype. Шаг за шагом, через REST API и на Python

Год назад Microsoft представила платформу для создания ботов под Skype. Платформа предоставляет удобный формат сообщений, можно отправлять карточки с кнопками, как в телеграмме, одним словом, выглядит все очень круто. 

Недавно мне потребовалось написать бота для Skype. И несмотря на то, что тема подымалась на хабре ( например), я столкнулся с некоторыми сложностями, мне очень не хватало step-by-step гайда по работе с REST API. 

     02.04.2017       Выпуск 171 (27.03.2017 - 02.04.2017)       Интересные проекты, инструменты, библиотеки

speech-ai - простейший голосовой ассистент

Использует распознавание и синтез речи от Google. Программа слушает через микрофон ваши команды и выполняет их.

     02.04.2017       Выпуск 171 (27.03.2017 - 02.04.2017)       Конференции, события, встречи разработчиков

PyNSK #13 - Python-встреча в Новосибирске PyNSK

9 апреля в 12-00 в офисе AgoraDoxa пройдет 13-ая встреча сообщества PyNSK. На встрече будет 3 доклада.

Подробности по ссылке

     31.03.2017       Выпуск 171 (27.03.2017 - 02.04.2017)       Конференции, события, встречи разработчиков

Moscow Python Meetup №44

20-го апреля в 19:00 в Rambler&Co состоится 44-я встреча MoscowPython

     31.03.2017       Выпуск 171 (27.03.2017 - 02.04.2017)       Конференции, события, встречи разработчиков

Python Junior Meetup #2

13-го апреля в 19:00 cостоится встреча Python Junior Meetup #2. Это – митап для начинающих программистов на Python. Встречу организует команда Python.ru. Митап пройдёт в офисе Rambler&Co, в десяти минутах ходьбы от станции метро Тульская.

     31.03.2017       Выпуск 171 (27.03.2017 - 02.04.2017)       Статьи

Скачиваем историю переписки со всеми пользователями ВКонтакте с помощью Python

Для лингвистического исследования мне понадобился корпус прямой речи, порожденной одним человеком. Я решил, что для начала удобнее всего использовать собственную переписку в ВК. Это статья о том, как скачать все сообщения, которые Вы когда-либо отправляли своим друзьям, используя программу на Python и API ВКонтакте. Для работы с API будем использовать библиотеку vk.

     29.03.2017       Выпуск 171 (27.03.2017 - 02.04.2017)       Статьи

Запускаем простой блог на Wagtail CMS (Django) — часть 3, заключительная Django

Третью часть про Wagtail CMS я решил посветить тем моментам, которые помогли мне снова полюбить Django. Благодаря большому сообществу, которое развивает эту CMS, любой найдет в ней что-то для себя.

В заключительной части будут затронуты следующие моменты:

  • StreamField
  • API + React
  • Разработка для e-commerce

     27.03.2017       Выпуск 171 (27.03.2017 - 02.04.2017)       Статьи

Открытый курс машинного обучения. Тема 5. Композиции: бэггинг, случайный лес

Данное занятие мы посвятим простым методам композиции: бэггингу и случайному лесу. Вы узнаете, как можно получить распределение среднего по генеральной совокупности, если у нас есть информация только о небольшой ее части; посмотрим, как с помощью композиции алгоритмов уменьшить дисперсию, и таким образом улучшим точность модели; разберём, что такое случайный лес, какие его параметры нужно «подкручивать» и как найти самый важный признак. Сконцентрируемся на практике, добавив «щепотку» математики.

     27.03.2017       Выпуск 171 (27.03.2017 - 02.04.2017)       Статьи

Варим ML Boot Camp III: Starter Kit

16 марта закончилось соревнование по машинному обучению ML Boot Camp III. Я не настоящий сварщик, но, тем не менее, смог добиться 7го места в финальной таблице результатов. В данной статье я хотел бы поделиться тем, как начать участвовать в такого рода чемпионатах, на что стоит обратить внимание в первый раз при решении задачи, и рассказать о своем подходе.

     26.03.2017       Выпуск 170 (20.03.2017 - 26.03.2017)       Статьи

Как я SQLAlchemy удобной сделал SQLAlchemy

Не секрет, что SQLAlchemy — самая популярная ORM на Python. Она позволяет писать куда более продвинутые вещи, чем большинство Active Record собратьев. Но плата за это — более сложный код, и в простых задачах вроде CRUD это напрягает.

О том, как я сделал Алхимию удобной, воспользовавшись опытом лучших Active Record ORM, читайте под катом.

     25.03.2017       Выпуск 170 (20.03.2017 - 26.03.2017)       Статьи

Соревнование mlbootcamp от mail.ru, кратко о рецепте второго места

Добрый день, читатель! Данная статья расскажет о пути получения второго места на соревновании MLBootCamp III. Для тех, кто не в курсе — это соревнование по машинному обучению и анализу данных от Mail.Ru Group, проходило с 15 февраля по 15 марта.

В статье будет коротко про историю построения решения, немного советов про то, на чем набил шишек и благодарности) Итак, поехали. 

     24.03.2017       Выпуск 170 (20.03.2017 - 26.03.2017)       Видео

«А какой на самом деле этот Python?», Сергей Матвеенко

За последние несколько лет Python, как язык программирования и технология, шагнул так далеко, что люди, которые видели его лет 5 назад, уже безнадежно отстали. Возможности использования Python сейчас сильно преобразились. Senior Developer DataArt Сергей Матвеенко на встрече IT talk в Петербурге рассказывает об эволюции от Python 2 к Python 3.6, статической типизации в разных вариантах и о других современных возможностях разработки на Python. Получилось "с юморком":)

     24.03.2017       Выпуск 170 (20.03.2017 - 26.03.2017)       Статьи

Нерегулярные ошибки в импортах

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

     24.03.2017       Выпуск 170 (20.03.2017 - 26.03.2017)       Видео

Александр Мокров - Асинхронный RPC с помощью Gevent и RabbitMQ gevent

Александр Мокров (Positive Technologies) - Асинхронный RPC с помощью Gevent и RabbitMQ
Слайды: https://www.slideshare.net/AleksandrMokrov/gevent-rabbit-rpc

Я расскажу о том, как мы начали путь постепенного ухода от Celery и о причинах такого решения. Поведаю о первом шаге, в котором мы для более гибкого управления задачами отказались от встроенного workflow и отвязались от БД, используемой для обмена данными между задачами. Более подробно остановлюсь на библиотеке gevent и RabbitMQ, как на их основе построить асинхронный RPC и долгоживущие управляющие задачи, которые помогли нам на этом этапе.