Flex и RIA блоги



2007-10-21

21:53:10, 33 коровы
Вся правда о Видео во Flex. Часть 5. NetStream, обработка напильником.

В этой части мы поругаемся на NetStream.

Грубо говоря NetStream - это основа всей работы с видео/аудио. На мой взгляд основа чего-либо должна быть идеальна, ну или хотя бы близка к идеалу. А тут нам подогнали реально сырое(? или просто глюченое) решение.
В процессе решения нам понадобится всего пара-тройка напильников

Напильник номер один

NetStream - как есть просто не приспособлен для работы с видео. Если попытаться использовать пример их хелпа, то мы после запуска видео сразу же ловим эксепшин:

Error #2044: Unhandled AsyncErrorEvent:. text=Error #2095: flash.net.NetStream was unable to invoke callback onMetaData. error=ReferenceError: Error #1069: Property onMetaData not found on flash.net.NetStream and there is no default value.
 

Добрые индусы забыли добавить в NetStream метод onMetaData. Верне не один метод а всего два: onCuePoint, onMetaData, вобщем эти методы я подглядел в классе VideoPlayer, правда уже после того как я наловился эксепшинов ) еще там они объявляют метод onPlayStatus, но я не сильно старался понять зачем этот пустой метод нужен:).
И тут на выручку нам приходит напильник, просто наследуемся от NetStream и вставляем не хватающие методы, я просто стал диспатчить события с полученной инфой чтобы все выглядело однообразно:

class VideoNetStream extends NetStream
{
public function VideoNetStream(connection:NetConnection)
{
super(connection);
}

public function onMetaData(info:Object, … rest):void
{
var evt : NetStatusEvent = new NetStatusEvent(“metaData”);
evt.info = info;
dispatchEvent(evt);
}

public function onCuePoint(info:Object, … rest):void
{
var evt : NetStatusEvent = new NetStatusEvent(“cuePoint”);
evt.info = info;
dispatchEvent(evt);
}
}

Напильник номер два

В данной ситуации я даже незнаю кого обвинять, или адоб или создателей firefox (далее фф). Вобщем в ФФ флеш плеер не соображает когда ему скормили неверный урл. вернее 50/50 иногда есть событие что поток не найден а иногда нет, вот например на такой урл

http://qweqweqweqweqw

фф не будет ругаться и будет пытаться молча найти его всю свою жизнь, естественно уходы в раздумия на долго не радуют пользователя и он убивает фф :’(.
ИЕ работает как часики ) сразу же ругается на неверный урл.
Напильником номер два мы переопределяем метод play у NetStream и вставляем таймер который отвечает за таймаут соединения(если стрим в течении например минуты не отвечает то мы сам диспатчим событие об ошибке). Код я не буду приводить ибо его нужно чистить и приводить в порядок, а кому нужно тот сам напишет)

Грабли номер три

Если в ситуации описанной выше у ФФ еще делать close() (даже после таймера) и заново подсунуть неверный урл, то ФФ просто падает (play(badUrl) -> close() -> play(newBadUrl));
В данной ситуации нужно еще переопределить метод close() вставив проверку на то как жилось стриму до этого.

и закусочный напильник

Учитывая асинхронность работы NetStream при “нервном пользователе” не успевает сделать close(). На приход в себя, как показывает практика, достаточно 500-1000 мс.

Что я сделал собрав эти грабли с напильниками

У меня получился класс VideoNetStream, который сам справляется с критическими ситуациями, в моем случае он просто игнорирует вызовы всех методов до тех пор пока сервер или не отдаст ответ или пока сам стрим не поймет что он не дождался. я сделал флаг isBusy который показывает окружающему миру, что стрим еще думает.

Если есть какие-то еще “фичи” стрима, пишите, будем добавлять.
Если где-то написал не то говорите )

Продолжение серии может будет, а может и нет )

И немного десерта

читать и смотреть, сначало немного на русском, а потом и официальный сайт
с картинками

upd: решил поиграца


12:58:22, LIFE.Flash
Участие в войне

По наводке Роста - решил поучаствовать в Blogowar - в войне блогов.
Blogowar.ru — это игра в «Царя горы». Если ты забрался наверх — то слава на пять минут твоя, но потом тебя быстро скидывают. Цифры отражают только текущую, сиюминутную ситуацию на боевом поле и поощряют наглых новичков.

Вообщем см. сами.
Я играю в Blogowar.ru, чего и вам советую.

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

12:42:31, Flash-ripper.com
Война блогов: игра такая

Нет, сейчас речь пойдет не о схватке пузомерок MSFT vs. ADBE.

Есть другая игра: Blogowar.ru. Там блоги сражаются за унцы. Там есть своя валюта, оружие и магия. Это что-то новое, возможно бессмысленное, но интересное. В магазине продают оружие: Клавиатура мертвого сисадмина, доспехи: Картина Казимира Малевича, Четкая олимпиечка и Сексуальное белье, корона: Корона (1 шт.), магия: большой выбор флеймболов плюс окончательный еБизнес, короче — блогосфера отдыхает Ж-)

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

(UPD: Я поинтересовался и узнал—проект Blogowar.ru создан студией электронных развлечений. Похоже, они знают толк в играх.)

Интересно, есть ли что-то подобное за пределами рунета?


09:23:04, Garbage Collector
Работа с сookies в as3 приложениях

Для хранения информации на стороне клиента в ActionScript предусмотрен объект SharedObject — своеобразный аналог всем известных Cookies. Но возникают ситуации, когда вашему as3 приложению было бы неплохо получить доступ именно к cookies (скажем сайт имеет две версии — html и flash, и вы хотите сохранить какие-то предпочтения пользователя как для html так и для flash версии сайта). Конечно, данную задачу можно решить различными способами, и один из них — это предоставить вашему приложению возможность работать с cookies.
(more…)


