Записи в категории «заметки»
Web-разработка на Python. Ресурсы
13
Январь
2008
Рускоязычное сообщество Python-разработчиков расширется с каждым годом. В прошедшем году немало успеха принес проект Ивана — Конференция «Exception». Достаточно много информации регулярно «подливают» авторы блогов о Python и веб-разработке. Хотелось бы еще обратить внимание на сообщества, где можно задать вопросы и найти себе партнеров для работы в сфере python и web. Итак ссылки:
- Форумы по веб-разработке на python.com.ua — python.com.ua/forum .
- Форум на softwaremaniac.org по Django .
- Форумы на pydev.ru по веб — pydev.ru/forum.
- Гугл-группа по Django — django-russian .
- Гугл-группа по многим другим фреймворкам и библиотекам — webpython-ru .
Еще ссылки на блоги и более специфичные сайты по разработке на Python можно найти на pydev.ru/links.
Настройка правильных access логов для веб-сервера nginx
13
Ноябрь
2006
Мы начинаем готовить решения на базе веб-сервера nginx на своих серверах. В связи с чем будут появляться некоторые заметки по его работе и настройке. Итак, первая будет про логирование.
А что не так с логами? Получилось так, что по-умолчанию nginx пишет логи немного по-своему. И программы для сбора статистики вроде webalizer или awstats ругаются на неправильный формат логов.
Было
log_format main '$remote_addr - $remote_user [$time_local] $status '
'"$request" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
Стало
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent"'; #"$http_x_forwarded_for"
После поправки конфига все заработало отлично. Статистика благополучно собирается.
Exception #1 done!
26
Октябрь
2006
Конференция по Python в Киеве Exception #1 прошла успешно!
Было приятно познакомиться с некоторыми нашими клиентами в реале :-)
Презентация к моему докладу в виде pdf
Фото можно посмотреть в моем альбоме. Пока офциальная версия фоток не выложена.
Для интересующихся пишу ссылки по материалам моего доклада.
Frameworks:
ORM про который много говорилось SQLAlchemy
Мои персональные контакты: dobrych [at] gmail.com отзываюсь как на email так и на чат (google talk).
Про конференцию еще написал Алексей в своем блоге. Обсуждение на deveopers.org.ua
Два треда на PythAgora-ua — Материалы с Exception #01 и Exception #01 прошёл.
-
теги:
- conference
- exception
- python
Punbb + MySQL 4.1 лечим глюки
9
Октябрь
2006
Итак, в Punbb всё лечится установкой волшебной записи SET NAMES КОДИРОВКА. В Punbb это нужно сделать в дистрибутиве форума в файле
include/common.phpдобавить нужно строчку с нужной кодировкой (в нашем случае это cp1251):
// set connection charsetПро кодировки в MySQL напишем отдельно и подробно позже.
$result = $db->query('SET NAMES CP1251;', __FILE__, __LINE__, $db->error());
поддержка кодировок в MySQL 4.1 на примере Punbb
9
Октябрь
2006
Данная заметка будет полезна не только при работе с utf-8, но вообще о конвертации текстовых SQL-данных.
Итак, как работать с кодировками:
- создать базу в нужной кодировке;
- если данные уже есть и просто переносятся на новую базу, то нужно узнать в какой кодировке данные в файле дампа (под unix в этом поможет утилита file и в файле дампа дописать строку SET NAMES КОДИРОВКА, где КОДИРОВКА, то в какой кодировке сохранен у вас файл дампа;
- потом в дистрибутиве форума нужно найти файл include/common.php и прописать там кодировку, в которой данные должны отображаться у вас на сайте, эта кодировка может быть отлична от той, в которой хранятся данные в базе;
- после этого нужно всё проверить, должно работать; не забывайте про сам html, который генерируется там должна быть кодировка соответствующая пункту 3.
В нашем случае дамп базы был в кодировке win-1251. Определили мы просто:
file forum_dump.sqlБаза данных была в кодировке UTF-8, т.к. там уже стояла до этого mediawiki и она нативно поддерживает юникод. Мы решили хранить данные для форума тоже в юникоде, поэтому записали команду выбора кодировки в сам файл дампа самой первой:
SET NAMES CP1251;Внимание! Пишется именно кодировка в которой сам дамп базы
-
теги:
Новый движок для блога на Rails — Mephisto
24
Сентябрь
2006
-
теги:
- blog
- ruby
- ruby on rails
Синхронизация django-powered сайта на нескольких серверах (зеркало/mirror).
25
Август
2006
typo blog - как готовить
30
Июль
2006
gem install typoИ о чудо :-) все поставилось и заработало. Но это только часть приятного, второй сюрприз - это удобная инсталляция именно для самого юзера. Набираем в командной строке:
typo install /my/home/wwwИ получаем рабочую копию блого-движка typo в своей пользовательской директории. После чего можно перенастроить дефолтные настройки:
typo config /my/home/wwwИ запустить встроенный http-сервер командой:
typo start /my/home/wwwПодробнее про новый релиз можно прочитать у scottstuff.net Про команды typo можно прочитать подробнее в другом посте того же scottstuff.net
Django для разработчиков, обновление до trunk
2
Май
2006
Обновление Python до 2.5 снапшота
26
Март
2006
echo "PYTHON_VERSION=python2.5" >> /etc/make.conf
Ruby on Rails на хостинге
12
Март
2006
Настройка SASL И TLS в Postfix на хостинговом почтовом сервере
10
Февраль
2006
- пароли в базе;
- всю авторизацию клиентов (как SMTP так и POP3/IMAP);
- обмен данными клиент-сервер и сервер-сервер;
# mkdir /postfix/configs_dir/ssl
# cd /postfix/configs_dir/ssl
# openssl req -new -x509 -nodes -out smtpd.pem -keyout smtpd.pem -days 3650
Следующим шагом будет настройка postfix (добавляем в main.cf):smtp_use_tls = yes smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /postfix/configs_dir/ssl/smtpd.pem smtpd_tls_cert_file = /postfix/configs_dir/ssl/smtpd.pem smtpd_tls_CAfile = /postfix/configs_dir/ssl/smtpd.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom После этого получаем криптование при отправки и приёме почты на рилее. Потом ещё добавляем авторизацию через SASL для клиентов, чтоб могли с любого места пользоваться своим рилеем. Подразумевается что SASL тоже стоит в системе и postfix умеет с ним работать. Так как в нашем случае в качестве POP3/IMAP сервера выбран Courier-IMAP, то и авторизовать SMTP нам надо через него. Следовательно используем Courier-authlib, с которой умеет работать SASL. В postfix это выглядит так:
broken_sasl_auth_clients = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_auth_enable = yes В SASL, (lib/sasl2/smtpd.conf)
pwcheck_method: authdaemond log_level: 7 mech_list: PLAIN LOGIN authdaemond_path:/var/run/authdaemond/socket Получаем такую цепочку:
postfix <-> sasl <-> courier-authlib <-> sql-backend
Теперь о граблях... точнее об одной. В postfix есть такая опция smtpd_sasl_local_domain, она мешает ему авторизовать клиента. Глубоко не копал, просто погуглил и нашёл что такая бага есть, а всё остально заработало гладко.Настройка SPF для почтового домена
3
Февраль
2006
Python для системного программирования
26
Декабрь
2005
Кеширование динамики
22
Декабрь
2005
Вопрос вообще достаточно насущный, особенно для сайтов с высокой посещаемостью. Для меня одно главное преимущество (для кого-то недостаток) MovableType перед Wordpress это возможность экспорта в статику контента (html). Сейчас поставил wp-cache плагин - тестирую.
Самое главное что меня поражает, почему разработчики не могут сделать нормальную обработку If-Modified-Since HTTP-заголовка во многих динамических програмных продуктах. Ведь это значительно снизит и траффик и нагрузку на сервер. Я вполне понимаю что объективным такое значение может быть довольно относительно, но можно поставить небольшое время экспайринга... Вообщем я пока ищу ответ на этот вопрос и заодно пытаюсь разобраться как научить Wordpress понимать такие элементарные вещи.
-
теги:
- cache
- http
- performance
- wordpress
