2 дня назадМы были на прошлой неделе в Белоруссии проездом, было очень холодно: ночью в Гомеле -32 %) Спасибо за приглашение, у меня есть сильное желание приехать и послушать доклады, интересные темы, но всё же в следующий раз, когда будет потеплее ;)
4 дня назадНаконец нашел что-то путное по теме. Начну разжевывать. Несколько дней уйдет, однако.
6 дней назадМне пришлось столкнуться с тем, что элементарно не работает комбинация клавиш Ctrl + C и Ctrl + V. Причем переустанавливали Flash и не раз. Может быть, есть здесь те, кто сталкивался с этой проблемой и как-то смог решить ее?
1 неделя назадХотелось бы узнать, Как вы относитесь к пиву? Если положительно, то какое предпочитаете? Если отрицательно, то почему? Просто интересно...
1 неделя назадпрям таки тебе и скажут здесь посмотри
А вы знаете, что Audiotool кроме "радио" теперь ещё и ведёт музыкальный подкаст, в котором играет интересные композиции, созданные в Audiotool? Уже вышло 3 выпуска:
Tune in!
Пишет makc3d:
Давным давно в далёком апреле Белая попросила меня помочь в работе над своим новым визуализатором, а я не помог. Я попробовал, но у меня не получилось. Посему мы с Ростом посоветовались и решили что, может быть, Белой сможет помочь кто-нибудь из вас? Вот её исходник (был изменён, в частности убраны обширные закоментированные куски и счётчик FPS, утрачено исходное количество линий, которое она хотела использовать, но в общем и целом это на 99% её исходник).
Под катом - описание проблемы рисования большого кол-ва полупрозрачных линий во флэше.
Пишет makc3d:
Давным давно в далёкой галактике Балаклаве, как раз перед тем, как уехать с ITSea 2011, я с Ростом пытался убедить знающих людей сделать доклад о генетических алгоритмах, однако все они отказались под предлогом того, что в этой теме слишком много математики. Разумеется, объяснить принципы генетических алгоритмов вполне возможно и без математики - как говорится, на пальцах - что я и попытаюсь сделать в этом посте.
Итак, генетические алгоритмы для чайников флешеров - что это такое и с чем его едят? Этод метод придумали ленивые математики, которые не хотели решать свои задачи в лоб. Вместо поиска решения задачи в явном виде они решили поручить компьютеру перебрать массу случайных вариантов в надежде, что какой-нибудь из них окажется близок к решению. А когда встал вопрос, как именно компьютер должен это делать, они решили не париться и просто скопировать процесс, хорошо зарекомендовавший себя на протяжении миллиардов лет.
Давайте рассмотрим этот процесс на примере решения следующей простой задачи: в начале координат стоит пушка и стреляет под углом 45° снарядом с начальной скоростью v; т.е. уравнения движения снаряда имеют знакомый из школьного курса вид x = vt/√2 и y = vt/√2 - gt²/2. Необходимо найти такое значение v, при котором снаряд упадёт на заданном расстоянии. Эта задача легко решается в явном виде, но в целях этого поста представим себя очень ленивыми математиками и используем генетический алгоритм.
Для этого мы создадим популяцию виртуальных существ, смысл жизни которых состоит в поиске решения нашей задачи. Каждая особь несёт в себе гены - информацию о соответствующем варианте решения. В нашем случае, геном будет просто значение скорости v. Мы устроим в нашей популяции селекцию, беспощадно истребляя самые неудачные особи. Для этого нам понадобится функция, которая помогла бы нам оценить, насколько близко произвольная особь подошла к решению нашей задачи - т.н. фитнес-функция. Этой функцией могло бы стать минимальное расстояние от заданной точки до траектории снаряда но, поскольку мы очень ленивые математики, мы возьмём модуль выстоты траектории над заданной точкой, т.к. его легче посчитать. И, наконец, чтобы восполнить потери популяции после кровавой бойни, мы позволим выжившим лучшим особям размножаться, обмениваясь генетическим материалом (т.н. кроссинговер - математики постеснялись назвать это сексом). В нашем примере новая особь получит в качестве гена среднюю скорость её родителей. Как и в реальном мире, хороших генов родителей может оказаться недостаточно - новая особь может оказаться хуже предков. Поэтому мы дополнительно подвергнем её гены мутации в надежде на лучший результат.
Подытожим наш алгоритм:
// виртуальная "особь"
class Creature {
public var gene:Object;
public var fitness:Number;
...
// создаём популяцию из случайных особей
population = new Vector.<Creature> ();
...
// в каждой итерации:
// устанавливаем фитнес равным модулю высоты траектории над целью
for each (var c:Creature in population) c.fitness = ...
// сортируем популяцию по фитнесу
population.sort (...);
// заменяем особь-лузера на комбинацию годных особей,
// не забываем вносить случайные мутации
population [...].gene = 0.5 * (
Number (population [...].gene) +
Number (population [...].gene)
) + mutationRate * (Math.random () - Math.random ());
Посмотреть на результат его работы в действии можно тут. Пример максимально упрощён - для наглядности в популяции всего 3 особи. Каждая особь показана в виде соответствующей траектории снаряда. Размеры кружков на траекториях соответствуют значениям фитнесс-функции (в идеале - ноль). Красная траектория - худшая в данной итерации (соответствующая особь убивается), зелёные соответствуют родителям, синяя - новой особи. Со временем скорость симуляции увеличивается, чтобы дать почуствовать динамику процесса. Щелчком мышки можно задать новую цель.
Когда почти два года назад я писал свой портировал чужой FFT, ни я ни Белая не знали, что Sound.extract() не нуждается в каких-либо разрешениях от crossdomain.xml. И вот теперь я узнаю об этом, когда silin решает сделать то же самое. Теперь мы знаем и, наконец, можем делать визуализаторы, не заботясь о траффике - ведь все радиостанции мира к нашим услугам, без дурацких ограничений "безопасности" 
makc3d пишет по мотивам спича на уафпуг 23 в Днепропетровске:
Что такое дополненная реальность?
Сегодня редкому флешеру не знакомо понятие дополненной реальности (augmented reality). Если Вы - именно такой флешер, спешу рассказать Вам, что дополненная реальность - это заумное название любой реальной картинки с наложенной на неё контекстно-зависимой информацией. Классическим примером дополненной реальности может служить отображение текущего счёта во время телетрансляции футбольного матча, или индикатор здоровья персонажа в видеоигре; cмартфонщики могут привести в пример приложения вроде wikitude world browser, бывалые флешеры, скорее всего, вспомнят зелёного человечка, виртуальный рог изобилия или ветряные мельницы. Подозреваю, что многие из читателей сего поста в своё время скачали FLARToolKit starter kit и вдоволь натаскали розовый кубик по монитору:
Для чего это нужно?
Всё это замечательно, скажете Вы, но можно ли из этого розового кубика сделать хоть что-либо полезное? Можно, ответят вам в USPS. Уже более года миллионы американцев могут подобрать размер бандероли, необходимый для отправки их посылки, с помощью вот такого нехитрого приложения, технически не особо отличающегося от розового кубика:
К сожалению, основную массу flash проектов, использующих дополненную реальность, составляют безделушки промосайты. К сожалению, ибо они опираются на "wow factor", которого после двух лет активного использования технологии во flash остаётся всё меньше.
Сколько это стоит?
Сейчас есть всего несколько библиотек для программирования дополненной реальности на flash. Разумеется, это прежде всего FLARToolKit, пионер данного направления, использовать который в коммерческом проекте можно за жалкие 1295 USD. За ним следует Flare*nft от Imagination, стандартная лицензия на проект Вам обойдётся в 3000 EUR (хотя тут возможны варианты; например, промосайт с продолжительностью жизни до 3х месяцев может уложиться в 1200). Наконец, нельзя не упомянуть о D'Fusion от Total Immersion - эти ребята уже в следующем году обещают флешерам самую крутую технологию, однако обойдётся это в копеечку - Вам придётся приобрести годовую подписку стоимостью 12000 EUR, а Вашим клиентам придётся отчислять 40% прибыли проекта за лицензию.
Можно ли бесплатно?
Из вышеперечисленных коммерческих библиотек только FLARToolKit предоставляет бесплатную лицензию с условием обязательной открытости кода Вашего проекта, что подойдёт далеко не всем.
Нельзя не отметить также ASSURF, проект Евгения Затепякина из Питера, в основе которого лежит скомпилированныя через алхимию библиотека FAST Эдуарда Ростена. Проект многообещающий, но пока с ним мне не удалось достичь приемлемых результатов.
Feedback?
Хотелось бы, пользуясь случаем, узнать ваше мнение по затронутой теме, для чего огромная просьба всем интересующимся данной технологией ответить на пару вопросов.
Пока Flex Gangsta собирается с мыслями, чтобы записать третий трек для очередной конфы в Сан-Хосе, флеш сообщество не теряет времени даром - появляются новые клипы.
В то время, как отечественные разработчики проигнорировали идею лыжной конференции ITSki, в далёкой Норвегии аналогичное мероприятие набирает серьёзные обороты.

Спустя полтора года Flex Gangsta записал вторую композицию:
Лет через 10, наверное, наберётся альбом.

С превеликим запозданием начал я недавно изучать эту технологию. И вот, наконец-то стало что-то получаться, и возникло желание поделиться с такими же начинающими своей радостью. Однако, погуглив по рунету, я обнаружил тут и там давным давно написанные статьи. Посему вместо очередного поста об основах технологии вниманию публики предлагается разбор одного полёта (мысли), а так же грабли особенности технологии, на которые успел наткнуться за это короткое время.
Пишет makc3d:
Всем давно известно, что SoundMixer.computeSpectrum() не рулит, когда одновременно играют несколько файлов, тем более с разных доменов. Всем также давно известно, что в 10й версии флеша появился Sound.extract(). И все давно жаловались, что метод этот сам по себе не так интересен, ибо к нему для полного счастья надо дописывать частотный анализ. Прошёл год, и мы продолжаем слышать те же жалобы от тех же лиц; а между тем всё, что нужно для их удовлетворения - google.com и часик времени, чтобы портировать FFT на AS3 с понятного нам языка. Что, собственно, я и сделал сегодня.
Объектом порта стал класс FastFourierTransform, написанный в далёком 1997ом доктором Iain A. Robin на жаве. Как и исходный класс, AS3 версия работает с абстрактным массивом чисел, и посему может быть использована не только для обработки звука, а для всего, на что способна Ваша фантазия. Демонстрацию класса в работе (совместно с Sound.extract) можно наблюдать здесь, а исходники этого swf с проектом под FD+Flex4 SDK можно взять тут.
При использовании кода в своих экспериментах ссылка на Ваш эксперимент в комментариях к этому посту обязательна 
