Solution for “AIR file is damaged” Error report during installation

I have been trying to create a small Air Application in Flex and created the “.air” file successfully, but while installing the application caused some error like ” The application could not be installed because the AIR file is damaged. Try obtaining a new AIR file from the application author “. After some tiresome of searching the internet eventually I got a solution.

Steps to Resolve:

1.  Open the .xml file which is automatically created while creating a new project eg: “myproject-app.xml” – usually will be in the name of yourproject (here myproject is the name your project).

2.  Change the first line of the file from

<application xmlns=”http://ns.adobe.com/air/application/1.1″&gt;

to

<application xmlns=”http://ns.adobe.com/air/application/1.5″&gt;

3.  Clean the project, compile and export again.

4.  If the problem still persists reinstall the Adobe Air installed in your system and execute the step 3.

Dissimilar search results from Google !!!

I wonder how google furnishes different search result for a same query but in different domain, Today I was just searching for some articles on “Flex Architecture” in google.com then after a while I searched the same query in google.co.in from a different domain, to my surprise I could not find some of the result that were listed in the former search ie., quering from google.com. Eventually comparing both the results I found that  google filters search results based on the domain or the hosted server…. 🙂

“bing” A New Wave from Microsoft

Bing and Decide :

It was on june 3 rd of 2009, the Redmond Giant officially announced their new Seach Engine “bing” as a replacement of their former Search Engine “Live” which was pretty struggling for the search engine  “Market  Share” with Google and yahoo but went despair.  Bing is definitely a competitor for Google but not a google killer. probably you can find a plenty of websites and vendors that has started  comparing Google and “bing” search results..but results shows that both Google and bing has got different way of indexing the results. Though Google has already won the battle before it starts, but some testing vendor results shows that bing search results are extremely good on some queries like Air Fare, Health and Local  informations….

Note: bing search is based on semantic technology( Natural Language Procesing) from Powerset which Microsoft purchased in 2008. Bing also includes the ability to Save & Share search histories via Windows Live SkyDrive, Facebook  and e-mail.

Following Links provides a bird’s-eye view comparison between bing, Google and Yahoo.

http://www.pcworld.com/article/165749/bing_vs_google_vs_yahoo_feature_smackdown.html

http://www.techcrunch.com/2009/06/02/search-smackdown-bing-vs-google/

http://www.bingandgoogle.com/ – A site that compares the bing and Google serch results in two panels

Top 10 Changes in Flex 4

Top 10 Changes in Flex 4
//

Below I post 10 top changes between Flex 3 and Flex 4 framework. This article was originaly posted on the infoQ.com If you want to download Flash Builder 4 or Flash Catalyst beta release read this post.

This week, Adobe released their first official beta of Flex 4, codenamed Gumbo. The release includes a number of major changes. This list gives a high level overview of the items that have changed in the latest version of the popular RIA framework.

1. Integration with Adobe Catalyst

The primary focus of the Flex 4 development effort is providing support and integration with Adobe Catalyst – Adobe’s new designer tool for creating rich Internet application assets without writing code. Catalyst promises to change the way that developers and designers are able to collaborate in their efforts, as it recognizes that application developers and designers work differently. Thus, it allows each to concentrate on what they are good at, as it enables each to work in the traditional ways they are accustomed to. The majority of the changes on this list have been made in order to facilitate integration between Flex and Catalyst.

2. Spark Component Architecture

Each version of Flex includes a full component library with all of the common items needed to build an application, including data grids, buttons, layout containers, etc. In Flex 4, the underlying architecture of the components is known as Spark, where it was known as Halo in Flex 3. A major part of the effort to support Catalyst is in revamping the component model to adhere to a much higher level of separation of concerns.

In the new Spark component model, core logic, skinning, and layout have been broken out so that they are handled independently of one another. The Spark component model is built on top of the Halo component model. Basically, that means that it extends from Halo’s core base class UIComponent, allowing Flex4 to be adopted incrementally and Flex 3 components to be used in Flex 4 applications.

In addition to the other changes, effects have been updated in Flex 4. Effects can now animate arbitrary objects and types, allowing for much greater flexibility in their use. Flex 4 effects have been implemented in the new “spark.effects” package. Just like the new component library, the Flex 4 effects have been re-implemented, leaving the Flex 3 effects in place for backwards compatibility.

3. MXML 2009

