Как стать автором
Поиск
Написать публикацию
Обновить
384.93

Python *

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

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

Пишем свой плагин для XBMC. Пока без блекджека и всех остальных

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

Всем привет. Речь в топике пойдёт о создании плагина (программного дополнения, аддона) к замечательной программе XBMC. Уровень сложности: для начинающих. Понадобятся знания HTML и общее представление о работе сайтов; не помешает знать как выглядит Python. Не ждите под катом уникальных алгоритмов и магического кода, это скорее отправная точка и общее объяснение механики работы плагинов. Код будет, надеюсь, наглядным.

Некоторые из вас могут спросить: «Ведь есть репозиторий seppius, который решает почти все проблемы с воспроизведением онлайн-контента в рунете (в контексте XBMC). Зачем велосипеды?». Я приведу свои доводы в небольшом предисловии.

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

Whois: практическое руководство пользователя

Время на прочтение32 мин
Количество просмотров180K
Статья рассказывает о работе whois протокола, о существующих клиентских решениях и об особенностях коммуникации с различными whois серверами (а также о выборе правильного whois сервера). Ее основная задача — помочь в написании скриптов для получения whois информации для IP адресов и доменов.

Что такое whois?


Что такое и для чего нужен whois можно прочитать, например, здесь: http://en.wikipedia.org/wiki/Whois.

В нескольких словах, whois (от английского «who is» — «кто такой») – сетевой протокол, базирующийся на протоколе TCP. Его основное предназначение – получение в текстовом виде регистрационных данных о владельцах IP адресов и доменных имен (главным образом, их контактной информации). Запись о домене обычно содержит имя и контактную информацию «регистранта» (владельца домена) и «регистратора» (организации, которая домен зарегистрировала), имена DNS серверов, дату регистрации и дату истечения срока ее действия. Записи об IP адресах сгруппированы по диапазонам (например, 8.8.8.0 — 8.8.8.255) и содержат данные об организации, которой этот диапазон делегирован.

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

Визуализация статистики использования компьютера с R

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


Думаю, многим интересно (хотя бы из любопытства), как именно они используют свой компьютер: самые нажимаемые кнопки, пройденное мышью расстояние, среднее время работы и другую информацию. В этой статье я расскажу один из вариантов того, как можно собрать такую информацию и затем представить её в виде интерактивных графиков. Все описанные действия производились на ноутбуке с ОС Debian Wheezy, Python 2.7.3, R 2.15.
image
Подробнее, с картинками и ссылками

Yet another python Chat client

Время на прочтение6 мин
Количество просмотров17K
Приветствую, хабраюзер.
Уже была статья про чат-клиент на питоне на хабре. Данная статья и сподвигла написать свой велосипед в академических целях, но повторять чужой код не интересно, поставим задачу поинтереснее: Jabber(Асимитричное шифрование RSA)+PyQt.
Если интересно добро пожаловать под кат.
Читать дальше →

Вышел Django 1.5 Release Candidate

Время на прочтение1 мин
Количество просмотров8K
Вчера на официальном сайте Django появилось сообщение о доступности Django 1.5 Release Candidate.

Пара слов о нововведениях:
  • Конфигурируемая модель User. Теперь можно использовать стандартную авторизацию, дополняя модель своими полями.
  • Поддержка Python 3. Прекращение поддержки Python 2.5. Минимальная версия теперь — 2.6.5
  • Задание конкретных полей при сохранении модели — параметр update_fields в Model.save()
  • Кэширование связанных моделей
  • Явное указание потокового ответа (класс StreamingHttpResponse)
  • Тег {% verbatim %}, рендеринг внутри которого не происходит (удобно для javascript-шаблонов)

Скачать Django 1.5 RC

Используем IronPython из Transact SQL

