20.03.2010

Введение в патерны программирования в питоне

Короткий обзор от Google. Введение в паттерны и базовые примеры на python. Рекомендуется для новичков.

18.03.2010

Производительность веб-серверов написанных на питоне

Очень подробное и интересное исследование: http://nichol.as/benchmark-of-python-web-servers

16.03.2010

Устанавливаем Oracle XE в Ubuntu и подключаем ее к python

Поставить XE в Ubuntu проще простого, поскольку добрые люди уже создали необходимый репозиторий. Поэтому просто добавляем его адрес в apt и инсталируем средствами системы:

sudo vim /etc/apt/sources.list
# Добавляем в конец файла строчку:
# deb http://oss.oracle.com/debian unstable main non-free

# Импортируем ключ:
wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle  -O- | sudo apt-key add - 
apt-get update
apt-get install oracle-xe

# Ставим пакет
sudo apt-get install oracle-xe

# И конфигурируем его
/etc/init.d/oracle-xe configure

# добавляем в ваш .bashrc (или .profile) следующие строки
# ---------------
# ORACLE SETTING
if [ -d /usr/lib/oracle/xe/app/oracle/product/10.2.0/server ]; then
    export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib
    export ORACLE_SID=XE
    export PATH=$ORACLE_HOME/bin:$PATH
fi


После выполнения вышеперечисленных процедур открываем браузер по адресу http://localhost:8080 и заходим в систему управления используя логин: system и пароль который вы задали во время первоначального конфигурирования.

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

1) Добавляем пользователя производившего установку XE в группу dba (ее создает oracle);
2) Подключаемся к базе через sqlplus: sqlplus /nolog;
3) Подключаемся к системе: SQL> conn /as sysdba;
4) Меняем пароль пользователя system: SQL>alter user system identified by ;
5) Profit!

Отлично, допустим установка у вас прошла успешно и в систему вы заходите. Заставим oracle работать для python.

1) Идем на домашнюю страничку Oracle instant client и скачиваем версию CentOS для вашей системной архитектуры и версии python;
2) Используя alien раскатываем rpm-пакет(если не установлен, то поставьте: sudo install alien) sudo alian -i <имя вашего пакета>
3) Идем в директорию вашего python (в моем случае /usr/lib/python2.6) и создаем симлинк на cx_Oracle.so: ln -s site-packages/cx_Oracle.so
4) Проверяем: python -c 'import cx_Oracle', ошибок быть не должно.

13.03.2010

Understanding python (Введение в питон)

Cтарое, но все еще актуальное видео от Google:



В краткой и доступной форме рассказывается про синтаксис питона, классы, методы, объекты, дескрипторы, генераторы, метаклассы и прочее. Рекомендуется к просмотру для новичков. Требует среднего знания английского языка, но я с минимальными навыками в нем, прекрасно все понял.

07.03.2010

Pip, virtualenv, virtualenvwrapper

Pip — это набор скриптов для быстрой установки python пакетов. Virtualenv — в свою очередь позволяет создавать виртуальную среду для работы с проектами требующими различные зависимости. А VirtualenvWrapper небольшой bash скрипт для комфортного переключения виртуальных окружений.

Как поставить Pip можно прочитать например здесь: http://ye-e-ep.blogspot.com/2010/02/easyinstall-pip-cygwin.html

Virtualenv ставиться уже с помощью Pip:

pip install hg+http://bitbucket.org/ianb/virtualenv/

Ставим прямо из транка.

VirtualenvWrapper я устанавливать не стал, а просто положил скрипт из репозитория http://bitbucket.org/dhellmann/virtualenvwrapper/src/tip/virtualenvwrapper_bashrc в свой домашний BIN и добавил пару строк в .bashrc:

# ---------------
# Virtualenv Wrapper settings
export WORKON_HOME=$HOME/.virtualenvs
source $HOME/bin/virtualenvwrapper_bashrc

Директорию $HOME/.virtualenvs тоже необходимо создать. В ней будут храниться наши виртуальные окружения.

Дальше полезно будет посмотреть скринкаст с примерами:

virtualenvwrapper from richard leland on Vimeo.


В итоге у нас появляется возможность с легкостью переключать зависимости для разных проектов. Ну и напоследок еще две команды Pip:

# Сохранить список зависимостей в файл
pip freeze > requirements.txt
# Установить зависимости по списку из файла
pip install -r requirements.txt

05.03.2010

XPTemplate 0.3.9 screencast in python from drdr.xp on Vimeo.

Выделение xml блоков в Vim

Обнаружил, что в новых версиях появился новый объект выделения: at/it - "a tag block / inner tag block". Т.е. для изменения текста внутри HTML/XML тага можно использовать: cit

Также в таких документах работает Omni completition:

<table> </<C-X><C-O>
<C-X><C-O> закроет table

28.02.2010

Собираем свой vim под cygwin

VIM в пакетах Cygwin по умолчанию идет без поддержки python. В нем не доступно omni дополнение и много прочих вкусных штук. В частности нельзя писать плагины к VIM на питоне. Ну почти нельзя, всегда можно вызвать питоний скрипт из шелла. Я уже год как то с этим жил, но начав углубленное изучение питона решил, что дальше так продолжаться не может. В интернете есть статьи по компиляции Vim для Windows с использованием cygwin, но все подразумевают компиляцию VIM как отдельной программы. Такой редактор в cygwin шелле у вас работать не будет.

Итак, скачиваем исходники VIM, свеженькие из транка:

svn co https://vim.svn.sourceforge.net/svnroot/vim/vim7

Нужно убедиться, что в cygwin установлены пакеты:

Devel/gcc-g++, Devel/make, System/man и Devel/gcc-mingw, Shells/bash, Utils/bzip2 и Devel/mingw-runtime, ncurses, cscope

Идем в src и редактируем Makefile

CONF_OPT_GUI = --disable-gui
CONF_OPT_PYTHON = --enable-pythoninterp
CONF_OPT_CSCOPE = --enable-cscope
CONF_OPT_MULTIBYTE = --enable-multibyte
CONF_OPT_INPUT = --enable-xim
CONF_OPT_OUTPUT = --enable-fontset
CONF_OPT_FEAT = --with-features=huge
CONF_OPT_X = --without-x

Все, делаем make и после успешного окончания make install

Наслаждаемся