MXML is an XML-based abstraction, built on top of ActionScript 3 – the Flash Player programming language. MXML is used for laying out the view portions of the user interface and supporting tooling, such as the IDE, and now Catalyst. MXML 2009 includes a number of updates to support the decoupling of different behaviors (core, skinning, and layout) and the new component library. The Flex 4 components have been implemented in their own package (spark.components), leaving the Flex 3 components in place. MXML 2009 includes a new namespace to support this.

The following example of an application declaration shows using the namespace and defining both the Spark and Halo component namespace:

<s:Application 
  xmlns:fx="http://ns.adobe.com/mxml/2009" 
  xmlns:s="library://ns.adobe.com/flex/spark" 
  xmlns:mx="library://ns.adobe.com/flex/halo">

Thus, one can use a Flex 4 Button by doing the following:

<s:Button label="My Flex 4 Button" />

And, the following for a Flex 3 Button:

<mx:Button label="My Flex 3 Button" />

4. Improvements to View States

Flex 2 introduced the notion of states to the Flex framework, where changes to a view component can be managed through a simple state change. In Flex 4, view states have been revamped to simplify the syntax and make them easier to use. An example of the simplified syntaxes are the new language attributes includeIn and excludeFrom, which can be set on a component to direct them how to behave on a state change (See below).

<!-- Given the states A,B,C -->
<m:states>
  <m:State name="A"/>
  <m:State name="B"/>
  <m:State name="C"/>
</m:states> 

<!-- This button will appear in only states A and B -->
<Button label="Click Me" includeIn="A, B"/> 

<!-- This button will appear in states A and B -->
<Button label="Button C" excludeFrom="C"/>

5. FXG Support

At its core, the Flash Player is a drawing engine. Adobe has leveraged this with the introduction of FXG in Flash Player version 10, and now its introduction to Flex. FXG is a declarative graphics format, which enables portability of assets between tools. That means that designers will be able to create assets in Catalyst or CS4 Illustrator, and the Flex application developer will be able to import them and use them without having to modify them.

6. Skinning Enhancements

The biggest change in the Spark component model was overhauling skins so that they now control all visual aspects of the components and encapsulate their logic outside of the components core. Thus, this allows the visual parts of a component to be modified independently of the underlying core logic.

Let’s look at the PanelSkin.mxml skin file, the default skin for the Panel container, for an example:

<?xml version="1.0" encoding="utf-8"?> 

<s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" alpha.disabled="0.5"> 

   <fx:Metadata>
   <![CDATA[ 
    /** 
     * @copy spark.skins.default.ApplicationSkin#hostComponent 
     */ 
    [HostComponent("spark.components.Panel")] 
    ]]>
   </fx:Metadata> 

   <fx:Script>
     /* Define the skin elements that should not be colorized.
      For panel, border and title backround are skinned, but the content area and title text are not. */
      static private const exclusions:Array = ["background", "titleField", "contentGroup"]; 

     /**
      * @copy spark.skins.SparkSkin#colorizeExclusions
      */
     override public function get colorizeExclusions():Array {return exclusions;} 

     /* Define the content fill items that should be colored by the "contentBackgroundColor" style. */
     static private const contentFill:Array = ["bgFill"]; 

     /**
      * @inheritDoc
      */
     override public function get contentItems():Array {return contentFill};
   </fx:Script> 

   <s:states>
     <s:State name="normal" />
     <s:State name="disabled" />
   </s:states> 

    . . . . . 

   <s:Rect left="1" right="1" top="31" height="1">
    <s:fill>
     <s:SolidColor color="0xC0C0C0" />
    </s:fill>
   </s:Rect> 

   <!-- layer 5: text -->
   <!-- Defines the appearance of the PanelSkin class's title bar. -->
   <s:SimpleText id="titleField" lineBreak="explicit" 
      left="10" right="4" top="2" height="30" 
      verticalAlign="middle" fontWeight="bold">
   </s:SimpleText> 

   <s:Group id="contentGroup" left="1" right="1" top="32" bottom="1">
   </s:Group> 

</s:SparkSkin>

Since the only job of this skin file is to control the visual appearance of the Panel container, it makes it possible for a designer to modify how the component appears without ever editing the component source code or understanding the internal behavior of the component. More importantly, it allows designers to use Catalyst in a way that is natural to them.

7. Updated Layout Model

