2008-01-12

03 Задания.txt

  2008-01-12 12:00

Обертка объекта для отображения в Zope; Контейнер в Zope; явно указывающую namespace для текущего объекта (автоматической генерацией траверсера к нему). ...

Темы заданий для практической работы:

    1.  Объект на питоне;

    2.  Обертка объекта для хранения в ZODB;

    3.  Инкременты атрибутов объекта и конфликты транзакций;

    4.  Обертка объекта для отображения в Zope;

    5.  Обертка объекта для сохранения состояния в postgresql;

    6.  Контейнер в Zope;

    7.  Обертывания контейнера стандартными представлениями;

    8.  Написать свое предствление контейнера;

    9.  Настройка объекта с использованием аннотаций;

   10.  Сделать каталог объектов;

   10.  Новостной объект: статья + анонс, анонс генерируется автоматически:

        -- Отбираются предложения с ключевыми словами;

   11.  Сделать классификатор объектов;

        Классификатор работает по дереву правил выбора. Существуют
        две версии классификатора:

        -- Объект классифицируется в момент размещения;

        -- Объект классифицируется с использованием аналога ZCatalog;

        -- Объект классифицируется в момент отображения (при траверсе иерархии создается фильтр для
           базы данных и в момент отображения фильтр применяется);

   12.  Сделать кеш форматируемых объектов;

        -- отслеживать даты и изменять в момент обращения;

        -- отслеживать сохранение и изменять в момент изменения;

   12.  Сделать свою директиву zcml;

   13.  Исправить существующую директиву ZCML;

   14.  Что-то про траверс хинт;

   15.  Что-то про работу с пользователями;

   Результирующее задание:

        Собрать из того, что получилось, новостную службу: 

           - Новости вводятся thru the web;

           - Формат новости -- анонс + текст;

           - Существует каталог непросмотренных url-ов (например, что бы сделать спайдер);

           - Новости автоматически классифицируются;

           - Новости автоматически форматируются;

        Задание собирается несколькими способами из разработанных компонент

   16.  Нечеткий траверсер - выполняет траверс, даже если каталог набран с
        ошибками (сваливается к наиболее похожему). Для оценки похожести
        использовать difflib (SequenceMatcher(None,
        "qwerty","qwety").ratio())
        
   17. Задания на AJAX интерфейсы (KSS, http://kukit.org/):

     - Добавление тегов (пример на Flickr)

     - Поле с autocomplete 

     - Голосование без перезагузки страницы (установка галочки)

     - Проверка на заполнение формы основанной на схеме без перезагрузки страницы (сложное)

     - Заливка файла со скролбаром


    18. Реализовать прокси вокруг объекта, благодаря которому (1) значение любого атрибута проксируемого
        объекта получается как строковое, (2) результат вызова любого метода превращается в строку.

    19. Реализовать прокси, кеширующий обращения к объекту.

    20. Написать zcml-директиву. явно указывающую namespace для текущего объекта (автоматической генерацией траверсера к нему).

    21. Написать индекс для каталога, позволяющий искать сходные картинки.        
    
    22. Написать zcml-директиву, позволяющую быстро составлять представления для 
        аннотаций.
        
    23. Написать траверсер, предоставляющий вместо текущего объекта, специальную обертку, снабженную интерфейсами редактирования
        аннотаций.
      
    24. Доработатать zcml-директиву, составляющую представлеиния для аннотаций так, что бы она создавала
        адаптер.

    25. Доработать viewletManager наличием фильтра (как у menuItem).
            
Официальный сайт Zope3 Московская группа изучения реактивного движения The Dream Bot Site noooxml