Обновить
634.69

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Pillow 2.7 — Существенное улучшение качества и производительности

Время на прочтение6 мин
Количество просмотров43K
Первого января 2015 года по расписанию вышла новая версия библиотеки для работы с изображениями Pillow 2.7. Так как многие изменения в ней были сделаны командой Uploadcare, мы рады представить вам расширенную версию заметок о релизе этой версии.

Для начала вспомним, с чего все началось. Pillow — дружественный форк (как называют его авторы) популярной библиотеки PIL, Python Imaging Library. Последняя версия PIL 1.1.7 вышла в 2009 году и в основном содержала исправления ошибок. Изначально Pillow задумывался как проект только по приведению в порядок сборки PIL, и разработчики рекомендовали отправлять все баги, не связанные со сборкой, в оригинальный PIL. Но время шло, PIL стремительно устаревала, багов не уменьшалось, тут еще Python 3 маячил на горизонте. Поэтому с версией Pillow 2.0 все изменилось. «Pillow 2.0.0 добавляет поддержку Python 3 и включает много багфиксов со всего интернета» гласит описание проекта на PyPI. И с тех пор понеслось. Каждые три месяца выходили версии с огромным количеством багфиксов и другими улучшениями от различных разработчиков. Самым значительным нововведением за это время было, пожалуй, поддержка форматов WebP и JPEG2000. Теперь пришло время следующего большого шага.
Читать дальше →

PyOpenGL с шейдерами

Время на прочтение8 мин
Количество просмотров44K
image

В предыдущей статье были рассмотрены основы работы с OpenGL в Python. Для вывода графики использовались встроенные функции модуля glut и фиксированный конвейер OpenGL без шейдеров. По просьбе пользователей habrahabr.ru, на базе предыдущего урока был создан шаблон PyOpenGL приложения, использующего шейдеры и буферные объекты.
Роскошной графики, как и в предыдущей статье, ожидать не стоит. Цель данной статьи — продемонстрировать возможность работы с шейдерами и буферными объектами с использованием модуля PyOpenGL.
Читать дальше →

PythonDigest — 2014 год, итоги нашей работы в цифрах и ссылках

Время на прочтение7 мин
Количество просмотров17K
В предверии Нового года подводим итоги работы над дайджестом и выводим тенденций выявленные в процессе сбора новостей по языку Python.

За год доведен до ума и по максимуму автоматизирован сбор новостей. Ежедневно автоматически мониторится 19 источников и набирается в среднем 10-15 релевантных новостей из которых, в последствии отбираются лучшие и готовятся анонсы для дайджеста.
Ощутимый вклад приносят читатели дайджеста, ни один выпуск не проходит без добавленных ими новостей.
За полгода, прошедшие с тех пор как еженедельный дайджест новостей о языке программирования python и близлежащих технологиях перестал публиковаться на хабре, мы обзавелись постоянной аудиторией читателей, подружились c ведущими русскоязычными python-площадками, нашли и научились обрабатывать новые источники информации о python в сети, стали постоянно публиковаться в популярном паблике на эту тему во вконтактиках, переводили и публиковали интересные статьи.

Интересующихся подробностями и цифрами, милости просим под кат.

Читать дальше →

Печатаем документ в виде чека с помощью Python и Parse

Время на прочтение3 мин
Количество просмотров29K
Не так давно передо мной встала задача: распечатка документа определенного формата с помощью мобильного устройства. На телефоне должны были вводиться определенные значения, отправляться на сервер (для того, чтобы потом можно было использовать эти данные на веб сайте) и печать документ с этими данными. С самого начала мой выбор пал на Google cloud print, так как он максимально прост в использовании и решении подобных задач. Но при использовании этого варианта есть несколько недостатков:

  • Очень медленная обработка запроса
  • Нужно где-то формировать PDF документ и возвращать ссылку на него
  • Постоянно нужно выбирать принтер (если у вас подключен только один принтер к Google cloud print, то все равно нужно выбирать между ним и сохранением на Google Drive)

Поэтому я решил написать свой скрипт для подобных операций.
Читать дальше →

