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

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

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

Yapf — причесываем код Python автокорректором

В эпоху все большей популярности различных js и css linter'ов, не удивительно появление удобного линтера с автокоррекцией для Python.

Приветствуйте, Yapf — готовое решение, для превращения каши из строк во вполне читаемый код. И поверьте, он вам пригодится.

     17.03.2017       Выпуск 169 (13.03.2017 - 19.03.2017)       Статьи

Поиск пути в играх Tower Defense

В играх жанра Tower Defense (TD) множество врагов стремится добраться в одну точку. Во многих играх TD существует заранее заданный путь или несколько путей. В некоторых, в том числе в классической Desktop Tower Defense можно размещать башни в произвольных местах, и они становятся препятствиями, влияющими на пути врагов. Запустите демо и нажимайте на карту, чтобы возводить или убирать стены:

     17.03.2017       Выпуск 169 (13.03.2017 - 19.03.2017)       Статьи

Что нам стоит сервис email-маркетинга построить? Взгляд изнутри, часть вторая

Насколько сложно построить полноценный сервис email-маркетинга? Что для этого нужно предусмотреть? Какие подводные камни могут встретиться на пути пытливых умов разработчиков? Давайте попробуем разобраться вместе. В рамках нескольких статей я расскажу о том, как я уже больше года делаю свой собственный сервис email-рассылок, какие уроки для себя извлек и что планирую со всем этим делать дальше.

     16.03.2017       Выпуск 169 (13.03.2017 - 19.03.2017)       Статьи

Метод гармонической линеаризации средствами Python

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

     16.03.2017       Выпуск 169 (13.03.2017 - 19.03.2017)       Статьи

Библиотеки для глубокого обучения Theano/Lasagne

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

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

     14.03.2017       Выпуск 169 (13.03.2017 - 19.03.2017)       Статьи

Asterisk и не только. Виртуальные файловые системы. Шаг назад или два вперед?

Описывая участие в проекте по модернизации VoIP оператора связи Часть 1 и Часть 2, одной из задач, которая выпала из поля зрения, было создание унифицированного инструмента для визуализации и мониторинга работы сервера Asterisk. По сути, после выхода из данного проекта, навязчивая идея привести отображение информации Asterisk к более удобному виду вылилась в проект создания прототипа унифицированной виртуальной файловой системы, объединяющей возможности всех разрозненных инструментов доступных в Asterisk.

     12.03.2017       Выпуск 168 (06.03.2017 - 12.03.2017)       Статьи

Как спасти потерянный исходный код на Python, если он все еще не выгружен из памяти

Это перевод вчерашней заметки от Simon Willison

Я облажался, бездумно используя git (git checkout -- — не на том файле) и умудрился удалить код, который я только что написал… но он все еще был загружен в исполняемый процесс в докер-контейнере. Вот, как я восстановил код, используя https://pypi.python.org/pypi/pyrasite/ и https://pypi.python.org/pypi/uncompyle6

     09.03.2017       Выпуск 168 (06.03.2017 - 12.03.2017)       Статьи

Speech AI с Python & Google API

Совсем недавно пришла в голову идея сделать "говорилку" на русском языке. В голове была простенькая схема наподобие:

1) Распознать речь с микрофона
2) Придумать более — менее разумный ответ.
В этом пункте можно сделать много интересного.
Например реализовать управление чем — нибудь физическим и не очень.
3) Преобразовать этот самый ответ в речь и воспроизвести.

     09.03.2017       Выпуск 168 (06.03.2017 - 12.03.2017)       Статьи

Анализ рекомендаций книг для разработчиков со Stack Overflow средствами Python

Определиться, какую книгу по программированию читать следующей, трудно, да и рискованно.

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

     06.03.2017       Выпуск 168 (06.03.2017 - 12.03.2017)       Статьи

Открытый курс машинного обучения. Тема 2: Визуализация данных c Python

 

