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

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

     27.06.2017       Выпуск 184 (26.06.2017 - 02.07.2017)       Статьи

Автоэнкодеры в Keras, Часть 4: Conditional VAE

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

     24.06.2017       Выпуск 183 (19.06.2017 - 25.06.2017)       Статьи

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

О чём могут «рассказать» законы распределения случайных величин, если научиться их «слушать» Законы распределения случайных величин наиболее «красноречивы» при статистической обработке результатов измерений. Адекватная оценка результатов измерений возможна лишь в том случае, когда известны правила, определяющие поведение погрешностей измерения. Основу этих правил и составляют законы распределения погрешностей, которые могут быть представлены представлены в дифференциальной (pdf) или интегральной (cdf) формах. К основным характеристикам законов распределения относятся: наиболее вероятное значение измеряемой величины под названием математическое ожидание (mean); мера рассеивания случайной величины вокруг математического ожидания под названием среднеквадратическое отклонение (std). Дополнительными характеристиками являются – мера скученности дифференциальной формы закона распределения относительно оси симметрии под названием асимметрия (skew) и мера крутости, огибающей дифференциальной формы под названием эксцесс (kurt). Читатель уже догадался, что приведенные сокращения взяты из библиотек scipy. stats, numpy, которые мы и будем использовать.

     24.06.2017       Выпуск 183 (19.06.2017 - 25.06.2017)       Статьи

Руководство: как использовать Python для алгоритмической торговли на бирже. Часть 1

Технологии стали активом — финансовые организации теперь не только занимаются своим основным бизнесом, но уделяют много внимания новым разработкам. Мы уже рассказывали о том, что в мире высокочастотной торговли лучших результатов добиваются обладатели не только самого эффективного, но и быстрого софта и железа. Среди наиболее популярных в сфере финансов языков программирования можно отметить R и Python, также часто используются C++, C# и Java. В опубликованном на сайте DataCamp руководстве речь идет о том, как начать использовать Python для создания финансовых приложений — мы представляем вам серию статей-адаптаций глав этого материала.

     24.06.2017       Выпуск 183 (19.06.2017 - 25.06.2017)       Статьи

Python на марштуризаторе

Прежде всего следует знать, что не всякий маршрутизатор позволит вам это сделать. Скорее всего, потребуется предварительно установить одну из альтернативных прошивок (firmware). 

     23.06.2017       Выпуск 183 (19.06.2017 - 25.06.2017)       Статьи

Машинное обучение для страховой компании: Исследуем алгоритмы

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

     21.06.2017       Выпуск 183 (19.06.2017 - 25.06.2017)       Статьи

Как выигрывать в конкурсах репостов Вконтакте?

Мне захотелось узнать, реально ли выиграть в конкурсах репостов ВКонтакте. 
Как это сделать? Ответ очевиден — надо участвовать во всех конкурсах и по теории вероятности, чем больше конкурсов, тем больше шанс выиграть хоть что-то.

     20.06.2017       Выпуск 183 (19.06.2017 - 25.06.2017)       Статьи

CameraTablet — как сделать графический планшет при помощи веб-камеры

. Здесь я хочу рассказать о том, почему меня не устраивает мышка, и как я пытаюсь ее заменить. Я разрабатываю CAE-программы для инженеров (расчет статики и динамики механических систем), треть рабочего времени я работаю как project manager, а в остальное время я — системный архитектор, разработчик и тестер в своем и в чужих проектах. У меня всегда открыты десять-двадцать окон, между которыми мне приходится постоянно прыгать:

     20.06.2017       Выпуск 183 (19.06.2017 - 25.06.2017)       Статьи

Оптимизация производительности Django проектов (часть 1) Django

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

Это первая статья из серии, здесь будут рассмотрено профилирование и настройки Django.

     19.06.2017       Выпуск 183 (19.06.2017 - 25.06.2017)       Статьи

Программируем в мире Minecraft

