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

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

     28.12.2018       Выпуск 262 (24.12.2018 - 30.12.2018)       Статьи

[Перевод] Обучение с подкреплением на языке Python

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

Посудите сами: нашлась элементарная статья с Medium, в которой изложен контекст проблемы, описан простейший алгоритм с реализацией на Python. В статье есть несколько гифок. А мотивация, вознаграждение и выбор правильной стратегии на пути к успеху — это вещи, которые исключительно пригодятся в наступающем году каждому из нас.

     28.12.2018       Выпуск 262 (24.12.2018 - 30.12.2018)       Статьи

Замер скорости вариантов форматирования строк

Сейчас мы узнаем, какой из вариантов форматирования строк работает быстрее остальных.

     28.12.2018       Выпуск 262 (24.12.2018 - 30.12.2018)       Статьи

Без ансамбля

Решили мы однажды заняться автоматизацией наших рутинных рабочих моментов. Создать у себя ансамбль(ansible) или что-нибудь в этом роде. Я полез на сайт ансамбля, посмотрел как он работает … подключается к удаленному серверу через ssh и выполняет какие-то там скрипты... Стоп, подумал я, разве для этого нужен ансамбль? Я и без ансамбля, сам ..., один… могу это сделать! А чтобы не только лишь я это мог, решил написать вэб приложение. Приложение назвали Update Server, сокращенно UpS.

     27.12.2018       Выпуск 262 (24.12.2018 - 30.12.2018)       Статьи

Коротко о работе с RabbitMQ из Python

Так повелось, что в процессе работы в МегаФоне, приходится сталкиваться с однотипными задачами при работе с RabbitMQ. Закономерно возникает вопрос: «Как упростить и автоматизировать выполнение таких задач?»

 

Первое решение, которое приходит в голову, использовать интерфейс HTTP, и, безусловно, из коробки RabbitMQ обладает хорошим веб-интерфейсом и HTTP API. Тем не менее, использование HTTP API не всегда удобно, а иногда и вообще невозможно (допустим у вас недостаточно прав доступа, а опубликовать сообщение ну очень хочется) в такие моменты возникает необходимость работы именно по протоколу AMQP

     26.12.2018       Выпуск 262 (24.12.2018 - 30.12.2018)       Статьи

Intel OpenVINO на Raspberry Pi: урожай 2018 года

Писать про программирование можно не только прозой, но и стихами. Последнее, конечно, случается не часто — скажем, в блоге Intel такое бывало чуть менее, чем никогда. Однако в порядке эксперимента сегодня мы решили позволить себе; как это получилось — решать вам. Итак...

     26.12.2018       Выпуск 262 (24.12.2018 - 30.12.2018)       Статьи

Нагрузочное тестирование с locust. Часть 3

Финальная статья об инструменте для нагрузочного тестирования Locust. Сегодня поделюсь наблюдениями, которые накопил в процессе работы. Как всегда, видео прилагается.

     25.12.2018       Выпуск 262 (24.12.2018 - 30.12.2018)       Статьи

[Перевод] Создание модели распознавания лиц с использованием глубокого обучения на языке Python

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

Одна из таких технологий — распознавание лиц. При правильном и этичном использовании эта технология может применяться во многих сферах жизни.

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

     25.12.2018       Выпуск 262 (24.12.2018 - 30.12.2018)       Статьи

Mixture Density Networks

Давайте поговорим о, как вы уже наверное смогли догадаться, нейронных сетях и машинном обучении. Из названия понятно, что будет рассказано о Mixture Density Networks, далее просто MDN, переводить название не хочу и оставлю как есть. Да, да, да… будет немного скучной математики и теории вероятности, но без неё, к сожалению, или к счастью, тут уж сами решайте, трудно представить мир машинного обучения. Но спешу вас успокоить, ее будет относительно мало и она будет не сильно сложная. Да и вообще ее можно будет пропустить, а просто посмотреть на небольшое количество кода на Python и PyTorch, все верно, сеть мы будем писать с помощью PyTorch, а так же на различные графики с результатами. Но самое главное то, что будет возможность немного разобраться и понять что же такое MD сети.

     25.12.2018       Выпуск 262 (24.12.2018 - 30.12.2018)       Статьи

Предсказываем время решения тикета с помощью машинного обучения

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

Под катом я расскажу о том, как проводил анализ и обучал ML модели, предсказывающие время решения оформляемых в нашу команду тикетов.

     24.12.2018       Выпуск 262 (24.12.2018 - 30.12.2018)       Статьи

