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

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

     26.02.2016       Выпуск 114 (22.02.2016 - 28.02.2016)       Статьи

Хуки — это просто (часть 3)

Как-то так получилось, что я написал на Хабре уже несколько статей о библиотеках для хуков. Первая была об общих принципах и реализации на базе Detours, вторая — о более дешевой (но не менее функциональной) библиотеке madCodeHook. Сегодня я расскажу об ещё одном варианте — библиотеке Deviare от компании Nektra. «Ещё одна точно такая же библиотека для хуков?» — спросите вы. «Такая же, да не такая» — отвечу я. У Deviare есть несколько особенностей, отличающих её и от Detours и от madCodeHook и делающей её в некоторых случаях намного более полезной.

     25.02.2016       Выпуск 114 (22.02.2016 - 28.02.2016)       Статьи

Собственный модуль settings

Этот модуль родился в результате переосмысления (или недопонимания) мной вот этого пространного документа: Splitting up the settings file, размещённого на официальном сайте Django.

     25.02.2016       Выпуск 114 (22.02.2016 - 28.02.2016)       Статьи

Фоновое выполнение ячеек в IPython Notebook

Я много работаю с данными, поэтому практически все процессы у меня завязаны на Jupyter (IPython Notebook). Эта среда прекрасна и я её большой фанат. По сути, Jupyter — это обычная питоновая консоль и весь код там выполняется последовательно. Но иногда возникает желание запустить вычисления в ячейке и, не дожидаясь пока они закончатся, продолжить работу. Например, нужно скачать 1000 урлов и достать у них заголовки страниц. Хорошо бы запустить процесс скачивания и сразу начать отлаживать код для выделения заголовков.

     21.02.2016       Выпуск 113 (15.02.2016 - 21.02.2016)       Статьи

Пишем shell скрипты на Python и можно ли заменить им Bash

В этой небольшой статье речь пойдет о том, можно ли легко использовать Python для написания скриптов вместо Bash/Sh. Первый вопрос, который возникнет у читателя, пожалуй, а почему, собственно, не использовать Bash/Sh, которые специально были для этого созданы? Созданы они были достаточно давно и, на мой взгляд, имеют достаточно специфичный синтаксис, не сильно похожий на остальные языки, который достаточно сложно запомнить, если вы не администратор 50+ левела. Помните, ли вы навскидку как написать на нем простой if?

     21.02.2016       Выпуск 113 (15.02.2016 - 21.02.2016)       Статьи

Установка Django-проекта на VPS (centOS 7) [Для новичков]

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

Инструкция не содержит настроек безопасности. Она была создана на базе англоязычных инструкций и боли, много боли (ссылки в конце статьи). Инструкция актуальна для настроек: centOS 7, Django 1.9.2 и Python 3.4.3

     20.02.2016       Выпуск 113 (15.02.2016 - 21.02.2016)       Видео

Классификация литературных жанров

Доклад с Moscow Python №32 Докладчик: Андрей Киселев Описание: Попробуем собрать и улучшить простой языконезависимый классификатор текстов, исходя из естественных математических соображений.

     20.02.2016       Выпуск 113 (15.02.2016 - 21.02.2016)       Видео

Алгоритмические основы обучения реккурентных нейронных сетей

Доклад с Moscow Python №32 Докладчик: Никита Учителев (Datacentric) Описание: Мое выступление будет кратким введением в обучение реккурентных нейронных сетей. Сейчас обучить свою нейронную сетку может любой желающий, написав всего десяток строк кода. Я расскажу про то, что скрывается за этими строками, и почему нейросети еще не используются повсеместно.

     20.02.2016       Выпуск 113 (15.02.2016 - 21.02.2016)       Видео

Python 3.5, aiohttp — опыт эксплуатации, проблемы, решения

Доклад с Moscow Python №32 Докладчик: Павел Петлинский (Rambler&Co) Описание: Как мы запустили продакшн сервис на последней версии вселенной и что получили

     18.02.2016       Выпуск 113 (15.02.2016 - 21.02.2016)       Конференции, события, встречи разработчиков

Piter Py #3 - Python-конференция на Неве

​Третий год подряд портал Айти-Событие проводит Python-конференцию - «Piter Py», которая состоится 22 и 23 апреля в Санкт-Петербурге. Конференция Piter Py призвана объединить людей, небезразличных к языку программирования Python для общения и обмена опытом. Формат: двухдневная конференци в 2 параллельных потока докладов. ​#PiterPy - самая душевная Python-конференция :)

     18.02.2016       Выпуск 113 (15.02.2016 - 21.02.2016)       Конференции, события, встречи разработчиков

Доклад: TestRail. Некоторые возможности интеграции

Доклад: TestRail. Некоторые возможности интеграции

Докладчик: Антон Голов

Описание:

Поговорим о некоторых функциях для интеграции TestRail c внешними системами и автоматизации деятельности QA. Будет немного про Google Docs, и некоторый набор методов работы с TestRail, рассмотрим возможности работы с системами автоматизированного тестирования.

     18.02.2016       Выпуск 113 (15.02.2016 - 21.02.2016)       Конференции, события, встречи разработчиков

