Flex и RIA блоги



2009-04-20

08:06:50, Flash-ripper.com
Flash в телевизорах, чайниках, кофеварках :)

или Adobe пытается стандартизироваль Flash для индустрии.
Вот и Strobe media framework
http://www.adobe.com/products/strobe/
который обещают открыть уже совсем коро. Что.то подобное уже делает Samsung на своих телевизорах, это я видел своими глазами на последнем CeBIT но API получить нереально, по крайней мне так сказали на выставке.

Как мне нехватало этого "чуда техники" пару лет назад когда я программировал софт для сеттопбоксов Amino ... только тот кто прошёл через это может меня понять.


2009-04-17

14:54:42, Flash-ripper.com
Получить Flex Builder 3 Pro можно, написав шесть постов во Flex Cookbook за один месяц (updated)

We got a winnerЛюбой член или менеджер группы пользователей Adobe (UAFPUG, RAFPUG, BAFPUG, KAUG, AUG Armenia, кого забыл?), который напишет шесть и более постов во Flex Cookbook до конца апреля, получит серийный номер к Flex Builder 3 Professional.

Update: если вы уже писали в апреле рецепты во Flex Cookbook, они включаются в ваш актив. Всего нужно написать шесть постов за апрель.

Один человек получит одну копию. Иными словами, двенадцать постов тоже дают один флексбилдер.

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

Данная акция является развитием программы вознаграждения писателей рецептов для поваренной книги Флекса. Теперь это уже не лотерея, в которой у нас кое-кто уже успел победить. И теперь не один человек, а сколько угодно желающих могут получить Flex Builder 3 за посты в кукбук. По поводу написанных ранее членами UAFPUG постов: никто не забыт, отпишусь в скором будущем.


2009-04-16

21:53:57, DL1t's blog
Повышаем читаемость кода: документирование типов данных

Несмотря на то, что ActionScript 3.0 является строго типизированным языком, в системе типов имеются некоторые “дыры” (обусловленные наличием типа Function и отсутствием дженериков (кроме Vector во Flash Player 10)), которые, с одной стороны, повышают гибкость языка, но с другой - делают код менее читаемым. В проектах, где число классов составляет несколько сотен и выше, это начинает составлять определенную проблему, особенно в случае командной разработки.

В случае массивов стандарт документирования имеется официально:

var myArray:Array/*of String*/;

Эта форма также поддерживается FlashDevelop (при ее использовании получаем автокомплит для элементов массива, что удобно). Кроме того, для mxml во Flex имеется метатег ArrayElementType, однако в чистых AS3 проектах без использования mxml он все равно не работает.

Однако массивами дело далеко не исчерпывается: для комфортной работы с кодом требуется информация о типах для Responder-ов, коллекций, в некоторых случаях  - информации о точном контракте у Function и т. п. В соответствии с этим при написании кода я проставляю дополнительные типы комментариев, характеризующих типы данных.

1) Коллекции, Dictionary

var features:ArrayCollection/*<String>*/;

var settings:Dictionary/*<String,XML>*/;

Для случая коллекций использование of выглядит неоправданным, так как массив и коллекция являются различными сущностями. Описание же в стиле дженериков Java выглядит очевидно, а также логично, в свете появления Vector с использующим угловые скобки синтаксисом.

2) тип Function

var mouseDownHandler:Function/*MouseEvent->void*/;

Функциональный тип описан по аналогии с haXe, где описание функций более полноценно. Для функций с одним входным аргументом такой вариант выглядит предельно логично, для случая нескольких входных аргументов вопрос усложняется (однако случаи, когда приходится подробно специфицировать функции с несколькими аргументами относительно редки). В этом случае можно следовать описанию типов в haXe (все аргументы и возвращаемый тип разделяются стрелками), либо использовать что-то свое. Вариант haXe для 2-3 аргументов все еще читаем, а в случае большего числа уже логичнее выносить описание функции в отдельный раздел в asDoc, так как inline комментарий станет слишком длинным, вне зависимости от используемого синтаксиса описания.

3) Уточнение типа

override public function doSomething(arg1:Object/*(MyType)*/,arg2:int):void{…}

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

4) Responder-ы

var sqlResponder:Responder/*<SQLResult->void,SQLError->void>*/;

Прямое следствие пунктов 1-2. Подобное описание responder-а позволяет избежать использования типа Object для обработки результатов выполнения асинхронных задач, что делает код более четким и читаемым.

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


13:40:55, Flash-ripper.com
За что мы любим Apache Ant

Часто можно услышать вопросы: а что такое Apache Ant? Чем он может мне помочь, как его использовать, нужен ли он мне вообще? И хоть мы уже неоднократно и сердито писали об этой замечательной технологии автоматизации рутинных задач, об Apache Ant надо писать еще и еще, ведь каждый, кто его использует, знает, сколько человекочасов (и, что более важно, человеко-нервов и человек-жен) они сэкономили, потратив два часа на полное освоение этой технологии, включая оптимизацию своего текущего проекта.

