Python блогосфера


[recovery mode] Советы Google по кодированию на языке Python. Часть первая: советы по программированию


Хай Хабр!
Сегодня я хочу представить, дорогому хабрасообществу свой первый хабраперевод. Программировать на языке Python — подобно песне. Но еще лучше, когда Ваш код читаем и понятен, а значит чуть более поэтичен, чем обычно бывает производстве. У каждого свои правила и свои стереотипы относительно написания и оформления исходного кода на каком бы языке он ни был написан. Множество копий сломано о щиты на форумах, но как ни крути нельзя не считаться с мнением авторитетных товарищей. Так что сейчас будет представлен перевод первой части стайл-гайда для языка Python от Google. А коснется он именно постулатов написания кода (вторая часть тоже скоро появится, а посвящена она будет форматированию исходного кода). Сразу предупреждаю: тут много (если не большинство) прописных истин, которые все знают уже давно.

Go Replace!

Как-то раз два с лишним года назад я решил посмотреть на Go, поизучать, как это – писать на нëм программы, и насколько хороший выходит результат. Идея для первой программы родилась легко – так как мой любимый Python тормозит на запуске, я решил переписать sr, который я постоянно юзал, на Go.

Так родился Go Replace (надо было рассказать про него еще два года назад, впрочем). Очевидно, поиск по файлам – давно решëнная проблема, find + grep, или grep сам по себе, или ack, или, вот, the_silver_searcher, но никто из них не умеет заменять. Замена – это всегда раздражающее переписывание командной строки на find + sed или xargs + sed. А gr (короткое название, которое я выбрал для того, чтоб не сильно много писать) умеет, и в


Quickpong — разработка сетевой игры на основе фреймворка Twisted

Разработал и запустил на домене quickpong.com онлайн версию игры Pong. В игре (by design) реализован только режим мультиплейера, то есть игра идет не против искусственного интеллекта, а против другого человека.

Игра представляет из себя клиент-серверное приложение, серверная часть написана на питоновском фреймворке Twisted, клиентская — на флэшовом фреймворке FlashPunk.

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

Шесть недель до закрытия Google Reader — спасаем всё что можно



Google Reader появился в 2005 году. Год или два спустя я начал им пользоваться как основным источником информации. И вдруг нате, получите — не выгодно, не профильно, закрываемся… Как результат, во-первых потеряли продвинутую (гики) и лояльную аудиторию, во-вторых эти гики тут же начали писать или дописывать различные альтернативы. Усилилась сегментация, возникла проблема выбора ну и вообще some folks got pissed off
Читать дальше →

Скорость составных индексов (compound indexes) в mongodb

Стоит задача одновременной выборки по трём целочисленным полям a, b, c. Написал небольшой тест для трёх вариантов индексирования:
  • строковый индекс вида 'a-b-c'
  • одиночные индексы на каждое поле
  • составной индекс
Тестируется однопоточная выборка 1к случайных документов из коллекции в 1кк. Для каждого варианта индексирования тест прогоняется 10 раз и берётся лучшее время. Результаты:
        string_index 0.324100017548 sec. (100%)
      compound_index 0.361665010452 sec. (111%)
    separate_indexes 25.3196258545  sec. (7812%)

Код теста: http://pysi.org/tests/mongodb-compound-indexes/
Использованая обёртка над pymongo: pypi, github

Да, составные индексы монги хороши :) И ещё такой момент, если есть составной индекс по группе полей, а для

[Из песочницы] Мульти-хостинг django приложений с помощью nginx + uwsgi + virtualenv

Задача: развернуть несколько django-проектов, использующих разные версии django и разные версии питона на одном сервере.

Инструкция приводится для ОС Ubuntu 12.04.
Читать дальше →

[Из песочницы] Django GeoIP — определение местоположения посетителя средствами Django Framework

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

Чтобы добавить в проект приложение Django GIS достаточно в INSTALLED_APPS вписать 'django.contrib.gis'. Так пишут здесь. Но они не предупреждают, что все весь проект после этого разваливается, если не установлены необходимые библиотеки и базы. В статье использованы материалы официальной документации и собственные разработки.
Интересно? Читаем дальше...

[Из песочницы] Подключение SkyDrive в Linux



Доброго времени суток.

Хочу обратить ваше внимание на пару скриптов для работы со SkyDrive в Linux. Скрипты написаны на Python и скорее всего будут работать в любой *NIX системе, и не только *NIX. Первый предоставляет возможность работать с аккаунтом в командной строке, второй, модуль для FUSE, позволяет подключить содержимое SkyDrive к файловой системе. Проект практически нигде не упоминается. Сам я на него наткнулся случайно, после того, как не смог подключить SkyDrive с использованием недокументированного WebDAV. И стал искать другой способ подключения, исходя из предположения, что, раз у SkyDrive есть API, то кто-нибудь должен этим воспользоваться.
Читать дальше →

Eugene Grachev: Ставим все основные dev пакеты для python

Eugene Grachev: Ставим все основные dev пакеты для python: Все время приходится искать название этих пакетов, напишем их раз и навсегда: sudo apt-get --yes install build-essential libpng-dev libjp...

LaTeX: профессиональная компьютерная типография

TeΧ — система компьютерной вёрстки, разработанная американским почётным профессором информатики Дональдом Кнутом в целях создания компьютерной типографии. LaTeX - наиболее распространённое расширение макрокоманд для TeX. TeX используется главным образом при разработке классов и пакетов LaTeX. Для подготовки печатных документов лучше подходит LaTeX.

TeX общепризнанно считается наиболее качественной системой подготовки печатных публикаций.

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

Многие зарубежные издания предлагают свои соб

proft.com.ua 06 May 10:10