• Как мы используем SVG в нашем фреймворке, игнорируя проблемы совместимости

      Существует удобный формат для работы с векторной графикой в вебе — SVG. Если бы полная поддержка его всеми браузерами, завоевал бы он большую популярность, чем есть сейчас.

      Но мы в своем фреймворке Mozart можем активно его использовать, не глядя на все проблемы совместимости. Фишка в том, что средствами фреймворка мы можем транскодировать один поток данных в другой. В случае с SVG мы трансформируем его в изображение JPEG, GIF или PNG формата, который и отдаем клиенту (браузеру).

      Делаем мы это при помощи Java-based (как и сам Mozart) Batik SVG Toolkit.
      Читать дальше →
    • Insurance. Часть I: Страховые калькуляторы своими руками

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

        Рынок страховых продуктов отличается своей сложностью: матрицы данных, запутанные логические взаимосвязи, коэффициенты, риски и т.п. Для создания каждого страхового продукта требуется много времени, для реализации «электронного» калькулятора не меньше.

        Реально ли создавать механизмы продажи страховых продуктов через Интернет без привлечения подрядчиков, команды программистов и не затрачивая много времени? Да, мы сделали это возможным.

        Читать дальше →
      • Mozart CMF: API, основанный на XML

          Итак, в своей первой статья я сделал несколько предположений об архитектуре предметной области в CMF/CMS системах. Тогда я сделал предположение об объектной модели я связанном с нею сервисе, который умел обрабатывать входящие запросы и выдавать нужный результат на основании внутренней структуры модели.

          Сегодня, сейчас, я бы хотел коснуться вопроса непосредственного использования такой системы в существующем фреймворке Mozart, не так давно впущенном компанией ADV под лицензией GPLv3.

          Основой API Mozart'а служат newt-контейнеры. Newt — это XML-контейнер (в XML-фрагменте), который специальным образом обрабатывается XML-парсером. Newt может быть как одиночным тэгом (закрытым тэгом <newt />), так и контейнером (содержит в себе другие контейнеры (newt'ы, инструкции)). Аналог newt'а — это функция, задачей которой является произвести какие-то действия (и вернуть результат, если требуется).

          Читать дальше →
        • Архитектура предметной области в CMF/CMS системах

            Практически любая информационная система характеризуется наличием системы хранения и оперирования данными. Возьмем, к примеру, обычные веб-сайты. Для их создания обычно используются какие-либо готовые системы (фреймворки или уже готовые CMS), в которых изначально уже заложена какая-то концепция по работе с данными, установившаяся предметная область. Обычно, если разработчик хочется добавить на сайте раздел новостей, он добавляет в интерфейсе CMS компонент, информационный блок, шаблон и т.п. Суть всех этих конструкций одна — создать сущность в БД для хранения (либо каком-то ином хранилище). В итоге имеется реляционная база данных и, зачастую, какой-то объектно-ориентированный обвес, реализующий связку объект-атрибуты-свойства-методы — реализуется предметная область.

            Ниже пойдет речь об одном из вариантов архитектуры предметной области. Статья базируется на опыте работы в компании ADV, которая применяет подобные методы в разработке веб-проектов. Сложность изложенного материала позволяет понять его не только разработчикам ПО, но и веб-мастерам, которым надо периодически дорабатывать существующие веб-проекты, добавляя в них новые данные.

            Самые простые системы позволяют лишь организовать хранилище, к которому разработчик в дальнейшем обращается и делает всю необходимую работу по обработке данных сам. В таком хранилище есть лишь объект, поля и данные. В более продвинутых системах между объектами появляются связи. Следующий уровень развития — взаимодействие объектов (триггеры, методы и т.п.), а так же наличие программной подсистемы, снимающую с разработчика часть забот по обработке данных.
            Читать дальше →
          • BBZ.RU — мой личный «стартап» о breaks музыке

              imageЧто-то никогда я не писал нигде о своем проекте BBZ.RU — портал о breaks музыке, а ведь ему уже почти 5 лет. Все дело в том, что для меня проект никогда не был стартапом, это было хобби, которое началось с того, что мне нравилась музыка в стиле breaks, breakbeat. На тот момент как-то не было в рунете ресурсов, где можно было что-то интересное и актуальное найти по этой тематике.

              Сейчас проект превратился, как мне недавно сказали, в социальную сеть, где «тусуются» русскоговорящие и не только брейксеры, регулярно проводятся совместные клубные мероприятия.

              Однажды на форум пришел известный зарубежный музыкант Elite Force и разогнал всю нашу братию нелестными словами о России и пиратстве. Дискуссию так же подняли на нескольких зарубежных тематических сайтах. Пришлось в экстренном порядке убирать с сайте все ссылки на нелегальный контент, вводить новые правила и общаться со всеми участниками дискуссии на всех сайтах, убеждая их, что Россия не так уж плоха, как они думают. Проблему решили, авторитет восстановили.
              Читать дальше →