Как Apache Ant помогает человеку не делать работу за роботов

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

  1. Увеличить номер билда в версии приложения (например, с 0.2.178 до 0.2.179). В двух файлах: текстовом build.number и файле Version.as, который затем вкомпилируется в приложение для точного отображения его текущей версии для тестера в правом нижнем углу приложения.
  2. Скомпилировать версию приложения для Flash Player 9.
  3. Также скомпилировать версию для Flash Player 10, с другим именем. Код не менялся, но дело в том, что в моем проекте активно использовалась BitmapData максимальных размеров, а во Flash Player 10 эти размеры увеличены с 2880x2880 пкс до 4095x4095 пкс. И чтобы выжать максимум возможностей для пользователя, не заставляя его при этом обновлять FP9 до FP10 (требование заказчика), html-станица автоматически подставляла нужный swf-файл приложения с помощью SWFObject.
  4. Положить созданные билды вместе с файлом версии build.number в целевой каталог, а также скопировать их в соотвествующие номеру билда подкаталоги типа "/179". Копии создаются для возможности быстрого отката к нужной версии, что особо важно на завершающих этапах проекта, особенно если нервный немецкий клиент уже сам тестирует приложение.
  5. Закачать созданные билды в целевые каталоги FTP-сервера.

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

Думаю, очевидно, что все вышеперечисленные шаги легко алгоритмизируются и превращаются в набор задач для простого автоматического робота, которым и является Apache Ant. Заставлять человека выполнять такие для каждой новой сборки приложения (а она может происходить весьма часто, иногда интервалы между сборками становятся менее трех минут) — задача истинно дьявольская. Я бы сделал так, если бы хотел превратить человечество в стадо унылых и тупых биороботов. Судя по некоторым спамерам и вообще, кое-кто успешно релизует такие модели, люди, опомнитесь, вы идете в ад, такой ад.

Стоп, сатана, тебе здесь не место

Но на гуманистическом сайте Ф. Потрошителя мы ставим жесткий заслон планам сатаны. Мы любим Apache Ant и посвящаем ему еще один пост. В конце я приведу файл, что решал все мои указанные выше задачи, но если вы еще совсем ничего не знаете про Ant, то приглашаем вас на

знакомство с Apache Ant

Блоггер Самойлов написал совсем надавно вот такую короткую статью: Знакомство с ANT. Как бы отвечая ему, Константин Ковалев тоже написал статью, но она длинная и написана уже давно, со свойственной Константину основательностью: Сборка Flex-приложений с помощью Ant, и вот еще есть доклад от него же "Разработка Flash-проектов с использованием Apache Ant и FDT".

Ваши более тесные отношения с Apache Ant

После этих двух статей вы уже почти специалист по Apache Ant и вам можно дать это:

И помните: Ант автоматизировал, автоматизировал, да не перенедоантоавтоматизировывал, а вот тот файл build.xml, что решал мои задачи, он простой, тупой и неоптимизированный, но черт побери он работает.


07:39:05, 33 коровы
Eclipse Monkey и редакторы Flex Builder

Работа с mxml и css редактором отличается от работы с обычным редактором который нам предоставляет Eclipse Monkey. Чтобы получить доступ к любому редактору я использую такой метод

loadBundle("com.adobe.flexbuilder.editors.common"); /** * @return current text editor or null * @see org.eclipse.ui.editors.text.TextEditor */ this.getCurrentTextEditor = function() { var editor = window.getActivePage().getActiveEditor(); if (editor) { if (editor.getClass().getName() == "com.adobe.flexbuilder.editors.mxml.MXMLEditor" || editor.getClass().getName() == "com.adobe.flexbuilder.editors.css.CSSEditor") { editor = editor.getCodeEditor(); } /* //TODO add others editors that else if (){} */ } return editor; }

Данный метод отдает ссылку на инстанс класса наследованого от org.eclipse.ui.editors.text.TextEditor, вернее даже на инстанс, который реализует
org.eclipse.ui.editors.ITextEditor

дальше работаем обычными для эклипса методами:

this.TextSelection = Packages.org.eclipse.jface.text.TextSelection; this.insertToCursor = function(editor, text, moveCursor) { if (editor) { var documentProvider = editor.getDocumentProvider(); var doc = documentProvider.getDocument(editor.getEditorInput()); var offset = editor.getSelectionProvider().getSelection().getOffset(); doc.replace(offset, 0, text); if (moveCursor) { var selection = new TextSelection(doc, offset+text.length, 0); editor.getSelectionProvider().setSelection(selection); } } }

Метод вставляет текст в позицию курсора и если выставлен флаг, перемещает курсор в конец вставленного текста.


2009-04-15

21:38:07, Garbage Collector
Оптимизация Flex приложений: класс mx.utils.OnDemandEventDispatcher

Предлагаю вашему вниманию небольшой трюк по оптимизации Flex приложений.

Часто бывает необходимым наделить свой класс возможностью рассылать события, однако мы почти уверены, что подписываться на эти события объекты-получатели будут крайне редко. Поэтому не хочется наследовать в своем классе весь функционал flash.event.EventDispatcher и запускать «без дела» в коде своего класса распространение событий вызовом метода dispachEvent().

