Текущий выпуск: Выпуск 111 (01.02.2016 - 07.02.2016)

Прошедшая неделя ознаменовалась двухчасовым падением части серверов GitHub и какой-то странной историей о проблемах внутри компании. Обновились версии Docker, Canonical анонсировали новый планшет (видимо истории с телефоном оказалось мало), появился новый инструмент на замену Parse под названием kinto. В мире Python также произошло много интересного, включая обновления популярных пакетов, намечена очередна конференция в Новосибирске... Впрочем, обо всем этом читаем ниже. Если мы что-то упустили, то добавьте свою ссылку через специальную форму и мы ее опубликуем, можно также написать нам в комментариях к выпуску или в Gitter. Следить за всеми изменениями можно через RSS, Twitter или Telegram @py_digest.

Поддержите проект рублем или руками (мы ищем дизайнера и верстальщика)

pythondigest.ru: Выпуск 111

НАШИ ДРУЗЬЯ

Python-конференция

Новости

  С юбилеем: Scrapinghub исполняется 5 лет

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

  Scrapy теперь поддерживает Python3 (первый RC)

Спустя несколько месяцев тяжелой работы мы представляет версию Scrapy 1.1.0rc1, которая поддерживает Python3.

Еще не все готово, но проделано много работы

Конференции, события, встречи разработчиков

  PyNSK #6 — шестая встреча Новосибирского Python сообщества Хабрахабр

Питонисты Новосибирска и ближайших регионов, приглашаем вас на встречу сообщества Python сообщества — PyNSK. 

13-го февраля (суббота) состоится шестая встреча. Она пройдет в Культурном Центре «Этаж» и начнется 13-00.

Мы выспались за январь и решили провести встречу! В этот раз будем говорить про RPC и тестирование:

Статьи

  Сериализация объектов в Python (schematics + ciso8601) Reddit - канал о python

Статья описывает способы ускорить сериализацию объектов - уменьшить вариативность данных, убрать валидацию, использовать С библиотеки.

  Контроль над браслетом в ритме BlueZ Хабрахабр

В исследовательском проекте мне потребовался прототип медицинского браслета. Устройство должно было периодически измерять пульс, предупреждая об этом пациента, и отправлять результаты вместе с уровнем заряда батареи в облачный сервис. Таким устройством вполне мог стать и фитнес-браслет со стационарным ретранслятором вместо смартфона. Поэтому, прежде чем попытаться собрать прототип своими руками, я решил поэкспериментировать с чем-нибудь готовым. Так у меня появился новый Xiaomi mi band 1S Pulse (обзор на Geektimes) с оптическим датчиком частоты сердечного ритма.

  Мониторинг выполнения задач в IPython Notebook Хабрахабр

Хотел бы поделиться простым, но полезным инструментом. Когда много работаешь с данными, часто возникают примитивные, но долгие операции, например: «скачать 10 000 урлов», «прочитать файл на 2Гб, и что-то сделать с каждой строчкой», «распарсить 10 000 html-файлов и достать заголовки». Долго смотреть в зависший терминал тревожно, поэтому долгое время я использовал следующий гениальный код:

  Машинное обучение от Octave\Matlab к Python Хабрахабр

Решил я познакомится с такой интересной для меня областью, как Machine learning. После непродолжительных поисков я обнаружил достаточно популярный курс Стэнфордского университета Machine learning. В нем рассказываются основы и дается широкое представление о machine learning, datamining, and statistical pattern recognition. Был для меня в этом курсе небольшой минус как Python программиста- домашние задания надо было выполнять на Octave\Matlab. В итоге я не пожалел, что получил представления о новом языке программирования, но как учебный пример для более тесного знакомства с соответствующими библиотеками решил переписать домашние задания на Python. То что получилось лежит на GitHub тут.

  Импорт словаря в Lingualeo.com Хабрахабр

Для экспорта слов в Lingualeo.com есть несколько решений:

  • Приложения для браузера или телефонов:
  • Добавление слов на сайте.

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

  Используем свой спам-фильтр в реальной жизни PythonWeekly

В предыдущей статье автора описан путь создания своего spam-фильтра. В этой рассказывается об опыте использования разработки

  collections — Container Data Types — PyMOTW 3

Модуль collections содержит разные типы коллекций по-мимо встроенных list, dict, tuple

  Ускорение Python-скриптов без приложения умственных усилий Хабрахабр

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

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

  Как сверточные нейронные сети видят мир PythonWeekly

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

