Archive for September, 2008

PYBB - beta

Итак, c сегодняшнего дня форум сайта pydev.ru фунционирует на базе pybb. Первая стадия развития pybb — наполнение базовыми фичами — закончена. Теперь я займусь оптимизацией. Страшно подумать — на многих страницах количество запросов к базе данных переваливает за сотню.

Итак, что реализовано в pybb на данный момент:

  • Иерархия вида Категории > форумы > топики > посты. Каждый объект имеет свою страницу, кроме постов, которые хоть и имеют постоянный url, но в действительности этот url редиректся на ту страницу топика, которая содержит в данный момент нужный пост.
  • Разметка постов через bbcode или markdown. Возможность выбрать режим разметки по умолчанию.
  • Модераторы: каждому форуму можно назначить модераторов, которые будут иметь возможность редактировать сообщения в этом форуме
  • Возможность закрепить топик в форуме, возможность закрыть топик.
  • Email подписка на новые ответы в теме
  • Автары
  • Профиль, автоматически создающийся для каждого пользователя. Профиль содержит подпись, временную зону, аватар, контактную информацию.
  • Механизм отметки прочитанных топиков.
  • Кривенький “дизайн”, который я смотрел пока только в FF3 :-)
  • импортирование из punbb базы с поддержкой всех вышеописанных фич

Ссылки:

Пожелания, вопросы, багрепорты, патчи можно слать мне на мыло lizendir@gmail.com или лучше в trac (там надо залогиниться через user:user)

python и excel

По работе пришлось столкнуться с генерацией excel файлов через pyExcelerator, в связи с чем обнаружил парочку полезных ссылок по этой очень слабо документированной теме в мире python. Итак:

  • Здесь коротко и ясно показывается, как назначать шрифт, цвет тексту и фону, рамки, выравнивание и даже склеивание колонок.

  • Здесь какой-то чувак рассказывает, что сделал форк от pyExcelerator и назвал его xlwt. В чём отличия от оригинала — не знаю ) Там же есть ссылка на полезную штуку, в которой мне приглянулся подход для автоматизации рутинных действий при работе со стилями pyExceleratorа.

  • Оказывается, существует google группа для программистов на python, которым приходится работать с excel файлами. Насколько, я понимаю, там в основном обсуждаются xlrd и pyExcelerator.

  • А вот тут можно скачать excel-файл, в котором даны цветовые коды, которые вам понадобятся, если вы захотите раскрасить excel-файл.

  • На всякий случай. Если кто не знает. Для парсинга excel файлов есть вполне вменяемое и документированные решение: библиотека xrld

PYBB — пациент скорее жив, чём мёртв

Я опять начал разработку форума PYBB. Движок пишу с нуля т.к. прошлая попытка была год назад и тот код основательно протух, да и концепция поменялась.

Основная идея нового подхода: форум должен легко встраиваться в существующие django проекты. В дистрибутив форума не входят функции для регистрации и даже авторизации пользователей — это должен уметь сторонний проект. Если нужно использовать форум сам по себе, то можно положить рядом с ним django-registration или мой django-account и всё долно заработать т.к. форум настроен на имена урлпаттернов, которые используются в вышеназванных приложениях.

Демку можно посмотреть здесь: http://pybb.org Я написал конвертер punbb —> pybb и импортировал данные форума pydev.ru/forum/ в демку pybb. Не пытайтесь авторизоваться под своим логином с pydev.ru т.к. пароли я ещё не научился переносить :-) Демка использует django-account.

Исходный код можно посмотреть здесь: http://hg.pydev.ru/pybb

Маленький трюк в jquery

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

Для таких вещей в jQuery удобно использовать функции parents/find. parents ищет среди родителей элемента нужный селектор, find — среди дочерних элементов. Самое главное, что поиск осуществляется на всех уровнях дерева объектов, а не только на соседних. Конкретно, для описанного выше примера нас выручит следующий код:

<img src="img.jpg" onclick="$(this).parents('td').find('.some_class').hide()" />

Гм, собственно, вот и всё, что я хотел сказать :o)

Dumpz.org — show must go on

Dumpz.org — это сервис обмена кодом, написанный на python/django. Это opensource проект. Недавно я написал на хабр, получил кучу отзывов — приятно :-) За день зашла тыща человек, внушительный размер по сравнению с обычной посещаемостью сайта. После публикации заметки ко мне обратился Евгений из pridedesign.ru и предложил помощь в проработке интерфейсов сайта, так что скоро выкатим новый дизайн. Если кто-то хочет поучавствовать в развитии проекта — добро пожаловать на:

Вышел релиз, сами знаете чего

Про сами знаете что, написала пара людей, поэтому просто дам ссылки на них. Мне самому по большому счёту фиолетово, что у сами знаете чего вышел релиз т.к. я всегда и везде юзал и буду юзать trunk :-) piranha — хочет продолжать разработку Byteflow на замороженном релизе, мне тоже эта идея кажется разумной, вот, видимо и всё влияние релиза на меня :-)

Ссылки в рунете про релиз, сами знаете чего:

Кому нужно больше, пожалуйста: http://blogs.yandex.ru/search.xml?text=django, но они все там мелкие какие-то.