Как раз на этот случай во Flex 4 framework припасен утилитный класс mx.utils.OnDemandEventDispatcher, позволяющий улучшить производительность нашего приложения по двум направлениям:

  • OnDemandEventDispatcher не является наследником EventDispatcher, а только лишь реализует интерфейс IEventDispatcher. Класс посредством композиции делегирует выполнение методов, объявленных в интерфейсе, внутреннему экземпляру EventDispatcher. Сам же внутренний объект-диспетчер создается только в случае необходимости — при первой подписке на рассылку событий от текущего объекта. Таким образом, удается немного сэкономить занимаемый приложением объем оперативной памяти.
  • Если еще ни один объект не подписывался на получение событий, то делегирование методов внутреннему объекту-диспетчеру не производится. Тем самым, глубина стека выполнения функций ограничивается методами объекта-диспетчера. Это хорошо иллюстрирует листинг, взятый из класса OnDemandEventDispatcher:
    Actionscript:
    1. public function dispatchEvent(event:Event):Boolean
    2. {
    3.     if(_dispatcher != null)
    4.         return _dispatcher.dispatchEvent(event);
    5.     return true;
    6. }

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


21:38:07, Garbage Collector
Оптимизация Flex приложений: класс mx.utils.OnDemandEventDispatcher


Предлагаю вашему вниманию небольшой трюк по оптимизации Flex приложений.

Часто бывает необходимым наделить свой класс возможностью рассылать события, однако мы почти уверены, что подписываться на эти события объекты-получатели будут крайне редко. Поэтому не хочется наследовать в своем классе весь функционал flash.event.EventDispatcher и запускать «без дела» в коде своего класса распространение событий вызовом метода dispachEvent().

Как раз на этот случай во Flex 4 framework припасен утилитный класс mx.utils.OnDemandEventDispatcher, позволяющий улучшить производительность нашего приложения по двум направлениям:

  • OnDemandEventDispatcher не является наследником EventDispatcher, а только лишь реализует интерфейс IEventDispatcher. Класс посредством композиции делегирует выполнение методов, объявленных в интерфейсе, внутреннему экземпляру EventDispatcher. Сам же внутренний объект-диспетчер создается только в случае необходимости — при первой подписке на рассылку событий от текущего объекта. Таким образом, удается немного сэкономить занимаемый приложением объем оперативной памяти.
  • Если еще ни один объект не подписывался на получение событий, то делегирование методов внутреннему объекту-диспетчеру не производится. Тем самым, глубина стека выполнения функций ограничивается методами объекта-диспетчера. Это хорошо иллюстрирует листинг, взятый из класса OnDemandEventDispatcher:
    Actionscript:
    1. public function dispatchEvent(event:Event):Boolean
    2. {
    3.     if(_dispatcher != null)
    4.         return _dispatcher.dispatchEvent(event);
    5.     return true;
    6. }

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


21:38:07, Garbage Collector
Оптимизация Flex приложений: класс mx.utils.OnDemandEventDispatcher

Предлагаю вашему вниманию небольшой трюк по оптимизации Flex приложений.

Часто бывает необходимым наделить свой класс возможностью рассылать события, однако мы почти уверены, что подписываться на эти события объекты-получатели будут крайне редко. Поэтому не хочется наследовать в своем классе весь функционал flash.event.EventDispatcher и запускать «без дела» в коде своего класса распространение событий вызовом метода dispachEvent().

Как раз на этот случай во Flex 4 framework припасен утилитный класс mx.utils.OnDemandEventDispatcher, позволяющий улучшить производительность нашего приложения по двум направлениям:

  • OnDemandEventDispatcher не является наследником EventDispatcher, а только лишь реализует интерфейс IEventDispatcher. Класс посредством композиции делегирует выполнение методов, объявленных в интерфейсе, внутреннему экземпляру EventDispatcher. Сам же внутренний объект-диспетчер создается только в случае необходимости — при первой подписке на рассылку событий от текущего объекта. Таким образом, удается немного сэкономить занимаемый приложением объем оперативной памяти.
  • Если еще ни один объект не подписывался на получение событий, то делегирование методов внутреннему объекту-диспетчеру не производится. Тем самым, глубина стека выполнения функций ограничивается методами объекта-диспетчера. Это хорошо иллюстрирует листинг, взятый из класса OnDemandEventDispatcher:
    Actionscript:
    1. public function dispatchEvent(event:Event):Boolean
    2. {
    3.     if(_dispatcher != null)
    4.         return _dispatcher.dispatchEvent(event);
    5.     return true;
    6. }

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



17:43:11, Flash-ripper.com
Сниппеты во Flex: еще раз, на русском от diestro.ru

Вчера мы рекомендовали читать и смотреть Ли Бримелоу, а сегодня приглашаем познакомиться с обзорной статьей "Сниппеты во Flex" от Diestro.ru.


2009-04-14

14:15:47, Flash-ripper.com
Flash GAMM! Вести с полей от организаторов.

Подготовка а Flash GAMM Moscow 2009 идёт полным ходом. Уже сформирован основной список докладов, ознакомиться с которым вы можете здесь.
Так же организаторы планируют сделать гейм линч и два круглых стола. Темы ещё не определены, так что у вас есть возможность внести свои предложения — будем рады услышать ваши идеи и пожелания.

Кроме того нами разработан специальный бюджетный "бронзовый" спонсорский пакет, чтобы дать возможность заявить о себе начинающим компаниям и стартапам.

И не забываем регистрироваться и оплачивать участие! Напоминаем, что после 30-го апреля цена изменится.