Those familiar with Flex development will notice that the majority of the containers used in the Flex 3 developer are not a part of the Gumbo component library. This is because layout has been decoupled and is now handled through delegation. Since most of the Flex 3 containers existed simply to provide different forms of layout (e.g. HBox for horizontal layout, VBox for vertical layout), they are no longer needed.

The following example shows one way that a Flex developer can now define layout. This example uses the Group class to manage the buttons, which is a new Spark class for management content items. The result is the two buttons displayed side-by-side, like it would have with an HBox in Flex 3.

<s:Group width="400" height="400">
  <s:layout>
   <s:HorizontalLayout paddingLeft="5" paddingTop="5" />
  </s:layout> 

  <s:Button label="Button 1" />
  <s:Button label="Button 2" />
</s:Group>

8. Flash Builder 4

Flash Builder 4, formerly known as Flex Builder, is the latest version of the Eclipse based IDE for application developers. The new version comes with a handful of updates including: conditional debug break points, more refactoring tools, and FlexUnit 4 support. As always, it includes MXML, ActionScript 3, CSS editors, a visual designer, and the Flex performance and memory profiler (profiler only in the Professional version).

In addition, the latest version includes advanced data management features to simplify the development of data-centric applications. This includes client side data management features that handle CRUD operations and scrolling through large collections on your services.

9. Compiler Performance

A major pain point most everyone developing Flex 3 applications has encountered is poor compiler performance. Thus, one of the published goals for Gumbo was to improve compiler performance in Flex 4. At this point, there are not any official benchmarks published from this work. However, Adobe’s Peter Donovan did publish some notes on his early efforts, stating that he believed a 25% improvement would be reached without significant restructuring. He also said that to achieve a 3-4 times improvement, a redesign will be required. Certainly everyone developing enterprise Flex applications hopes that this is addressed by the time Flex 4 ships at the end of 2009.

See Peter Donovan’s notes for more information.

10. New Text Capabilities

A major knock on Flash based applications (both Flex and non-Flex based) has been the ability to effectively deal with text. In Flash Player 10, Adobe introduced a new text engine to support the demands of rich Internet applications (multi-lingual, print, keyboard short-cuts, etc). Gumbo includes a handful of new text classes (RichText, SimpleText, etc) for more robust text support within the Flex framework. In addition, Adobe is working on their new Text Layout Framework to give all ActionScript 3 developers the ability to harness the power of the Flash Player’s text engine. Learn more about the Text Layout Framework at: http://labs.adobe.com/technologies/textlayout/

As you can see with the wide range of changes, Flex 4 represents another step forward for the popular RIA platform. For additional information on the Flex 4 SDK changes, see Matt Chotin’s article, What’s new in Flex 4 SDK beta.

Author’s Bio

Jon Rose is an enterprise software consultant and Flex Practice Director at Gorilla Logic, Inc. located in Boulder, Colorado. He is an editor and contributor to InfoQ.com, an enterprise software community. He is the co-host of DrunkOnSoftware.com, a videocast for those who like booze and bits. He has worked with clients large and small in both the private sector and government. His love of solving problems drives him to build quality software. You can read his blog at: http://ectropic.com.

Access the Browser Cache – Firefox, internet Explorer(IE)

I came across  many people who ask me about how to access the browser cache manually espically in Firefox and in internet Explorer ( Temporary Internet Files).

First Let me Explain the Steps for Firefox:

1. Open a new Tab and type “about:cache” in the URL address bar.

To check out the broswer chache in Firefox

To check out the broswer cache in Firefox

2. Check the image on the Left – probably you will come across like this.

Steps for Internet Explorer(IE7):

1.  Select the Internet Option command from the Tool Menu.

2.  General Tab -> Select the Setting button under the Browsing history.

3.  Select the ViewFiles button which opens the folder containing all the browser Cache Files.  That’s all Simple.

Flex Component Class Hierarchy

This article is all about presenting the visual component hierarchy this is basic thing in flex which shows how different properties, method and evens added to the component at various levels and this give knowledge to the lower level of abstraction.

Flex Visual component are created with the class hierarchy of several ActionScript class to provide more flexibility and add more features at the different level of hierarchy.

Following is a visual representation of class hierarchy of Flex Visual Components:

Flex Component Class HierarchyObject: Object is a Top/Root Level class of AactionScript class hierarchy. | More Info…

EventDispatcher: EventDispatcher class extends object class. EvenDispacher class allows any object on the display list to be an event target. | More Info…