Пока все обсуждают ИИ в мире Pacman, мы начнем делать свой ИИ в Minecraft с фреймворком Malmo от Microsoft Research. Pacman у нас тоже появится. Если вы любите кубический мир, или вам хотелось бы начать изучать искусственный интеллект, или у вас есть дети, с которыми вы не можете найти общие увлечения, или же вас просто заинтересовала тема – прошу под кат.

     15.06.2017       Выпуск 182 (12.06.2017 - 18.06.2017)       Статьи

Моделирование переходных процессов при коммутации электрической цепи средствами Python

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

     12.06.2017       Выпуск 182 (12.06.2017 - 18.06.2017)       Статьи

Нейрокурятник: часть 4 — итоговая модель и код на прод

Типичный день в нейрокурятнике — куры часто еще и крутятся в гнезде

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

  • Точность предсказаний не менее 70-90%;
  • Raspberry pi в самом курятнике в идеале мог бы определять принадлежности фотографий к классам;
  • Нужно как минимум научиться отличать всех кур друг от друга. Программа максимум — также научиться считать яйца;

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

     12.06.2017       Выпуск 182 (12.06.2017 - 18.06.2017)       Статьи

Отзывчивые столбчатые диаграммы с Bokeh, Flask и Python 3

 

Bokeh — это мощная библиотека с открытым исходным кодом, которая позволяет визуализировать данные для веб-приложений, не написав ни строчки на javascript. Изучение библиотек для визуализации вроде d3.js может оказаться полезным, но гораздо легче написать несколько строк кода на Python, чтобы решить задачу.
С Bokeh мы можем создавать поразительно детальные интерактивные визуализации или же более простые вещи, вроде столбчатых диаграмм.
Давайте разберёмся, как можно использовать Flask и Bokeh для визуализации данных в веб-приложении.

     10.06.2017       Выпуск 181 (05.06.2017 - 11.06.2017)       Статьи

Решение задач линейного программирования с использованием Python

Зачем решать экстремальные задачи На практике очень часто возникают задачи, для решения которых используются методы оптимизации. В обычной жизни при множественном выборе, например, подарков к новому годы мы интуитивно решаем задачу минимальных затрат при заданном качестве покупок. К сожалению, не всегда можно положиться на интуицию. Допустим Вы сотрудник коммерческой фирмы и отвечаете за рекламу. Затраты на рекламу в месяц не должны превышать 10 000 денежных единиц (д.е). Минута радиорекламы стоит 5 д.е., а телерекламы 90 д.е. Фирма намерена использовать радиорекламу в два раза чаще чем телерекламу. Практика показывает, что 1 минута телерекламы обеспечивает объём продаж в 30 раз больший чем 1 минута радиорекламы. Читать дальше →
На практике очень часто возникают задачи, для решения которых используются методы оптимизации. В обычной жизни при множественном выборе, например, подарков к новому годы мы интуитивно решаем задачу минимальных затрат при заданном качестве покупок.

К сожалению, не всегда можно положиться на интуицию. Допустим Вы сотрудник коммерческой фирмы и отвечаете за рекламу. Затраты на рекламу в месяц не должны превышать 10 000 денежных единиц (д.е). Минута радиорекламы стоит 5 д.е., а телерекламы 90 д.е. Фирма намерена использовать радиорекламу в два раза чаще чем телерекламу. Практика показывает, что 1 минута телерекламы обеспечивает объём продаж в 30 раз больший чем 1 минута радиорекламы. 

     09.06.2017       Выпуск 181 (05.06.2017 - 11.06.2017)       Статьи

Использование сторонних компонентов в DjangoCMS

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

     08.06.2017       Выпуск 181 (05.06.2017 - 11.06.2017)       Статьи

Генерируем произвольные последовательности на выводах платы Raspberry Pi