PS: Вы впервые слышите о Flash GAMM? Тогда вам обязательно надо прочитать отчёт о предыдущей встрече.


14:06:20, Flash-ripper.com
Удобное создание Flash-приложений во Flex по Ли Бримелоу

Если вы из тех, кто делает и настоящие творческие Flash-приложения, и насыщенные проекты с использованием Flex Framework, то вы, наверное, уже думали о том, что было бы неплохо использовать для творческих Flash-приложений тот же самый редактор, что и для Flex. А именно — Flex Builder. Ведь он намного мощнее встроенного редактора кода Flash, и за него не придется платить или подбирать лекарство второй раз, как в случае с дорогостоящим FDT (каюсь, я еще не трогал IDEA 8). FlashDevelop хорош, но там нет многих бесплатных фишек Eclipse, включая такие важные инструменты, как работа с SVN (поправьте, если есть). Как бы там ни было: написание кода для FLA-приложений во Flex Builder — вкусная вещь, но создатели Flex Builder ее не предусмотрели.

Но делать Flash-приложения во Flex IDE возможно, нужно лишь создать несколько необходимых файлов (fla-файл и основной класс документа), настроить определенным образом проект и подключить нужные библиотеки.

Автоматизация создания Flash-проектов во Flex Builder

Ли Бримелоу автоматизировал эту задачу. Он сделал инструмент под названием Flash CS4 / Flex 3 Project Builder: парой кликов вы создаете все файлы, каталоги и прочее, остается лишь на втором шаге импортировать этот проект во Flex Builder. Вы можете скачать приложение и посмотреть короткий видео-урок.

Автоматизация рутинных операций с кодом во Flex Builder

Cтоит посмотреть эти два урока общей длительностью в 15 минут, тоже от Ли. Он показывает, как установить и настроить Eclipse-панель Snip Tree View, позволяющую очень быстро и просто добавлять сниппеты кода с переменными. То есть заготовки типа геттеров-сеттеров, ловцов событий и прочих весьма громоздких языковых конструкций, без которых язык ActionScript уже нельзя представить, ведь именно благодаря им мы имеем строгую типизацию, приватные и публичные свойства, все то, что делает этот язык зрелым, но за зрелость мы платим избыточностью кода. Разрешить эту дилемму и помогают сниппеты, выполняя за программиста самую рутинную часть работы в избыточном кодировании.

Автоматизация с помощью Monkey for Flex

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


00:15:08, Agahov's blog
Flex mojos 3.1 released

Релиз

Вышла новая версия Flex Mojos, теперь разработка flexmojos проходит под крышой
sonatype.org, и у алмаза появилась огранка)).
В извесную книгу о maven от sonatype добавленна глава про работу с flexmojos

Что изменилось?

Из полезных дополнений хочу обратить внимание на archetypes:

  • flexmojos-archetypes-library проект swc библиотеки
  • flexmojos-archetypes-application
  • простой swf проект
  • flexmojos-archetypes-modular-webapp многомодульный проект, состоит из swc, swf и war

archetypes - это maven комманда, которая создает проект с нуля. Для её запуска необходим установленный maven.
Выполните следующую комманду в командной строке (имя вашего пакета, верисю и артифакт id придется ввести в режиме диалога):

XML:

mvn archetype:generate \
      -DarchetypeRepository=http://repository.sonatype.org/content/groups/public \
      -DarchetypeGroupId=org.sonatype.flexmojos \
      -DarchetypeArtifactId=flexmojos-archetypes-library \
      -DarchetypeVersion=3.1.0

Комментарий
что бы проект собирался необходимо определить sonatype репозиторий в ~\.m2\settings.xml

XML:

<repositories>    
  <!−− ... −−>  
  
  <repository>  
    <id>flex-mojos-repository</id>  
      <url>http://repository.sonatype.org/content/groups/public</url>  
      <releases>  
        <enabled>true</enabled>  
      </releases>  
      <snapshots>  
        <enabled>true</enabled>  
      </snapshots>  
  </repository>
 
<pluginRepositories>  
  
  <!−− ... −−>  
  
  <pluginRepository>  
    <id>flex-mojos-repository</id>  
    <url>http://repository.sonatype.org/content/groups/public</url>  
    <releases>  
      <enabled>true</enabled>  
    </releases>  
    <snapshots>  
      <enabled>true</enabled>  
    </snapshots>  
  </pluginRepository>  
  
  <!−− ... −−>  
  
</pluginRepositories>

после этого можно запускать mvn install.

Для пользователей mac, что бы запускались тесты, необходимо добавить путь к flash player в PATH.

Code:

export PATH="set your path here/Adobe Flex Builder 3 Plug-in/Player/mac/10/mac/Flash Player.app/Contents/MacOS":$PATH

и добавить в pom.xml следующие сторики:

XML:

...
<configuration>
     <flashPlayerCommand>Flash Player</flashPlayerCommand>
</configuration>
...

И на десерт, команда:

Code:

mvn flexmojos:flexbuilder

создает flexbuilder проект. Единственно есть небольшой баг.
Придется поправить в FlexBuilder откройте
Project->Properties->Flex Compiler и исправьте в additional compiler arguments:
-localeen_US на -locale en_US