00:12:56, 33 коровы
Миру мир - войне не нужно!

Простите за бред пьяного, но ебать сколько усилий человечество тратит на войну, на эти конченые военные разработки, на эту жопу, которое одно государство гарантирует другому в случае чего, это пиздец сколько в мире добоебов которые не могу жить спокойно уважая (даже на хуй то уважение - нейтрально) друг друга, сколько бабла вкладываться в разработку нового оружия и прочей человекоубийственной гадости, зачем?! - ради денег за ради денег! Сколько можно было сделать полезных дел, и вещей сколько жизней можно спасти. загляните в любые новости - “Иран способен выпустить 11 тысяч ракет и снарядов по военным базам врагов в первую минуту нападения на иранскую территорию” - Зачем?! потратим много денег за ради много убийства. лучше бы они это бабло подарили индусам которые делают флекс %). вообще ВСЕ СИТУАЦИИ МОЖНО РЕШИТЬ с миром, главное любить окружающих и чтобы они любили окружающий мир.

Вобщем главная идея этого бреда в том, что если вы попали в конфликтную ситуацию, то подумайте 3 раза как ее решить мирно, если не получается, то подумайте еще 3 раза и решите мирно.

з.ы. поспорить на работе это клёва ) главное чтобы консенсус организовался!

мега з.ы.
посмотрите на людей вокруг себя, даже не смотрите скажите “спасибо” продавцу, или спросите “вам помочь?” пожилому человеку с чемоданом, или просто улыбнитесь людями вокруг, и жить станет легче! или же похуй, но кому-то будет приятно.

вобщем смотрите по сторонам - вы не пуп земли, но гдето рядом если вести себя хорошо!)

ну и в отвлечение от этой темы - “Что лучше: Singleton или использование статических членов класса?” от Garbage Collector


00:12:56, 33 коровы
Миру мир - войне не нужно!

Простите за бред пьяного, но сколько усилий человечество тратит на войну, на эти конченые военные разработки, на эту жопу, которое одно государство гарантирует другому в случае чего, это ужас сколько в мире идиотов которые не могу жить спокойно уважая (даже на фиг то уважение - нейтрально) друг друга, сколько бабла вкладываться в разработку нового оружия и прочей человекоубийственной гадости, зачем?! - ради денег за ради денег! Сколько можно было сделать полезных дел, и вещей сколько жизней можно спасти. загляните в любые новости - “Иран способен выпустить 11 тысяч ракет и снарядов по военным базам врагов в первую минуту нападения на иранскую территорию” - Зачем?! потратим много денег за ради много убийства. лучше бы они это бабло подарили индусам которые делают флекс %). вообще ВСЕ СИТУАЦИИ МОЖНО РЕШИТЬ с миром, главное любить окружающих и чтобы они любили окружающий мир.

Вобщем главная идея этого бреда в том, что если вы попали в конфликтную ситуацию, то подумайте 3 раза как ее решить мирно, если не получается, то подумайте еще 3 раза и решите мирно.

з.ы. поспорить на работе это клёва ) главное чтобы консенсус организовался!

мега з.ы.
посмотрите на людей вокруг себя, даже не смотрите скажите “спасибо” продавцу, или спросите “вам помочь?” пожилому человеку с чемоданом, или просто улыбнитесь людями вокруг, и жить станет легче! или же всеравно, но кому-то будет приятно.

вобщем смотрите по сторонам - вы не пуп земли, но гдето рядом если вести себя хорошо!)

ну и в отвлечение от этой темы - “Что лучше: Singleton или использование статических членов класса?” от Garbage Collector


2007-10-20

16:47:10, Flash-ripper.com
Производительность Silverlight и Flash

Уже неоднократно звучали утверждения о том, что Silverlight значительно быстрее Flash.

Реклама в заголовках, извинения — в примечаниях

Подавая в выгодном свете выигрышные аспекты весьма молодой платформы, маркетинг и евангелисты получают новых поклонников. Но когда вскрывается несоответствие уровня реализации технологии ожидаемому, то отдуваются уже саппорт и разработчики платформы. Разработчику приложений необходимо учитывать незавершенность технологии при выборе таковой.

Важным упущением в оценке производительности технологии является игнорирование текущей стадии ее разития. Например, отрисовка экранных шрифтов: легко заметить, что на этом примере (Silverlight) слаживание шрифтов еще хромает, и это сказывается на качестве надписей. Доведение сглаживания "до ума" потребует изменения алгоритма сглаживания и/или увеличения системных ресурсов, требуемых для реализации полноценного сглаживания.

Пирог производительности

Общая производительность системы — не резиновая, это скорее пирог, который делится между разными аспектами технологии. Сырые моменты в молодой технологии есть всегда (они есть и в старых). Каждый из них при доведении реализации до полноценной будет отъедать свою часть пирога производительности, что скажется на общей скорости работы системы и снизит быстродействие тех частей, что раньше были быстрее.

Для сравнения: поиграйте с этим деревом на Flash и с этим деревом на Silverlight (жмакните "GO", а затем иконку дерева наверху).


2007-10-19

21:42:49, Garbage Collector
Что лучше: Singleton или использование статических членов класса?

Наверняка ведь многие задавались вопросом: «Почему бы не использовать вместо Одиночки обычный класс со статическими методами и свойствами?». В ActionScript 3 создать Singleton без дополнительных маневров не получится и бывают случаи, когда хочется попросту обойтись без них.

(more…)


21:22:26, Flash-ripper.com
Конец недели Майкрософт и начало смерти Web 2.0

