Archive for July, 2008

ack клон

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

 

bash скрипт для dumpz.org

Мне тут darkk подкинул полезный bash-скрипт для заливки файлов на dumpz.org. И я подумал, что добру пропадать — пускай народ увидит :-)
 

Настраиваем раздачу множества mercurial репозиториев через fastcgi

Я уже писал раньше про то, как сделать веб-доступ к меркуриал репозиториям через fastcgi, но там было несколько извращённое решение, для того чтобы привязывать репозитории к корням доменов/поддоменов, а не к каталагам на одном домене. Сейчас же я расскажу именно про привязку к разным директориям т.е. про функциональность которая доступна из коробки без всяких извращений.
 

Реализация профиля пользователя через наследование моделей

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

Django приложение для вывода сообщений

Оформил ещё одну часть кода в отдельное приложение - на этот раз приложение для вывода сообщений. Оно решает две распространённые проблемы:
1) Часто в шаблон нужно вывести какое-то сообщение, резюмирующее итог совершённых действий, но создавать ради этого сообщения место в шаблонах для каждого view неудобно.
2) После редактирования или создания объекта, нужно сделать редирект и уже на следующей странице вывести сообщение об успешности действия.
 

YAML для создания тестовых данных

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

Конечно, хотелось бы это всё красочно расписать, да больно неохото палец сосать, так что выкладываю код и баста!
 

Новое django приложение: django-captcha

Итак, второе приложение из серии приложений, который я решил заопенсорсить перед тем как приступить непосредственно к pybb. Django-captcha предоставляет поле, которые вы можете включить в свою форму и получить работающую каптчу!

Порядок установки:
* импортируйте и добавьте в вашу форму поле captcha.fields.CaptchaField
* добавьте новый middleware: captcha.threadlocals.ThreadLocalsMiddleware
* добавьте новый urlconf: captcha.urls

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

Код можно поглядеть/скачать здесь: http://hg.pydev.ru/django-captcha

Django прилжение для регистрации

Последние несколько недель я раздумывал над тем, не продолжить ли мне работу над pybb, разработку которого я заморозил в декабре 2007 года. Думаю, всё же стоит довести этот проект до ума. Однако, за время прошедшее с начала года, я приобрёл новый опыт и поменял точку зрения на некоторые вещи, так что pybb я буду переписывать чуть ли не с нуля.