Тем кто переходит с версии flexmojos 2.x

Изменился репозиторий на http://repository.sonatype.org/content/groups/public
Изменился пакет и наименование flexmojos:

XML:

<groupId>info.flex-mojos</groupId>
<artifactId>flex-compiler-mojo</artifactId>

теперь будет:

XML:

<groupId>org.sonatype.flexmojos</groupId>
<artifactId>flexmojos-maven-plugin</artifactId>

вместо специализированных плагинов типа:

XML:

<groupId>info.flex-mojos</groupId>
<artifactId>html-wrapper-mojo</artifactId>

теперь используются соответствующие goals, соответственно
mvn flexmojos:wrapper

Пакеты зависимостей для тестирования тоже поменялись:

XML:

<dependency>
<groupId>info.flex-mojos</groupId>
<artifactId>testing-support</artifactId>
<version>${flex-mojos.version}</version>
<type>swc</type>
<scope>test</scope>
</dependency>

теперь:

XML:

<dependency>
<groupId>org.sonatype.flexmojos</groupId>
<artifactId>flexmojos-unittest-support</artifactId>
<version>${flex-mojos.version}</version>
<type>swc</type>
<scope>test</scope>
</dependency>

Резюме

В целом изменения меня очень радуют, всё стало проще и логичней, в добавок sonatype обещают интеграцию с m2e в версии 0.9.8.

Первоисточники

flexmojos - blog
советы по переходу с flexmojos 2.x
страница проекта flexmojos
глава из книги о maven, по работе с flexmojos

p/s

Версия новая и интересная буду очень рад если поделитесь опытом и замечаниями по работе с ней.

Bookmark this article at


2009-04-13

22:11:27, Garbage Collector
Две новые книги о Flex 3

А вы в курсе, что в продаже появились две новые книги о Flex 3? Обе книги я обязательно куплю для своей коллекции, как только появится возможность:

  1. «Изучаем Flex 3. Руководство по разработке насыщенных интернет-приложений».
  2. «Flex 3. Сборник рецептов».

Радует, что обе эти книги выпущены издательством «Символ-плюс», потому что в таком случае перевод и верстка книг должны быть на достаточно хорошем уровне. Просто я все еще нахожусь под ужасным впечатлением, которое на меня несколько месяцев назад произвело совершенно неприемлемое качество книги «Программирование c использованием Adobe Flex», выпущенной издательством «Питер». Последнюю книгу я крайне не советую покупать.


22:11:27, Garbage Collector
Две новые книги о Flex 3

А вы в курсе, что в продаже появились две новые книги о Flex 3? Обе книги я обязательно куплю для своей коллекции, как только появится возможность:

  1. «Изучаем Flex 3. Руководство по разработке насыщенных интернет-приложений».
  2. «Flex 3. Сборник рецептов».

Радует, что обе эти книги выпущены издательством «Символ-плюс», потому что в таком случае перевод и верстка книг должны быть на достаточно хорошем уровне. Просто я все еще нахожусь под ужасным впечатлением, которое на меня несколько месяцев назад произвело совершенно неприемлемое качество книги «Программирование c использованием Adobe Flex», выпущенной издательством «Питер». Последнюю книгу я крайне не советую покупать.


22:11:27, Garbage Collector
Две новые книги о Flex 3


А вы в курсе, что в продаже появились две новые книги о Flex 3? Обе книги я обязательно куплю для своей коллекции, как только появится возможность:

  1. «Изучаем Flex 3. Руководство по разработке насыщенных интернет-приложений».
  2. «Flex 3. Сборник рецептов».

Радует, что обе эти книги выпущены издательством «Символ-плюс», потому что в таком случае перевод и верстка книг должны быть на достаточно хорошем уровне. Просто я все еще нахожусь под ужасным впечатлением, которое на меня несколько месяцев назад произвело совершенно неприемлемое качество книги «Программирование c использованием Adobe Flex», выпущенной издательством «Питер». Последнюю книгу я крайне не советую покупать.


22:11:27, Garbage Collector
Две новые книги о Flex 3

А вы в курсе, что в продаже появились две новые книги о Flex 3? Обе книги я обязательно куплю для своей коллекции, как только появится возможность:

  1. «Изучаем Flex 3. Руководство по разработке насыщенных интернет-приложений».
  2. «Flex 3. Сборник рецептов».

Радует, что обе эти книги выпущены издательством «Символ-плюс», потому что в таком случае перевод и верстка книг должны быть на достаточно хорошем уровне. Просто я все еще нахожусь под ужасным впечатлением, которое на меня несколько месяцев назад произвело совершенно неприемлемое качество книги «Программирование c использованием Adobe Flex», выпущенной издательством «Питер». Последнюю книгу я крайне не советую покупать.



16:47:48, Flash-ripper.com
Facebook в Adobe Developers Center и новые старые SEO-рецепты от StomperNet

Интересно работать с живыми людьми

В центре разработчиков на сайте Adobe появился целый новый раздел по созданию приложений для Facebook. А в нем — с чего флекс-разработчику начать свое знакомство с Facebook (в виде приложения) или статьи, или видео, а также — обзор архитектуры Facebook-приложения, примеры и еще много качественного. Раздел родился не младенцем, но сразу молодым человеком в расцвете сил.