Время на прочтение14 мин
Количество просмотров6.9K
Transact SQL великолепный язык, функциональности которого более чем достаточно для решения большинства часто возникающих задач. Однако иногда возникают задачи, которые с его помощью решать долго и/или неудобно. Пожалуй, самым ярким примером является продвинутый парсинг строк, в котором приходится использовать регулярные выражения или просто хитрый и закрученный алгоритм. Начиная с SQL Server 2005, эта проблема решается созданием хранимой процедуры/функции CLR. Но этот подход требует перекомпиляции и развертывания сборки при внесении изменений. А так хочется, не покидая Management Studio, изменять поведение своих процедур.
Естественным образом возникает желание встроить в T-SQL поддержку какого-нибудь скриптового языка, чтобы выполнять код на лету. Благодаря DLR (Dynamic Language Runtime) в .Net Framework 4 у нас появилась такая возможность. Исключительно в силу личных пристрастий автора в качестве такого языка был выбран IronPython.
Под катом пошаговая инструкция и демонстрация результата.
Читать дальше →

Високосные годы

Время на прочтение3 мин
Количество просмотров61K
Надеюсь, вы отлично встретили новый год, и сейчас у вас отличное праздничное настроение. По крайней мере у меня это именно так — мы не пили никакого алкоголя, и чокнулись в полночь бокалами с водой из пятилитровой канистры, поэтому мы проснулись, погуляли, и тут я вспомнил одно из вчерашних поздравлений с Новым годом:

Желаю, чтобы в конце каждого года ты, вспоминая то, что было за последние 366 if ((year%4 == 0 and year%100 != 0) or (year%400 == 0)) else 365 дней, думал про себя:

— Ох, нифига себе, какой был экшен. Обязательно буду рассказывать внукам или напишу об этом потом книгу.

Итак, выше достаточно простой inline-способ определить количество дней в году (переменная year), который, по сути, полностью раскрывает их суть: в григорианском календаре високосными годами считаются те годы, порядковый номер которых либо кратен 4, но при этом не кратен 100, либо кратен 400. Иными словами, если год делится на 4 без остатка, но делится на 100 только с остатком, то он високосный, иначе — невисокосный, кроме случая, если он делится без остатка на 400 — тогда он всё равно високосный.

Например, 2013 год невисокосный, 1700, 1800 и 1900 — опять же невисокосные годы, а вот 2000, 2004, 2008 и 2012 — високосные.

Но что, если мы не помним, сколько дней в високосных (366 дней) и невисокосных (365 дней) годах, или просто хотим написать определение количества дней в году максимально быстро? Можно ли сделать так на Python? Конечно же, можно.
Читать дальше →

Обучение программированию через игру или как быстро собрать весь мёд

Время на прочтение5 мин
Количество просмотров44K
Несколько лет назад я начал преподавать свой любимый язык python школьникам. И возникла такая задача: рассказать про объектную модель, но что бы это было не скучно и как можно нагляднее. И тут меня не сразу, но осенило — пчёлы!

Отчего пчёлы и как самому ими порулить

PyCon in Russia: let it be

Время на прочтение2 мин
Количество просмотров6.8K
Не без волнения пишем этот пост — да, мы взялись за организацию первого в России PyCon. Если совсем кратко — то можно перейти на сайт PyCon.ru вся информация есть там. А под катом мы рассказываем, кто мы такие и почему собираемся всё провести именно так.
Читать дальше →

Создание веб-приложения Django в Visual Studio 2012 и публикация его в облако Windows Azure

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

Доступные инструменты значительно упрощают разработку приложений для Windows Azure. При изложении материала предполагается, что пользователь не имеет опыта работы с Windows Azure. Выполнение всех шагов данного руководства позволит запустить приложение на основе Django в облаке.

Из этого руководства вы узнаете:

  • Как создать базовое приложение Django.
  • Как запускать и отлаживать приложения Django локально с помощью тестового сервера Django.
  • Как запускать приложения Django локально в эмуляторе среды.
  • Как публиковать и повторно публиковать приложение на платформе Windows Azure.

Следуя приведенным инструкциям, вы создадите простое веб-приложение Hello World. Приложение будет размещено в экземпляре веб-роли, которая размещается в выделенной виртуальной машине на платформе Windows Azure.
Читать дальше →

Играемся с изображениями в Python

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


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

Skype-бот для голосовых конференций

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


Вероятно, некоторые помнят сервис Skype Casts — публичные голосовые конференции, где каждый мог создать конференцию, которая анонсировалась на сайте skype.com. В 2008 году сервис был закрыт.