Проектирование RESTful API с помощью Python и Flask

Время на прочтение15 мин
Количество просмотров297K
В последние годы REST (REpresentational State Transfer) стала стандартной архитектурой при дизайне веб-сервисов и веб-API.

В этой статье я покажу вам как просто создавать RESTful веб-сервисы используя Python и микрофреймворк Flask.

Что такое REST?


Характеристика системы REST определяется шестью правилами дизайна:

  • Клиент-Сервер: Должно быть разделение между сервером, который предлагает сервис и клиентом, который использует ее.
  • Stateless: Каждый запрос от клиента должен содержать всю информацию, необходимую серверу для выполнения запроса. Другими словами, сервер не обязан сохранять информацию о состоянии клиента.
  • Кэширование: В каждом запросе клиента должно явно содержаться указание о возможности кэширования ответа и получения ответа из существующего кэша.
  • Уровневая система: Клиент может взаимодействовать не напрямую с сервером, а с произвольным количеством промежуточных узлов. При этом клиент может не знать о существовании промежуточных узлов, за исключением случаев передачи конфиденциальной информации.
  • Унификация: Унифицированный программный интерфейс сервера.
  • Код по запросу: Сервера могут поставлять исполняемый код или скрипты для выполнения их на стороне клиентов.

Читать дальше →

PyOpenGL для начинающих и немного новогоднего настроения

Время на прочтение8 мин
Количество просмотров130K
image

Благодаря своей гибкости и простоте, язык Python позволяет легко и быстро писать целый ряд приложений и утилит. Мною данный язык, в основном, используется для написания небольших скриптов, облегчающих выполнение различных задач, связанных с системным администрированием. Как оказалось, Python можно использовать и для не совсем «традиционных» задач, например, для вывода 3D графики. Об этом и будет мой небольшой предновогодний пост.
Читать дальше →

Python Meetup 28.11.14: пакетирование, печать и баги

Время на прочтение2 мин
Количество просмотров6.7K
Python Meetup MinskВсем привет!
28 ноября состоялась последняя в 2014 году встреча любителей языка программирования Python. Темы в этот раз обсуждались самые что ни на есть хардкорные: пакетирование кода и подготовка к печати документов со сложной структурой. А в рамках «свободного микрофона» была затронута проблема багтрекинга.




Читать дальше →

Пишем конвертер для генератора мелодий от Nokia 3310

Время на прочтение7 мин
Количество просмотров34K

Любителям всего старого, но безумно интересного, добрый вечер!




Помните такой телефон — Nokia 3310? Разумеется, помните! А такую штуку как синтезатор мелодий в нем? Тоже помните, отлично. А по старым, теплым и ламповым мелодиям скучаете? Вот и я скучаю. А еще мне на глаза попался сайтик с более чем сотней нотных листов для этого редактора. И что я должен был оставить эту прелесть без внимания? Нет уж. Что я сделал? Правильно! Взял и написал точно такой же генератор мелодий, который позволяет на выходе получить Wave — файл с мелодией. Интересно, что из этого получилось? Тогда прошу под кат.

Читать дальше →

Гирлянда на Raspberry Pi

Время на прочтение5 мин
Количество просмотров24K


Приближаются новогодние праздники, и было решено сделать что-то новогоднее с использованием имеющегося Raspberry Pi B-модели. До этого я использовал его в качестве веб-сервера. Затем немного игрался с GPIO на Python заставляя светиться светодиоды.

Что ж, небольшая искусственная елка подсказала мне как можно совместить мое желание с моими навыками. Гирлянда на светодиодах!
Читать дальше →

Память и числа в Python

Время на прочтение3 мин
Количество просмотров24K
Hi, All.

Ранее я работал с C-подобными языками, теперь же пришлось сесть за Python. Синтаксис дался легко, и наступил черёд каверзных вопросов. Под катом — статья про то как в Python реализовано хранение данных в памяти. Не претендую на истину, но пробую разобраться.
Читать дальше →

Делаем дамп фотографий из диалога vk.com

