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

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

     08.12.2015       Выпуск 103 (07.12.2015 - 13.12.2015)       Колонка автора

Синтаксис Python: strip, rstrip, lstrip

Не редко возникает задача убрать лишние пробелы с начала/конца строки. Например

a = 'Доброе утро, Иван'
message, name = a.split(',') 
print(name)
> ' Иван' # (лишний пробел сначала строки)

     05.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Колонка автора

Таинство стандартной библиотеки: asyncio в Python. Как устроено и зачем нужно?

Видео со свежего Moscow Python митапа. В python 3.4 появился asyncio. До сих пор многие разработчики не знают, что это такое, как реализуется асинхронность в Python и в чем её сильные и слабые места. Повторим пройденное и заглянем под капот.

     05.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Колонка автора

Python на службе народа: оповещения в Linux

Оповещения - это зло для продуктивности, но без них тяжело. Сервер упал - как узнать об этом мгновенно? СМС, письмо на email, оповещение на рабочем столе.

К сожалению, без Qt, Wx и других фреймворков кроссплатформенные оповещения не сделать. Поэтому рассмотрим только Linux. Для linux есть библиотека libnotify и обязка для нее python-notify

     03.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Колонка автора

API всему голова: gitter api - пишем в чат от своего лица

Gitter - это система для создания чатов для пользователей Github. Чаты бесплатны, есть интеграция с Github, есть API - что еще для небольшого чата надо?

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

     03.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Колонка автора

Python на службе народа: добавляем водяной знак на изображение

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

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

     03.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Колонка автора

Интересные концепции: опциональная статическая типизация

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

В русскоязычном Python Андрей Власовских из Jetbrains наиболее часто говорит об этой концепции. Представляю сборку материалов от этого докладчика:

     03.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Колонка автора

Пишем web-проекты: django сигналы

Хочется поделиться ссылкой на статью - https://zxmd.wordpress.com/2013/05/23/django_signals/

Что такое сигнал в Django Framework ?

На бытовом уровне это система (диспетчер сигналов) которая обрабатывает некоторые виды событий которые генерирует система. По сути система сигналов разделяется на два компонента:

sender — компонент посылающий сигнал;

receiver — компонент отвечающий за обработку сигнала. ...

     01.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Колонка автора

Синтаксис Python: lambda-функции

Python поддерживает интересный синтаксис, позволяющий определять небольшие однострочные функции на лету. Позаимствованные из Lisp, так называемые lambda-функции могут быть использованы везде, где требуется функция.

     01.12.2015       Выпуск 102 (30.11.2015 - 06.12.2015)       Колонка автора

Полезные инструменты: sandman - админка над базой + REST за пару секунд

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

     28.11.2015       Выпуск 101 (23.11.2015 - 29.11.2015)       Колонка автора

Полезные библиотеки: boher - библиотека визуализации данных

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

boher имеет биндинги к самым различным языкам - R, Lua, Python, Julia. Вы пишите код визуализации на своем языке, а затем с помощью BokehJS отображаете в браузере. Возможности у инструмента огромные, прям как D3.js

     28.11.2015       Выпуск 101 (23.11.2015 - 29.11.2015)       Колонка автора

Таинство стандартной библиотеки: sys.platform - определяем операционную систему

При написании софта для кого-то, а не только для себя, необходимо учитывать специфику рабочего окружения.

Например, у разработчика стоит Linux, а у пользователя Windows. Или даже если у обоих стоит одна ОС, то на одном ПК может стоять необходимый модуль, а на другом нет. Все это накладывает отпечаток. Python со стандартной библиотекой предоставляет необходимый инструментарий для разрешения многих проблем.

     26.11.2015       Выпуск 101 (23.11.2015 - 29.11.2015)       Колонка автора

Интересные концепции: webhook

Webhook — механизм получения уведомлений об определённых событиях (в основном о действиях пользователей) на свой собственный сайт. В момент срабатывания события - бросается запрос (чаще всего POST) на указанный URL.

Например, разновидность Webhook - GitHook - отслеживает статус Git-репозитория на предмет изменений - пришел коммит на определенную ветку, проставили тэг и другое. 

     26.11.2015       Выпуск 101 (23.11.2015 - 29.11.2015)       Колонка автора

Практические задачи: Задача #001 - генерация псевдо-настоящих данных о пользователе

