Март 20, 2008 в 19:46 |
фриланс
- Автор Александр Кошелев |
|
Мой товарищ, Алексей Кандауров, начинает онлайн тренинг по фрилансу. Всем очень рекомендую. Сам буду читать с огромным интересом. Человек с большим опытом в этой сфере и знает о чем говорит. Хотя он и дизайнер, а не программист, но общие подходы во фрилансе одинаковы для всех специализаций.
Присоединяйтесь и вы!
Март 20, 2008 в 16:41 |
django
exception #07
python
web
личное
- Автор Александр Кошелев |
|
Небольшой рассказ про то как я съездил на Exception #07
Дорога
Это была моя первая поездка заграницу, поэтому впечатлений только от дороги получилось много, уже не говоря о самой конференции. Поскольку, билеты на поезд я покупал много заранее, почти за месяц, то места в плацкарте мне достались хорошие. Ночь толком поспать не удалось, но всё-равно утром я ступил на вокзал в хорошем настроении. Поменял деньги и отправился в гостиницу "Русь".
Киев
На улице было чуть теплее чем в Москве, зато гораздо суше. Сразу бросилось в глаза, что снега нет уже давно и на дворе действительно весна. В Москве же до сих пор по ночам падает снег.
Увы толком посмотреть город у меня не получилось. За-то есть повод приехать опять, но уже просто туристом, чтобы всё детально изучить.
Одно хочу отметить: поразило метро - очень красивые станции в центре, но жуткое количество рекламы как на станциях, так и в вагонах. То что в вагонах реклама клеится на скотч, от чего стены очень ...
Март 14, 2008 в 15:58 |
caching
django
python
web
оптимизация
- Автор Александр Кошелев |
|
Всегда приятно видеть отзыв на своё творение. А особенно, когда он исходит от очень уважаемого мною человека - Ивана Сагалаева. Спасибо. В своём посте он высказал несколько очень точных замечаний по теме моего поста об инвалидации кеша сигналами. Изложу своё видение тезисов Ивана.
Декларативность действительно была моей целью. Поскольку джанга сама в очень многих местах декларативна, то конечно хотелось инструмент выдержанный в том же стиле, но не теряющий от этого функциональности.
Ситуация с многоэтажными декораторами меня тоже напрягает, и сейчас например файл, где хранятся шаблонные теги для этого блога, напоминает действительно urls.py в случае массового использования generic views.
Решение одно - разделить функционал и мета информацию инвалидации. Т.е. грубо говоря принудительно применять декоратор в старом синтаксисе "функция=декоратор(функция)". Тут то как раз и идея с одним "инвалидационным" файл пригодится.
В конце концов, моя реализация лишь proof of concept идеи сигнальной инвалидации. Как мне кажется, вот этот самый "proof" получился. Оно работает! Понятно, что в отдельных конкретных проектах, она может ...
Март 10, 2008 в 11:38 |
django
exception #07
python
web
личное
- Автор Александр Кошелев |
|
Это тема моего доклада на грядущей конференции Exception #07 в Киеве 15 марта.

Расскажу о том, почему выбрал именно эту связку для работы. Поделюсь своим опытом. Приведу примеры из жизни в том где эта платформа помогает, а где немного мешает. Так что, будет очень интересно.
Выступать буду третьим по счету, сразу после обеда:) Надеюсь хорошее настроение сытых участников поможет мне провести содержательный и интересный доклад:)
Так же будет ещё много любопытных докладов, так что помимо и себя показать, так и других посмотреть тоже очень хочется.
Приходите обязательно! Хочу со всеми, а особенно с неравнодушными к джанге, познакомиться и пообщаться.
До встречи!
Март 9, 2008 в 03:17 |
caching
django
signals
оптимизация
проекты
- Автор Александр Кошелев |
|
Так. продолжаем процесс употребления кеширования, основанного на сигналах в django. О теории уже было сказано достаточно, перейдем к практике, а для этого немного пофантазируем.
Итак, у нас есть приложения блога и в нем такие модели:
class Post( models.Model ):
title = models.CharField(max_length=100)
date = models.DateTimeField(default=datetime.now)
text = models.TextField()
class Comment( models.Model ):
post = models.ForeignKey( Post, related_name = "comments" )
text = models.TextField()
Теперь как полагается в хорошем блог движке, мы хотим получить последние 5 постов для того чтобы сообщить о них постетителю. Для этого напишем простую функцию
def get_latest_posts():
return Post.objects.all().order_by( "-date" )[ :5 ]
Отлично, функция готова и мы её можем применять в нужном нам месте. Но зачем каждый раз мучить базу и просить её вернуть последние посты? Ведь пишу то я не часто (ну так получается:)), поэтому можно это дело закешировать и не тратить ресурсы попусту, т.к. они не часто обновляются.
Но классический вариант с таймаутом тут не очень удобен: если сделать ...