А StomperNet, авторитетнейший SEO-ресурс, подтвердивший свою репутацию выпуском первого специального SEO-браузера Scrutinizer на базе Adobe AIR, опубликовал жизнеутверждающее видео: "Ссылочная целостность: как человеческая логика побеждает в поиске". Видео возвращает нас к началу начал две тысячи второго года, утверждая: делай сайты для людей, а не для роботов, и Гугл любит тебя.


2009-04-12

11:17:04, Flash-ripper.com
Adobe AIR Developer’s Toolbox: Resources And Tutorials

smashing magazineair

На Smashing Magazine опубликовали огромный эйропост : ресурсы, ссылки на туториалы и приложения. Начинающим эйрщикам будет интересно


2009-04-11

09:06:34, Garbage Collector
Intellij IDEA build 9805 с поддержкой новых пространств имен Flex 4 Gumbo

Вчера вышла новая EAP-сборка Intellij IDEA 9805 с поддержкой пространств имен в MXML-разметке Flex 4 Gumbo. Если кто не в курсе, эти пространства имен появились после отказа от префикса Fx в именах компонентов Gumbo.

Редактирование пространств имен, о которых будет известно среде разработки, производится в настройках проекта (комбинация Ctrl+Alt+Shift+S) на вкладке Flex Compiller Settings. Однако добавлять в этот список стандартные пространства имен (http://ns.adobe.com/mxml/2009, library://ns.adobe.com/flex/spark, library://ns.adobe.com/flex/halo, http://www.adobe.com/2006/mxml и http://ns.adobe.com/fxg/2008) совсем необязательно — они подхватываются средой «на лету» из файла flex-config.xml.

Хочется пожелать разработчиками также побыстрее справиться с изменившимся синтаксисом стилевых блоков CSS. ;-)

Примечание: если вы используете самостоятельную сборку Flex 4 SDK и у вас не компилируется SWF-файл приложения, то это означает, что вам необходимо удалить файл IDEA_INSTALL_DIR\plugins\flex\lib\idea-fcsh-fix.jar.


09:06:34, Garbage Collector
Intellij IDEA build 9805 с поддержкой новых пространств имен Flex 4 Gumbo

Вчера вышла новая EAP-сборка Intellij IDEA 9805 с поддержкой пространств имен в MXML-разметке Flex 4 Gumbo. Если кто не в курсе, эти пространства имен появились после отказа от префикса Fx в именах компонентов Gumbo.

Редактирование пространств имен, о которых будет известно среде разработки, производится в настройках проекта (комбинация Ctrl+Alt+Shift+S) на вкладке Flex Compiller Settings. Однако добавлять в этот список стандартные пространства имен (http://ns.adobe.com/mxml/2009, library://ns.adobe.com/flex/spark, library://ns.adobe.com/flex/halo, http://www.adobe.com/2006/mxml и http://ns.adobe.com/fxg/2008) совсем необязательно — они подхватываются средой «на лету» из файла flex-config.xml.

Хочется пожелать разработчиками также побыстрее справиться с изменившимся синтаксисом стилевых блоков CSS. ;-)

Примечание: если вы используете самостоятельную сборку Flex 4 SDK и у вас не компилируется SWF-файл приложения, то это означает, что вам необходимо удалить файл IDEA_INSTALL_DIR\plugins\flex\lib\idea-fcsh-fix.jar. Более подробно об этой ошибке читайте в JetBrains JIRA.


09:06:34, Garbage Collector
Intellij IDEA build 9805 с поддержкой новых пространств имен Flex 4 Gumbo


Вчера вышла новая EAP-сборка Intellij IDEA 9805 с поддержкой пространств имен в MXML-разметке Flex 4 Gumbo. Если кто не в курсе, эти пространства имен появились после отказа от префикса Fx в именах компонентов Gumbo.

Редактирование пространств имен, о которых будет известно среде разработки, производится в настройках проекта (комбинация Ctrl+Alt+Shift+S) на вкладке Flex Compiller Settings. Однако добавлять в этот список стандартные пространства имен (http://ns.adobe.com/mxml/2009, library://ns.adobe.com/flex/spark, library://ns.adobe.com/flex/halo, http://www.adobe.com/2006/mxml и http://ns.adobe.com/fxg/2008) совсем необязательно — они подхватываются средой «на лету» из файла flex-config.xml.

Хочется пожелать разработчиками также побыстрее справиться с изменившимся синтаксисом стилевых блоков CSS. ;-)

Примечание: если вы используете самостоятельную сборку Flex 4 SDK и у вас не компилируется SWF-файл приложения, то это означает, что вам необходимо удалить файл IDEA_INSTALL_DIR\plugins\flex\lib\idea-fcsh-fix.jar. Более подробно об этой ошибке читайте в JetBrains JIRA.


09:06:34, Garbage Collector
Intellij IDEA build 9805 с поддержкой новых пространств имен Flex 4 Gumbo

Вчера вышла новая EAP-сборка Intellij IDEA 9805 с поддержкой пространств имен в MXML-разметке Flex 4 Gumbo. Если кто не в курсе, эти пространства имен появились после отказа от префикса Fx в именах компонентов Gumbo.