Второе занятие посвящено визуализации данных в Python. Сначала мы посмотрим на основные методы библиотек Seaborn и Plotly, затем поанализируем знакомый нам по первой статье набор данных по оттоку клиентов телеком-оператора и подглядим в n-мерное пространство с помощью алгоритма t-SNE.

     06.03.2017       Выпуск 168 (06.03.2017 - 12.03.2017)       Статьи

Проблемы тестирования: почему 100% покрытие кода это плохо

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

Материал подготовлен на основе выступления разработчика Positive Technologies Ивана Цыганова на конференции Moscow Python Conf (слайды, видео). 

     03.03.2017       Выпуск 167 (27.02.2017 - 05.03.2017)       Статьи

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

Небольшая заметка-введение в инструмент анализа данных на Python — pandas

     02.03.2017       Выпуск 167 (27.02.2017 - 05.03.2017)       Статьи

Python на службе у конструктора. Укрощаем API Kompas 3D

 

Работая в конструкторском отделе, я столкнулся с задачей — рассчитать трудоёмкость разработки конструкторской документации. Если брать за основу документ: «Типовые нормативы времени на разработку конструкторской документации. ШИФР 13.01.01" (утв. Минтрудом России 07.03.2014 N 003)», то для расчета трудоёмкости чертежа детали нам необходимы следующие данные:

     01.03.2017       Выпуск 167 (27.02.2017 - 05.03.2017)       Статьи

Снова о числах с плавающей точкой

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

1. Какое количество верных цифр n гарантированно имеет десятичное число, представленное двоичным m разрядным кодом в формате числа с плавающей точкой.
2. Как влияет нормализация чисел с плавающей точкой на точность представления числа при его преобразовании из одной системы счисления в другую и при арифметических действиях, выполняемых на компьютере.
3. Как влияет округление числа, представленного в двоичном виде на его десятичный эквивалент. 
4. Как положение виртуальной точки в машинном слове влияет на значение числа, представленного в экспоненциальной форме. 

     01.03.2017       Выпуск 167 (27.02.2017 - 05.03.2017)       Статьи

Простая программа на Python для гиперболической аппроксимации статистических данных

Законы Зипфа оописывают закономерности частотного распределения слов в тексте на любом естественном языке[1]. Эти законы кроме лингвистики применяться также в экономике [2]. Для аппроксимации статистических данных для объектов, которые подчиниться Законам Зипфа используется гиперболическая функция вида:

     28.02.2017       Выпуск 167 (27.02.2017 - 05.03.2017)       Статьи

Как перейти между внутренними циклами глубокой вложенности

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

     28.02.2017       Выпуск 167 (27.02.2017 - 05.03.2017)       Статьи

Открытый курс машинного обучения. Тема 1. Первичный анализ данных с Pandas

Первая статья посвящена первичному анализу данных с Pandas.

Пока в серии планируется 7 статей, идущих вместе с тетрадками Jupyter (репозиторий mlcourse_open), соревнованиями и домашними заданиями.

Далее идет список будущих статей, описание курса и собственно, первая тема – введение в Pandas.

     27.02.2017       Выпуск 167 (27.02.2017 - 05.03.2017)       Статьи

Как двухлетний репозиторий на GitHub стал трендовым за 48 часов

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

     21.02.2017       Выпуск 166 (20.02.2017 - 26.02.2017)       Статьи

Интересные особенности Python, о которых вы могли не догадываться

Приветствую тебя %username%. Прочитав статью о способах обхода sudo, решил тоже попробовать описать нечто подобное, но для языка Python. Спасибо root-me за такие задачки. Решая их, можно многое узнать о работе того или иного механизма. Прошу строго не судить, это моё первое творение.
Начнём! 

     21.02.2017       Выпуск 166 (20.02.2017 - 26.02.2017)       Статьи

Как я сделал самый быстрый ресайз изображений. Часть 1, общие оптимизации

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