Завершена неделя Microsoft на сайте Ф. Потрошителя. Список постов по теме:

  1. Платформа Windows Live: возможное будущее сетевого десктопа
  2. Silverlight, веб-технология от Microsoft: XAML = XAML = XAML
  3. RIA vs. RiA: неделя Microsoft на сайте Флэша Потрошителя
  4. Почему Wallop ищет Flex-, а не Silverlight-программиста
  5. Microsoft Communications Server 2007 и видеопочта на Flash
  6. RIA или RiA: в чем проблема, которой пока не видно
  7. Почему я пишу о Microsoft
  8. Microsoft 2.0: Рэй Оззи вместо Билла Гейтса
  9. Публичный запуск Microsoft Popfly. Приложения методом drag-n-drop от Microsoft
  10. Создание HTML-страницы в Microsoft PopFly
Надеюсь, что в этих постах я приблизился к поставленной цели—расширить кругозор читателей Ф. Потрошителя (и свой заодно) и дать повод к пониманию надвигающейся смерти Web 2.0. Сейчас я не шучу. Уже в том факте, что корпорация такого масштаба обращает свое внимание на что-то, подразумевается, что это что-то достаточно развилось, чтобы вскоре начать перерождаться—это первое. Второе: если у Майкрософта все получится, сеть захлестнет новая волна школьного творчества. Убогий дизайн страниц MySpace покажется цветочками по сравнению с невероятными персональными хоумпейджами Пупкиных2.0, построенными на MicroSoft SharePoint PopFly. Я не верю, что профессиональные дизайнеры перейдут на Expression: я его уже попробовал как заменитель Photoshop. Бросил в тот момент, когда понял, что создать текст без антиалиасинга в нем невозможно. Хотя что-то в этом Expression есть: но вы попробуйте заставить закоренелого дизигнера перейти хотя бы на новую версию Фотошопа, куда там на Экспрешшен. А вот новое поколение очень даже может все это схавать, ведь оно новое и оголтелое: радуйтесь, что они пока с нами.

Впрочем, выводы делать рано, да я и пока их и не делал. Одно понял: у жителей сети впереди самые веселенькие деньки за всю историю веба.

Следующая неделя на Ф. Потрошителе посвящается чисто MVC. На выходных буду писать стремные посты из свежеустановленного Flock'а (клевый).

И на закуску: топ евангелистов Adove vs. Microsoft.


15:45:15, Flash-ripper.com
PV3D по-русски: перевод Papervision3D-wiki и Flex в IDEA7

Алексей 'Yelbota' Фомкин перевел на русский язык вики к Papervision3D и выложил как PDF: FAQ для начинающих в Papervision3D.

А ruFlex обсуждает вышедшую на днях IDEA7 с еще сырой, но уже поддержкой AS3 и MXML.


11:35:14, Flash-ripper.com
Создание HTML-страницы в PopFly

Продолжение предыдущего поста о выходе PopFly—уменьшаю количество буков.

Создаю HTML-страницу: Create Stuff > Web Page. Попадаю в редактор, напоминающий урезанный MS Word из Office 2007, с открытой заготовкой документа. Предлагаемый по умолчанию дизайн страницы... гм... не будем об этом (но внизу уже красуется надпись "All rights reserved". Ведь мировой Вася Пупкин за свои права до сих пор волнуется). Впрочем, есть широкий выбор тем в духе поздних 90-х, стилей, цветов и шрифтов. Как же вставить Машап в страницу? Нужно чтобы он был зашарен. Иду в свои "проекты" и там — ураНаконецТо( правда ): тишина(0); — возле каждого из своих творений вижу "Share". Жму ее, появляется кнопка "Mash Out", а в ней—"Embed", "Download..." и стратегическая "Share on Facebook".

Делаю embed (используют iframe): (Сорри. Silverlight-содержимое пришлось переместить под кат (в комментарии), потому что:

Я не знаю че ты сделал, но у меня какой PopFly в Safari на маке каждые 10 секунд алерты выкидывает. скрой пост под каттом плиз, читать блог не возможно—Nirth.
Потом вставляю машап в созданную в PopFly страницу, и вот оно, творение.

Навеяно интерфейсом PopFly: похоже, слухи о мега-производительности Silverlight слегка преувеличены. Да, есть анимации (часто одиночные) что выглядят глаже, чем аналогичные во флэше.

UPD: Сравниваем с конкурентом (спасибо за ссылку, Валентин).

UPD2: Самое вкусное: PopFly создан командой SharePoint. Это означает вот такие до боли (и это не шутка) знакомые многим веб-дизайнерам части исходного кода в моей первой странице:

<span id="ctl00_ctl00_cphHeader_cphToolbar_projectRating_TotalProjectRating" class="ratingControl savedRating"></span>
Что ж, для первого PopFly хватит.

10:06:17, Garbage Collector
Возможности для работы с видео в Flash Lite 3

В предверии выхода Flash Lite 3 в Adobe Mobile and Devices Developer Center опубликована статья «Flash Lite 3 video capabilities», в которой дается обзор основных возможностей новой версии мобильного плеера для работы с видео.

(more…)


09:28:41, Flash-ripper.com
Запуск Popfly. Приложения методом drag-n-drop от Microsoft

Хорошее завершение посвященной MSFT недели: они только что запустили PopFly. По словам создателей, этот онлайн-редактор позволяет создавать Silverlight-приложения и html-страницы методом тыка (злобный маркетинговый ход: как будто до PopFly метод drag-n-drop не был реализован в куче IDE и веб-приложений, включая Yahoo! Pipes. Но о прелестях военного маркетинга потом. Посмотрим на PopFly критически).

РорFly работает в браузере и сам является Silverlight-приложением (+html). Чтобы использоать его, нужно зарегистрироваться онлайн (уже начиная с этой страницы используется шрифт "Segoe UI", который также по умолчанию задан в MS Expression, а сегодня на него перешел и блог Скотта Барнса). Испытаем PopFly сейчас же.

Создание смеси сервисов ("mashup") в PopFly

Пишу текст по мере продвижения по интерфейсу PopFly и совершения действий:

Зайдя в PopFly, вижу две основные опции: 1) Создать Mash-up (смесь сервисов) и 2) Создать веб-страницу. Ниже идут примеры. Выбираю "Создать Mashup" и попадаю на страницу редактора, это почти фуллскриновое Silverlight-приложение (в наличии фичи, за которые флэш ругали три года назад: попукивающие, переанимированные кнопки меню). Захожу в категориию Images & Video, выбираю Flickr—начнем с классики. На сцене появляется кубик, представляя собой Flickr. Интуитивно находится иконка Settings, жму туда. Там отмечаю кнопку "Switch to an advanced view" и конечно же жму. Вижу там JavaScript: (код вырезан, поскольку не нес смысловой нагрузки—как оказалось).

