Обновить
512K+

Python *

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

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

Разбор задач Hacker Cup Qualification Round + перенос Facebook Hacker Cup Online Round I

Время на прочтение5 мин
Охват и читатели5.3K
Facebook Hacker Cup 2011 проходит в 4 раунда — квалификационный, два онлайн раунда и финальный, в главном офисе.

Квалификационный раунд, анонсированный официально Хабром завершился успешно.
Результаты раунда говорят о 5846 игроках, прошедших в первый онлайн тур.
Участникам квалификационного раунда предлагалось 3 задачи, для прохождения достаточно было правильного решения любой из них.

А вот первый онлайн раунд, прервав ближе к завершению, перенесли из-за технических проблем минимум на неделю:
We've decided to push back the remaining subrounds of round 1 until we are sure that they can run smoothly. Updates will follow here, but you can safely assume that the subrounds will not occur at least until next weekend.
image
Читать разбор задач Facebook Hacker Cup 2011 Qualification Round

Устранение Хвостовой рекурсии

Время на прочтение6 мин
Охват и читатели13K
Я недавно написал в своем блоге Python History пост «The origins of Python's functional features» (перевод). Упоминание о том, что Python не поддерживает хвостовую рекурсию (TRE) сразу спровоцировало несколько комментариев о том, как жаль, что Python не поддерживает данную оптимизацию. Появились ссылки на недавние записи в других блогах о том, что TRE может быть добавлена в Python легко. Позвольте мне защитить свою позицию — я не хочу добавлять TRE в язык. Если Вы хотите короткий ответ, это просто unpythonic.

Вот длинный ответ.
Читать дальше →

Откуда идут «функциональные» корни Python

Время на прочтение3 мин
Охват и читатели4.5K
Я никогда не полагал, что Python попадет под влияние функциональных языков, независимо от того что люди говорят или думают. Я знаком с императивными языками, такими как C и Algol68 и хотя я сделал функции объектами «первого класса», я не рассматривал Python как язык функционального программирования. Однако, было ясно, что пользователи хотят больше от списков и функций.
Читать дальше →

Реализация XMPP Publish/Subscribe посредством Twisted

Время на прочтение6 мин
Охват и читатели4.1K
Доброго времени суток! В данной статье я расскажу о том, как сделать базовую реализацию publish/subscribe с помощью протокола XMPP, используя Twisted и библиотеку Wokkel. XMPP поддерживает pub/sub благодаря расширению XEP-0060. Используя pub/sub, можно решить задачу уведомления всех участников о событии и множество других. Достоверно известно, что Apple использует основанный на Wokkel'е pub/sub внутри своего notification server'a, но об этом чуть позже.
Читать дальше →

Python-way. Работа над ошибками

Время на прочтение3 мин
Охват и читатели20K

Всем доброго времени суток! Новогодние праздники позади, все хорошо отдохнули. Тем не мнеее, даже в праздники иногда появляется работа. Мне, к примеру, довелось покопаться в чужом коде на Python. Код хороший, замечательно документирован, но во время чтения не покидало ощущение, что автор читал доки по Python и портировал код с Си-подобного языка. Это меня вдохновило на написание статьи с указанием ошибок, которые неизбежно возникают при переходе на Python с Си-подобных языков.

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

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

Управление облаками в Python

Время на прочтение4 мин
Охват и читатели9.8K

Облака



Облачные вычисления стали популярными среди широких масс примерно полтора-два года назад, и огромную роль в этом сыграл сервис Amazon EC2. Постепенно активность обсуждений этой технологии только возрастала, появлялись сторонники и противники, считающие что это всего лишь очередное модное веяние и ничего больше; некоторые же стали экспериментировать и применять облачные вычисления для решения свох задач.

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

На данный момент EC2, пожалуй, до сих пор остается лидером, однако появилось еще несколько крупных игроков — думаю, такие имена как Rackspace и GoGrid на слуху у всех, кто хотя бы поверхностно интересуется темой. Помимо них на рынке сейчас активны еще не меньше десятка компаний, предлагающих подобные услуги.

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