Задача #001 - псевдо-настоящих данных о пользователе.
Описание:

Запускается сайт знакомств - http://super-dating-site.com/ и чтобы повысить привлекательность среди новых пользователей необходимо заполнить сайт пользователями.....

     26.11.2015       Выпуск 101 (23.11.2015 - 29.11.2015)       Колонка автора

Пишем web-проекты: jinja2 - шаблонизатор

Jinja — это шаблонизатор для языка программирования Python. Он подобен шаблонизатору Django, но предоставляет Python-ические выражения, обеспечивая исполнение шаблонов в песочнице. Это текстовый язык шаблонов и, таким образом, может быть использован для создания какой-либо разметки, а также исходного кода. Шаблонизатор Jinja позволяет настраивать теги, фильтры, тесты и глобальные переменные. Также, в отличие от шаблонизатора Django, Jinja позволяет конструктору шаблонов вызывать функции с аргументами на объектах.

     26.11.2015       Выпуск 101 (23.11.2015 - 29.11.2015)       Колонка автора

Пишем web-проекты: django-braces - набор миксин на все случаи жизни

При разработке сколько-либо сложного django-проекта необходимо из раза в раз писать одинаковые куски кода - разграничивать доступ к контенту.

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

В случае с уровнем доступа, с авторизацией и прочими типовыми задачами есть набор готовых миксин - django-braces.
Django-braces позволяет в пару copy-paste сделать авторизацию, регистрацию пользователя, вернуть ответ view'хи в виде JSON, работать с SSL- эти и многие другие куски кода можно взять в этом модуле.

     26.11.2015       Выпуск 101 (23.11.2015 - 29.11.2015)       Колонка автора

Полезные библиотеки: swig - запускаем C-код из Python

Для работы с С-библиотеками есть несколько способов:
- Писать программу на С/C++ и подключать DLL (.so) файлы
- Попытаться напрямую запустить C код из нужного языка. 

Перед тем как продолжить - зачем нужно запускать C/C++ код?
Все просто - например, работаем с железом, а значит и с драйверами (а их пишут на C). Вот здесь и появляется необходимость взаимодействовать с С кодом.

     26.11.2015       Выпуск 101 (23.11.2015 - 29.11.2015)       Колонка автора

API всему голова: ВКонтакте - от начала до отправки сообщения другу

Работа с API сервисов это всегда история по типу "Ожидание...реальность". Ибо даже простое API может скушать день, а то и 2 дня рабочего времени.

API Вконтакте не исключение. Уже есть очень много материалов на тему использования этого интерфейса

И из раз в раз гугл мучается от запросов "Vk.com api". Пользователи ищут примеры авторизация, документацию, примеры использования. Поэтому я приведу один из вариантов старта в API Вконтакте, а именно. Мы отправим hello world другу.

     12.11.2015       Выпуск 99 (09.11.2015 - 15.11.2015)       Колонка автора

Железный Python: Одноплатные компьютеры

Одноплатный компьютер представляет собой компьютер, собранный на одной печатной плате с набором необходимых компонентов для полноценной работы (микропроцессор, оперативная память, системы ввода-вывода и другие модули, необходимые для функционирования компьютера). 

Одноплатные компьютеры хорошо подходят для решения типовых задач, таких как:

- Медиа-центр для LCD-телевизора с поддержкой торрентов и видео из социальных сетей;
- Устройство для сбора данных датчиков по Ethernet;
- Выделенный веб-сервер, FTP или VPN-сервера;
- Сервер управления «умным домом»;
- Охранную систему с распознаванием лиц;
- Робота с компьютерным зрением;
- Недорогой бюджетный образовательный компьютер;

     09.11.2015       Выпуск 99 (09.11.2015 - 15.11.2015)       Колонка автора

Математика в Python: Преобразование фурье

Осторожно, МАТАН!!!

По-простому, преобразование Фурье — разложение некоторого сигнала на гармонические (синусы или косинусы) колебания (спектр). 

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

     30.10.2015       Выпуск 97 (26.10.2015 - 01.11.2015)       Колонка автора

Hardcore Python: Оптимизация на грани и за ней

Возможно, вы видели доклад Антона Патрушева про оптимизацию Python — вплоть до отключения Garbage Collector. Это свежий доклад (PyCon RU 2015) и в нём вы найдете развитие идей оптимизации Python