Возвращаюсь в обычный вид ("Go back to the simple view"). Вижу веб-форму для задания параметров моего фликр-кубика (но сама форма выполнена на html, лежит поверх Silverlight).

В поле "text" ввожу знaчение "RIA", а "number" задаю равным 10. Проверяю Advanced View—изменился ли код. Нет, не изменился. Нажимаю на ключ, чтобы вернуться. Жму Preview. Появляется 10 фоток.

ОК, хочу показать это друзьям. Жму Save. Русский не поняло. Пишу по-английски. Отвечает, что 'Flickr' требует Developer Key. И не сохраняет.

Пошел на Flickr, взял ключ. Ввел. Сохраняю. Получилось. Как опубликовать? Не вижу. Хожу по меню — нет ни "Share" ни "Publish".

Иду в Tutorial (убегающие от мыши кнопки Prev-Next в нем немного раздражают). Прохожу. Создаю Image Sphere из Live Image Search. Жму Preview. Получаю ошибку ERROR: liveImage: Error from search: Component returned failure code: 0x805e000a [nsIXMLHttpRequest.open]. Иду дальше по туториалу—про публикацию ни слова.

Прохожу следующий. Тут Twitter сцепляется с Virtual Earth через GeoNames, чтобы показывать местоположение твиттерящих граждан. Это уже интереснее. И в конце этого туториала—о чудо! упоминается, что я могу запостить машап на html-странице, только ее сначала нужно создать.

Продолжение: создание HTML-страницы в PopFly.


09:27:21, RIA crumbs
Новые обучающие статьи и видео уроки по AIR.

Mike Chambers собрал массу полезных ссылок с интересными статьями и видео демками связанных с AIR.

Вот некоторые статьи которые могут быть полезны:


2007-10-18

20:21:12, Flash-ripper.com
Флекс-дебаггер от Андрея Горбатова: html-минимализм

Имитация trace в Adobe Flex — так Андрей назвал статью о собственном простом и элегантном флэш-дебаггере. Хорошая идея: создать внутри html-документа поверх флэш-приложения обычное текстовое поле и выводить туда отладочные сообщения.

Я подумал: создание трейсера — классисическая задача, и каждый разработчик решает ее с огоньком. При всем разнообразии трейсеров у каждого получается по-своему хорошо: ведь для себя делаешь и не на один раз.


18:17:55, Flash-ripper.com
Линукс-система “Express Gate” встроена внутрь материнской платы

Оптимистичное дополнение к нашей недавней беседе о сексуальной стороне Линукса: ASUSTek анонсировала новую материнскую плату Asus P5E3 на последнем чипсете Intel X38. В материнскую плату вшит Linux, называемый ASUS как “Express Gate” (гм, а если я все же захочу туда винду установить?). Этот Linux готов к работе сразу после подключения железа. В нем уже предустановлены Firefox и Skype. Стоит все это $360.

Даешь вшитый в мамку флэш-плейер!


13:38:59, Flash-ripper.com
Microsoft 2.0: Рэй Оззи вместо Билла Гейтса

Уже более года должность Билла Гейтса занимает Рэй Оззи. В следующем году Билл уйдет из MS навсегда, а Оззи станет главным стратегом технологий Microsoft, на все 100%. Кто такой Рэй Оззи?

Рэй Оззи до Microsoft

В первую очередь Рэй Оззи известен как создатель легендарных IBM Lotus Notes. В свое время (80-е, задолго до Windows) этот пакет был лидером коммуникаций. В нем есть почтовый клиент, мессенджер, браузер, блокнот, календарь, сервер... Этот продукт компании Iris Associates оказался на пике успеха в 1994 году и тогда компания Iris была куплена компанией Lotus. А через год уже сама компания Lotus была куплена IBM, а Оззи был назван "Человеком года" журналом PC Magazine (но на первом успешном продукте Рэя Оззи был поставлен крест—мое мнение). Проработав в IBM 2 года, Оззи ушел и создал новую компанию Groove Networks, где разработал новое ПО для сотрудничества по принципу т.н. одноранговых сетей (т. е. peer-to-peer, P2P). Через 8 лет, в апреле 2005 года, Microsoft купила Groove Networks, своего конкурента. Вскоре Оззи попал в высшее руководство Microsoft, став одним из трех CTO (Chief Technology Officer, главный инженер).

Microsoft на пике кризиса

Уже в 2005 году в Microsoft хорошо понимали, что проигрывают конкурентам по многим ключевым позициям. Момент истины: 28 октября 2005 года Рэй Оззи разослал высшему руководству Microsoft внутрикорпоративное письмо с острым содержимым, озаглавленное как "The Internet Services Disruption". Спустя два дня Билл Гейтс написал к письму Оззи вступительное слово, дал своему сообщению более мягкий заголовок "Internet Software Services" и, приаттачив письмо Оззи к своему, разослал его уже и ведущим инженерам компании. В конце письма Билл сообщил, что Оззи становится главным рулевым на ближайшие 5 лет. Текст Оззи был перченым: всего 5000 веских слов, немного шокирующих, в Майкрософте уже давно пахло жареным. Вскоре письма дали течь в сеть (в MS тоже водятся крысы).

