2015-06-12

Основы AngularJS

На недавнем проекте передо мной стояла задача разработать калькулятор для расчета оконных изделий. В качестве исходных данных была предоставлена таблица в формате Excel с кучей больших схем расчета. Взглянув на огромное количество непонятных формул и зависимостей, было принято решение в серверной части использовать исходную таблицу, а на клиентской стороне - AngularJS.

AngularJS - javascript-фреймворк для создания интерактивных веб-приложений. Он реализует двухстороннее связывание модели и представления, то есть все изменения модели автоматически влияют на представление и наоборот, очень полезная штука. Вкупе с другими возможностями фреймворка позволяет серьезно уменьшить количество кода и сэкономить время. Возможностей у этого мощного фреймворка очень много, чтобы рассказать обо всех не хватит одной даже большой статьи, так что вкратце пройдусь по основам. В качестве опытного образца возьмем простое приложение для расчета итоговой стоимости.

2015-04-14

Виртуализация

Предыстория

История про то, как мы решали проблему тормозов сервера с сайтами и про то, что же такое виртуализация, обзор средств и какие задачи она решает.
Однажды, из-за трудноуловимых тормозов на сервере с кучей сайтов, было принято решение изолировать проекты друг от дружки, а именно - разнести их по виртуальным машинам. На тот момент я себе еще слабо представлял, что же такое гипервизоры, виртуальные машины и контейнеры. Просто что-то где-то слышал и пробовал использовать VMWare и VirtualBox. Но надо было использовать серверное консольное решение и начались поиски информации в интернете.


2014-08-13

Кеширование в Битриксе своих ключей в result_modifier.php и доступ к ним из component_epilog.php

Часто на проектах встречаю выключенный кеш в Битриксе. В основном, отключение производится программистом из-за непонимания правил работы кеша и нежелания разобраться.
Рассмотрим возможность добавления своих ключей в кеш стандартного компонента (в "result_modifier.php") и получение доступа к этим данным из "component_epilog.php".

2014-08-07

Разные кеши на одной странице в Битриксе

Бывают случаи, когда необходимо выводить разные данные в кешируемом компоненте на одной странице для разных пользователей. На самом деле, имею ввиду не пользователей разных групп, а просто тех, что совершили разные действия на сайте.
Отключение кеша Битрикса - в крайнем случае, надо учиться с ним правильно работать.
Также замечу, что решение подходит для тех случаев, когда функционала component_epilog.php недостаточно и добавлять параметры к адресу страницы тоже не вариант. Еще в решении этой задачи может помочь использование разных компонентов, которые выводить по условию на странице.
Рассмотрим еще одно интересное решение этой задачи. Выбор того или иного подхода нужно делать по ситуации, выбирая наиболее оптимальный в каждом конкретном случае.

2014-06-03

Распознавание и синтез речи в браузере

Современные браузеры обретают все больше каналов взаимодействия с человеком. Вкратце, рассмотрим возможность общения - распознавания и синтеза речи на примере Google Chrome. К сожалению, другие браузеры в этом вопросе пока отстают.

2014-05-15

Оптимизация чтения ресурсов MODX Revolution

Однажды передо мной встала задача по аудиту и оптимизации сайта с большим количеством страниц на MODX Revolution. Сайт периодически "падал" и анализ запросов с помощью тайминга MODX показал очень плохие результаты - в момент генерации кеша сайт выполнял порядка 900-1000 запросов к базе данных. При этом, при созданном кеше, на каждой странице продолжало выполняться порядка 100 запросов из-за использования в некоторых местах некешируемых вызовов сниппетов и чанков.

2014-02-06

Программирование в бизнес-процессах в DocsVision

Бизнес-процессы - последовательность действий направленных на достижение некоторой заданной цели. Внешне представляются в виде блок-схем.
Рассмотрим возможности программирования в бизнес-процессах в DocsVision.
Задача примерно следующая:
1) Мониторинг новых и измененных документов в состоянии "Опубликовано".
2) Выгрузка найденных документов в текстовые файлы на диск.
Суть, кратко: найти карточки по фильтру и затем что-то с ними сделать.