Редактирование пространств имен, о которых будет известно среде разработки, производится в настройках проекта (комбинация Ctrl+Alt+Shift+S) на вкладке Flex Compiller Settings. Однако добавлять в этот список стандартные пространства имен (http://ns.adobe.com/mxml/2009, library://ns.adobe.com/flex/spark, library://ns.adobe.com/flex/halo, http://www.adobe.com/2006/mxml и http://ns.adobe.com/fxg/2008) совсем необязательно — они подхватываются средой «на лету» из файла flex-config.xml.

Хочется пожелать разработчиками также побыстрее справиться с изменившимся синтаксисом стилевых блоков CSS. ;-)

Примечание: если вы используете самостоятельную сборку Flex 4 SDK и у вас не компилируется SWF-файл приложения, то это означает, что вам необходимо удалить файл IDEA_INSTALL_DIR\plugins\flex\lib\idea-fcsh-fix.jar. Более подробно об этой ошибке читайте в JetBrains JIRA.



2009-04-10

14:17:39, Flash-ripper.com
Кустарная арт

Продолжаетъ традицiи русскаго арiстократич


2009-04-09

21:30:51, Garbage Collector
Новый Garbage Collector

Друзья, читающие этот блог через RSS-ленту! Я рад сообщить вам, что в последние пару месяцев Garbage Collector работал уже с обновленным дизайном. Производилась обкатка и отладка верстки и скриптов новой темы. Поэтому, если вы еще не видели, то можете зайти и посмотреть, как сайт выглядит в настоящий момент.

На днях были завершены последние процедуры, связанные с переездом Garbage Collector на новый домен. Итак, основным доменом блога теперь, как это ни странно, является garbage-collector.ru. Прошу любить и жаловать. RSS-лента статей, транслируемая с использованием сервиса FeedBurner, останется доступной по прежнему адресу, за небольшим изменением, связанным с приобретением сервиса компанией Google. Огромная просьба к владельцам ресурсов, ссылающихся на этот блог, обновите, пожалуйста, ссылку вот на такую — Garbage Collector.

Хочу выразить огромную благодарность всем тем, кто участвовал в создании новой версии блога:

  • Аникутину Алексею за концепт дизайна. Вернись в строй, Алексей, и продолжай публиковать новые статьи! Я понимаю, что в настоящий момент ты сильно загружен работой. Но многим здесь не хватает твоих экспериментов и наблюдений! ;-)
  • Баграмову Владимиру за проработку дизайна информационных блоков страницы, за шлифовку и наведение лоска. Владимир, без твоей помощи новая версия блога вряд ли бы увидела свет.
  • Печенкину Андрею за верстку, кодирование и скриптование. Качество выполнения твоей работы, Андрей, не может не радовать!

Список публикуется в порядке подключение людей к процессу.

Хочу еще сообщить, что сейчас блог перейдет в режим коротких заметок. Это позволит увеличить частоту его обновления, поскольку времени на написание длинных статей, как это было год или два назад, теперь у меня нет. Но, бывает, появляются новости, о которых хочется рассказать в двух словах.

Итак, друзья, в добрый путь!


21:30:51, Garbage Collector
Новый Garbage Collector

Друзья, читающие этот блог через RSS-ленту! Я рад сообщить вам, что в последние пару месяцев Garbage Collector работал уже с обновленным дизайном. Производилась обкатка и отладка верстки и скриптов новой темы. Поэтому, если вы еще не видели, то можете зайти и посмотреть, как сайт выглядит в настоящий момент.

На днях были завершены последние процедуры, связанные с переездом Garbage Collector на новый домен. Итак, основным доменом блога теперь, как это ни странно, является garbage-collector.ru. Прошу любить и жаловать. RSS-лента статей, транслируемая с использованием сервиса FeedBurner, останется доступной по прежнему адресу, за небольшим изменением, связанным с приобретением сервиса компанией Google. Огромная просьба к владельцам ресурсов, ссылающихся на этот блог, обновите, пожалуйста, ссылку вот на такую:

XML:
  1. <a href="http://garbage-collector.ru/" title="Журнал о Flash, Flex, AIR, Groovy и разработке Rich Internet Applications в условиях, приближенных к реальным">Garbage Collector</a>

Хочу выразить огромную благодарность всем тем, кто участвовал в создании новой версии блога:

  • Аникутину Алексею за концепт дизайна. Вернись в строй, Алексей, и продолжай публиковать новые статьи! Я понимаю, что в настоящий момент ты сильно загружен работой. Но многим здесь не хватает твоих экспериментов и наблюдений! ;-)
  • Баграмову Владимиру за проработку дизайна информационных блоков страницы, за шлифовку и наведение лоска. Владимир, без твоей помощи новая версия блога вряд ли бы увидела свет.
  • Печенкину Андрею за верстку, кодирование и скриптование. Качество выполнения твоей работы, Андрей, не может не радовать!

Список публикуется в порядке подключение людей к процессу.

Хочу еще сообщить, что сейчас блог перейдет в режим коротких заметок. Это позволит увеличить частоту его обновления, поскольку времени на написание длинных статей, как это было год или два назад, теперь у меня нет. Но, бывает, появляются новости, о которых хочется рассказать в двух словах.

Итак, друзья, в добрый путь!


21:30:51, Garbage Collector
Новый Garbage Collector