Видео

  Django tutorial

Дельные видосы от sentdex по питону на английском языке. Недавно стартовала серия уроков по джанго. Уровень 0+

Учебные материалы

  Подборка: Более 70 источников по машинному обучению для начинающих Хабрахабр

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

Это список предназначен для тех, кто только начинает изучать тему машинного обучения, например, с использованием Python (если вы хотите начать учить Python, вам в помощь эта статья).

Машинное обучение – это лишь одна из математических дисциплин, связанных с понятием «данные». Чтобы разобраться в том, что такое аналитика данных, анализ данных, наука о данных, машинное обучение и большие данные, прочитайте этот материал.

  Книга «Hello World! Занимательное программирование» Хабрахабр

Привет! Наша первая книга для детей «Первая книга юного программиста. Учимся писать программы на Scratch» имела успех у читателей и мы решили издать замечательную книгу Уоррена Сэнда и Картера Сэнда. Данный пост адресован детям и их родителям.

Колонка автора

  Учебные материалы: A Byte of Python - отличная книга для начала PyNSK

“A Byte of Python” – это свободная книга по программированию на языке Python. Она может служить учебным пособием или руководством по языку Python для начинающей аудитории. Если ваши знания о компьютере ограничиваются тем, как сохранять текстовые файлы, эта книга для вас.

Книга короткая - 150 страниц и рассказывает самые-самые важные аспекты для начала.

  httpbin - инструмент для тестирования HTTP библиотек и кусков кода PyNSK

При разработке http библиотек периодически возникает необходимость обработки граничных, да и не только граничных, условий:

  • Как происходит обработки 404-ошибки.
  • Если это чат - то как отображаются картинки, текст
  • Как происходит обработка различных кодировок
  • Если прокси, то как убедиться в анонимности прокси-сервера(т.е. http-заголовок не содержит вашего реального IP)

Общее в этих примерах механизм - из своего кода вы посылаете запрос и ожидаете четкий ответ. Если чат и ожидаете картинку - то в ответе должно быть изображение.

И к счастью, реализация подобного механизма уже есть - httpbin.

  Python уроки: исключения (exceptions) PyNSK

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

Исключительные ситуации или исключения(exceptions) - это ошибки, обнаруженные при исполнении. Например, к чему приведет попытка чтения несуществующего файла? Или если файл был случайно удален пока программа работала? Такие ситуации обрабатываются при помощи исключений.

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

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

  Python для ARM. Мигание светодиода. Часть 1 PyNSK

В продолжение статьи про одноплатные компьютеры мы приступим к их рассмотрению и работы с ними более детально (примеры будут показаны на платах Raspberry Pi (RPi), OrangePi и PcDuino). Начнем с управления светодиодом. В этом и дальнейших материалах будут использоваться за основу давно существующие материалы и будут использованы для создания наших проектов.

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

  Пишем простые проекты. Проект #1. Часть #2 PyNSK

Продолжаем писать проект "Страница со статистикой отжимания" с помощью flask + google chart's.

В этой части дополним шаблон javascript'ом, продумаем и реализуем сохранение/загрузки истории.

Ранее создан базовый проект flask и html файл с текстом Hiiii.

Интересные проекты, инструменты, библиотеки

  ballpark - человеко-понятное представление чисел py3k

>>> from ballpark import human, scientific, engineering, business
>>> business([11234.22, 233000.55, 1175125.2])
['11K', '233K', '1,180K']
>>>
>>> # or use the shortcut functions
>>> from ballpark import H, S, E, B
>>> B([11234.22, 233000.55, 1175125.2])
['11K', '233K', '1,180K']
>>>
>>> # all notations accept single numbers too, but then we can't
>>> # guarantee that all numbers will have the same prefix (kilo, mega etc.)
>>> [B(value) for value in [11234.22, 233000.55, 1175125.2]]
['11.2K', '233K', '1.18M']

  kitty - фреймворк для фазинга (Fuzzing) написанный на Python

Fuzzing - это процесс тестирования кода на основе максимально случайных данных (в том числе корректных и некорректных)

  musichaos - утилита наведения порядка в музыке (раскладывает файлы по исполнителю, альбому, музыке) py3k

Позволяет организовать такую структуру