Суть письма Оззи: возмущение тем, что МС не является лидером в основанных ею (сетевых) технологиях, включая AJAX (был впервые использован MS для OWA). Было отмечено лидерство Google в поиске, PDF в формате онлайн-документации, Skype в VoIP и т.д. — во всех этих сферах MS работала активно, но без желаемого успеха. Желание такое: быть первыми или исчезнуть.

Не только большие конкуренты, но и тысячи мелких стартапов стали объектом рассмотрения Оззи. Главные их качества—скорость, простота и слабая связанность были отмечены как важнейшие составляющие быстрых инноваций.

Но им, по мнению Рэя, не хватает нескольких отлаженных механизмов, как то: аутентификация пользователя, гибкая монетизация, расширяемость, взаимодействие друг с другом, а также способы доставки, разворачивания, установки и поддержки ПО. Этим тысячам бизнесов нужна платформа, дающая все необходимые сервисы, считает Рэй Оззи (вот ее схема на сегодня).

Акценты в обращении Рэя Оззи к Microsoft:

  1. Сила новой бизнес-модели, основанной на распределенной (контекстной) рекламе.
  2. Эффективность новой модели распространения ПО.
  3. Потребность в ПО, которое просто выполняет свою работу, а не лезет во все дыры (но при необходимости интегрируется с другими продуктами).

Там же узнаем, что Microsoft была недавно разбита на три дивизии:

  1. Platform Products & Services Division
  2. Business Division
  3. Entertainment & Devices Division

Рэй Оззи считает, что Microsoft сможет выйти из кризиса, если будет следовать трем основным постулатам:

  1. Использовать силу онлайн-рекламы как фундаменальной экономической модели.
  2. Разработать новый механизм распространения приложений.
  3. Использовать имеющийся у Microsoft огромный опыт работы с пользователями.

Было поставлено ударение на том, что сделать все указанное нужно быстро.

Рэй Оззи об эффектвной разработке ПО:

"Сложность убивает. Она высасывает жизнь из разработчиков, усложняет планирование, создание и тестирование продуктов, приводит к дырам в безопасности, и выводит из себя пользоватлей и администраторов. Двигаясь вперед, во всех частях организации каждый должен спросить себя: "В чем разница?", исследовать и принять методы упрощения.

Рэй приводит классический пример упрощения:

"повышая частоту релизов продукта, мы автоматически снижаем сложность каждого релиза—это диктует сама необходимость"
и еще один:
"вместо того, чтобы решать все вопросы на бесконечных совещаниях в конференц-залах, в необъятных потоках почты и редакциях документов, можно просто встретиться на рабочем месте и обсудить вопрос быстро".

Не десктоп против сети, а десктоп плюс сеть

По словам Оззи, новая стратегия Microsoft—не в копировании успеха короля сети Google. MSFT собирается обойти его за счёт представления комбинации ПО для десктопа и сетевых сервисов для него. Модель чисто настольного или чисто сетевого приложения ущербна: в случае только-сетевого ПО пользователь должен постоянно находиться в сети, чтобы отредактировать текст. Microsoft предлагает нечто среднее: не "софт-сервис" (как Google Docs), а "софт плюс сервис" (следует понимать, это будет Live Office).

А тем временем, в том же 2005 Google и Sun уже договорились вместе делать интегрированный в Gmail StarOffice, являющийся прямым конкурентом MS Office, одной из дойных коров Microsoft, приносящей ей треть прибыли—тучи над MSFT сгущались.

Таймлайн взлета Рэя Оззи в Microsoft

  • Апрель 2005: приход бывшего конкурента Рэя Оззи в Microsoft.
  • Октябрь 30, 2005: внутрикорпоративное письмо Оззи и Билла с описанием кризисной ситуации и сообщение о назначении Оззи на должность Chief Technical Officer (CTO).
  • Июнь 15, 2006: Рой Оззи занимает должность Билла Гейтса (Chief Software Architect). Это означает: теперь он контролирует техническую стратегию компании и архитектуру ПО. Сюда входит разработка платформы сервисов для ПО нового поколения.
  • Июнь 2007: Билл Гейтс публично представляет Рэя Оззи как своего преемника. Третий слева:

    Билл Гейтс, Крейг Манди, Рэй Оззи и Стив Балмер перед пресс-конференцией, на которой были обнародованы планы грядущих перемен в руководстве Microsoft

  • Июнь 2008: Билл Гейтс покидает Microsoft. Обязанности главного архитектора ПО (Chief Software Architect, CSA) полностью переходят к Оззи.

Мои мысли по поводу

— У Мирового Зла сменилось имя. Теперь вы знаете, кого нужно обвинять в появлении Silverlight :-) Из одного его (но не только из него) стратегического решения уделять больше внимания рекламе логически следует: 1) задействовать главные каналы распространения рекламы => 2) держать все на своей платформе => 3) создать платформу для сетевого RIA-плейера как главного рекламного носителя => 4) Silverlight.

— Я рад за Билла Гейтса. С него снимаются все обвинения. Странно, что на киевской Платформе Веб не было об этом ни слова.

— Microsoft делает очень рискованный и смелый маневр. Повернуть 70.000 сотрудников в новом направлении—это задача для титана.

— Главное впечталение программистов Microsoft от общения с Рэем Оззи: это не Билл, но он сможет. Во время так называемых Reviews (обзоров ключевых технологий самим Гейтсом, бок-о-бок с разработчиком) при Билле стоял специальный человек, подсчитывавший количество сказанных Гейтсом "fuck". Чем меньше счет—тем лучше. Например, для Джоэла Спольски насчитали всего четыре: невероятное везение. Сейчас по словам BillG Reviews можно найти не одну душераздирающую историю. Но Рэй Оззи, по словам очевидцев, никогда не ругается, как Билл; он не в пример мягче и спокойнее в работе, проявляя при этом неимоверную компетентность.