Избранное Хабра в PDF

Время на прочтение3 мин
Охват и читатели18K
Всех с наступившими!

image

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

UPD:
— Исправлена ошибка «too large on page» (подробнее на github) Спасибо Bifidokk и StreetAngel
— Авторы топиков сделаны ссылкой
— Добавлена возможность сохранять избранное только из указанных блогов

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

Программирование под N900 на Python

Время на прочтение5 мин
Охват и читатели4.3K
Среди топиков на Хабре я нашел лишь руководство по программированию на Python для платформы S60. Являясь счастливым обладателем N900 и фанатом Python я решил это исправить.
Читать дальше →

ICQ бот на Python

Время на прочтение5 мин
Охват и читатели13K
Привет %habrauser%! Это мой первый хабротопик. В котором я расскажу как можно сделать ICQ бот на pythone. Бот у нас будет сидеть в сети и отправлять, по запросу пользователя, список последних статей хабра.
Для реализации бота мы будем использовать библиотеку Twisted. Конечно же есть уже специализированные библиотеки для работы с ICQ на python. Такие как py-icq или nanoicq. Но так как с Twisted я был уже знаком, то выбор пал именно на него.
Читать дальше →

PyCharm (IDE для Python/Django) обновился до версии 1.1

Время на прочтение1 мин
Охват и читатели5.7K

Спустя два с небольшим месяца после релиза PyCharm 1.0 вышел первый большой апдейт, версия 1.1. Несмотря на скромное увеличение номера версии, новых фич и улучшений в релиз попало достаточно много. Вот краткий список:
  • Автодополнение теперь появляется автоматически и не требует нажатия Ctrl-Space;
  • Появилась возможность вытаскивать табы редактора на второй монитор (почти как в Chrome);
  • В дебаггере появились условные breakpoint'ы, break on exception, новая консоль и возможность удалённой отладки;
  • Запуск тестов теперь умеет работать с nose, doctests и новыми версиями py.test;
  • Появилась пачка новых inspection'ов, quickfix'ов и локальных рефакторингов (например, «Convert lambda to function»).
  • Под Linux и Mac теперь можно открывать проекты и файлы из командной строки;
  • В комплект поставки включены плагины для работы с файлами по FTP/SFTP и для интеграции с системами issue tracking.
Ну и ещё много всего полезного. Как всегда, доступна 30-дневная пробная версия, а также бесплатные лицензии для open-source проектов и для использования в учебном процессе.

Скачать новую версию можно на сайте jetbrains.com.

Профилирование python приложений

Время на прочтение2 мин
Охват и читатели16K
Краткая заметка с линками и примерами о профайлинге:
  1. производительности: hotshot или python profile/cProfile + визуализатор логов kcachegrind (есть порт под windows, аналог WinCacheGrind)
  2. использование памяти: dowser с web-интерфейсом

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

Текст любой ценой: Miette

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

За этот год (а ведь и вправду прошло больше года) я поменял место работы и занимаюсь совершенно другими вещами и давно уже не программирую (много не программирую, если быть точным) на PHP. Новый проект обязал меня совершенствоваться в python'е (и ощутить его силу), поэтому однажды воскресным вечером было решено переписать и, главное, улучшить некоторые из своих библиотек для чтения текста. Сегодня я представлю на суд публики молодой opensource-проект Miette («вкусняшка», если переводить с французского), который призван (в каком-никаком будущем) читать файлы пакета Microsoft Office.

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

Естественно python во многом отличается от PHP и, на мой взгляд, имеет несколько больший функционал, поэтому и принцип построения библиотек в проекте несколько другой, нежели старая «поделка» на PHP. В данном случае было решено запретить себе, как разработчику и заказчику в одном лице, загружать какие-либо большие блоки в память. Мьетт читает данные постепенно, по требованию, как это делает сам Word. Это делает его легковесным и нетребовательным к оперативной памяти. В будущем, я постараюсь пройти исходные profiler'ем и найти узкие горлышка, которые стоит оптимизировать дальше.

Идём дальше?
Читать дальше →