~/music
│   ├── Artist 01
│   │   └── Album 01
│   │   │   └── Title 01
│   │   │   │── Title 02
│   ├── Artist 02
│   │   └── Album 01
│   │   │   └── Title 01
│   │   │   │── Title 02

Утилита позволяет реализовать порядок без перемещения файлов (с помощью ссылок)

  djangocms_portfolio - приложение "Портфолио" для djangoCMS py3k

Модуль содержит набор моделей, view's. Можно адаптировать под обычную Django

  pyandoc - Python обертка для Pandoc (универсальный конвертер документов) py3k

На примере markdown

doc = pandoc.Document()
doc.markdown = '''
# I am an H1 Tag

* bullet point
* more points
* point with [link](http://kennethreitz.com)!
'''

  fontawesome-markdown - плагин для Markdown, который добавляет поддержку Font Awesome py3k

>>> from markdown import Markdown
>>> from fontawesome_markdown import FontAwesomeExtension

>>> markdown = Markdown(extensions=[FontAwesomeExtension()]
>>> markdown.convert('i ♥ :fa-coffee:')
<p>i  <i class="fa fa-coffee"></i></p>

  noteit - CLI для создания "записочек"

Консольная утилита для создания и чтения записок, где угодно: - записи хранятся на удаленном хосте - записи шифруются на стороне клиента - легкая установка - никаких зависимостей кроме python

  modern-paste - аналог Pastebin для личного использования

Проект позиционируется как красивый аналог pastebin (сервиса хранения исходников). Чтобы работать с проектом надо запускать у себя на машине 

  keyboard - перехват и симуляция нажатий на клавиатуру на Windows и Linux py3k

import keyboard

# Press PAGE UP then PAGE DOWN to type "foobar".
keyboard.add_hotkey('page up, page down', lambda: keyboard.write('foobar'))

# Blocks until you press esc.
wait('esc')

  CFFIpp - CFFI модуль для вызова из C++ кода в Python py3k

ffi = FFIpp()
ffi.cdef("""
    class testClass {
    public:
        testClass();
        void test(int);
        int returnsInt(int);
    private:
        void shouldNotBeInModule();
    };
    """)
self.assertTrue(ffi.has_class("testClass"))

ffi.set_source("example_module", """
    class testClass {
    public:
        testClass(){}
        void test(int){/*nop*/}
        int returnsInt(int){return 1;}
    private:
        void shouldNotBeInModule() {/*nop*/}
    };""")
ffi.compile()
import example_module
c = example_module.testClass()
self.assertEqual(c.returnsInt(5), 1)

  django_minimal_log - небольшой сервер и клиент для логгирования на основе Django py3k

Проект представляет собой Django-модуль, который позволяет организовать агрегацию логов на основе Django.

Django выступает в роли сервера, который принимает запросы логгирования, а клиент отправляет POST запросы на этот сервер.

  django-github-webhook - обрабатываем GitHub webhook на Django py3k

Модуль позволяет принять Github webhook для последующей удобной обработки

Релизы

  virtualenv - 14.0.4 allmychanges.com

Инструмент создания виртуального рабочего окружения. Изменения описаны по ссылке https://allmychanges.com/p/python/virtualenv/#14.0.4. Скачать можно по ссылке: http://pypi.python.org/pypi/virtualenv/

  supervisor - 3.2.1 allmychanges.com

Система контроля и управления процессами. Изменения описаны по ссылке https://allmychanges.com/p/python/supervisor/#3.2.1. Скачать можно по ссылке: http://pypi.python.org/pypi/supervisor/

  pymongo - 2.9.1 allmychanges.com

Python интерфейс для MongoDB. Изменения описаны по ссылке https://allmychanges.com/p/python/pymongo/#2.9.1. Скачать можно по ссылке: http://pypi.python.org/pypi/pymongo/

  aiohttp - 0.21.0 allmychanges.com

http клиент/сервер для asyncio. Изменения описаны по ссылке https://allmychanges.com/p/python/aiohttp/#0.21.0. Скачать можно по ссылке: https://pypi.python.org/pypi/aiohttp/

  scrapy - 1.0.5 allmychanges.com

Гибкий фреймворк для написания web-пауков (парсеров). Изменения описаны по ссылке https://allmychanges.com/p/python/scrapy/#1.0.5. Скачать можно по ссылке: https://pypi.python.org/pypi/Scrapy

comments powered by Disqus