— Рэй Оззи—не выдуманный пионер сетевого ПО, он с этого начинал, когда Интернет был в мечтах.

— Насколько новаторский подход Оззи? Новаторский—с чъей точки зрения? Возможно, с точки зрения Билла Гейтса. Но не с точки зрения оголтелых флэшеров, а? Не ролучится ли так, что платформа Windows Live устареет во время своего выхода?

Ссылки по теме:

Многа букав получилось.

10:36:09, 33 коровы
IDEA-7!

Вышла IDEA-7 c поддержкой Flex. И вышла 15 числа, явно день был полный ништяков

Пока особых подробностей рассказать не могу, ибо только поставил и щупаю.

Пока нащупал стандартные возможности). Фичи и не фичи пытаються обсудить тут

Поругивается на свои неймспейсы в мхмл.

Вобщем все быстро побрасили работу и давате щупать что нам дали )


10:36:09, 33 коровы
IDEA-7!

Вышла IDEA-7 c поддержкой Flex. И вышла 15 числа, явно день был полный ништяков

Пока особых подробностей рассказать не могу, ибо только поставил и щупаю.

Пока нащупал стандартные возможности). Фичи и не фичи пытаються обсудить тут

Поругивается на свои неймспейсы в мхмл.

Вобщем все быстро побрасили работу и давате щупать что нам дали )


2007-10-17

13:12:15, Flash-ripper.com
Adobe Thermo: видео с новыми фичами!

Райан Стюарт опубликовал ссылку на видео, где показаны абсолютно новые возможности Thermo и новые менеджер этого проекта. У меня нет слов.


12:50:32, Flash-ripper.com
Почему я пишу о Microsoft

В комментарии к моему рассказу о Silverlight Иван Сергеев спросил:

"Интересно Рост, сколько тебе MS отстегнуло за эти посты ?!?!?!?"
Что ж, пришло время признаться: в среднем, Microsoft платит мне по 900-1600 долларов за пост (зависит от количества комментов). Шучу! Нисколько мне не платят. Но вопрос Ивана наводит меня на мысль, что не всем может быть понятна причина проведения недели Microsoft на сайте о Flash.

Я объясню. Главная причина: расширить видение ситуации. Чем больше мы знаем о разных, в том числе (и особенно!) о конкурирующих технологиях, тем лучше мы можем планировать собственные действия. Именно поэтому я начал с сухого перечисления планов Microsoft (в первой версии статьи были мои комментарии, я их уже вырезал): давайте оперировать фактами, а не эмоциями.

Глупо делать вид, что конкурентов не существует. Ругаться на Майкрософт, какой он плохой, на сетевые святыни покушается—еще хуже. Это просто слабость, причем проявляемая публично. Будьте сильными. Все пытаются делать деньги и получать удовольствие, а зависть к чужим успехам лишает сил.

В англоязычных блогах встречается понятие "biased opinion". Это когда автор пишет необъективно, пытаясь скрыть одно и выпятить другое. И часто это выглядит смешно (я сам писал и наверняка еще буду писать такие посты, о которых только потом понимаешь: как был глуп, смешон и наивен).

Неофициальный рупор Adobe Джон Дауделл привел цитату из Линуса Торвальдса, добавив свой комментарий:

"у нас похожие (с Торвальдсом) тенденции к тому, чтобы избегать картины мира типа "добро/зло", и принимать выбор других, отличный от нашего."
Все просто: проявлять дружелюбие к другим технологиям—это официальная позиция Adobe и это разумно (вот аналогичный пример от Microsoft). Покажите сайт, где сотрудник Adobe всерьез оскорбляет конкурентов. Если вы хотите успеха Flash—поддержите Adobe, не замыкайтесь в позиции незаконно лишенного наследства принца. Наследства не существует, есть только игра движения к цели, и чем больше мы знаем, тем ловчее наше движение, а эмоции только отвлекают.

Любить конкурентов—не прилично, а полезно. Ненавидя Microsoft (или Silverlight) вы только создаете лишний шум вместо того, чтобы учиться у них лучшему. А учиться всегда есть чему.

В следующем посте — кто стоит за нововведениями в Microsoft.


10:09:16, Garbage Collector
Лучший совет от Давыдова о том как создать популярный пост

Вот улыбнуло:

— Включите Nopizdezh Mode и пишите про то, в чем вы разбираетесь.

© Маркетинг В Маленьком Городе


2007-10-16

15:33:47, Flash-ripper.com
RIA или RiA: в чем проблема, которой пока не видно

Означенная ранее коллизия между Райаном и Скоттом — одна из многих дискуссий, что проходят в почтовых конференциях и авторитетных форумах.

Как вы знаете, термин RIA был введен в 2002 году Macromedia для обозначения т.н. "насыщенных интернет-приложений", создающих новые шаблоны пользовательского поведения и опыта. Сейчас мы видим эти шаблоны повсеместно и часть их реализации стала гордой частью Вебдваноля. Это все в браузере.

Недавно была создана технология Adobe AIR, расширяющая платформу Flash на десктоп. Затем появился Silverlight, он тоже может работать и в сети, и на десктопе.

Пока неизвестно, это ли подтолкнуло Скотта Барнса (ранее ADBE, сейчас MSFT) к утверждению, что времена изменились, и теперь вместо "Rich Internet Application" целесообразнее говорить "Rich interactive Application", так как "многие RIA вообще не нуждаются в интернете, например, приложения для софтверных вендоров" (двайвера?) Возникает вопрос: почему веб-евангелист Барнс аргументирует свою позицию на примере приложений, не предназначенных для сети?