DisplayObject: Display Object class extends object and this is the base class for all objects which can be added in the DisplayList. Display object class allows some properties (x, y, width, height )for components/Objects like MovieClip, Button, TextField etc… | More Info…

InteractiveObject: InteractiveObject extends DisplayObject and it is an abstract base class for all DisplayObject with which user can interact. InteractiveObject provides some common properties like doubleClickEnabled, focusRect, tabIndex etc… and Events like all mouse Events, Keyboard Events. | More Info…

DisplayObjectContainer: DisplayObjectContainer extends InteractiveObject class and it is a base shell for all containers which adds display objects in the container shell. . DisplayObjectContainer provides some common properties like… numChildren, tabChildren etc… and methods like addChild(), removeChilld() method related to the child display object management. .. | More Info…

FlexSprite: FlexSprite is a subclass of the Player’s Sprite class and the superclass of UIComponent. It overrides the toString() method to return a string indicating the location of the object within the hierarchy of DisplayObjects in the application. The Sprite class is a basic display list building block: a display list node that can display graphics and can also contain children. | More Info…
UIComponent: UIComponent extends Sprite and it is a base class for all Interactive and non Interactive component. The UIComponent class is not used as an MXML tag, but is used as a base class for other classes. | More Info…

Top 10 Adobe Flex misconceptions

  1. Users need to install something new to run Flex applications.Flash Player 9 is required for Flex 2 and Flex 3. The Flash Player 9 runtime is currently installed on 94% of the world’s computers.

    Flex 2 and Flex 3 applications execute in the Flash Player 9. Flex applications are built on top of the native Flash Player APIs like vector graphics, bitmap manipulation, and networking (which are based on the browser networking stack). The Flex framework adds reusable components like date pickers, data grids, charts, etc. Compiling a Flex application results in a SWF file which is the binary byte code format for the Flash Player. Contained in the SWF file is the byte code for the Flex framework code and a project’s custom code. The Flex compiler optimizes the byte code so that only classes which are used go into the SWF file.

    For desktop applications, Adobe is aiming to make their new desktop runtime, dubbed Adobe AIR, as ubiquitous as the web runtime. The 1.0 release of Adobe AIR will be available in the beginning of 2008. Currently, Adobe AIR is in beta release from labs.adobe.com. Many companies are already building production applications on Adobe AIR. One example can be seen with eBay’s application eBay Desktop.

  2. Flash Player is 100% proprietary.The core of Flash Player is the Tamarin Virtual Machine, which is an open source project under Mozilla. While the SWF file format is not fully open, it is documented by the community on osflash.org. There are numerous open source products that read and write SWF files. The Flash Player’s product direction has traditionally been heavily influenced by the community and their needs. The core language for Flash Player is an implementation of ECMAScript 262, which is the specification for JavaScript. Flex also uses CSS for styling of components/applications. Adobe AIR uses web standards as the basis for desktop applications as well as Open Source technologies like Tamarin, Webkit, and SQLite.
  3. Flash is for designers, video, and annoyances.Indisputably, the power of Flash has been abused. Pop-ups, pop-overs, skip intros and annoying ads run rampant across our screens. I’ve heard it said that one should never judge a religion by its abuse. The same adage applies to technology. Flash shouldn’t be avoided just because people use it for annoying things. After all, e-mail isn’t avoided just because spammers happen to abuse it.

    Traditionally Flash content was built with the timeline-based tool for designers. Flex is the developer toolset for building Flash-based content/applications. Designers and developers can work together by sharing assets between the two tools. Flex adds a comprehensive component base:

  4. Flex is not for enterprise or business applications.Over the last few weeks, Ward published a seven-part blog series on a number of new Oracle applications implemented in Adobe Flex. The applications, which were announced at the recent Oracle OpenWorld, ranged from sales tools to database management, and business intelligence.In addition to Oracle’s usage of Flex, InfoQ.com published a piece recapping a number of groups using Flex for enterprise applications. Ward also points out to InfoQ.com, that there are numerous examples of enterprise applications being developed with Adobe Flex, including work at Workday, SAP, Salesforce, and Business Objects.
  5. Flex is expensive.Flex is a free, and soon to be open sourced, developer toolkit for building Rich Internet Applications for the web and the desktop. This free SDK includes everything a developer needs to build RIAs that work the same on any browser or operating system. Part of the free Flex SDK is an extensive set of components which are extensible, skinable, and accessible. You can see many of these components in the Flex Component Explorer.

    Flex Builder is an optional plugin for Eclipse which makes developing applications with the free Flex SDK more efficient. It includes features like integrated debugging, design view, and code completion.

    The Flex Builder pricing has changed in quite a few ways recently. Flex Builder is now free for Students and Faculty. The price for the vanilla Flex Builder, without the charting components, has been reduced to $249 to better balance the tiered pricing for Flex Builder.

    There are a number of options for building back-end infrastructure for Flex applications. To take advantage of the high performance AMF data transfer protocol, there are official Java-based Adobe products like LiveCycle Data Services, its open source sibling BlazeDS, as well as numerous open source projects for other back-end systems. Using AMF removes the unnecessary steps of converting data to text (SOAP, RESTful, etc), transferring it, and then converting it back to data. AMF also allows type information to be preserved across the wire.

    To see a comparison of AMF to other text-based serialization technologies, see James Ward’s Census RIA Benchmark application.

  6. Flex applications require a special server.Flex applications can run on top of any web server, application server, and database server. Flex applications are much more like client-server applications. Since the logic is running on the client inside the Flash Player, you need some way of communicating with the server. There are many different options for how you connect Flex to your infrastructure. Without any special libraries, you can expose your back-end data and services as RESTful, XML, or SOAP and easily consume that data in your Flex application. If you choose to use the AMF binary serialization protocol, you may need to add some additional libraries into your web application. AMF is just another serialization technology, like XML or JSON, so it can be one of the various methods you use to communicate to your back-end SOA.
  7. Flex is hard to learn.Leftie Friele, from the InfoQ.com community, posted a comment on the InfoQ.com piece “Who is Using Flex?”, detailing his company’s experience in learning Flex:

    Our startup company, Ezmo, have used Flex since the start and we’re extremely happy with the framework.

    Without any prior knowledge of Flex/Flash, we built our application in less than two weeks. The integration between Java and Flex is super simple, and getting started with Flex is just a walk in the park.

    The tool support is very good too with Flex Builder. You get the familiar surroundings of Eclipse and you are off and running without many problems. The one thing that is missing is better tools for continuous integration and better plugins into Maven for building Flex applications.

    For those new to Flex, Ward has a screencast showing a Flex application being built to help get you started. There are also numerous other articles about using Flex and Java in the Adobe Developer Connection.

  8. With Flex, I will need to rebuild my entire application.In January, Bruce Eckel published an article titled, “Hybridizing Java.” He argues that the Java community should continue using the good parts of Java, but should use other technologies where Java is weak. His primary focus in the article is using Adobe Flex for user interfaces, instead of the traditional Java options (Swing, JSF, etc…).

    Ward elaborates on this concept:

    Since Flex applications are just the UI piece of an application the backend usually stays the same. If your backend was built following the SOA pattern then it is usually very easy to expose those services out to a new Flex UI. This preserves your existing business logic whether it is in EJBs, Spring services, POJOs, etc.

  9. Flex breaks normal browser functionality, like the Back button.Ward’s blog discusses the back button:

    In Flex, back button support is built in and easily customizable so this was never an issue. Flex also provides an easy way to do hashmark URLs (or named anchors), so the URL changes as application state changes. Another Web 1.0 integration problem solved.

    Ward adds more details:

    Flex 3 provides a simple way for applications to store state parameters in a named anchor and correctly restore state based on those parameters when the URL is requested. More information about this feature can be found in the Flex 3 Feature Introductions Deep Linking documentation.

    Accessibility has always been very important for Flex applications. Since the Flash Player works with Jaws and other accessibility technologies, the capability for adding accessibility to Flash-based applications is there. The Flex framework builds accessibility into the core framework. There are many different pieces of accessibility depending on what impairments and disabilities your application needs to support. You can find out more about the accessibility features of Flex in the Developer’s Guide.

  10. I can do everything Flex does with Ajax.RIA with Flex and Ajax is not either/or. Sites like Google Finance show how you can use Flex and Ajax together. Ajax is very good for content-centric applications, while Flex is very good for interactive, media, and data-centric applications. If your application is somewhere in between the two sides of that spectrum, then you can use the Flex Ajax Bridge to combine the two technologies. In Flex 3, the Flex Ajax Bridge is integrated directly into the SDK. If you are using Flex 2, you will need to download the Flex Ajax Bridge separately.