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

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


Новый материал в ленте
  Django - 5.0.11

Мощный web-фреймворк. Скачать можно по ссылке: https://pypi.python.org/pypi/Django/


Python Дайджест. Выпуск 95

(12.10.2015 - 18.10.2015)

поделиться выпуском 
pythondigest.ru: Выпуск 95

Статьи

  Событийно-ориентированный бэктестинг на Python шаг за шагом. Часть 4

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

  Удалённое исполнение системных команд по запросу через сокеты на Python 3. Протокол передачи данных

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

Так какими же недостатками обладает наше приложение?

  • Отсылается один единственный пакет, длина которого не может превышать заранее заданной границы в 1 Кбайт.
  • Приложение без проверки передаёт аргумент, принятый из сети, в оболочку (URL).
  • Недостаток функциональности. Мы не можем, например, скачать все изображения с Хабра, или скачать отдельный хаб.


Сегодня я расскажу как решить первую проблему, а заодно и немного о TCP.

  R vs Python: лицом к лицу утилиты для анализа

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

  Создаем интерактивную карту криминала на Folium

Этот пост описывает, как использовать Folium, чтобы визуализировать набор данных о преступности в Сан-Франциско. А затем как задеплоить код как сервис с помощью Domino

  Парсим изображения с помощью Python и Scrapy

В этом посте вы узнаете, как с помощью Python спарсить все изображения обложек журнала Time.

  Удалённое исполнение системных команд по запросу через сокеты на Python 3 или как я сайты скачивал

Не так давно качество мобильного интернета в моём городе стало постепенно ухудшаться из-за возрастающей на сети операторов нагрузки и некоторые сайты, требующие большое количество соединений (зависимые файлы страницы) стали загружаться ну ОЧЕНЬ медленно. По вечерам скорость опускается на столько, что некоторые сайты могут полностью загружаться в течении нескольких десятков секунд.

Есть несколько способов решения данной проблемы, но я решил выбрать немного необычный для нашего времени способ. Я решил скачивать сайты. Конечно, данных способ не подходит для крупных сайтов, вроде Хабра, тут разумнее использовать парсер, но можно скачать и отдельный хаб, список пользователей, или только свои публикации с помощью HTTrack Website Copier, применив фильтры. Например, чтобы скачать хаб Python с Хабра нужно применить фильтр "+habrahabr.ru/hub/python/*".
 

  Делаем Slack оповещения используя Amazon Dash Button

Статья описывает, как связать амазоновскую кнопку с вашем Python-кодом

Видео

  Получаем текст веб-страниц из Python и как это работает

Мы рассмотрим python-библиотеку под названием readability-lxml (https://github.com/buriy/python-readability), её применение и механизм работы для задачи извлечения текстов новостных страниц.

  Hardcore Python: как PyPy запускает твой код

PyPy - интерпретатор Python написанный на Python. Прелесть PyPy что он работает быстрее чем стандартный Python. В этом видео вы сможете узнать за счет чего это происходит

  Готовимся к Python интервью: 10 вещей, которые вы должны знать

В видео 10 вещей, которые надо знать перед тем как идти на интервью

  Python + GPGPU: ожидания и реалии

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

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

  Учебные материалы: сборник ООП паттернов

ООП преподают везде. В школе, в универе, в колледже, на курсах, упоминают в статьях, есть даже много книг на эту тему - например, банда четырех. Важным моментом ОО это паттерны. Это набор узаконенных хитростей и хаков, которые позволяют обходить недостатки самого ООП. По ссылкеhttps://github.com/faif/python-patterns вы сможете найти готовый код для множества паттернов.

  Опыт разработчиков: использование переменной _

Хорошие имена переменных - это признак хорошего кода. Для циклов часто используют одно-буквенные переменные, для временных переменных тоже короткие, для глобальных - ЗАГЛАВНЫЕ. Есть и другие рекомендации. Все они написаны кровью из глаз разработчиков.

Перейдем к заголовку и сразу пример: Пускай есть функция, которая возвращает 3 значения...

  Синтаксис Python: do...while

Цикл do while отличается от цикла while тем, что в do while сначала выполняется тело цикла, а затем проверяется условие продолжения цикла. Из-за такой особенности do while называют циклом с постусловием. Таким образом, если условие do while заведомо ложное, то хотя бы один раз блок операторов в теле цикла do while выполнится.

Иииии.... такой конструкции - do...while нет в Python. Написать цикл с постусловие можно так:

  Интересные концепции: fuzzy-testing - тестирование грубой силой

Тестирование программ повышает уверенность в ее способности работать. Есть даже большие школы, которые говорят о тестах, например, TDD, BDD.

У ручных тестов есть недостаток, среди прочих - тесты пишет человек. В следствии этого - он не сможет проверить работу функции/класса/etc на всех данных. А когда нам быть уверенным что даже на самых невалидных данных работает корректно, то без случайных данных не обойтись.

  Интересные концепции: какой смысл с Объектном подходе?

В Интернет часто говорят об ООП, об объектах. Так какой смысл во всем этом? Какая польза, недостатки? Соображения на эту темы вы сможете найти в видео:

  Таинство стандартной библиотеки: сериализуем данные с помощью marshal

Наверное, вы слышали про модуль Pickle, который умеет сериализовать объект в бинарный вид, который можно потом сохранить/загрузить в /из файл.

А модуль marshal сериализует объект в текстовый вид. Получив строку вы можете отправить ее другу по email, а уже из строки снова получить объект

  Полезные инструменты: fabric - автоматизируем рутину

Ситуация: написали web-проект, свой, домашний, а может и на работе. Надо его опубликовать в Интернет - задеплоить. Зашли на сервер, активировали venv, скачали новые исходники из репозитория, накатили миграции, обновили static-файлы, перезапустили, предположим, celery, перезапустили uwsgi.

И тут, поняли что забыли раскоментировать строчку в коде. Делаем коммит, снова заходим на сервер, активировали venv.... Зачем вся эта рутина с деплоем? Может есть способ проще? Мы же IT-шники, давайте напишем скрипт.

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

  healthchecks - Django app для мониторинга

Это исходники проекта https://healthchecks.io, который позволяет пинговать ресурсы и кидать оповещения в чаты, почту или даже использовать веб-хуки.

  vim-autosurround - автоматически закрываем скобки в Vim

vim-autosurround - это плагин написанный на Python, который позволяет упростить установку второй скобки (закрывающей)

  datalab - интерактивная утилита для Big Data на базе Google Cloud Platform

Google Cloud DataLab предоставляет удобный, интерактивный инструмент для визуализации, анализа, обработки данных. Утилиты позволяют работать с Python, SQL, и Google Cloud Platform с сервисами BigQuery и Storage.

  ChatterBot - чат-движок с машинным обучением

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

Релизы

  pex - 1.1.0

Библиотека и утилита для генерации .pex (Python EXecutable) файлов. Изменения описаны по ссылке https://allmychanges.com/p/python/pex/#1.1.0. Скачать можно по ссылке: https://pypi.python.org/pypi/pex