AngularJS и History API в Chrome приложениях

History API имеет ограниченную поддержку в приложениях Chrome. Однако, AngularJS пытается обратиться к методу history.pushState во время инициализации приложения. Это неминуемо приводит к ошибке: history.pushState is not available in packaged apps.

Лечится так:

angular
    .module('app', [], function($provide) {
        // Prevent Angular from sniffing for the history API
        // since it's not supported in packaged apps.
        $provide.decorator('$window', function($delegate) {
            $delegate.history = null;
            return $delegate;
        });
    });

Источник: github.com

Удаление базы данных IndexedDB в Chrome

Разбираюсь сейчас с разработкой приложений под Google Chrome (chrome apps). Chrome предлагает сразу несколько вариантов хранения данных — Web SQL, IndexedDB, Local Storage, Session Storage, ну и Cookies, конечно. Решил, что для моих целей лучше всего подходит IndexedDB. Естественно, в процессе изучения, разработки и отладки мне приходится много раз создавать, редактировать и удалять записи вручную. Для этого в Chrome Dev Tools встроены инструменты для управления локальными хранилищами — закладка Resources -, но вот почему-то удалить базу данных IndexedDB через GUI панели разработчика нельзя (Chrome 33).

Зато можно удалить базу программно набрав в консоле:


indexedDB.deleteDatabase('myBaseName');

Событие change элемента select в Jquery

На часах 5 утра. Только что потерял около часа на такой вот хитрушке в Jquery. Есть на странице элемент select, и написал я к нему обработчик события change. И все отлично работало, но понадобилось мне устанавливать значение select-а после загрузки страницы.
То есть что-то типа:


$(function(){
    $('#select_id').val('foo');
});

Да вот незадача — не происходит чендж после этого и все тут.
Решение простое:


$(function(){
    $('#select_id').val('foo').change();
});

Т.е. после смены значения элемента, необходимо вызвать событие change вручную.

А теперь спать.

Structure Synth — Discovery

Structure Synth — это пакет, предназначенный для легкой генерации трехмерных структур. SS позволяет работать с несколькими геометрическими примитивами, располагая их в пространстве с помощью встроенного скриптового языка EisenScript. Также, есть возможность генерировать последовательности структур, меняя какие-либо параметры с помощью JavaScript API. Рендер можно использовать как внутренний, так и внешние, например SunFlow. Для генерации видео из полученной коллекции изображений я использовал Mencoder по совету, данному в этом посте.
Ну, а результат моих экспериментов, собственно, вот :)

Отдельный респект хочется заслать в город-герой Калининград ребятам из The Q’s и поздравить их с выходом первого альбома.