Нововведение его сомнительно: ведь "rich interactive" это как "табак с никотином". Интерактивность есть свойство насыщенности, как никотин—часть табака.

Новые RIA-фиты пытаются проехаться на известном словечке, а заодно и хватонуть кусочек сетевого одеяла. Но почему они не хотят замечать очевидного: это может привести только к путанице и по болшому счету не выгодно никому. В любой отрасли важно единство терминологии (как в каждой науке должен быть набор аксиом). Не нравится вам RIA—придумывайте новый термин. Если уж на то пошло, то эффектнее играть словом RIA2.0, пока жив Дваноль.

Кстати, картинка в посте—всего лишь один из целой кучи отличных RIA-комиксов!


14:30:00, Flex 2 & Co
Случайная ошибка flash.accessibility
Недавно, я случайно при настройке проекта выбрал галочку Generate accessible SWF file. Потом после каждого вызова Alert у меня вываливалась ошибка:
TypeError: Error #2007: Parameter source must be non-null.
at flash.accessibility::Accessibility$/sendEvent()

Случайную галочку пришлось снять:)

14:01:54, RIA crumbs
Поиск описаний ошибок.

Набрел тут на одно замечательное Flex приложение от автора Judahs, за что ему от меня респект.

Приложение приятно облегчает жизнь тем кто хочет узнать о том куда его послали, введя код ошибки :) Так же есть ссылки на Error Wiki, Runtime Errors и Compiler Errors. Пользуйтесь на здоровье.


12:13:28, LIFE.Flash
Вакансия. Нужен AS-программер в компанию BDirect

По просьбе Александра Козловского:

В компанию BDirect требуется ActionScript 3 программер с опытом работы с as3 от года.

Обязательно знание движка “Papervision 3d”,
Отличное знание ActionScript 2.0,
Отсутствие непреодолимого панического страха при виде двух килограммов не типизированного и не комментированного as2 кода в десятом кадре мува с именем “$r15_7_999″.

Желателен опыт разработки онлайн - игр,
Знание клиент - серверных отношений.

Огромным плюсом будет знание mxml, умение писать свои mxml-компоненты, умение скинить Flex-проекты и ActionScript-проекты.

Обратная связь

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

2007-10-15

22:15:43, 33 коровы
AIR. Сюрпризы от File.browseForOpen

Поставил флекс билдер 3 и решил пощупать AIR за самые интересные места, а именно за работу с файловой системой

Взял самый простой пример их хелпа по File метод browseForOpen

воткнул его в приложение

<?xml version=“1.0″ encoding=“utf-8″?>
<mx:WindowedApplication xmlns:mx=“http://www.adobe.com/2006/mxml” layout=“horizontal” title=“Hello World”>
        <mx:Script>
                <![CDATA[
                        import mx.events.IndexChangedEvent;
                        import flash.filesystem.*;
                        import flash.events.Event;
                        import flash.net.FileFilter;
                       
                       
                       
                        public function fileOpen() : void
                        {
                                 var fileToOpen:File= File.desktopDirectory;
                                var txtFilter:FileFilter = new FileFilter(“Text *.as;*.css;*.html;*.txt;*.xml”, “*.as;*.css;*.html;*.txt;*.xml”);
                                try
                                {
                    fileToOpen.addEventListener(Event.SELECT, fileSelected);
                    fileToOpen.browseForOpen(“Open”, [txtFilter]);
                                }
                                catch (error:Error)
                                {
                        trace(“Failed:”, error.message)
                                }
                        }
                       
                        public function fileSelected(event:Event) : void
                        {
                var stream : FileStream = new FileStream();
                stream.open(File(event.target), FileMode.READ);
                var fileData:String = stream.readUTFBytes(stream.bytesAvailable);
                fileList.text = fileData;
                        }
                ]]>
        </mx:Script>
    <mx:Button id=“browse” label=“Browse…” click=“fileOpen()” />
    <mx:TextArea id=“fileList” width=“400″ height=“400″ />
</mx:WindowedApplication>

и получил огромный болт - при нажатии на кнопку “Browse…” появляется окошко, в нем выбираешь файл но никакого события не происходит ни cancel ни select вообще ничего не происходит.

3 раза перечитал хелп, погуглил, нашел интересный блог от Benjamin Dobler - RichApps и там нашел описание мероприятия от адоба и его результатов (там есть весомый архив с различными примерами AIR приложений, в том числе и работы с файловой системой). Блог нужно читать всем внимательно 3 раза ибо интересно.

Так вот его пример работал, а мой нет разница был в том что моя переменная File был объявлена локально в функции и видимо на крысу по быстрому собралась мусорщиком %).

Правильный ответ в моей проблеме это объявить переменную как свойства класса и становиться замечательно!

<?xml version=“1.0″ encoding=“utf-8″?>
<mx:WindowedApplication xmlns:mx=“http://www.adobe.com/2006/mxml” layout=“horizontal” title=“Hello World”>
        <mx:Script>
                <![CDATA[
                        import mx.events.IndexChangedEvent;
                        import flash.filesystem.*;
                        import flash.events.Event;
                        import flash.net.FileFilter;
                       
                        private var fileToOpen:File;
                       
                        public function fileOpen() : void
                        {
                                fileToOpen = File.desktopDirectory;
                                var txtFilter:FileFilter = new FileFilter(“Text *.as;*.css;*.html;*.txt;*.xml”, “*.as;*.css;*.html;*.txt;*.xml”);
                                try
                                {
                    fileToOpen.addEventListener(Event.SELECT, fileSelected);
                    fileToOpen.browseForOpen(“Open”, [txtFilter]);
                                }
                                catch (error:Error)
                                {
                        trace(“Failed:”, error.message)
                                }
                        }
                       
                        public function fileSelected(event:Event) : void
                        {
                var stream : FileStream = new FileStream();
                stream.open(File(event.target), FileMode.READ);
                var fileData:String = stream.readUTFBytes(stream.bytesAvailable);
                fileList.text = fileData;
                        }
                ]]>
        </mx:Script>
    <mx:Button id=“browse” label=“Browse…” click=“fileOpen()” />
    <mx:TextArea id=“fileList” width=“400″ height=“400″ />
