Все хотят выжать из своих приложений максимум производительности. Общепринятые техники это - оптимизация и кеширование. Про один из вариантов оптимизации - запросов к базе, я уже писал, а вот про кеширование ещё нет. Сейчас хочу рассказать о некоторых способах кеширования, которые почерпнул из джанго сообщества, помимо конечно стандартных средств, их вы и так прекрасно знаете:)
Кеширование шаблонных тегов
Интересный метод, который позволяет кешировать результат работы шаблонного тега, особенно актуален для разного вида inclusion тегов. Пример реализации предложил Маньяк в своём форуме вот тут. Основной проблемой как всегда является инвалидация и уникальный идентификатор записи. В данном случае первая решается выставление таймаута, вторая определением специальной функции, которая должна сгенерировать уникальный идентификатор.
Всё хорошо, но требовать инвалидацию по таймауту это не интересно. Гораздо интереснее сбрасывать кеш, когда действительно изменились данные. Отсюда следующая концепция.
Инвалидация кеша с помощью сигналов
Это интересная идея принадлежит Сергею Кириллову(хотя конечно наверно не ему одному она пришла в голову, просто попался на глаза именно его вариант), которую он озвучил в django-developers
Суть простая - сбрасывать кеш, по пришествию какого-либо сигнала. Просто и со вкусом, но почему-то не получила большого отклика по горячим следам в том треде.
Если развить и унифицировать, то может получиться очень интересно и практично. Всё хочу этим заняться ...
Сейчас очень много уже успели испытать на себе поправки в гражданский кодекс касающиеся увеличения штрафов за нарушение пдд:) Но поскольку я хоть и имею права на вождение, но транспортного средства сейчас нет, так что лично меня это не коснулось (что не скажешь про близких родственников и знакомых:)) Но всё равно это всё в плюс мне кажется.
Но ещё одно нововведения меня и многих разработчиков коснется наверняка - это поправки в закон об авторском праве. И тут уж о положительности их можно и нужно спорить.
Уже на всех лентах новостей,форумах и во многих девелоперских блогах идут дискуссии как и на кого повлияют эти изменения. Особенно в плане использования ПО и прочего под "открытыми" лицензиями. Я лично пока ещё не понял...
А вы уже осознали последствия? Они как-то повлияют на вашу практику использования открытого ПО?
Всё больше и больше удивляюсь насколько изменился интернет за последние несколько лет. Нет, он менялся постоянно, но то что произошло с сетью в последнее время просто потрясает. Видимо, причиной тому, стала высокая доступность доступа в интернет массам.
А раз "большая" масса, значит и информации в сети стало по истине много. Но одна из её проблем - она плохо структурирована. Каждый сайт, каждый человек норовит как-то по особенному оформить и представить людям какие-то данные.
Одним из решение проблемы разношерстности представления данных является следования неким правилам. Т.е. следование форматам. Но поскольку интернет это html, то и универсальный формат представления должен быть совместим с ним.
Но и тут нас поджидает ловушка - этих форматов тоже несколько даже для одно типа данных:)
Но есть лидеры - это так называемые микроформаты

И я решил не отставать и постепенно внедрять их у себя в проектах и в первую очередь в своём блоге. Чего и вам желаю:) Начну с профайла и формата hCard.
Собственно уже мой профайл соответствует спецификации (если это можно так назвать:)) hCard. Ура!
P.S. конечно я не первый кто призывает к использованию микроформатов, вот и Иван Сагалаев уже очень давно к этому призывал.
В продолжении прошлого поста, размышляем о защите от спама.
А помогает ли OpenID в защите от спама и отфильтровывании роботов? Мне думается нет, поскольку вся аутентификация отдается на откуп стороннему серверу, то проконтролировать этот процесс невозможно. Получается что достаточно завести фейковый OpenID сервер и через аккаунты на нем регистрировать роботов в различных системах. Поэтому сайты где такая возможность аутентификации есть и нет никакой другой проверки по сути не защищены от спама и регистрации через OpenID становится бесполезной. А вы что думаете по этому поводу?
bw в комментариях к прошлому посту предложил ещё один способ - это анализ контента на основе ранее собранной статистики. При таком подходе система сама выступает как модератор. Но, есть вероятность ложных срабатываний и, наоборот, "проглатывая плохого контента. Поэтому такой подход следует применять в сочетании с постмодерация человек.
Ещё хотелось бы обсудить Akismet. Он, как предыдущий способ, анализирует автора и контент по уже имеющейся базе. Поскольку система доступна всем, то база там уже скопилась не шуточная, поэтому КПД достаточно высок. Так же там и механизм постмодрации имеет, т.е. можно явно отделять зерна от плевел - спам от хама. Но я не очень уверен, что акисмет эффективен для русскоязычного контента. Как-то он не очень у нас распространен.
Вообще, всё ...
Пока страна гуляет, я продолжаю делиться свежесобранной ценной, как мне кажется, информацией:)
Последнее время стал замечать, что большие корпорации всё чаше начинают предоставлять не профильные для них сервисы. Видимо такой процесс глобализации деятельности.
Уже давно наблюдаю за Amazon. Но пока там ничего не покупал, но вот Amazon Web Services(AWS) попробовать очень хочется. Это набор сервисов для веб-разработчиков. Первоначально меня туда привело желание по-изучать реализации сервисов очередей сообщений. Но наткнулся ещё на кучу всяких вкусностей.
Вот список предоставляемых амазоном сервисов:
- Amazon Associates Web Service (A2S)
- Amazon Elastic Compute Cloud (Amazon EC2) - Limited Beta
- Amazon Flexible Payments Service (Amazon FPS) - Limited Beta
- Amazon Mechanical Turk (Beta)
- Amazon SimpleDB - Limited Beta
- Amazon Simple Storage Service (Amazon S3)
- Amazon Simple Queue Service (Amazon SQS)
- Alexa Site Thumbnail
- Alexa Top Sites
- Alexa Web Information Service
- Alexa Web Search
Все описывать не буду, т.к. и на сайте есть подробное описание, но вот про некоторые расскажу.
Simple Queue Service
Как раз первоначальная цель моего изучения. Достаточно простой по структуре. Поддерживает все необходимые функции для менеджмента очередей с возможностью аутентификации. Система была изучена, вдохновение получено:)
Amazon Elastic Compute Cloud
Некая система кластеризации вычисления. Т.е. фактически можно самые ресурсозатратные операции с данными и прочее сбагрить на ...