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