Flex и RIA блоги
2009-08-01 |
Выход Fuzzle CMS 2.5 Сегодня мы выложили версию Fuzzle CMS 2.5. Решили, что список нововведений настолько весом, что можно цифру и посильнее поменять Итак, нововведения:
Исправления:
Новую версию можно скачать с сайта. Обновления инструментов для разработчиков (ряд новых вкусных фич) мы выложим немного позднее. |
Выход Fuzzle CMS 2.5 Сегодня мы выложили версию Fuzzle CMS 2.5. Решили, что список нововведений настолько весом, что можно цифру и посильнее поменять Итак, нововведения:
Исправления:
Новую версию можно скачать с сайта. Обновления инструментов для разработчиков (ряд новых вкусных фич) мы выложим немного позднее. |
2009-07-31 |
Каковы они — возможные последствия ITSea-2009? Друзья, участники ITSea / BURAFPUG-2009! В дополнение к уже запланированным докладам, было бы хорошо заиметь еще пару круглых столов, мастер-классов, я-полный-чайник-расскажите-как-сделать-игру-для-вконтакте-сессий, событий, невероятных происшествий и других увлекательных тем для обсуждения.
Забудьте то, что вы видели. Если нам повезет, если Реквестирую ваши ответы в комментариях на любой из этих вопросов:
В лучший путь, отважные релаксанты!
|
Каковы они — возможные последствия ITSea-2009? Друзья, участники ITSea / BURAFPUG-2009! В дополнение к уже запланированным докладам, было бы хорошо заиметь еще пару круглых столов, мастер-классов, я-полный-чайник-расскажите-как-сделать-игру-для-вконтакте-сессий, событий, невероятных происшествий и других увлекательных тем для обсуждения.
Забудьте то, что вы видели. Если нам повезет, если Реквестирую ваши ответы в комментариях на любой из этих вопросов:
В лучший путь, отважные релаксанты!
|
2009-07-30 |
Заголовок Второго Уровня |
Заголовок Второго Уровня |
Похоже, мы таки достали Adobe с этим вашим Линуксом
Спасибо вам за голоса и комментарии. В то время, как я хотел бы сообщить вам, когда это будет исправлено, я не могу назвать точной даты. Я могу сказать, что мы исправим это в следующем большом обновлении версии ("major update"). Как только выйдет релиз, вы увидите этот баг в Release Notes как часть этого релиза. Когда это произойдет, я алсо закрою этот баг здесь как исправленный. Я понимаю и ценю вашу фрустрацию и мы усердно работаем, чтобы доставить вам качественный релиз со множеством исправлений и новых возможностей. Спасибо тебе, Чарльз. Прости, если что не так. Сам понимаешь у нас GNU/Linuxоiди обступили со всех сторон и требуют сатiсфакциi их невiносимой фрустрациi. А тем временем не надо здесь сидеть сложив на колени руки. Давайте поднимем баг, который достал даже сильнее: голосуем за FP-273, правильное эхоподавление во Flash Player! Ему нужен один голос, чтобы попасть фдисятку. Правда, при этом она обгонит другой баг FP-37, про поддержку AMD64 + Linux... |
Похоже, мы таки достали Adobe с этим вашим Линуксом
Вчера и позавчера за баг ввода UTF-8 на Линуксах FP-40 поступило 15 новых голосов. Спасибо вам за поддержку тут и там! Уверен, что это помогло довести количество голосов со 192 до 207. Таким образом, барьер в 200 голосов был преодолен вчера, и сейчас этот баг — третий в списке по количеству голосов. Мы не знаем, что происходит внутри Adobe, знаем только, что вчера ответственный за исправление бага FP-40 Чарльз Лисс написал:
Спасибо вам за голоса и комментарии. В то время, как я хотел бы сообщить вам, когда это будет исправлено, я не могу назвать точной даты. Я могу сказать, что мы исправим это в следующем большом обновлении версии ("major update"). Как только выйдет релиз, вы увидите этот баг в Release Notes как часть этого релиза. Когда это произойдет, я алсо закрою этот баг здесь как исправленный. Я понимаю и ценю вашу фрустрацию и мы усердно работаем, чтобы доставить вам качественный релиз со множеством исправлений и новых возможностей. Спасибо тебе, Чарльз. Прости, если что не так. Сам понимаешь у нас GNU/Linuxоiди обступили со всех сторон и требуют сатiсфакциi их невiносимой фрустрациi. А тем временем не надо здесь сидеть сложив на колени руки. Давайте поднимем баг, который достал даже сильнее: голосуем за FP-273, правильное эхоподавление во Flash Player! Ему нужен один голос, чтобы попасть фдисятку. Правда, при этом она обгонит другой баг FP-37, про поддержку AMD64 + Linux... |
Adobe и пираты: двое москвичей уже идут в тюрьму Так как во всём цивилизованном мире принято платить за программы, с помощью которых люди зарабатывают на хлеб с маслом, Adobe решил сделать это и в России. Вот что пишут Ведомости. В общем-то рановато, помоему, но всё же пора постсоветским разработчикам покупать программы, а то как-то не совсем честно получается. Нам на фирме приходится покупать абсолютно всё включая winrar, а какой-то Вася Пупки из Москвы, не покупая лицензии, сидя у себя в спальне и не имея никаких расходов на софт, мешает мне и моим коллегам зарабатывать нормальные деньги (это я так, мне на самом деле никто не мешает). Мой комментарий — Ростислав СирыкИз статьи в "Ведомостях" следует, что посадили не пользователей, а распространителей ворованного ПО. И все же я думаю, что заключение за решетку — это слишком суровое наказание. |
Adobe и пираты: двое москвичей уже идут в тюрьму Так как во всём цивилизованном мире принято платить за программы, с помощью которых люди зарабатывают на хлеб с маслом, Adobe решил сделать это и в России. Вот что пишут Ведомости. В общем-то рановато, помоему, но всё же пора постсоветским разработчикам покупать программы, а то как-то не совсем честно получается. Нам на фирме приходится покупать абсолютно всё включая winrar, а какой-то Вася Пупки из Москвы, не покупая лицензии, сидя у себя в спальне и не имея никаких расходов на софт, мешает мне и моим коллегам зарабатывать нормальные деньги (это я так, мне на самом деле никто не мешает). Мой комментарий — Ростислав СирыкИз статьи в "Ведомостях" следует, что посадили не пользователей, а распространителей ворованного ПО. И все же я думаю, что заключение за решетку — это слишком суровое наказание. |
Новая версия haXe поддерживает шесть языков, и C++ тоже 26 июля вышла новая версия платформы haXe за номером 2.04, теперь с поддержкой языка C++. Так что теперь данная платформа поддерживает уже 6 языков:
Можно почитать, как "заставить" все это работать. haXe на iPhone — инструкция прилагаетсяА вот в деталях о том, как запустить haxe код на IPhone. В этом релизе haxe появился специальный каталог iphone, в каталоге hxcpp — рядом с win, mac и linux (@deep). Что же будет дальше?... |
Новая версия haXe поддерживает шесть языков, и C++ тоже 26 июля вышла новая версия платформы haXe за номером 2.04, теперь с поддержкой языка C++. Так что теперь данная платформа поддерживает уже 6 языков:
Можно почитать, как "заставить" все это работать. haXe на iPhone — инструкция прилагаетсяА вот в деталях о том, как запустить haxe код на IPhone. В этом релизе haxe появился специальный каталог iphone, в каталоге hxcpp — рядом с win, mac и linux (@deep). Что же будет дальше?... |
2009-07-29 |
Есть вопросы к Adobe? СпрашивайтеВам ответит Ли Бримелоу из AdobeКак это устроено: вы задаете вопрос в комментариях к этой записи в блоге Ли. Затем Ли садится, все обдумывает и отвечает, а свои ответы записывает на видео. Получившееся видео он публикует у себя в блоге. Если он не сможет ответить на ваш вопрос, то объяснит, почему. Ли просит указывать ваше имя и географическое положение (и то и другое не обязательно, но Ли просил). Сбор вопросов идет до 31 июля 2009 года (пятница) включительно. Не владеете английским? Могу помочь, пишите вопросы сюда. |
Есть вопросы к Adobe? СпрашивайтеВам ответит Ли Бримелоу из AdobeКак это устроено: вы задаете вопрос в комментариях к этой записи в блоге Ли. Затем Ли садится, все обдумывает и отвечает, а свои ответы записывает на видео. Получившееся видео он публикует у себя в блоге. Если он не сможет ответить на ваш вопрос, то объяснит, почему. Ли просит указывать ваше имя и географическое положение (и то и другое не обязательно, но Ли просил). Сбор вопросов идет до 31 июля 2009 года (пятница) включительно. Не владеете английским? Могу помочь, пишите вопросы сюда. |
2009-07-28 |
Как лучше и веселее всего проехать на ITSea / BURAFPUG-2009? Как проехать к месту проведения ITSea-2009? Легко! Сначала едем поездом до Феодосии. Затем из Феодосии едем на автобусе или маршрутном такси в Коктебель. Автовокзал находится в 10 минутах ходьбы от железнодорожного вокзала. Время пути автобуса или маршрутки — примерно 20-30 минут, стоимость проезда – несколько гривень. Конечно, можно доехать в Коктебель и на обычном такси от вокзала, но стоимость проезда будет в 10-30 раз выше маршрутки или автобуса. Подробнее можно узнать в статье о проезде в Коктебель (спасибо, Ladon). Итак, мы доехали до Коктебеля. А от него до места нашей дислокации — 15 минут ходу. Вот маршрут от Коктебеля до отеля и контакты хозяев нашей "Избушки". Если будете звонить им, то скажите, что вы — участник конференции, что пройдет 10-17 августа, организатор — Денис Радин. А как повеселее проехать к месту проведения ITSea-2009?Конечно же, найдя попутчиков, а для этого можно ответить на пару вопросов в этой форме. Она поможет нам устроить интересный проезд: В форме что-то упущено? Можно общаться в комментариях Счастливого пути, и до встречи. Уже до скорой. Осталось всего 12 дней! |
Как лучше и веселее всего проехать на ITSea / BURAFPUG-2009? Как проехать к месту проведения ITSea-2009? Легко! Сначала едем поездом до Феодосии. Затем из Феодосии едем на автобусе или маршрутном такси в Коктебель. Автовокзал находится в 10 минутах ходьбы от железнодорожного вокзала. Время пути автобуса или маршрутки — примерно 20-30 минут, стоимость проезда – несколько гривень. Конечно, можно доехать в Коктебель и на обычном такси от вокзала, но стоимость проезда будет в 10-30 раз выше маршрутки или автобуса. Подробнее можно узнать в статье о проезде в Коктебель (спасибо, Ladon). Важное дополнение от крымского резидента Ильи Панина:На Феодосию зачастую едут поезда с неудобным временем прибытия и отъезда. Как варинат, можно ехать до Симферополя, а там на маршрутке до Коктебеля (или Феодосии), летом они ходят с периодичностью 20-30 минут. Первая официальная маршрутка на Феодосию едет в 4:15, а неофицальная ждет уже с 2:40, пока не насобирает людей, чтобы занять места (может стоять до 3:30). Едет полтора часа. Билет на офицальную стоит ~27 гривен, на неофицальную — до 40. Итак, мы доехали до Коктебеля. А от него до места нашей дислокации — 15 минут ходу. Вот маршрут от Коктебеля до отеля и контакты хозяев нашей "Избушки". Если будете звонить им, то скажите, что вы — участник конференции, что пройдет 10-17 августа, организатор — Денис Радин. А как повеселее проехать к месту проведения ITSea-2009?Конечно же, найдя попутчиков, а для этого можно ответить на пару вопросов в этой форме. Она поможет нам устроить интересный проезд: В форме что-то упущено? Можно общаться в комментариях Счастливого пути, и до встречи. Уже до скорой. Осталось всего 12 дней! |
Немного внутренностей глючных выражений switch/case Недавно мы голосовали за исправление бага ASC-3778, который делает работу с выражениями switch/case не только трудной, но и опасной. Спасибо всем, кто проголосовал! Баг уже набрал 18 голосов, его статус изменился на "Internal Review", и в результате этого "внутреннего рассмотрения" баг посчитали связанным с багом ASC-3644, который имеет приоритет "B - Major Issue", и с ним связано еще 8 проблем. Его устранение запланировано на версию Milestone FP 10.1. Но самое интересное — это сам багрепорт по багу # 3644. Во-первых, отчет об ошибке сделан сотрудником Adobe Ларсом Хансеном, который тоже фиксит баги плейера. Во-вторых, Ларс разбирает этот баг на низком уровне. Он предлагает скомпилировать код файла switch.as с помощью asc.jar с опцией 162 lookupswitch default:L10 maxcase:8 L2 L3 L4 L5 L6 L7 L8 L9 L10 Что и есть проявление бага. Интересно, чорт побери. Даже такому чайнику в ассемблере, как я. |
Генерим облака Вот понадобилось мне облака генерить. Изобретать велосипед не будем - прямиком в гугл. А тут красоты всякой - видимо-невидимо. Сразу хочу отметить полезный тул: Perlin Noise Explorer. Собственно, кто еще недопонял, что такое perlin noise, может подробно изучить это явление. Замечательный пейзажик: Actionscript 3.0 perlinNoise method. Облака с перспективой: Clouds. Целый движок: Perlin Clouds and Frocessing (with an F). Без демки, но проверены: Generating Pseudo Realistic Clouds In Flash (AS3 + Perlin Noise) Lets make some (perlin) noise! Не облака: Забавная пружинка: тут. Нереальные игры с электричеством: тут. Красивое облако: тут. Земля: Papervision3D clouded planet Earth tutorial and source. Такие вот пузыри: Actionscript 3 blobs / lava lamp effect Древесные кольца: тут. Да... Всё красиво, но мне, увы не подошло. Идея такова, что нужно генерировать небольшие клочки облаков, а для этого нужно на полученную текстуру наложить маску, плавно описывающую область. По всей видимости, времени не хватит. Вставлю картинками. * * * Решил поступить так. Берем пример Generating Pseudo Realistic Clouds In Flash (AS3 + Perlin Noise). Подстраиваем параметры таким образом, чтобы облака были редкими. Для большой области, динамический рендер по производительности просто убийственный. Но мы генерируем крупный битмап один раз, не скупясь на качество, и затем, просто скроллим его циклически. * * * Сделал еще проще. Полученный битмап не скроллю, а циклически со смещением заливаю им нужную область. Это гораздо удобнее, т.к. метод заливки beginBitmapFill умеет склеивать текстуру самостоятельно при любом смещении. И по производительности это выигрышнее. * * * В примере, полученый клип с облаками накладывается с эффектом blendMode = "screen". Для производительности это не есть хорошо. Поэтому, в целях оптимизации, рабочий битмап делаем прозрачным, заливаем белым цветом и копируем в его альфа-канал любой из цветовых каналов сгенерированного битмапа с облаками. Точнее, для генерации perlinNoise используем один канал, который потом и копируем. |
Генерим облака Вот понадобилось мне облака генерить. Изобретать велосипед не будем - прямиком в гугл. А тут красоты всякой - видимо-невидимо. Сразу хочу отметить полезный тул: Perlin Noise Explorer. Собственно, кто еще недопонял, что такое perlin noise, может подробно изучить это явление. Замечательный пейзажик: Actionscript 3.0 perlinNoise method. Облака с перспективой: Clouds. Целый движок: Perlin Clouds and Frocessing (with an F). Без демки, но проверены: Generating Pseudo Realistic Clouds In Flash (AS3 + Perlin Noise) Lets make some (perlin) noise! Не облака: Забавная пружинка: тут. Нереальные игры с электричеством: тут. Красивое облако: тут. Земля: Papervision3D clouded planet Earth tutorial and source. Такие вот пузыри: Actionscript 3 blobs / lava lamp effect Древесные кольца: тут. Да... Всё красиво, но мне, увы не подошло. Идея такова, что нужно генерировать небольшие клочки облаков, а для этого нужно на полученную текстуру наложить маску, плавно описывающую область. По всей видимости, времени не хватит. Вставлю картинками. * * * Решил поступить так. Берем пример Generating Pseudo Realistic Clouds In Flash (AS3 + Perlin Noise). Подстраиваем параметры таким образом, чтобы облака были редкими. Для большой области, динамический рендер по производительности просто убийственный. Но мы генерируем крупный битмап один раз, не скупясь на качество, и затем, просто скроллим его циклически. * * * Сделал еще проще. Полученный битмап не скроллю, а циклически со смещением заливаю им нужную область. Это гораздо удобнее, т.к. метод заливки beginBitmapFill умеет склеивать текстуру самостоятельно при любом смещении. И по производительности это выигрышнее. * * * В примере, полученый клип с облаками накладывается с эффектом blendMode = "screen". Для производительности это не есть хорошо. Поэтому, в целях оптимизации, рабочий битмап делаем прозрачным, заливаем белым цветом и копируем в его альфа-канал любой из цветовых каналов сгенерированного битмапа с облаками. Точнее, для генерации perlinNoise используем один канал, который потом и копируем. |
2009-07-27 |
Решение проблемы с вводом кириллицы на Линуксе во Flash Player — своими руками Среди пользователей GNU/Linux есть пользователи SWF/Flash, это факт. И некоторые из этих пользователей очень любят флэш. Любят так, что не только терпят его поведение, не дающее вводить символы кириллицы в текстовых полях, но и помогают флэшплейеру справиться с этой задачей. Да, речь снова о печально известном баге FP-40, связанному с невозможностью ввода символов UTF-8. Юрий 'Yzh' Жлоба выпустил патч, решающий проблему ввода кириллицы во Flash Player под Linux. Это уже второй патч, после первого патча от Алексея 'yelbota' Фомкина. Можно пользоваться — работает и в чистом AS, и там, где Flex. Спасибо вам, ребята. Лучи света проникают в сумеречную зону! |
MPS, MIoC и утро испорчено Вот так бывает, что приезжаешь в понедельник утром на работу, погружаешь измученное летними выходными тело в кресло, включаешь позёвывая комп, лениво начинаешь кликать последние посты. За окном лето. Чего еще может быть такого нового... Все загорают и купаются. Но тут мозг натыкается на незнакомые сочетания букв. Таак. Мифы MPS. Явно не про мазду. MPS... MPS, что-то википедия ерунду выдает. Ладно, читаем дальше. Ну пипец, ни одной ссылки, будто и правда все всё знают, а я в мазде. Ага, это редактор. Попался, голубчик. От оно чо - Meta Programming System. Вот и википедия сразу разродилась. Ну в общем всё ясно. Шагай в будущее с MPS первой версии. Для чего оно нужно? Для создания и работы с DSL (опять неоднозначные аббривиатуры - это не про модем, это Domain-specific language - или лучше Предметно-ориентированный язык программирования). Теперь и пост про мифы можно почитать. Что еще у нас интересного на сегодня? Ага, injun до Swiz добрался. Забавный принцип. Про паззлы понравилось, хоть никогда их и не любил - скучное занятие. Все похвалили MIoC. Вот, спасибо, для тех кто в мазде - разшифровка (Metadata-driven autowire IoC framework для ActionScript 3). Про IoC знают многие, а вот MIoC - не думаю. Напоследок. Случился бум Flash+Drupal. Мне так показалось, что пост Flash на Drupal произвел неизгладимое впечатление на Flex Constructor, и в течение последующих 3,5 часов он выдал Flex+Drupal=... C интеграцией flash и CMS сталкивается почти каждый flash-разработчик. На моей практике, сводится она к тому, что либо сервер диктует формат обмена данными, либо это делаю я сам. Второе чаще. Здесь же этот процесс систематизируется и ставится на рельсы, по которым очень скоро покатятся составы, полные готовых drupal-модулей для flash-сайтов, flash-приложений, flash-виджетов и flash-т.п. Идея популяризации Drupal очевидна. Всё. Утро еще не кончилось, и мозги уже дымятся. А ведь еще завал работы... |
MPS, MIoC и утро испорчено Вот так бывает, что приезжаешь в понедельник утром на работу, погружаешь измученное летними выходными тело в кресло, включаешь позёвывая комп, лениво начинаешь кликать последние посты. За окном лето. Чего еще может быть такого нового... Все загорают и купаются. Но тут мозг натыкается на незнакомые сочетания букв. Таак. Мифы MPS. Явно не про мазду. MPS... MPS, что-то википедия ерунду выдает. Ладно, читаем дальше. Ну пипец, ни одной ссылки, будто и правда все всё знают, а я в мазде. Ага, это редактор. Попался, голубчик. От оно чо - Meta Programming System. Вот и википедия сразу разродилась. Ну в общем всё ясно. Шагай в будущее с MPS первой версии. Для чего оно нужно? Для создания и работы с DSL (опять неоднозначные аббривиатуры - это не про модем, это Domain-specific language - или лучше Предметно-ориентированный язык программирования). Теперь и пост про мифы можно почитать. Что еще у нас интересного на сегодня? Ага, injun до Swiz добрался. Забавный принцип. Про паззлы понравилось, хоть никогда их и не любил - скучное занятие. Все похвалили MIoC. Вот, спасибо, для тех кто в мазде - разшифровка (Metadata-driven autowire IoC framework для ActionScript 3). Про IoC знают многие, а вот MIoC - не думаю. Напоследок. Случился бум Flash+Drupal. Мне так показалось, что пост Flash на Drupal произвел неизгладимое впечатление на Flex Constructor, и в течение последующих 3,5 часов он выдал Flex+Drupal=... C интеграцией flash и CMS сталкивается почти каждый flash-разработчик. На моей практике, сводится она к тому, что либо сервер диктует формат обмена данными, либо это делаю я сам. Второе чаще. Здесь же этот процесс систематизируется и ставится на рельсы, по которым очень скоро покатятся составы, полные готовых drupal-модулей для flash-сайтов, flash-приложений, flash-виджетов и flash-т.п. Идея популяризации Drupal очевидна. Всё. Утро еще не кончилось, и мозги уже дымятся. А ведь еще завал работы... |
2009-07-24 |
Специальная цена для фрилансеров По многочисленным просьбам, мы решили провести эксперимент — снизить цену для фрилансеров, которые разрабатывают сайты клиентам самостоятельно. Очевидно, они часто не могут платить столько же, сколько профессиональные веб-студии. Таким образом, с 25 июля по 10 августа (а может, и даже немного дальше) фрилансеры и индивидуальные предприниматели (они же физ. лица) имеют уникальную возможность купить систему управления Flash-сайтами Fuzzle CMS по специальной цене — 12.900 рублей вместо 20.000 для компаний. ![]() Возможности Fuzzle CMS Если наш эксперимент по работе с физлицами пройдет успешно, мы рассчитываем сделать эту практику постоянной. Кстати, напоминаем, что Fuzzle CMS можно попробовать в демонстрационной версии «онлайн», взять скачиваемую версию, а также получить бесплатный лицензионный ключ на 10 дней. Для особо нетерпеливых доступны видеоролики. Все демонстрационные материалы |
Специальная цена для фрилансеров По многочисленным просьбам, мы решили провести эксперимент — снизить цену для фрилансеров, которые разрабатывают сайты клиентам самостоятельно. Очевидно, они часто не могут платить столько же, сколько профессиональные веб-студии. Таким образом, с 25 июля по 10 августа (а может, и даже немного дальше) фрилансеры и индивидуальные предприниматели (они же физ. лица) имеют уникальную возможность купить систему управления Flash-сайтами Fuzzle CMS по специальной цене — 12.900 рублей вместо 20.000 для компаний. ![]() Возможности Fuzzle CMS Если наш эксперимент по работе с физлицами пройдет успешно, мы рассчитываем сделать эту практику постоянной. Кстати, напоминаем, что Fuzzle CMS можно попробовать в демонстрационной версии «онлайн», взять скачиваемую версию, а также получить бесплатный лицензионный ключ на 10 дней. Для особо нетерпеливых доступны видеоролики. Все демонстрационные материалы |
Флэш — это Зло Что можно на такое ответить? А если эти слова были написаны как заголовок самого первого комментария к вашей статье на drupal.org, подробно рассказывающей о недавно законченной вами книге "Flash with Drupal" для пользователей CMF Drupal? Что бы вы ответили на этот первый комментарий: Флэш есть ЗлоПишет Rainy Day Так что я хочу пожелать вашей книге успеха, но лучше бы вы применили свои таланты в другой сфере. Возможно, вы напишете продолжение: "Drupal without Flash", где вы напишете, как использовать открытые стандарты для достижения тех же целей, да еще и так, чтобы это работало на мобильных устройствах? Знаете, такая джедайская версия этой книги? Извините, но Flash просто нажимает на мое больное место, потому что слишком часто он используется для зла. И я ненавижу проприетарные технологии, ведь уже доступны отличные веб-стандарты. (Я знаю, что Adobe создает шумиху вокруг открытия стандарта Flash, но давайте еще посмотрим, насколько открытым он будет). "*Продукт может отличаться от изображения на упаковке (YMMV)". Еще раз: что бы вы ответили на это? Вы — автор книги "Flash with Drupal", писали ее целый год, и это — первый отзыв на нее. Вот — ответ автора книги. Я считаю, что он просто образцовый: Rainy Day, мне очень жальМне очень жаль, что у вас такие ощущения. Но (очевидно) я должен был бы не согласиться. Флэш не зло. Флэш очень полезен, когда применяется правильно и для конкретных требований. Очевидно, ваше недовольство вызвано разработчиками, которые используют флэш для неправильных целей, и у вас есть полное право испытывать это недовольство. Но, пожалуйста, не забывайте, что ЛЮБАЯ технология может быть использована с неправильными целями. Я могу создать надоедливую рекламу, используя только JavaScript и HTML. Вообще, в JavaScript и HTML можно сделать еще более раздражающую рекламу... Я пытаюсь сказать, что ваше недовольство должно быть направлено не на технологию, а на ее конкртеное применение. Заметьте, что я не написал книгу о создании надоедливой рекламы во Flash. Точно так же, я не написал книгу об использовании Flash как единого фронт-энда для Drupal (чего я не допускаю). Нет, я написал книгу о том, как создавать отдельные Flash-компоненты (виджеты), использующие мощь Drupal, включая реализацию мультимедиа на вашем Drupal-сайте (и в этом Flash превосходен). Также, я не понимаю, почему некоторые люди считают, что если Flash неопенсорсный, то это неуместная технология и она не должна использоваться. Конечно, это все субъективно, но я верю, что Flash сегодня является важной технологией. Это не означает, что я не вижу места для лучшей open source альтернативы в будущем, но на сегодня Flash — самая популярная платформа для мультимедиа и очень мало документации по использованию этой технологии вместе с системами управления контентом. И это знание, от которого каждый может выиграть. Спасибо за ваше мнение, но я очень надеюсь, что другие не относятся к этому так же. Travis. |
2009-07-23 |
Flash на Drupal
Автор книги — Travis Tidwell. Он уже был у нас в гостях, в записи о популярном модуле FlashVideo для Drupal. Это он его сделал. Он делает много сайтов на Flash, используя Drupal как CMS. Такому человеку хочется верить в вопросе интеграции этих технологий. Книга "Flash with Drupal" в магазине Packt Содержание книги "Flash и Drupal"Глава 1. Введение. Что можно с Flash и Drupal? Ссылки:В качестве оптимистичного заключенияПо этой теме появилась инфа на русском! Вот свежий пост от Константин Kohl, где рассказано, шаг за шагом, как построить сайт на Drupal + Flex + PureMVC, на чистейшем русском языке. Автор обещал продолжить эту серию статей. Напомню, кому пригодится этот пост. Он может пригодиться всем, кто хочет иметь расширяемую и бесплатную CMS для Flash / Flex, не программируя ее на сервере. Учтите, что об этой книге мне сообщил педантичный отморозок, а он не любит лишних движений. Житуха-то какая начинается, пацаны! |
Ваша ArrayCollection слишком разговорчива?ArrayCollection является источником множества событийСлучается, что разработчики сильно расстроены разговорчивостью коллекций вплоть до того, что используют вместо них просто Array. Событие CollectionChange рассылается при каждом изменении коллекции. Например, при удалении двух элементов и добавлении трех, разошлется как минимум 5 событий. А тогда, например, визуальные компоненты, напрямую реагирующие на изменения коллекций (они подписаны на CollectionChange), будут производить слишком много промежуточных действий, хотя их волнует только финальное состояние коллекции. Да и некоторых разработчиков откровенно пугает, что столько неприкаянных ненужных событий бродит по просторам родного и горячо любимого приложения. А оно тебе надо?Но перед тем, как с чем-то бороться, призываю все-таки задуматься. Нужно ли с этим бороться? Чем лично тебе мешает частая рассылка событий коллекции? Ведь если мешает чисто “просто так", то паранойя - это, вообще говоря, серьезное заболевание, которое можно лечить. Мне в голову приходит не так много ситуаций, когда эта проблема должна беспокоить. При адекватной разработке компоненты не реагируют на изменения коллекции молниеносно, обработка происходит в отложенном режиме. Сколько бы раз ни пришло событие, обработка произойдет только в commitProperties, например. Поэтому на работе стандартного RIA это особо не скажется. Однако бывают все-таки неприятные вещи. Например, происходит какая-то долгая обработка коллекции, которая занимает времени больше, чем кадр или несколько кадров, то приложение входит в фазу полного зависания. Изменения коллекции еще не завершились, а отрисовка уже запустилась и т.п. Если все-таки надо.Когда посещают мысли что-то с этим делать, то конечно, немедленно хочется воспользоваться методом disableAutoUpdate, который позволяет отменить рассылку событий. Вызвав этот метод, вы можете быть уверены, что никто не узнает об изменениях коллекции. Метод enableAutoUpdate включит рассылку событий обратно. Обратите внимание, что это приведет к рассылке всех событий, накопленных за время “молчания” коллекции. Казалось бы все просто. Но тут есть интересная особенность. В зависимости от того сколько раз вы вызвали disableAutoUpdate, столько раз и придется вызвать enableAutoUpdate, чтобы кто-нибудь все-таки узнал об изменениях. Это может быть неудобно, особенно, если учесть, что, например, DataGrid использует эти механизмы сам. Если вы хотите сами решать, когда сообщать об изменении коллекции, то можно унаследоваться от класса коллекции и переопределить метод enableAutoUpdate таким образом, чтобы рассылка никогда не возобновлялась. Однако это приведет к тому, что коллекция все равно будет сохранять данные о своих изменениях. Тут есть еще интересная особенность. Вызов метода refresh приводит к рассылке события CollectionChange вне зависимости от того, отключен автоапдейт или нет. Не знаю, баг это или фича, но этот же метод еще и обнуляет массив накопленных за “время молчания” изменений. Таким образом, переопределив метод enableAutoUpdate и вызывая refresh только тогда, когда сочтете нужным, вы решите проблему рассылки лишних событий и их накопления в коллекции. |
2009-07-22 |
Media 2.0 — Open Source Media Framework для разработчиков 21 июля Adobe выпустила в Open Source разработку Open Source Media Framework (OSMF. Ранее проект носил рабочее название Strobe). Что этот фреймворк собой представляет и чем он может пригодиться нам, профессиональным бездельникам, в смысле, разработчикам? Open Source Media Framework — открытая, многоуровневая, слабо связанная, гибкая и целостная система для разработки мультимедийных проектов любой сложности, использующих преимущества современной информационной насыщенности и связанности сети, или не использующих. Архитектура AS3-фреймворка OSMF создана специально для работы с медиа-данными любых типов и объемов. От несложной фотогалереи до многопользовательского видео-портала с подключенной социальной сетью, наноблогами, блекджеком и эффективными менеджерами — вот спектр применения OSMF. Цели Open Source Media Framework
Но, как реальный проект на OSMF может выглядеть в жизни?Пример: разработчик и/или дизайнер создает медиа-плейер во Flex, Flash или Catalyst. Потоковое вопроизведение обеспечивается установленными у поставщиков контента серверами типа Red5 или FMS, а фреймворк дает средства интеграции с разными системами, есть плагины и можно делать свои. Платформа Flash обеспечивает проигрывание видео и других типов контента. Компании типа DoubleClick предоставляют элементы рекламы для показа в заданной позиции видео, плейлиста, или реализующие распределенную рекламную кампанию внтутри медиа-системы, рекламу, которая подстраивается под метаданные. Приложения от компаний типа KickApps помогают встроить плейер в социальные сети типа Facebook. Компании типа Level(3) занимаются синдикацией потоков данных для выдачи их внешним API. И ко всему этому можно подключить еще много разных сервисов и датапровайдеров, да хоть кофеварку на USB. И получается, что если ты еще вчера работал на дядьку, которому делал видео-портал (мы знаем, как это "легко"), а он тебе как-то нехотя платил, не забывая покупать себе новые машины, то сегодня ты с парой своих друзей можешь оставить его на произвол судьбы и сделать все сам. Фреймворк такой. Заканчивая это славное маркетинговое вступление, отметим: некоторые объясняют действия Adobe по открытию исходников OSMF как попытку выиграть в борьбе за стандарты сетевого видео. Не станем спорить, ведь любая здоровая компания стремится быть первой, и при должном усилии и хорошей карме (да-да) становится ею. И тут же мы станем утверждать, что OSMF родился естественным образом, как ответ Flash на современное состояние той экосферы, ключевой частью которой Flash является. Сегодня во Flash — огромное количество медиа-информации и систем управления ею, разработчиков и дизайнеров, библиотек и фреймворков, рекламных сервисов и решений для монетизации, медиа-площадок и поставщиков контента, социальных сетей, систем аггрегирования и рейтинга — всего того, что неоднозначно называется Web 2.0, и в формировании чего Flash Player сыграл и играет важную роль. Так много всего, как с этим можно работать? Как студии, компании, поставщики контента и разработчики могут применить богатство технологий Веб 2.0 на практике? Используя Open Source Media Framework, а конкретно — интегрируя OSMF в свой проект на необходимом им уровне. Основных уровней интеграции три, и они строятся вокруг трех аспектов архитектуры OSMF. Три аспекта архитектуры Open Source Media FrameworkOSMF реализует три функциональных аспекта как части триединства MVC:
Три уровня интеграции в Open Source Media FrameworkОписанные выше три аспекта в реальной разработке превращаются в богатый выбор уровней взаимодействия с OSMF, которые можно описать тремя простыми тактическими схемами. Простыми до того, что укравший их медиа-шпион все равно ничего в них не поймет, потому что они — только для своих, опенсорсных ребят. Медитируя на эти схемы, можно постичь суть всех фреймворков мира (краткое пояснение будет ниже): Вот и завершено изучение интересных и познавательных схем. Припоминаем теперь, что ранее мы рассмотрели три аспекта OSMF: медиа-элемент, медиа-композиция и медиа-конфигурация. Архитектура OSMF устроена так, что можно работать с любым аспектом, исходя из сложности проекта. Это один из самых гибких моментов фреймворка OSMF. Вы можете перебирать атомы медиа-элементов, а можете ворочать вселенными медиа-конфигураций. Все зависит от задачи: вы берете из фреймворка нужные элементы и используете. За счет этого оптимизируется также размер SWF. И при этом вы сможете в будущем расшириться на использование других аспектов, когда это понадобится. Итак, три уровня интеграции вашего проекта с фреймворком OSMFУровень 1. Фреймворк Медиа. Строится вокруг медиа-элементов, как правило, однотипных. По большому счету, обычный видео-плейер. Включает в себя, например, открытый видео-проигрыватель OVP, работает с парой поставщиков контента. Есть возможность использовать виджеты рейтинга и рекомендации друзьям. Визуальный интерфейс подстраиваете под себя. Указываете, какие кнопки хотите показать, задаете настройки и т. п. Есть возможность подключения ко второму уровню. Уровень 2. Фреймворки Медиа + Компоновка. Это уже скорее мультимедиа-проигрыватель, в отличие от проигрывателя однотипных данных, что был на уровне 1. Здесь есть все, что было и на первом уровне, плюс интеграция с метаданными, метками (cue points) и языком разметки презентаций SMIL, что выливается в возможность встраивания в приложение плагинов для монетизации, то есть подключения к статистике, рекламе, рекламщикам, и прочим полезным проходимцам. Уровень 3. Фреймворки Медиа + Компоновка + Конфигурация. Полномасштабная машина для автоматической сборки и переработки разнообразного контента в лулзы и / или денежную массу. Приложение размечено на медиа-регионы: тут у нас логотип спонсора данного клипа, тут баннер его друзей, а тут виджеты пока неизвестных третьих лиц, но тоже обещали заплатить. В дополнение к уровням 1 и 2 добавляется синдикация контента и динамический интерфейс. Здесь же — ваши плагины и плагины сети партнеров. Да, и все это уже кое-как работает. Примеры в Adobe, как вы понимаете, делались не для демонстрации эффекта мокрого пола, а для показа неброских, но важных программных решений: Пример приложения Open Source Media Framework на Flex, 406 Кб:
Пример OSMF-приложения на Flash, 24 Кб:
Source: FlashMediaPlayerTest.zip Как это выглядит в коде: Flash-проект на OSMF, ActionscriptНиже приведены важные относительно OSMF части кода из второго примера (Flash), остальное можно скачать и посмотреть (но осталось там немного). Итак, сначала мы создаем два медиа-спрайта типов MediaElementSprite и MediaPlayerSprite соответственно. Первый, MediaElementSprite, рассчитан на отображение медиа-элементов с признаками IViewable и ISpatial, т.е. ЯСмотрибельный и ЯСоСвоимиРазмерами. Годится для использования как во Flash, так и во Flex. Второй, MediaPlayerSprite, умеет автоматически создавать для себя MediaPlayer и проигрывать его содержимое: package { public function FlashMediaPlayerTest() { elementPlayer = new MediaElementSprite(); mediaPlayer = new MediaPlayerSprite(); Когда мы жмем на кнопку "1. Создать Media Element", вызывается метод onMediaElementTest. Он создает элемент простого типа — ImageElement (картинка типа JPG, PNG, GIF) и присваивает его свойству elementPlayer.element. А elementPlayer не загружает его автоматически, а ждет события, например, нажатия на "2. Загрузи Media Element" чтобы обработать признаки элемента и решить, что с ним делать. А когда жмем на "3. Создай Media Player", то вызывается onMediaPlayerTest. Он создает элемент типа VideoElement и присваивает его свойству mediaPlayer.element. VideoElement по умолчанию обладает признаками IAudible, IBufferable, IPlayable, ISeekable, ISpatial, и IViewable. Так что наш mediaPlayer автоматически загружает и проигрывает его. Функция testWrapper переключает отображение на экране наших двух плейеров: elementPlayer и mediaPlayer. А также задает размеры медиа-элемента и указывает его ориентацию, в данном случае это private function onMediaElementTest(event:Event):void { testWrapper(elementPlayer); elementPlayer.element = createImageElement(); } private function onMediaPlayerTest(event:Event):void { testWrapper(mediaPlayer); mediaPlayer.element = createMediaElement(); } private function createImageElement():MediaElement { return new ImageElement(new ImageLoader(), new URLResource("http://webzoom.freewebs.com/sunnycooker/Fun-Panel%20LAS%20Image.JPG"));; } private function createMediaElement():MediaElement { return new VideoElement(new NetLoader(), new URLResource("http://flash-ripper.com/tests/osmf-composition-player/video/Bad_Vlad_-_Encyclopedia_Dramatica.flv"));; } private function testWrapper(wrapper:ScalableSprite):void { if(currentSprite) { removeChild(currentSprite); } wrapper.scaleMode = ScaleMode.LETTERBOX; addChildAt(wrapper, 0); currentSprite = wrapper; currentSprite.y = 60; currentSprite.setAvailableSize(stage.stageWidth, 340); } Как в коде обрабатываются признаки медиа-элементовПри нажатии на кнопку "2. Загрузи Media Element" происходит работа с признаками элемента MediaElementSprite. Мы определяем, имеет ли данный элемент признак ЯЗагружабельный и если да, то готов ли он к загрузке, и если он готов, то загружаем его: //MediaPlayer загрузится сам, а вот MediaElement - нет. private function load(event:MouseEvent):void { if (currentSprite is MediaElementSprite) { if (elementPlayer.element.hasTrait(MediaTraitType.LOADABLE) && (elementPlayer.element.getTrait(MediaTraitType.LOADABLE) as ILoadable).loadState == LoadState.CONSTRUCTED) { (elementPlayer.element.getTrait(MediaTraitType.LOADABLE) as ILoadable).load(); } } } private var currentSprite:ScalableSprite; private var mediaPlayer:MediaPlayerSprite; private var elementPlayer:MediaElementSprite; } } Как видите, ничего военного в OSMF нет, это всего лишь гениальный по своей архитектуре конструктор. Если этот пример кажется вам простым, то гляньте в исходник флексового CompositionPlayer.zip. В этой вводной статье мы для лаконичности ограничимся малым кодом, а в следующих статьях по OSMF рассмотрим более сложные примеры. ОК. Я готов положить свою жизнь на алтарь медиапотока. Куда платить членские взносы?Никуда. Все это я даю вам сегодня бесплатно:
Целую, |