</mx:WindowedApplication>

22:15:43, 33 коровы
AIR. Сюрпризы от File.browseForOpen

Поставил флекс билдер 3 и решил пощупать AIR за самые интересные места, а именно за работу с файловой системой

Взял самый простой пример их хелпа по File метод browseForOpen

воткнул его в приложение

<?xml version=“1.0″ encoding=“utf-8″?>
<mx:WindowedApplication xmlns:mx=“http://www.adobe.com/2006/mxml” layout=“horizontal” title=“Hello World”>
        <mx:Script>
                <![CDATA[
                        import mx.events.IndexChangedEvent;
                        import flash.filesystem.*;
                        import flash.events.Event;
                        import flash.net.FileFilter;
                       
                       
                       
                        public function fileOpen() : void
                        {
                                 var fileToOpen:File= File.desktopDirectory;
                                var txtFilter:FileFilter = new FileFilter(“Text *.as;*.css;*.html;*.txt;*.xml”, “*.as;*.css;*.html;*.txt;*.xml”);
                                try
                                {
                    fileToOpen.addEventListener(Event.SELECT, fileSelected);
                    fileToOpen.browseForOpen(“Open”, [txtFilter]);
                                }
                                catch (error:Error)
                                {
                        trace(“Failed:”, error.message)
                                }
                        }
                       
                        public function fileSelected(event:Event) : void
                        {
                var stream : FileStream = new FileStream();
                stream.open(File(event.target), FileMode.READ);
                var fileData:String = stream.readUTFBytes(stream.bytesAvailable);
                fileList.text = fileData;
                        }
                ]]>
        </mx:Script>
    <mx:Button id=“browse” label=“Browse…” click=“fileOpen()” />
    <mx:TextArea id=“fileList” width=“400″ height=“400″ />
</mx:WindowedApplication>

и получил огромный болт - при нажатии на кнопку “Browse…” появляется окошко, в нем выбираешь файл но никакого события не происходит ни cancel ни select вообще ничего не происходит.

3 раза перечитал хелп, погуглил, нашел интересный блог от Benjamin Dobler - RichApps и там нашел описание мероприятия от адоба и его результатов (там есть весомый архив с различными примерами AIR приложений, в том числе и работы с файловой системой). Блог нужно читать всем внимательно 3 раза ибо интересно.

Так вот его пример работал, а мой нет разница был в том что моя переменная File был объявлена локально в функции и видимо на крысу по быстрому собралась мусорщиком %).

Правильный ответ в моей проблеме это объявить переменную как свойства класса и становиться замечательно!

<?xml version=“1.0″ encoding=“utf-8″?>
<mx:WindowedApplication xmlns:mx=“http://www.adobe.com/2006/mxml” layout=“horizontal” title=“Hello World”>
        <mx:Script>
                <![CDATA[
                        import mx.events.IndexChangedEvent;
                        import flash.filesystem.*;
                        import flash.events.Event;
                        import flash.net.FileFilter;
                       
                        private var fileToOpen:File;
                       
                        public function fileOpen() : void
                        {
                                fileToOpen = File.desktopDirectory;
                                var txtFilter:FileFilter = new FileFilter(“Text *.as;*.css;*.html;*.txt;*.xml”, “*.as;*.css;*.html;*.txt;*.xml”);
                                try
                                {
                    fileToOpen.addEventListener(Event.SELECT, fileSelected);
                    fileToOpen.browseForOpen(“Open”, [txtFilter]);
                                }
                                catch (error:Error)
                                {
                        trace(“Failed:”, error.message)
                                }
                        }
                       
                        public function fileSelected(event:Event) : void
                        {
                var stream : FileStream = new FileStream();
                stream.open(File(event.target), FileMode.READ);
                var fileData:String = stream.readUTFBytes(stream.bytesAvailable);
                fileList.text = fileData;
                        }
                ]]>
        </mx:Script>
    <mx:Button id=“browse” label=“Browse…” click=“fileOpen()” />
    <mx:TextArea id=“fileList” width=“400″ height=“400″ />
</mx:WindowedApplication>

20:45:40, Flash-ripper.com
Microsoft Communications Server 2007 и видеопочта на Flash

Продолжая неделю Microsoft на Потрошителе, порадую вас новостью: вчера Билл Гейтс представил новый сервер, который должен интегрировать все виды человеческой болтовни: голос, видео, чаты (ICQ) и т.п. Сервер называется так, как написано в заголовке (MCS2007), а клиент называется Microsoft Office Communicator 2007 (MOC2007), плюс Microsoft Office Live Meeting (MOLM) (Silverlight не упоминался). Добавим это к списку наступательных вооружений Microsoft. Совет: держитесь за red5.

Видеопочта на флэше

А вот этот интересный 'TokBox' ресурс уже сейчас предлагает создание и хранение видео-чатов на флэше и уже имеет Facebook-виджет, что сейчас весьма ценно. Можно назвать это видеофоном с функцией сохранения. Придется настроить свою вебкамеру...

UPD: мой Скайп сегодня скачал без спросу свое обновление. Добавлена функция видео-чата. Да, рано старичка вычеркивать, хотя потесниться ему придется, и наверняка не на сантиметр.


17:51:18, Flash-ripper.com
FDT 3.0 вышел

Так не хотелось прерывать поcвященную Microsoft неделю публикациями Flash-новостей, но не могу удержаться: Состоялся релиз FDT 3.0.


Предыдущие 30 | Следующие 30