Сегодня единственная возможность хостить конференцию — держать запущенным Skype-клиент.
Это не удобно, потому как человек, который «держит» конференц-звонок не может принять входящий вызов, иначе конференция будет поставлена на удержание и никто в ней не сможет общаться. Если у хоста проблемы с интернетом — связь портится у всех.
К тому же хостить звонок в котором 10-15 участников существенно нагружает компьютер.

Мы пытались решить эту задачу держа запущенным Skype на Windows-сервере. Чтобы звонок не обрывался когда все участники кладут трубку — приходилось запускать две копии клиента и держать второго как участника конференции.
Но такая схема не очень стабильна, через 3-5 дней один из клиентов вылетает и звонок обрывается. Приходилось каждый переподнимать его вручную.

И вот наконец удалось найти стабльное и просто решение на основе skypekit позволяющие:

Постоянно держать звонок с помощью одной копии skypekit.
Если все участники конференции положили трубки, звонок перезапускается как /golive

Хостить бота на Linux-сервере без X-ов.
Десктопный клиент требует для запуска X-сервер. Skypekit можно запускать без него, даже на VPS.
Доступен под все платформы Windows/Linux/Mac

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

Инструкция

Пишем бота для игры «Найди отличие»

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

Не так давно я наткнулся на игру, в которую играл много лет назад. Я думаю, многие при поиске отличий ломали себе глаза долгое время. Сегодня я решил пройти её еще раз, но проходить её с 0 мне было, честно говоря, лень. Поэтому я решил написать себе помощника. В статье будет рассказано одно из решений, не наилучшее, но самое понятное для новичков. Итак, начнем.

Писал я всё на python 2.7
Использовалась библиотека PIL

from PIL import Image, ImageDraw


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

image1 = Image.open("1.jpg")

Так мы открываем нужный нам файл.

pix1 = image1.load()

Записываем в pix1 цвета всех пикселов картинки. Теперь по координате пикселя мы можем получить его цвет.

draw = ImageDraw.Draw(ANS)

Создание инструмента для рисования.

image1.size

Возвращает пару (ширина и высота картинки).

draw.ellipse((x, y), (255, 255, 255)) 

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

ANS.save("ans.png", "PNG")

Сохранение изображения в формате PNG. Если не указан полный путь, то сохраняется в папку с исполняемой программой.

del draw

Удаление инструмента «draw».

Приступим к главному…
Читать дальше →

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

Насколько вы подвержены тупняку, и немного holywar

Время на прочтение3 мин
Количество просмотров14K
Случайно услышал рассказ одного коллеги другому о том, что в скриптовых языках все очень клево и удобно. Рассказчик пропагандировал perl, как что-то очень крутое, простое и понятное.
Не удержался и встрял, сказав, что python попонятнее будет, а возможностей предоставляет совсем не меньше.
Дальше меня спросили, как в python обстоят дела с регулярными выражениями, и в результате пришли мы к такой задаче:

Есть строка, необходимо вывести все слова в ней, которые встречаются N раз.

Задачка конечно совсем тривиальная и написание решения занимает считаные минуты, но этот тупняк поглотил всех как минимум на несколько часов. Если вы поддаетесь тупнячкам, то прошу пожаловать подкат
Читать дальше →

Рисование графиков. Python. Tkinter

Время на прочтение2 мин
Количество просмотров146K
Это моя первая статья и я хотел бы рассказать о том как написать простейшую программу по рисованию графиков функций.
Статья ориентирована на новичков!
Начнем с того, что наша функция будет иметь вид:
y = c(x)
Где c(x) — это выражение от одной переменной «x».
Сразу считаем её.

f = input('f(x):')


Считать значение функции мы будем функцией eval().
Подключим нужные нам библиотеки.

from math import *
from tkinter import *
f = input('f(x):')


Теперь надо нарисовать оси координат.

from math import *
from tkinter import *

f = input('f(x):')

root = Tk()

canv = Canvas(root, width = 1000, height = 1000, bg = "lightblue", cursor = "pencil")
canv.create_line(500,1000,500,0,width=2,arrow=LAST) 
canv.create_line(0,500,1000,500,width=2,arrow=LAST) 

canv.pack()	
root.mainloop()


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

Подключение сторонних инструментов в IntelliJ IDEA на примере pylint

