воскресенье, 4 декабря 2011 г.

Система кеширования для Django ORM

Основные характеристики

  • автоматическое кеширование результата запросов;
  • ручное кеширование результата запросов;
  • автоматическая инвалидация кеша по событию;
  • ручная инвалидация кеша;
  • кеширование результата функции с автоматической инвалидацией;
  • redis в качестве бэкэнда;
  • простота настройки;
Ссылки:

среда, 23 ноября 2011 г.

БЭМ!

От KorWin_SV:

http://bem.github.com/bem-method/pages/beginning/beginning.ru.html

Хотелось бы видеть у нас css именно в таком исполнении, а не каскадным от всея-body до низов.

Наиболее интересный коммент от Johnner:

Статья хорошая (особенно картинки), есть несколько соображений:
  1. БЭМ дает сильную упорядоченность в структуру файлов проекта 
  2. Реализация позволяет легко управлять видом страницы используя серверные шаблоны: по специально сформированному json, клиент строит html (раньше Яндекс использовал xslt, сейчас похоже активно переходят на js-шаблонизаторы). Нужно будет пилить как клиент так и сервер-сайд. 
  3. Одним CSS не отделаемся, придется выделять и строить структуру компонентов используемых на всех страницах (панели, кнопки, табы, формы и т.д), и не совсем понятно, как делать сборку единого css-файла, оторванную от общей технологии БЭМ. 
  4. Для каждой страницы есть контроллер, который смотрит какие компоненты используются на этой странице, строит по этим данными html и подтягивает нужные CSS. 
  5. Не совсем понятно как быть с библиотеками (у нас еще висит Prototype), и как использовать при этом jQuery 
Похоже потребуется глобальная переделка, чтобы воспользоваться этой технологией 

четверг, 3 ноября 2011 г.

Validation::Class - то, что нам нужно!

Господа Perl-разработчики, на CPAN появился замечательный модуль Validation::Class. Прелесть его заключается в его парадигме и хорошей документации:

http://search.cpan.org/~awncorp/Validation-Class-0.110280/lib/Validation/Class.pm

Есть скринкаст, доходчиво объясняющий парадигму этого модуля:

http://b.ana.io/post/12275755157/validation-class-overview-screencast-in-this

Следует внедрить использование этого модуля в нашем перловом коде.
Вопрос про проектирование интерфейса класса
Мне тут недавно приснилось (сам в шоке!), что я хочу к дате прибавлять и отнимать 1 месяц.
Возник интересный вопрос (и тут же пачка следом, привожу в порядке появления)
1) Что будет, если к 3 ноября прибавить 1 месяц? Вроде как 3 декабря.
2) Что будет, если к 28 января прибавить 1 месяц? 28 февраля по идее...
3) Идем дальше, 29 января? Тут есть нюанс ;) Думаю, наилучший выход, если выходим за диапазон дней месяца, ставить 1 число следующего и не париться.
4) Если у нас сложение работает как в п.3, то 29.01, 30.01, 31.01 и 1.02 после прибавления 1 месяца становятся одной датой - 1 марта.
5) А самое интересное начинается при вычитании 1 месяца. Оказывается, что (30.01 + 1 месяц) - 1 месяц = 1 февраля, а (30.01 - 1 месяц) + 1 месяц = 30 января.

Вот такие вот пирожки...

среда, 26 октября 2011 г.

Morgoth - асинхронный драйвер отчетов

В скором времени в бой по линии ПРД пойдет асинхронный драйвер отчетов, разработанный в подпольях техотдела в свободное от работы время.
По просьбе А.М. полное описание перенесено на confluence по адресу https://confluence.rutube.ru/pages/viewpage.action?pageId=6456193
И еще раз, большая просьба задавать вопросы в почту, дабы я смог расширить и углубить знания по описанному, кхм, инструменту, сконцентрированные на жалком клочке экранного пространства в конфе.

вторник, 25 октября 2011 г.

Новая фича в demarshal()

В demarshal() добавлена костыль фича для автоматичекого перекодирования значений свойств в кодировку системы. Для включения у свойства данного функционала, требуется установить атрибут force_encode в карте маршалинга.

За подробностями прошу в http://pod.ezn-dev01.rutube.corp/perldoc/Rutube::Obj::Persistent