FTP сервер с авторизацией через базу данных

Время на прочтение8 мин
Охват и читатели8.9K
image

Существует множество готовых FTP серверов для разворачивании у себя на сервере. Но сложилось так что, на сервере уже работает FTP и нужно поднять FTP сервер на альтернативном порту. А также раздать пользователям доступ только к своим папкам с файлами. Решил поинтересоваться, а что можно сделать средствами Python. Поиск быстро выдал библиотеку pyFTPd.
Читать дальше →

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

Python Bug Weekend

Время на прочтение1 мин
Охват и читатели966
image

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

Bug Tracker

IRC: #python-dev / irc.freenode.net

Более подробно

Stackless Python и Concurrence

Время на прочтение8 мин
Охват и читатели15K
Перед тем, как перейти собственно к возможностям Stackless и Concurrence, рассмотрим самый простой способ написать сетевое приложение, обрабатывающее несколько одновременных соединений:

socket()
bind()
listen()
accept()
fork() ->
    read()
    write()
    ...
    close()

Под каждое новое входящее соединение процесс создаёт свою копию через fork(). Это чрезвычайно накладный способ, у которого, к тому же, есть сложности с синхронизацией между процессами. В простом случае они решаются через создание каналов (pipes) между родительским и дочерним процессами и сериализацию данных. В более сложных потребуются примитивы межпроцессной синхронизации. Вспомним ещё про затраты на создание, разрушение и переключение процессов. Это очень ресурсоёмкие операции — как по памяти, так и по вычислительной мощности. Поэтому обработать много одновременных соединений будет весьма сложно.
Читать дальше →

Где моя кнопка?

Время на прочтение3 мин
Охват и читатели866
«Где моя кнопка? Почему она неактивна?» Как часто программист может слышать эти слова от пользователей своего продукта? Скорее всего, более чем очень часто для того, чтобы задуматься, а может быть продукт сам должен отвечать на этот вопрос пользователей.
Читать дальше →

Релиз PyCharm 1.0 — новой Python/Django IDE от JetBrains

Время на прочтение1 мин
Охват и читатели5.1K
Сегодня компания JetBrains выпустила релиз PyCharm 1.0 — новой интегрированной среды разработки для Python, Django и Google App Engine.

Про то, чем PyCharm лучше других IDE, можно почитать в сравнительной матрице, а также увидеть в скринкастах. Продукт коммерческий, бесплатно можно пользоваться в течение 30 дней. Также можно получить бесплатную лицензию, если вы работаете над open-source проектом.

Будем рады любому фидбэку.

Сумбурные заметки про python и django

Время на прочтение5 мин
Охват и читатели47K
Накопилось несколько маленьких заметок/советов про python и django, которые на отдельные топики не тянут, поэтому публикую все сразу.

Под катом:
  • как упростить код вьюх ровно в 2 раза
  • легкий способ рисования графиков
  • почему Ian Bicking воскликнул «Cool!»
  • приложения для ВКонтакте на django за 5 минут
  • хорош ли pymorphy?
  • пара фишек насчет выкладки пакетов на pypi
  • что общего между декораторами и with-контекст-менеджерами
  • принимаем оплату на django-сайтах
  • показываем Яндекс.Карту для заданного адреса

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

PyCon Ukraine ищет докладчиков

Время на прочтение1 мин
Охват и читатели805
Привет

Мы ищем среди хабраюзеров докладчиков для конференции PyCon Ukraine которая пройдёт 23-24 октября в Киеве.
Читать дальше →

GUI для rfkill на python с использованием Qt

Время на прочтение2 мин
Охват и читатели3K
image Уже четвертый месяц как я являюсь обладателем прекрасного нет-бука Lenovo S10-3t с встроенным WiMAX. И уже чуть больше месяца как в ядре Linux есть дрова под Intel Corporation WiMAX/WiFi Link 6050 Series. Установить дрова и найти как правильно подключится из консоли тоже не проблема. А так хочется блэкджека и шлюкрасивых рюшечек и простого управления.
Читать дальше →