воскресенье, 19 июня 2011 г.

FPUG № 28 Odessa. Итог


Затянул я выкладывание отчета, уже пол месяца прошло, постоянные разъезды съедали все свободное время, но лучше позже чем никогда. Поэтому далее следуют мои субъективные заметки о услышанном в Одессе (fpug.org.ua/meeting/28). Заранее прощу прощение, если кого-то я задену, но как говорил Платон: «Сократ мне друг но истинна дороже».





Паттерны проектирования. Какую сторону Силы ты выбираешь?

Александр Крестелев

Блог: http://kresteleff.livejournal.com/



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

Но не все так плохо:

Большая часть ярких моментов прошло в компании Singleton-а:
  1. Singleton не всегда так хорош, как его рисуют;
    Реальное назначение синглтона - предоставлять доступ к единственному экземпляру класса и не допускать возможность создания второго.
    Как правило, ошибочное использование синглетона - организация глобального доступа к объекту.
    Так вот, синглетон используют для организации глобального доступа раз в 100 чаще, чем в целях, которым он должен служить.
    Объявляя синглетон антипаттерном можно добиться того, что люди будут куда внимательнее относиться к его использованию.

    http://www.flasher.ru/forum/showpost.php?p=725834&postcount=30
  2. Оказывается существует защита для Singleton-на на уровне Flash-а (http://life.neophi.com/danielr/2006/10/singleton_pattern_in_as3.html );
    1. 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 {}
      
      //
      //
      //
      
      
И под конец, те кто только начинают, поняли что надо знать меру и помнить, о противопоказаниях, о которых часто забывают многие авторы пособий. Поэтому стоит изучить первоисточник - книгу «Банды Четырех» (http://ru.wikipedia.org/wiki/Design_Patterns).

    Внутреннее устройство 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. подготовка звука
      1. записываем эталонный звук;
      2. применяем Быстрое Преобразование Фурье, до первой паузы;
      3. запоминаем в группу эталонов звуков, по необходимости повторяем 1,2,3;
    2. использование
      1. записываем анализируемый звук;
      2. применяем Быстрое Преобразование Фурье, до первой паузы;
      3. применение преобразования Радона + расстояние Фреше;

    Альтернативы сравнения звука

    • Динамическое искажение времени (DTW);
    • Попиксельная оценка разницы;

    Экспериментаторы в области звука и флеша


    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 - все фотки со встречи;

    PS

    Если кто-нибудь использует SyntaxHighlight (http://j.mp/jIEAWq) для подсветки кода в блоге. Подскажите плиз, как бороться с вертикальным ScrollBar-ом. У меня он появляется в каждом блоке, что согласитесь абсолютно бессмысленно, учитывая наличие scrollbar-а у браузера.

    Комментариев нет:

    Отправить комментарий

    Press Any Key...