Затянул я выкладывание отчета, уже пол месяца прошло, постоянные разъезды съедали все свободное время, но лучше позже чем никогда. Поэтому далее следуют мои субъективные заметки о услышанном в Одессе (fpug.org.ua/meeting/28). Заранее прощу прощение, если кого-то я задену, но как говорил Платон: «Сократ мне друг но истинна дороже».
Паттерны проектирования. Какую сторону Силы ты выбираешь?
Александр Крестелев
Блог: http://kresteleff.livejournal.com/Самый ожидаемый доклад, на поверку оказался наиболее бесполезным. Те, кто знали, что такое шаблоны не открыли наверное ничего нового для себя, а те кто не знали, легко запутались от обилия определений и почти полного отсутствия примеров. ыв
Но не все так плохо:
Большая часть ярких моментов прошло в компании Singleton-а:- Singleton не всегда так хорош, как его рисуют;
Реальное назначение синглтона - предоставлять доступ к единственному экземпляру класса и не допускать возможность создания второго.
Как правило, ошибочное использование синглетона - организация глобального доступа к объекту.
Так вот, синглетон используют для организации глобального доступа раз в 100 чаще, чем в целях, которым он должен служить.
Объявляя синглетон антипаттерном можно добиться того, что люди будут куда внимательнее относиться к его использованию.
http://www.flasher.ru/forum/showpost.php?p=725834&postcount=30 - Оказывается существует защита для Singleton-на на уровне Flash-а (http://life.neophi.com/danielr/2006/10/singleton_pattern_in_as3.html );
package whatever { public final class MySingleton { //---------------------------------- // params //---------------------------------- private static var _instance:MySingleton; //---------------------------------- // constructor //---------------------------------- public function MySingleton(singletonEnforcer:MySingletonEnforcer) { if (singletonEnforcer == null) { throw new Error ("MySingleton is a singleton class, use getInstance() instead"); } } //-------------------------------------------------------------------------- // // Getters&setters // //-------------------------------------------------------------------------- public static function getInstance():MySingleton { if (_instance == null) { _instance = new MySingleton(new MySingletonEnforcer()); } return _instance; } } } //this is in MySingleton.as but is outside the package block class MySingletonEnforcer {} // // //
Внутреннее устройство swf файла глазами программиста.
Виталий “Well” Хить.
Блог: К сожалению блога не нашел, если знаете — подскажите, внесу правки. http://twitter.com/#!/vakhit - микро-блог.Мне кажется, что название темы скрывает самую интересную мысль доклада: построение своего упрощенного командного языка на основе Flash. И динамическая интерпретация его.
Суть проста — резервировать методы в виде getter-ов и setter-ов, вуалируя за ними более сложные вычисления. А затем используя eval (который перестал работать в as3, но его реализовывают сторонние библиотеки: As3 Eval 0.3, The D.eval API), компилируем налету короткие программы в запускаемый байт-код. Созданные нами операции могут находиться, в роли дополнительных инструкций в конфигурационном xml. ИМХО: альтернатива решения - шаблон команда.
Конечно же звучало пару слов о Adobe Alchemy (http://labs.adobe.com/technologies/alchemy/). В фокус попал тот факт, что технология все еще находиться в Labs, а значит во многом сыровата. И, как бы не хотелось, заметных приростов в производительности не дает.
Но быстрые операции с памятью возможны, т. к. в том же ByteArray при записи или чтении идут дополнительные проверки и приведения типа, что можно выбросить при оптимизации. Однако эффект будет заметен лишь в случае так называемых пакетных операциях — «один раз запустил и много сделал».
Освещены были также некоторые стороны защиты swf. От классической обфускации: замена имен на не читаемые символы, до подмены запускаемых статических методов.
История одного звука
Андрей Андреев (commovere)
блог: http://explosio.com/Пожалуй самый эффектный доклад — вызвал массу вопросов и живой интерес у собравшихся. Кратно: используем мат. аппарат для распознавания звуков.
Алгоритм
- подготовка звука
- записываем эталонный звук;
- применяем Быстрое Преобразование Фурье, до первой паузы;
- запоминаем в группу эталонов звуков, по необходимости повторяем 1,2,3;
- использование
- записываем анализируемый звук;
- применяем Быстрое Преобразование Фурье, до первой паузы;
- применение преобразования Радона + расстояние Фреше;
Альтернативы сравнения звука
- Динамическое искажение времени (DTW);
- Попиксельная оценка разницы;
Экспериментаторы в области звука и флеша
- Andre Michelle (boost, ToneFall, AudioTool);
- Joe Ebert (PopForge);
- Joe Berkovitz (StandingWave + презентация);
- Tomas Pattersson (AS3sfx);
After-party
Уже на after-party в очередной раз познакомился с Даниилом Московцовым (omaggot), который не поленился в свое время и заполучил PlayBook Blackberry. А теперь любезно поделился опытом создания приложения под Blackberry. Его блог расположен по следующему адресу http://www.blog.holybaby.org.ua/Продолжение доклада на пляже
Резюме
Технология все еще жива и интересна как инструмент, поэтому стоит ездить на встречи и задавать конструктивные вопросы, делиться наработками. Всем участникам спасибо за положительные эмоции и интересные доклады, до встречи на следующих ФПУГАХ.А еще не забываем о itSea!
http://itsea.ru/
Links
http://fpug.org.ua/meeting/28 - анонс встречи UAFPUG;http://www.blog.holybaby.org.ua/ - блог Даниилом Московцовым (omaggot) о Флексе;
http://explosio.com/ - блог Андрея Андреева о флеше и звуковых экспериментах;
http://kresteleff.livejournal.com/ - блог Александра Крестелева обо всем;
http://www.facebook.com/media/set/?set=oa.125256974223500 - все фотки со встречи;
Комментариев нет:
Отправить комментарий