Блог Makeomatic: разработка сайтов и мобильных приложений

Работаем с запросами в ElasticSearch, содержащими обратные слеши

| Категории: ElasticSearch
Анна Аминева

Иллюстрация блокнота

Если вы индексируете не анализируемое содержимое, которое содержит обратные слеши, то вы можете заметить, что вы не получите ожидаемых результатов, при выполнении таких поисковых запросов. Например, предположите, что вы индексируете эту строку:

Совместное использование модулей между NodeJS и AngularJS

| Категории: Node.js, AngularJS
Анна Аминева

Иллюстрация блокнота
Gist: https://gist.github.com/sevcsik/9207267

Они говорят, что одно из преимуществ в NodeJs в том, что вы работаете с один языком как в бэкэнде, так и во фронтэнде, поэтому проще использовать один и тот же код между ними. В теории звучит классно, но на практике синхронная обработка зависимостей в Node.js работает совершенно не так, как в любом клиентском фреймворке (они асинхронны).

Angular.JS: внедрение фильтра в контроллер

| Категории: AngularJS
Анна Аминева

Иллюстрация блокнота

Предположим вы переработали функцию, находящуюся в $scope в фильтр:

1
2
3
4
5
6
7
8
9
10
/// Counts char number excluding spaces. Three dots count as one.
// TODO: refactor text transformation in a separate filter
editor.filter("numChar", function() {
return function(theText) {
return theText
.replace(/\n/g, "")
.replace(/\.\.\./g,"\u2026")
.length;
};
});

Введение в алгоритмы индексации поисковых машин

Нужно понимать и соблюдать

| Категории: SEO
Анна Аминева

О чем подумать перед оптимизацией ресурса

Прежде чем начать оптимизацию сайта, т. е. поднять его на топовые позиции в поиске, следует понять что такое поисковые машины, что они содержат и как их готовить.

Поисковые машины проходят огромнейший путь, чтобы найти информацию по нужному запросу. Они исследует не весь Интернет, а в пределах собственной базы данных, которая постоянно обновляет информацию. В Интернет сети находится несчитанное множество информации, где кол-во веб страниц превышает кол-во данных о них.
Поисковые алгоритмы имеют индивидуальную структуру данных. К примеру: один и тот же запрос в Google и Яндекс выдаст абсолютно разные результаты. Стоит отметить, что некоторые из поисковых машин используют алгоритмы успешных конкурентов. mail.ru тоже не исключение. Доволен базой данных от Google, добавляя свои изменения и корректировки.

Таким образом, поисковые машины основываются на построение индивидуальной структуры базы, которая выдает результаты максимально соответствующие заданному запросу.

“Безопасный” $apply в AngularJS

| Категории: Javascript, AngularJS
Анна Аминева

Иллюстрация блокнота

Если вы частенько натыкаетесь на $apply already in progress, пока работаете с ангуляром (я замечаю, что чаще всего с этим сталкиваюсь, когда внедряю сторонние плагины, которые вызывают большое количество DOM событий), то вы можете использовать сервис safeApply для проверки текущей фазы обработки в ангуляре, непосредственно перед выполнением вашей функции. Я обычно патчу $scope объект основного контроллера, а Angular распространяет мои изменения в остальные части приложения за меня:

Шаблон проектирования Одиночка (Singleton) в Objective-C (с ARC)

| Категории: Objective-C
Анна Аминева

Иллюстрация блокнота

В прошлом году я выучил насколько важными могут быть синглтоны в песочнице IOS. Чаще всего такие объекты могут без проблем создаваться и использоваться в глобальной области видимости (во всяком случае, большую часть времени). И после того как я понял, что для работы с моделями данных я могу использовать именно синглтоны, я решил изучить как Apple применяет низкоуровневые блоки кода для создания единственного экземпляра класса.

Улучшение логирования в AngularJS с помощью декораторов

| Категории: Javascript, AngularJS
Анна Аминева

Иллюстрация блокнота

Давайте выясним как использовать Декораторы (Decorators) для улучшения логирования в AngularJS и придания суперсил $log сервису. AngularJS имеет отличную скрытую возможность - $provider.decorator(). Она позволяет разработчикам перехватывать выполнение вызовов к сервисам и убирать, контролировать или изменять возможности этих сервисов. Возможность декорирования была спрятана не специально… скорее она затерялась среди других отличных возможностей AngularJS. В этой статье я представлю Decorator и покажу как постепенно добавлять функциональность к $log сервису… при этом практически не меняя созданные вами сервисы и контроллеры.

Работа с REST API в AngularJS

Расширение колбэков функций

| Категории: AngularJS
Анна Аминева

Иллюстрация блокнота

Расширение колбэков http запросов в AngularJS

В этом примере мне хочется показать вам как я реализовываю $rootScope.$apply() для каждого вызова REST api. Это всего лишь пример того, как вы можете расширить колбэки функции если мы предполагаем, что колбэк при обращении к REST api всегда находится в функции на последнем месте.