Автор: Николай Хабаров, Embedded Expert DataArt, евангелист технологий умного дома. В этой статье я расскажу, как написать обычное user space-приложение на Python для современного ARM-процессора с ОС Linux для генерирования сложных последовательностей импульсов на выводах платы. Суть идеи — использовать DMA-модуль процессора для копирования из предварительно подготовленного буфера в памяти в GPIO с высокой точностью по времени. Когда речь заходит о необходимости сгенерировать сложную последовательность импульсов, например, для шаговых двигателей, обычно используют старые добрые простенькие микроконтроллеры с установленной специальной операционной системой реального времени или вообще без операционной системы. Реализация при этом, в лучшем случае, написана на C++. Сейчас процессоры шагнули далеко вперед и имеют массу преимуществ: производительность, возможность использования операционной системы Linux со всей инфраструктурой и ПО, а также высокоуровневых языков программирования, таких как Python. И все же современные микроконтроллеры для генерирования сложных последовательностей на выводах GPIO, как правило, не используют. Я реализовал генерацию импульсов для управления шаговыми двигателями проекта PyCNC — проекта контроллера машин с ЧПУ, станков, 3D-принтеров, полностью написанного на Python и запускаемого на современном ARM-процессоре на плате Raspberry Pi. Статья может быть полезна желающим реализовать генерацию сложных последовательностей установки уровней на выводах одного или нескольких GPIO на других высокоуровневых языках программирования, используя DMA-модули других процессоров. Читать дальше →
В этой статье я расскажу, как написать обычное user space-приложение на Python для современного ARM-процессора с ОС Linux для генерирования сложных последовательностей импульсов на выводах платы. Суть идеи — использовать DMA-модуль процессора для копирования из предварительно подготовленного буфера в памяти в GPIO с высокой точностью по времени.

     02.06.2017       Выпуск 180 (29.05.2017 - 04.06.2017)       Статьи

Да, Python медленный, но меня это не волнует

Разговоры о снижении производительности ради продуктивности.

Я беру паузу в моём обсуждении asyncio в Python, чтобы поговорить о скорости Python. Позвольте представиться, я — ярый поклонник Python, и использую его везде, где только удаётся. Одна из причин, почему люди выступают против этого языка, — то, что он медленный. Некоторые отказываются даже попробовать на нём поработать лишь из-за того, что «X быстрее». Вот мои мысли на этот счёт.

     02.06.2017       Выпуск 180 (29.05.2017 - 04.06.2017)       Статьи

Именованные кортежи. Пишем код на Python чище

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

     28.05.2017       Выпуск 179 (22.05.2017 - 28.05.2017)       Статьи

Анализ рынка недвижимости методом случайного леса

Решалась задача анализа текущих предложений на минском рынке недвижимости с целью поиска недооцененных квартир. В качестве источника информации был выбран сайт риэлтерского агентства "Твоя столица".

     26.05.2017       Выпуск 179 (22.05.2017 - 28.05.2017)       Статьи

Эксперименты с malloc и нейронными сетями

Больше года назад, когда я работал антиспамщиком в Mail.Ru Group, на меня накатило, и я написал про эксперименты с malloc. В то время я в свое удовольствие помогал проводить семинары по АКОСу на ФИВТе МФТИ, и шла тема про аллокацию памяти. Тема большая и очень интересная, при этом охватывает как низкий уровень ядра, так и вполне себе алгоритмоемкие структуры. Во всех учебниках написано, что одна из основных проблем динамического распределения памяти — это ее непредсказуемость. Как говорится, знал бы прикуп — жил бы в Сочи. Если бы оракул заранее рассказал весь план по которому будет выделяться и освобождаться память, то можно было составить оптимальную стратегию, минимизирующую фрагментацию кучи, пиковое потребление памяти и т.д. Отсюда пошла возня с ручными аллокаторами. В процессе раздумий я натолкнулся на отсутствие инструментов логирования malloc() и free(). Пришлось их написать! Как раз про это была статья (а ещe я изучал macOS). Были запланированы две части, однако жизнь круто повернулась и стало не до malloc(). Итак, пора восстановить справедливость и реализовать обещанное: ударить глубоким обучением по предсказанию работы с кучей.