Время на прочтение2 мин
Количество просмотров12K
В этом посте я хочу рассказать про довольно интересную фичу IntelliJ IDEA — подключение сторонних утилит, а также продемонстрировать её на довольно типичном примере: я подключу pylint — анализатор кода для python проектов.

External Tools


В IDEA есть интересная возможность использовать сторонние утилиты из интерфейса самой IDE. Добавлять таким образом можно всё что угодно — скрипты, анализаторы кода, средства рендеринга ресурсов и подсчета статистики. И IDEA предоставляет несколько крутых решений, обеспечивающих комфорт использования утилит, которые вы подключите.

Ну что, попробуем подключить какой-нибудь тул?
Читать дальше →

Немного о Pivot tables в PostgreSQL и Python

Время на прочтение8 мин
Количество просмотров35K
Доброго времени суток.

Работая в институте, мне приходится иметь дело с большим количеством полу-структурированной информации. Здесь приставка «полу» значит, что в целом все данные похожи, но, как правило, распиханы в локальных папках на компьютерах у сотрудников, в .xls, .txt или в бинарном формате. Информация представляет из себя данные полученные с различных приборов( датчиков уровня, температуры, скорости течений, атмосферного давления, влажности и так далее до 20-30 различных параметров). Все приборы выгружают данные каждый в своем формате: либо в ascii либо бинарный формат, который потом обрабатывается, и, на выходе, снова получаются ascii. Ну вообщем все как всегда, вы и сами представляете весь этот хаос.

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

Обработка всего этого хозяйства — вполне стандартные вещь, ничего нового и интересного: проверка временных рядов на целостность(если нужна – интерполяция), построение кучи различных графиков, запуск различных моделей на этих данных, обработка вывода моделей(снова куча графиков), вывод статистики. О последней я и расскажу в этой статье.

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

Дружим Python 3 с MS Visual C++. Строим мост в Boost.Python с автоматической перекодировкой

Время на прочтение9 мин
Количество просмотров14K
Всем доброго {daytime}!

Сегодня пришла пора рассказать вам о фундаментальной проблеме перекодировки при взаимодействии проекта собранного на MS Visual C++ на платформе Windows и наиболее приятной скриптовой обвязки для языка C++, благодаря библиотеке Boost.Python, собственно написанной для языка Python.

Вы ведь хотите использовать для вашего приложения на C++ под ОС Windows хорошую скриптовую обвязку на последней версии Python 3.x, либо вы хотите использовать для вашего приложения на Python максимально ускоренный участок кода вашего модуля, переписанный на C++. В обоих случаях, если вы знаете оба языка как минимум хорошо, вам стоит это прочитать.
Читать дальше →

Гвидо ван Россум перешёл из Google в Dropbox

Время на прочтение1 мин
Количество просмотров25K
Автор языка программирования Python Гвидо ван Россум в пятницу отработал последний день в Google, а с января будет зачислен в штат компании Dropbox. Руководители Dropbox с радостью приветствуют Гвидо. Они называют его старым другом, помогавшим создавать Dropbox «с первых строчек кода» (dropbox.py).

«С самого начала было понятно, что Dropbox должен поддерживать все основные операционные системы. Исторически, такая поддержка требовала серьёзных усилий от разработчиков: поскольку для каждой платформы нужны различные средства разработки и языки программирования, приходилось переписывать тот же код несколько раз, — пишет основатель Dropbox Дрю Хьюстон в официальном блоге. — У нас не было на это времени. К счастью, нашим спасением стал язык программирования Python».
Читать дальше →

Установка Python Image Library (PIL) в x64 системы на примере CentOS

Время на прочтение1 мин
Количество просмотров11K
Когда разработчики требуют множество python и django различных версий на одном хосте на помощь приходит
virtualenv…

Но после этого доустанавливать дополнительные модули для каждого python приходится руками через pip

И тут возникают нюансы. Например с библиотекой PIL

Она прекрасно устанавливается, но при попытке работы с ней выдает вот такие великолепные сообщения об ошибках

decoder jpeg not available

Проблема в том, что при сборке PIL не может библиотеки для работы с jpeg, zlib, tiff, freetype, потому что в нашем случае они лежат в /usr/lib64, а в PIL написано искать только в /usr/local/lib

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

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