Время на прочтение7 мин
Количество просмотров127K
Всем привет!

Вчера мне понадобилось скачать все фотографии из диалога с одним человеком в vk.com. Фотографий было больше 1000 штук. Понятное дело, что ручками это все делать было бы утомительно и… Стыдно. Не для того программированием занимаюсь, чтобы такую грязную работу делать не автоматизированно. Поэтому было решено написать скрипт.

В качестве языка был выбран Python. Его удобно использовать для консоли, он довольно быстрый, есть модуль urllib, позволяющий «одним движением» скачивать картинки по ссылке. Но главная причина — это то, что я начал изучать его недавно. Решил дополнительно попрактиковаться.

Сам скрипт получился небольшой, но было бы интересно описать процесс создания. Буду стараться писать побольше комментариев в коде, чтобы те, кто не знает python, тоже смогли понять процесс. А от знатоков очень приветствуются советы и указания. Итак, приступим.
Читать дальше →

xbmcswift2 — микро-фреймворк для написания плагинов к Kodi (XBMC)

Время на прочтение7 мин
Количество просмотров7.2K

Вступление


Это, так сказать, «бонусная» статья в моей серии статей о плагинах к медиацентру Kodi (XBMC). Прежде всего, необходимо отметить, что, начиная с версии 14.0, популярный медиацентр меняет название с XBMC на Kodi. О причинах смены названия можно почитать на официальном сайте и форуме, и для нашей статьи они не принципиальны. Однако дальше в статье будет использоваться новое название — Kodi.
Читать дальше →

Ближайшие события

Распознаем штрихкоды на изображениях с помощью Python и OpenCV

Время на прочтение6 мин
Количество просмотров89K
От переводчика: мы в компании Энтерра очень любим алгоритмы компьютерного зрения. Работаем чаще всего с OpenCv. Время от времени нам пишут разные разработчики с вопросами: «А как лучше начать работать с OpenCv?» или «Какую интересную задачу можно просто решить с помощью OpenCv?» В связи с чем мы решили перевести очень хорошую статью, которая будет полезна всем, кто интересуется компьютерным зрением.



Черная Пятница близко.

Толпы злых покупателей. Рой одинаковых теток среднего возраста, готовых сожрать практически всё, что угодно, в ближайшем супермаркете — главное, что со скидкой 75%. Они выстроятся в очереди перед дверьми магазинов в полночь Дня благодарения. Они будут ломиться внутрь, стучать в запертые двери кулаками и головами, пока не сплющат друг друга и не разобьют руки в кровь, став похожими на зомби из «28 дней спустя». Но вместо человеческой плоти, они жаждут удовлетворить инстинкт покупателя. Их боевые кличи о скидках и распродажах достигают небес. А их громовая поступь способна привести к землетрясению на Великой Равнине.

Естественно, от СМИ помощи не жди — они будут смаковать каждую подробность. От обмороженных семейств, ночевавших в палатке на морозе, до старой леди, растоптанной охотниками за скидкой в момент, когда открылись двери. Что-то похожее случилось с галлимимусом в «Парке Юрского периода». А она просто хотела купить Halo для девятилетнего внука Тимми, чьи родители забыли это сделать в прошлом году. В Wal-Mart. Во время Черной Пятницы.

И я обязан спросить: весь этот хаос и бедлам стоят того?

Чёрт возьми, нет!

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

Просто представьте, как глупо вы будете выглядеть, стоя в очереди в ожидании свободной кассы – только для того, чтобы после сканирования штрихкода последнего сезона «Игры Престолов» выяснить, что в Target его можно купить на 5 долларов дешевле?

Собственно, далее я покажу, как можно обнаружить штрихкод на изображении, используя только Python и OpenCV.
Читать дальше →

Псевдопрактический пример замыканий и декораторов

Время на прочтение4 мин
Количество просмотров17K
Когда я только начинал изучать Python, большое впечатление на меня произвели route-декораторы в известном фреймворке flask. Конечно, я догадывался, как они могли быть реализованы, но как всегда желание писать (а не читать) превзошло необходимость взглянуть на исходный код flask, и мне пришлось выдумать то, что могло бы выглядеть так же лапидарно, как вышеупомянутые декораторы из flask'а. Упражнение на тему замыканий, декораторов и области видимости в Python могло бы выглядеть так:

def do_something(p):
    return p

@implements(do_something, lambda: not p % 2)
def do_mod2_something(p):
    return p / 2

@implements(do_something, lambda: not p % 3)
def do_mod3_something(p):
    return p / 3

do_something(10)  # returns 5
do_something(9)   # returns 3
do_something(11)  # returns 11


Как реализовать декоратор @implements? Может ли подобная реализация использоваться где-то в реальных проектах — вопрос, который мы редко принимаем во внимание, выдумывая себе упражнения для понимания того, как работают те или иные программы. Мне показалось, что это выглядит как некое замещение (override) функции, имеющее место в других языках программирования.
Читать дальше →

Web-разработка на Python глазами PHP-программиста

Время на прочтение7 мин
Количество просмотров177K

Введение



В статье хотелось бы поднять вопросы отличия использования Python для web-разработки по сравнению с оной на PHP. Надеюсь, статья не приведет к холиварам, так как она вовсе не о том, какой язык лучше или хуже, а исключительно о технических особенностях Python.
Читать дальше →

Вышел новый PyCharm 4: больше да лучше!

Время на прочтение3 мин
Количество просмотров39K
Всем пятничный привет от JetBrains!

Мы рады рассказать вам, что на днях вышел новый PyCharm 4, который уже доступен для скачивания.

С момента предыдущего релиза PyCharm 3.4 прошло ровно полгода, за это время мы поработали над разными подсистемами PyCharm'а, и теперь рады рассказать, что же интересного и важного появилось в новой версии PyCharm.

В ней мы сделали упор на инструменты для научного программирования. Пожалуй, главной и долгожданной особенностью этого релиза является поддержка IPython Notebook прямо в PyCharm:

Читать дальше →

Эффективный Django. Часть 2

Время на прочтение9 мин
Количество просмотров75K

Продолжение перевода статей о Django с сайта effectivedjango.com. Наткнулся я на этот сайт во время изучения данного фреймворка. Информация размещенная на этом ресурсе показалась мне полезной, но так как нигде не нашел перевода на русский, решил сделать сие доброе дело сам. Этот цикл статей, как мне думается, будет полезен веб-разработчикам, которые делают только первые шаги в изучении Django.
Приступить к чтению

Python Meetup 31.10.14: асинхронность и soft skills

Время на прочтение2 мин
Количество просмотров11K
imageБелорусские Python’исты в этом году отметили Хэллоуин вместе, на Python шабаше Meetup. Так получилось, что последняя пятница месяца выпала как раз на 31 октября. Это, конечно, не могло не сказаться на формате проведения встречи. Духи играли с техникой, а наши докладчики рассказывали об асинхронной работе в JavaScript и Python, преимуществах open source ERP и CRM системы Odoo и жаловались, как же не просто быть хорошим программистом, но плохим человеком.

Читать дальше →

Должны ли все изучать программирование?

Время на прочтение7 мин
Количество просмотров49K
Предлагаю вашему вниманию перевод статьи «Should Everybody Learn to Code?», которая показалась мне интересной.

imageЧтобы проверить, смогут ли профессиональные графические дизайнеры написать простейшую компьютерную программу, Брайан Дорн, в то время студент магистратуры в Технологическом институте Джорджии (Georgia Tech), попросил их прочесть и изменить фрагмент программного кода. Дорн хотел понять, смогут ли они сами разобраться – как автоматизировать работу в Adobe Photoshop. Дизайнеры стали искать информацию в Интернете и, к сожалению, во многих случаях вводили неверные поисковые запросы: например, пытались разобраться с Java, когда на самом деле им был нужен JavaScript для этого конкретного проекта.

Это могло быть связано с «отсутствием общего базового понимания компьютерных и программных структур», писал Дорн в журнале Communications в мае 2011 года.
Читать дальше →

Вклад авторов