Я у мамы алготрейдер: ищем бес&платные фреймворки для тестирования гипотез и запуска в боевом режиме (Python)

Допустим, вы имели какое-то отношение к фондовому рынку раньше. Или, не имея такового, увлеклись горячей (но в последние месяцы уже заметно похолодевшей....) темой криптовалют. Также предположим, что вы пошли еще дальше и решили, что «ручное управление» полетами уже неэффективно и надо бы автоматизировать свои светлые идеи и превратить мартышкин труд в нечто более технологичное. Ровно на этом моменте начинаются вопросы, которые я хотел бы обсудить в статье, а именно: есть ли готовое решение для бэктестинга торговых идей (бесплатное желательно), где взять исторические данные (в идеале бесплатно), а также что с этим всем потом делать, т.е. какие существуют решения для боевого запуска автоматизированных торговых систем, успешно проверенных на бэктесте? Примечание первое и второе: статья написана для Python-based библиотек и систем, как дела с доступностью для других языков судить не могу; в приоритете — зарубежные рынки и/или криптовалюты, относительно применимости к фондовому рынку РФ судить также не берусь.

     23.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Статьи

[Перевод] Годные туториалы на YouTube

На YouTube много бесплатных обучающих и курсов и туториалов.

     21.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Статьи

Машинное обучение на Python-е с интерактивными Jupyter демонстрациями

Недавно я запустил репозиторий Homemade Machine Learning, который содержит примеры популярных алгоритмов и подходов машинного обучения, таких как линейная регрессия, логистическая регрессия, метод K-средних и нейронная сеть (многослойный перцептрон). Каждый алгоритм содержит интерактивные демо-странички, запускаемые в Jupyter NBViewer-e или Binder-e. Таким образом у каждого желающего есть возможность изменить тренировочные данные, параметры обучения и сразу же увидеть результат обучения, визуализации и прогнозирования модели у себя в браузере без установки Jupyter-а локально.

     21.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Статьи

История одного эксперимента с Cython и C++ vector

Одним холодным зимним вечером, хотелось согреться в офисе и проверить теорию одного коллеги, что C++ vector мог бы быстрее справиться с задачей, чем CPython list.
В компании мы разрабатываем продукты на базе Django и случилось так, что нужно было обработать один большой массив словарей. Коллега предположил, что реализация на C++ была бы гораздо быстрее, а меня не покидало чувство, что Гвидо и сообщество наверное немного круче нас в Си и возможно уже решили и обошли все подводные камни, реализовав всё гораздо быстрее.
Для проверки теории, я решил написать небольшой тестовый файл, в котором решил прогнать в цикле вставку 1М словарей одинакового содержания в массив и в vector 100 раз подряд.
Результаты хоть и были ожидаемые, но так же и внезапные.

     19.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Статьи

Модульное тестирование и Python

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

     19.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Статьи

Pylint изнутри. Как он это делает

Разные помощники в написании классного кода нас просто окружают, линтеры, тайпчекеры, утилиты для поиска уязвимостей, всё с нами. Мы привыкли и используем не вдаваясь в детали, как «черный ящик». Например, мало кто разбирается в принципах работы Pylint — одного из таких незаменимых инструментов для оптимизации и улучшения кода на Python.

     19.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Статьи

Без BDFL: кто теперь направит Python?

Кто и как будет задавать курс Питону теперь, когда ван Россум сложил с себя полномочия.

     18.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Статьи

Знакомство с Тестированием в Python. Ч. 2

Если вы пишете тесты для веб-приложений, используя один из популярных фреймворков, например, Django или Flask, то стоит помнить о важных отличиях в написании и запуске таких тестов.

     18.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Статьи

О чем говорит YouTube

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

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

     18.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Статьи

Книга «Как устроен Python. Гид для разработчиков, программистов и интересующихся»

У нас недавно вышла новая книга про «Python». Предлагаем сразу ознакомится с ознакомительным материалом.

     18.12.2018       Выпуск 261 (17.12.2018 - 23.12.2018)       Статьи

Введение в аннотации типов Python

Python — язык с динамической типизацией и позволяет нам довольно вольно оперировать переменными разных типов. Однако при написании кода мы так или иначе предполагаем переменные каких типов будут использоваться (это может быть вызвано ограничением алгоритма или бизнес логики). И для корректной работы программы нам важно как можно раньше найти ошибки, связанные с передачей данных неверного типа.