Друзья, читающие этот блог через RSS-ленту! Я рад сообщить вам, что в последние пару месяцев Garbage Collector работал уже с обновленным дизайном. Производилась обкатка и отладка верстки и скриптов новой темы. Поэтому, если вы еще не видели, то можете зайти и посмотреть, как сайт выглядит в настоящий момент.

На днях были завершены последние процедуры, связанные с переездом Garbage Collector на новый домен. Итак, основным доменом блога теперь, как это ни странно, является garbage-collector.ru. Прошу любить и жаловать. RSS-лента статей, транслируемая с использованием сервиса FeedBurner, останется доступной по прежнему адресу, за небольшим изменением, связанным с приобретением сервиса компанией Google. Огромная просьба к владельцам ресурсов, ссылающихся на этот блог, обновите, пожалуйста, ссылку вот на такую:

XML:
  1. <a href="http://garbage-collector.ru/" title="Журнал о Flash, Flex, AIR, Groovy и разработке Rich Internet Applications в условиях, приближенных к реальным">Garbage Collector</a>

Хочу выразить огромную благодарность всем тем, кто участвовал в создании новой версии блога:

  • Аникутину Алексею за концепт дизайна. Вернись в строй, Алексей, и продолжай публиковать новые статьи! Я понимаю, что в настоящий момент ты сильно загружен работой. Но многим здесь не хватает твоих экспериментов и наблюдений! ;-)
  • Баграмову Владимиру за проработку дизайна информационных блоков страницы, за шлифовку и наведение лоска. Владимир, без твоей помощи новая версия блога вряд ли бы увидела свет.
  • Печенкину Андрею за верстку, кодирование и скриптование. Качество выполнения твоей работы, Андрей, не может не радовать!

Список публикуется в порядке подключение людей к процессу.

Хочу еще сообщить, что сейчас блог перейдет в режим коротких заметок. Это позволит увеличить частоту его обновления, поскольку времени на написание длинных статей, как это было год или два назад, теперь у меня нет. Но, бывает, появляются новости, о которых хочется рассказать в двух словах.

Итак, друзья, в добрый путь!


21:30:51, Garbage Collector
Новый Garbage Collector

Друзья, читающие этот блог через RSS-ленту! Я рад сообщить вам, что в последние пару месяцев Garbage Collector работал уже с обновленным дизайном. Производилась обкатка и отладка верстки и скриптов новой темы. Поэтому, если вы еще не видели, то можете зайти и посмотреть, как сайт выглядит в настоящий момент.

На днях были завершены последние процедуры, связанные с переездом Garbage Collector на новый домен. Итак, основным доменом блога теперь, как это ни странно, является garbage-collector.ru. Прошу любить и жаловать. RSS-лента статей, транслируемая с использованием сервиса FeedBurner, останется доступной по прежнему адресу, за небольшим изменением, связанным с приобретением сервиса компанией Google. Огромная просьба к владельцам ресурсов, ссылающихся на этот блог, обновите, пожалуйста, ссылку вот на такую:

XML:
  1. <a href="http://garbage-collector.ru/" title="Журнал о Flash, Flex, AIR, Groovy и разработке Rich Internet Applications в условиях, приближенных к реальным">Garbage Collector</a>

Хочу выразить огромную благодарность всем тем, кто участвовал в создании новой версии блога:

  • Аникутину Алексею за концепт дизайна. Вернись в строй, Алексей, и продолжай публиковать новые статьи! Я понимаю, что в настоящий момент ты сильно загружен работой. Но многим здесь не хватает твоих экспериментов и наблюдений! ;-)
  • Баграмову Владимиру за проработку дизайна информационных блоков страницы, за шлифовку и наведение лоска. Владимир, без твоей помощи новая версия блога вряд ли бы увидела свет.
  • Печенкину Андрею за верстку, кодирование и скриптование. Качество выполнения твоей работы, Андрей, не может не радовать!

Список публикуется в порядке подключение людей к процессу.

Хочу еще сообщить, что сейчас блог перейдет в режим коротких заметок. Это позволит увеличить частоту его обновления, поскольку времени на написание длинных статей, как это было год или два назад, теперь у меня нет. Но, бывает, появляются новости, о которых хочется рассказать в двух словах.

Итак, друзья, в добрый путь!



2009-04-08

09:20:31, Flash-ripper.com
Для тех кто хотел знать как работает Гугл

вотт вообщем то и всё, смотрите сами :)


2009-04-06

16:57:22, Junik
Готовимся к сертификации бесплатно

Если вы мечтаете стать сертифицированным flex-разработчиком, то безусловно порадуетесь тому, что программа для подготовки к тесту Attest стала бесплатной. Приятно, что это произошло несмотря на мировой финансовый кризис.
Кстати, это теперь AIR-приложение.

Будущие Adobe Flex 3 with AIR Certified Developer-ы дерзайте! :)

PS: А есть желающие стать сертифицированными?

Bookmark this article at


08:55:22, Flash-ripper.com
Супер Гоголь

Время идет, и зачастую кажется, что в кромешном вебдваноле не найдется места старым добрым флэш-сайтам. Но не тут то есть.

Даже грубая ошибка с капчей (жми плюс) не портит впечатления.


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