Доклад: JSON-RPC или когда REST неудобен

Доклад: JSON-RPC или когда REST неудобен

Докладчик: Александр Кацко

Описание:

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

     17.02.2016       Выпуск 113 (15.02.2016 - 21.02.2016)       Статьи

Реверс протокола СКУД RS485 от Perco. Берегите линии своих СКУД от вторжения

Участвуя последнее время в разных интересных проектах, возникла задачка альтернативного управления продуктом Perco Электронная проходная KT02.3. Данный продукт является законченным решением и не подразумевает использование в составе других систем СКУД, а также какого-либо вторжения в свою среду управления. Но, как говорится в поговорке, «Возможно все! На невозможное просто требуется больше времени» (С) Дэн Браун.

     17.02.2016       Выпуск 113 (15.02.2016 - 21.02.2016)       Статьи

Глубокое обучение в гараже — Возвращение смайлов

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

     16.02.2016       Выпуск 113 (15.02.2016 - 21.02.2016)       Статьи

Глубокое обучение в гараже — Две сети

Это вторая статья из серии про определение смайла по выражению лица. Глубокое обучение в гараже — Братство данных Глубокое обучение в гараже — Две сети Калибрация Итак, с классификатором, разобрались, но вы наверняка уже заметили, что заоблачные 99% как-то не очень впечатляюще выглядят во время боевого теста на детекцию. Вот и я заметил. Дополнительно видно, что в последних двух примерах очень мелкий шаг движения окон, так в жизни работать не будет. В настоящем, реальном запуске шаг ожидается больше похожим на картинку для первой сети, а там хорошо видно неприятный факт: как бы хорошо сеть не искала лица, окна будут плохо выровнены к лицам. И уменьшение шага — явно не подходящее решение этой проблемы для продакшена. Как быть?

     16.02.2016       Выпуск 113 (15.02.2016 - 21.02.2016)       Учебные материалы

Курс прикладного программирования на основе языка Python

Курс в начале немного будет о языке Питон (еще бы), но хочется проникнуть чуть дальше стандартного "это циклы, это условия, вот ООП, смотрите, стандартная библиотека. Ура! Вы знаете Питон". Сделать несколько попыток проникнуть именно в прикладное программирования, коснуться областей, для которых создаются программы. Ведь не бывает "просто программирования".

     15.02.2016       Выпуск 113 (15.02.2016 - 21.02.2016)       Колонка автора

Таинство стандартной библиотеки: модуль copy - копирование объектов

Оператор присваивания в Python не копирует объект, он создает ссылку между переменной и объектом. Для коллекций, которые могут изменяться или содержать изменяемые элементы это не всегда верная стратегия.

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

     15.02.2016       Выпуск 113 (15.02.2016 - 21.02.2016)       Статьи

Глубокое обучение в гараже — Братство данных

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

     13.02.2016       Выпуск 112 (08.02.2016 - 14.02.2016)       Колонка автора

Синтаксис Python: enum, перечисления

Программист время от времени сталкивается с необходимостью ограничить множество допустимых значений для некоторого типа данных. Например, день недели это 7 различных значений, а месяцев у нас 12. Для удобного хранения подобных данных придуманы перечисления - enum.

Стандартная реализация enum появилась в Python начиная с версии 3.4 ( PEP 435. До этого ее легко заменяли словарями. Реализация представлена модулем enum. Модуль содержит несколько классы Enum, IntEnum (константы могут иметь только тип int) и декоратор unique, который проверяет ваш набор констант на дубликаты.

     13.02.2016       Выпуск 112 (08.02.2016 - 14.02.2016)       Колонка автора

Полезные инструменты: GeoIP - определяем город пользователя по IP

Уже давно фраза "я тебя вычислю по IP" реальна.

Хочется представить очень простой инструмент для определения местоположения по IP - GeoIP. Рассматривать GeoIP стоит как базу данных соответствия интернет и физических адресов. Базы могут отличатся точностью - одна точно определяет страну, а друга может дать точность до улицы.

     11.02.2016       Выпуск 112 (08.02.2016 - 14.02.2016)       Колонка автора

Python уроки: тестирование с помощью unittest

unittest - инструмент для тестирования в Python. Это стандартный модуль для написания юнит-тестов на Python. Unittest это порт JUnit с Java. Иными словами, и в коде модуля, и при написании тестов легко прослеживается ООП стиль, что весьма удобно для тестирования процедур и классов.

Документация доступна по следующим ссылкам: python3python2

В данном инструменте много возможностей: проверки (assert*), декораторы, позволяющие пропустить отдельный тест (@skip, @skipIf) или обозначить сломанные тесты (@expectedFailure) и этим не заканчивается список. Использование assert'ов с лихвой покрывает нужды при написании тестов.

Полезная черта unittest - автоматизированное тестирование. Есть и другие:

  • можно собирать тесты в группы
  • собирать результаты выполнения тестов (например, для отчета)
  • ООП стиль позволяет уменьшить дублирование кода при схожих объектах тестирования