Monday, December 29, 2008

AIR Frameworks


Welcome to the beta release of the Text Layout Framework for Adobe® Flash® Player 10 andAdobe AIR® 1.5. The Text Layout Framework is an extensible library, built on the new text engine in Adobe Flash Player 10, which delivers advanced, easy-to-integrate typographic and text layout features for rich, sophisticated and innovative typography on the web. The framework is designed to be used with Adobe Flash CS4 Professional or Adobe Flex®, and is already included in the next version of Flex, code named Gumbo. Developers can use or extend existing components, or use the framework to create their own text components. Source code and component library for TLF are now available as open source at no charge under the Mozilla Public License at www.opensource.adobe.com.
Together with the new text engine in Flash Player 10 and AIR 1.5, the Text Layout Framework delivers multi-lingual, print-quality typography for the web, including support for:
  • Bidirectional text, vertical text and over 30 writing systems including Arabic, Hebrew, Chinese, Japanese, Korean, Thai, Lao, the major writing systems of India, and others
  • Selection, editing and flowing text across multiple columns and linked containers, and around inline images
  • Vertical text, Tate-Chu-Yoko (horizontal within vertical text) and justifier for East Asian typography
  • Rich typographical controls, including kerning, ligatures, typographic case, digit case, digit width and discretionary hyphens
  • Cut, copy, paste, undo and standard keyboard and mouse gestures for editing
  • Rich developer APIs to manipulate text content, layout, markup and create custom text components.

Friday, December 19, 2008

Javafx description


JavaFX Script, the scripting component of JavaFX, began life as a project by Chris Oliver called F3.
Sun Microsystems first announced JavaFX at the JavaOne Worldwide Java Developer conference on May 2007.
In May 2008 Sun Microsystems announced plans to deliver JavaFX for the browser and desktop by the third quarter of 2008, and JavaFX for mobile devices in the second quarter of 2009. Sun also announced a multi-year agreement with On2 Technologies to bring comprehensive video capabilities to the JavaFX product family using the company's TrueMotion Video codec.
Since end of July 2008, developers could download a preview of the JavaFX SDK for Windows and Macintosh, as well as the JavaFX plugin for NetBeans 6.1. On December 42008 Sun released JavaFX 1.0.

JavaFX 1.1

JavaFX for mobile development was finally made available as part of the JavaFX 1.1 release announced officially on February 12 2009.

JavaFX 1.2

JavaFX 1.2 was released at JavaOne on June 2, 2009. This release introduced:


What is JavaFX?

JavaFX is a rich client platform for building cross-device applications and content. Designed to enable easy creation and deployment of rich internet applications (RIAs) with immersive media and content, the JavaFX platform ensures that RIAs look and behave consistently across diverse form factors and devices.
The JavaFX platform release includes the following components:
  • JavaFX SDK which includes the JavaFX compiler and runtime tools, graphics, media, web services, and rich text libraries to create RIAs for the desktop, browser and mobile platforms.

  • NetBeans IDE for JavaFX which provides a sophisticated integrated development environment for building, previewing, and debugging JavaFX applications. The editor features a drag-and-drop palette to quickly add JavaFX objects with transformations, effects and animation. This IDE also comes with its own set of Building Block samples and the JavaFX Mobile Emulator, a mobile phone simulator.

  • JavaFX Production Suite is a suite of tools and plugins that enable designers to export graphical assets to JavaFX applications.
Read the Develop Expressive Content With JavaFX Platform document to learn more about what JavaFX technology has to offer you.

see for more details http://blogs.sun.com/javafx/

Tuesday, November 25, 2008

Cool Flex and AS3 Tools, Libraries and Components


36 New, Cool Flex and AS3 Tools, Libraries and Components

The Flex and AS3 ecosystem is exploding. The demand for individuals who know these technologies is at an all time high. I currently get about 5 people per day that are seeking developers who know this stuff. Over the past year the demand has only increased. More and more kats are jumping into Flex/AS3 dev every day. Along with the surge of interest has come a ton of new tools, libraries and components. I put together two blog posts last year showcasing many of these new libraries, tools, etc. The hit count on these those posts is pretty impressive to say the least. It surprised me quite a bit actually. Since the start of 2008 there have been several cool items introduced to the community. Here is a new list of 36 Flex and AS3 tools, libraries and components that I’ve been tracking. I hope someone else gets some use out of this list. I need to check out many of these projects myself…
ActionScript 3.0 APIs from Eric Feminella
ActionScript 3.0 APIs developed specifically for Adobe Flex and AIR.
http://www.ericfeminella.com/blog/actionscript-3-apis/
ASMailer 
The ASMailer class sends emails using an SMTP server. ASMailer sends mail without the need of a server side language like PHP or JSP.
http://asmailer.riaforge.org/
Away3d 2.1
Away3D is a realtime 3d engine for flash in ActionScript 3.0
http://away3d.com/away3d-21-demos-docs
Bullet Graph
A good way to show actual time spent vs. the estimated time for a project
http://agileui.blogspot.com/2008/05/bullet-graph-free-flex-component.html
Degrafa
Degrafa : Declarative Graphics Framework
http://www.degrafa.com/
Desuade Partigen
Desuade Partigen is an extension for Adobe Flash which lets you create realistic vector and raster particle effects (such as fire, smoke, sparkles), without requiring you to do any complex coding.
http://desuade.com/products/partigen/
EasyMVC 
EasyMVC is an event driven MVC framework which focuses on flexibility while not getting in the developers way.
http://projects.simb.net/easyMVC/
Five3D
vector-based 3d rendering framework by Mathieu Badimon - has just received a significant update, bringing it to version 2.1. New features this version brings: Back Face Culling, Flat Shading, Z-sorting, Space Drawing functions, Bitmap3D class, Video3D class, Sprite2D Class, Letter Spacing, Text Width
http://five3d.mathieu-badimon.com/
Flex 3 Performance and Memory Profiling
“Memory profiling lets you look at objects being created, take snapshots and compare them. Performance profiling allows snapshots for looking at cumulative and internal time.”
http://labs.adobe.com/wiki/index.php/Flex_3:Feature_Introductions:_Performance_and_Memory_Profiling
Flex 3 RSLs
Use Flex 3 runtime-shared-libraries (RSLs) to reduce the size of your applications and thereby reduce the time required to download the application. RSLs are just SWF files whose code is used as a shared library between different application SWF files.
http://labs.adobe.com/wiki/index.php/Flex_3:Feature_Introductions:Flex_3_RSLs
Flex 4 States syntax changes
Flex 4 will target all of the legacy usage scenarios of classic Flex states functionality (stateful components, states as application “views” or “pages”, effects and transitions between view states, etc.). This document outlines what is primarily a syntax change for the existing functionality.
http://opensource.adobe.com/wiki/display/flexsdk/Enhanced+States+Syntax
Flex and Flex Developers Magazine
http://www.ffdmag.com/
Flex “Designer Scroll Bars”
“designer scroll bars” - skinny little tone on tone scroll bars that have no scroll arrows
http://www.gskinner.com/blog/archives/2008/05/designer_scroll.html
FlexMDI
flexmdi is a robust, extensible Multiple Document Interface framework for Adobe Flex.
http://code.google.com/p/flexmdi/
Flex Resource Bundles
What’s a resource bundle? It’s a set of values that you externalize from your source code in a properties file. And it can be swapped out at compile time or, with Flex 3, at runtime. Think of it like a style sheet for values.
http://blog.extends.eventdispatcher.org/roger/introduction-to-flex-resource-bundles/
FOAM 
FOAM is a two-dimensional rigid body physics engine written in ActionScript 3.0.
http://code.google.com/p/foam-as3/
Go3D
Cool Tweening Engine, the Go3D which give you more control over moving objects in 3d space.
http://code.google.com/p/goplayground/source/checkout
GoogleMap Flex Component
A new component for Flex Developers who want to add more control or be very well organized.
http://www.igorcosta.org/?p=140
Guttershark 
Guttershark is an Actionscript 3 library that pushes some simple conventions on you, only to make you faster as a developer. It’s a pattern for Flash development that cuts out a huge amount of time, especially when you’re in the first stages of development.
http://www.guttershark.net/
ILOG Elixir 
A suite of professional user interface controls that gives developers a rich collection of innovative and interactive data display components. It includes ready-to-use schedule displays, map displays, dials, gauges, 3D and radar charts, a treemap chart and organization charts.
http://www.ilog.com/products/ilogelixir/
LoadingImage 
Takes a regular Flex Image component, and adds a self contained ProgressBar to it to show its own loading progress.
http://www.munkiihouse.com/?p=135
Logger Library and RIALogger
The Logger component provides classes to that abstract the Flex 2 Log and logging Target classes. It provides a simple approach to logging messages with category information and provide hooks into multiple targets. It supports the following logging targets by default: RIALoggerTarget, TraceTarget (trace()), XPanelTarget, and FlexTracePanelTarget. The LogController also provides functionality to allow you to setup your own custom logging Target.
http://renaun.com/blog/flex-components/rialogger/
Mate
Mate is a tag-based, event-driven Flex framework.
http://mate.asfusion.com/index.cfm
Merapi
Merapi is a new project that is a framework for connecting AIR to java at the desktop.
http://adamflater.blogspot.com/search/?q=merapi
MinimalComps: Minimal AS3 UI Component Set
CheckBox, PushButton, HSlider, VSlider, InputText, ProgressBar, RadioButton, ColorChooser (text input only) and Panel.
http://www.bit-101.com/minimalcomps/
OpenFlux
OpenFlux is an open-source Flex component framework which allows developers to create radically new and custom Flex components.
http://code.google.com/p/openflux/
PeekPanel
Cool way to hide options or preferences in an application. It borrows the look and feel from the FlexBook/PageFlip components already out there, but instead of simulating a book, this is more of a way to use the “flip” to hide other components.
http://www.billdwhite.com/wordpress/?p=29
Share (Document Services API)
Online service provided by Adobe that allows you to share, publish, and organize documents online.
http://code.google.com/p/as3sharelib/downloads/list
Slide
Slide is an application framework for projects built in Flex 2 or 3. Using familiar design patterns, Slide provides a robust MVC structure, view state management decoupled from view implementation and a flexible approach to model and controller access, eliminating need for singleton classes.
http://code.google.com/p/flex-slide/
Sandy 3.0.2
Sandy is an intuitive and user-friendly 3D open-source library.
http://www.flashsandy.org/versions/3.0
Sprouts
Sprouts is an open-source, cross-platform project generation and configuration tool for ActionScript 2, ActionScript 3, Adobe AIR and Flex projects.
http://www.projectsprouts.org/
Universal Mind Extensions for Adobe Cairngorm
Universal Mind has extended the “classic” Adobe 2.2.x Cairngorm version to provide many productivity and maintenance enhancements.
http://code.google.com/p/flexcairngorm/
Video Tutorial on Compiling for Flash Player 10
http://theflashblog.com/?p=383
Virtual Space (AS 3.0) V. 1.0
The Virtual Space is an AS3 component that can be used to create virtual-tour type visualizations very easily. Simply specify 6 images to be used for top, bottom, left, right, front, and back. Then, position the camera, set the initial view, and specify interaction parameters.
http://www.afcomponents.com/components/virtual_space_as3/

Saturday, October 25, 2008

HOW TO NAME YOUR BUSINESS

HOW TO NAME YOUR BUSINESS

One of the first, and most vital, steps every new business takes is the selection of a name.

Choosing the name of your busness wisely will have much to do with its subsequent success. That's because people will make critical decisions simply based on your business name.

It is true that people make snap decisions about other people based on simple 7-second first impressions. After those first few moments, it gets pretty hard to change someone's mind about that person later.

In the same way, people make snap decisions about your business based on first impressions. The first thing many people see is your name. With a good name, you will warrant further scrutiny. But if you chose a name poorly, the consequences can be disastrous.

An early note of caution is needed here. In cases where the business is already established, be careful about changing the name. You may lose the equity which has already been built and established. However, if you need to come up with a new company name, here are some guidelines to help you.

Reflect your target niche.

First, your business name should clearly reach your target audience. Is your offer or claim understandable? Two good name selections are the 7-11 and Hot 'N Now stores. Your name should also fit your logo and slogan. In addition, clarity about your desired geographical service area helps people understand your business. All-City Shoe Repair tells me that they will fix shoes anywhere in my community. That's pretty clear!

However, don't use any geographical descriptions if that could ever become a limiting factor. For example, would a company called Eastside Bookkeeping ever do work for someone located downtown? In addition, geographical names tend to get overused. To see what I mean, go to the white pages of your phone book and see how many business names start with the name of your city or state.

Clarify what your business does.

Your business name should let the customer know what you do. Although Aaacme Services, Inc. may be listed first in your section of the Yellow Pages, a business card given to a new acquaintance doesn't tell the receiver what your business does. If a person can't remember why they have your card, they will quickly discard it. Two good names are Jiffy Lube and Fast Signs. And if you can attract your customers properly in the first place, they'll probably never even notice that they passed three of your competitors on their way to see you.

Keep the name simple.

Keep your business name short and easy to say, spell and remember. Avoid tongue twisters like Watson, Smith, Howiczak, Elton and Elton. Imagine the poor secretary who has to write down a message from that company!

Also avoid acronyms or names using initials unless they will mean something to your typical customer. If IBM had been started using that name instead of International Business Machines, it is doubtful that they would have been as successful. Letters mean little or nothing to your customer, and as a result, are quickly forgotten. IBM didn't begin using that name until the marketplace had already bestowed the shortened name upon them.

Keep the name flexible.

Don't let your name restrict you to a field that you may grow out of. Make the name expandable. As an example, Canned Software Company may sound good at first, but what happens if you decide to get into the computer hardware business? Or what if Mr. Smith ever leaves or sells Smith Watch Company. If it fails, what does that do to his reputation?

Avoid trendy names.

It seems that every few years, some new naming trend makes the rounds. How many times have you seen some type of name using Something-a-Rama or Something 'R Us? After these fads run their course, you will be left with a stale and outdated name, and that's probably what most people will think of your company too!

Avoid amateurish or silly names.

Names like Bambi's Secretarial Service typically will not generate the confidence of your potential customers. If I were looking for a professional service, I'd be much more inclined to call ASAP Secretarial Services. For the same reasons, avoid silly names. They will wear thin very quickly. Curl Up and Dye may sound cute now, but after six months, you and your customers will become very weary of the joke.

Is it unique and can it be protected?

You want your name to stand out in front of your customers and prospects. Avoid names that are close, or even similar to your key competitors. If all your competitors use variations of XYZ Janitorial Supply, position yourself differently with a distinctive name like EnviroSafe Products. Finally, take steps to be sure that your name is protected and preserved in your marketplace. Similarly, be sure that you are not encroaching on anyone else's trademark or identity.

Sunday, September 28, 2008

Remote Object Service in Flex

» Der Remote Object Service in Flex

Was unterscheidet den Remote Object Service vom HTTPService oder dem WebService?
Wie auch der HTTPService und der WebService greift der Remote Object Service über das HTTP Protokoll auf die Ressourcen des Servers zu. Im Gegensatz zu den erst genannten Services benutzt der RemoteObject Service aber nicht das auf Text basierende XML Format für den Informationsaustausch, sondern das proprietäre AMF (Action Message Format). Dieses codiert die auszutauschenden Informationen binär, die gesendete Nachricht wird dadurch wesentlich kleiner und kann schneller übertragen werden.
Java Entwickler mag diese Technik an die RMI API erinnern und der Vergleich ist durchaus angebracht. RMI nutzt jedoch statt des HTTP Protokolls (Port 80) ein eigenes Übertragungsprotokoll, scheitert damit an den meisten Firewalls und macht deshalb nur in firmeninternen (oder anderen geschlossenen) Umgebungen Sinn. Im Gegensatz dazu kann der Remote Object Service ohne Einschränkungen auch im Internet verwendet werden.

darstellung des RemoteObject Service mit dem Flex Data Service


Das POJO auf dem Tomcat
Um den Remote Object Service zu verwenden, muss zunächst ein Service Objekt in Java implementiert werden, welches die auf dem Client benötigten Methoden zur Verfügung stellt. Die Methoden, die der Client später verwenden soll, müssen als public deklariert werden. Die Klasse muss sich zudem im CLASSPATH des Flex Data Service befinden und einen leeren Konstruktor haben. Eine simple Testanwendung könnte wie folgt aussehen:

 Die Service Klasse auf dem Tomcat

public class RemoteObjectService {

public RemoteObjectService() {}

public String sayHello() {
return "Hallo Flexwelt";
}
}

Bekanntmachen der Klasse
Damit der Flex Data Service die erzeugte Klasse als RemoteObject erkennt, muss diese in der remote-config.xml bekannt gemacht werden. Die remote-config.xml befindet sich, genau wie die proxy-config.xml, im Verzeichnis WEB-INF/flex unterhalb des Context-Root.
Für die erzeugte Service Klasse wird eine neue Destination angelegt. Diese bekommt eine eindeutige Id, die später in der Flex Anwendung zur Referenzierung des entfernten Objektes gebraucht wird. Zusätzlich wird der vollständige Klassenname und der Scope deklariert.

 Auszug aus der remote-config.xml        



org.fleksray.samples.RemoteObjectService
application



Scoping
Die drei Möglichkeiten um einen Scope zu definieren sind application, session und request. Diese Varianten den Scope zu definieren sind Java Entwicklern hinreichend bekannt, deshalb hier nur eine kurze Erklärung.
Wird für das RemoteObject der Scope application definiert, wird für jede Serverinstanz nur eine einzige Klasse instantiiert. Alle Anwender der Applikation greifen also auf das gleiche Objekt zu. Im session Scope wird für jeden User ein eigenes Objekt angelegt. Dieser Scope wird deshalb in der Regel für Session Tracking, das Speichern von Warenkörben und Ähnlichem verwendet. Im request Scope wird für jeden HTTP Request ein neues Objekt erzeugt. Dieser Scope erhöht die Rechenlast des Servers empfindlich und sollte nur, wenn unbedingt notwendig angewendet werden.
21. Oktober 2007

» Aufruf entfernter Methoden

Verarbeiten der Daten auf dem Client mit Hilfe der Binding Expressions
Um die vom RemoteObject bereitgestellten Daten zu verarbeiten, stehen dem Entwickler zwei Möglichkeiten zur Verfügung: Binding Expressions und in ActionScript geschriebene Event Handler. Erstere Methode ist einfacher und weniger verbose. Werden dagegen eigene Event Handler benutzt stehen mehr Möglichkeiten zur Verfügung, die Daten zu verarbeiten.
Mit Hilfe der Binding Expression ist das entgegennehmen der Daten recht einfach.

 Auszug aus der MXML Datei die das RemoteObject verwendet






Verwenden der Event Handler
Das RemoteObject löst bei erfolgreicher Datenübertragung ein ResultEvent aus. Lief etwas schief wird ein FaultEvent getriggert. Innerhalb der Event Handler können die Ergebnisse des entfernten Methodenaufrufes vielfältiger gehandhabt werden, als mit den Binding Expressions.

 Die MXML Datei verwendet nun Event Handler




handleResult(ev:ResultEvent):void {
_message = ev.result.toString();
}

private function handleFault(ev:FaultEvent):void {
_message = "das ging daneben: "
+ ev.fault.faultCode + " :: "
+ ev.fault.faultDetail + " :: "
+ ev.fault.faultString;
}
]]>


result="handleResult(event)"
fault="handleFault(event)"/>






Ein FaultEvent kann leicht ausgelöst werden, indem im click Handler des Buttons auf eine nicht existierende Methode des RemoteObject zugegriffen wird ( click="{myRemoteObject.sayGoodBye()}")
Result Handler Dispatching im RemoteObject
Wie geht man nun mit Service Objekten um, die dem Client eine ganze Reihe von Methoden zur Verfügung stellen. Im RemoteObject wird im oben gezeigten Beispiel nur einen Result Handler defininiert, der für genau eine Methode zuständig ist..
Ein erster, einfacher Ansatz wäre, im Result Handler eine switch-case Anweisung zu schreiben, die anhand des übergebenen Events die aufzurufende Methode erkennt.
Flex bietet eine elegantere Lösung. Innerhalb des RemoteObject können den Service Methoden jeweils unterschiedliche Result Handler zugeordnet werden.

 Dispatching der Events an unterschiedliche Handler




handleHelloResult(ev:ResultEvent):void {
_message = ev.result.toString();
}

private function handleDataResult(ev:ResultEvent):void {
_data = ev.result as ArrayCollection;
}

private function handleFault(ev:FaultEvent):void {
_message = "das ging daneben: "
+ ev.fault.faultCode + " :: "
+ ev.fault.faultDetail + " :: "
+ ev.fault.faultString;
}
]]>



name="sayHello" result="handleHelloResult(event)" />
name="getTestData" result="handleDataResult(event)" />




click="{myRemoteObject.sayHello()}"/>




click="{myRemoteObject.getTestData()}"/>



Im gezeigtem Beispiel wird für jede Methode des Service Objektes ein eigener Result Handler deklariert, der Fault Handler wird von allen Methoden gemeinsam benutzt. Es ist auch möglich, jeder Methode einen eigenen Fault Handler zuzuweisen.
31. September 2007

» Übergabe von Argumenten

In den meisten Fällen wird von einer Applikation mehr verlangt, als nur einfache Methoden aufzurufen. In der realen Welt müssen Eingaben des Benutzers an den Server weitergeleitet werden und zu einer entsprechenden Response umgesetzt werden. Die Eingaben werden, wie in bei Html auch, oft über Formulare entgegengenommen und dann verarbeitet.
Das RemoteObject muss also auch in der Lage sein, Argumente zu verarbeiten. Im folgendem Beispiel soll das Service Objekt auf dem Server aus zwei übermittelten Strings ein personalisierte Begrüßung bauen.

 Die Java Klasse übernimmt Argumente

public class AnsweringService {

public AnsweringService() {}

public String sayHello(String title, String name) {
return "Hallo " + title +" " + name;
}
}

In der MXML-Datei werden die Argumente innerhalb des <method> Tags deklariert. Hier können statische Werte oder Binding Expressions verwendet werden.
Das Tag erwartet ein Array mit Parametern. Wie diese Parameter benannt werden, ist unwesentlich. Der Konsistenz halber sollten sie aber wie die Argumente der Java Klasse benannt werden. Entscheidend ist die Reihenfolge der Argumente. Das zuerst deklarierte Element wird als erstes Argument an das Objekt auf dem Server übergeben.
Werden Argumente in der beschriebenen Weise übergeben, muss im Click EventHandler die Methode send() an der Remotemethode aufgerufen werden.

 Senden von Argumenten an das Objekt auf dem Tomcat Server









{myName.text}











id="title"
dataProvider="['Frau','Herr','Mrs.','Mr.']"/>


id="myName"/>



click="{myAnsweringObject.sayHello.send()}"/>

Building Flex Applications with JSPs

Problem Summary

Flex applications are client side applications which must communicate over the network to retrieve data from and store data in a database. There are many ways to communicate between the client and the server. If you are using Java you may already have JSPs which allow your users to view and modify data. How can you put a Flex UI front-end on top of your existing JSP based infrastructure?

Solution Summary

Flex can make requests to your existing JSPs using the HTTPService object. These requests can work with any JSPs. A Flex application contains all of the view logic so the JSPs should not return HTML but rather just serialized data.

Explanation

You might have a JSP similar to this one:

<%@page import="flex.samples.product.ProductService,
flex.samples.product.Product,
java.util.List"%>
<html>
<body>
<table>
<tr>
<th>Name</th>
<th>Description</th>
<th>Price</th>
<th>Image</th>
<th>Category</th>
<th>Quantity</th>
</tr>
<%
ProductService srv = new ProductService();
List list = null;
list = srv.getProducts();
Product product;
for (int i=0; i<list.size(); i++)
{
product = (Product) list.get(i);
%>    
<tr>
<td><%= product.getName() %></td>
<td><%= product.getDescription() %></td>
<td><%= product.getPrice() %></td>
<td><%= product.getImage() %></td>
<td><%= product.getCategory() %></td>
<td><%= product.getQtyInStock() %></td>
</tr>
<%
}
%>
</table>
</body>
</html>

This JSP just displays a simple HTML table of data which it fetched from the database. If you have a Flex application and want to display the same data in a tabular format you may just use a DataGrid in your mxml application. To get the data into your DataGrid you will need to modify the JSP so that it outputs serialized data rather than HTML:

<%@page import="flex.samples.product.ProductService,
flex.samples.product.Product,
java.util.List"%>
<?xml version="1.0" encoding="utf-8"?>
<catalog>
<%
ProductService srv = new ProductService();
List list = null;
list = srv.getProducts();
Product product;
for (int i=0; i<list.size(); i++)
{
product = (Product) list.get(i);
%>    
<product productId="<%= product.getProductId()%>">
<name><%= product.getName() %></name>
<description><%= product.getDescription() %></description>
<price><%= product.getPrice() %></price>
<image><%= product.getImage() %></image>
<category><%= product.getCategory() %></category>
<qtyInStock><%= product.getQtyInStock() %></qtyInStock>
</product>
<%
}
%>
</catalog>

Since this JSP now outputs XML serialized data, Flex will be able to parse that data and turn it into objects which can then be displayed in the DataGrid. The entire Flex application to request the data and display it in a DataGrid could be as simple as:


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="srv.send()">
<mx:HTTPService id="srv" url="catalog.jsp"/>
<mx:DataGrid dataProvider="{srv.lastResult.catalog.product}"/>
</mx:Application>

The HTTPService tag instantiates an object which will make the request to the JSP and deserialize the results into object. The url property on the HTTPService should point to the JSP which returns the XML data. The DataGrid tag instanciates an object which will display objects in a tabular format. The dataProvider property on the DataGrid tells the DataGrid which data to display. In this case the value uses data binding. A binding expression goes between the curly braces. The data binding tells the DataGrid to watch the specified object for changes and when changes occur the DataGrid will refresh it's view of the data. In this case the dataProvider is set to bind to the lastResult property on the HTTPService object (srv is the referencable identifier of the HTTPService). The lastResult object contains an object named "catalog" which corresponds to the catalog node of the XML which is returned from the JSP. On the catalog node there is another array of nodes in the XML called "product". Thus the expression "srv.lastResult.catalog.product" corresponds to the array of product which are returned from the HTTPService request to the JSP. The finial piece of logic in the code is an event handler which causes the Flex application to make a request to the JSP. The "creationComplete" event handler is triggered when the Flex application has fully initialized. When this event is triggered the Flex application makes a request to the JSP by calling the send method on the HTTPService.

Computer Languages History

Computer Languages HistoryComputer Languages Timeline
Below, you can see the preview of the Computer Languages History (click on the white zone to get a bigger image):


There is only 50 languages listed in this chartABC :
A Short Introduction to the ABC Language Ada :
Ada 95
Ada Home Page
AdaPower
Special Interest Group on Ada
Ada Information Clearinghouse ALGOL :
The ALGOL Programming Language AWK :
The AWK Programming Language by Alfred V. Aho, Brian W. Kernighan, and Peter J. Weinberger APL :
Apl Language
APL B :
The Programming Language B (abstract)
Users' Reference to B by Ken Thompson BASIC :
The Basic Archives
Visual Basic Instinct
Visual Basic Resource
True BASIC
REALbasic BCPL :
BCPL Reference Manual by Martin Richards C :
The Development of the C Language by Dennis Ritchie
Very early C compilers and language by Dennis Ritchie
The C Programming Language (book)
Programming languages - C ANSI by ISO/IEC (draft)
C Programming Course C++ :
The C++ Programming Language (book)
C and C++: Siblings (pdf) by Bjarne Stroustrup C# :
Visual C# Language by Microsoft. Caml :
The Caml language
Objective Caml
The Objective-Caml system CLU :
CLU Home Page COBOL :
IBM COBOL family
COBOL Portal
TinyCOBOL
COBOL User Groups - COBUG CORAL :
Coral66
Computer On-line Real-time Applications Language Coral 66 Specification for Compilers (pdf) CPL :
Combined Programming Language (Wikipedia) Delphi :
Delphi 2005 by Borland
Pascal and Delphi
A brief history of Borland's Delphi Eiffel :
Eiffel
EiffelStudio by Eiffel Software
Visual Eiffel by Object Tools
SmartEiffel
EiffelZone Flow-Matic :
Flow-Matic and Cobol Forth :
Forth Interest Group Home Page Fortran :
User notes on Fortran programming
Fortran 2000 draft
Fortran 2003 JTC1/SC22/WG5 Haskell :
Haskell Home Page Icon :
The Icon Programming Language
Icon
History of the Icon programming language J :
J software
A management perspective of the "J" programming language Java :
Java by Sun Microsystems
Java Technology: an early history
Programming Languages for the Java Virtual Machine
James Gosling's home page JavaScript :
Cmm History by Nombas
JavaScript Language Resources from Mozilla
Standard ECMA-262 Lisp :
The Association of Lisp Users
An Introduction and Tutorial for Common Lisp Mainsail :
Mainsail from Xidak.
Mainsail Implementation Overview by Stanford Computer Systems Laboratory. M (MUMPS) :
M technologies
M[UMPS] Development Committee
What is M Technology? ML :
Standard ML
Standard ML '97 Modula :
Modula-2
Modula-3 Home Page
Modula-2 ISO/IEC Oberon :
A Brief History of Oberon
A Description of the Oberon-2 Language
The Programming Language Oberon-2
Oberon Language Genealogy Tree Objective-C :
Objective-C
Objective-C FAQ
Introduction to The Objective-C Programming Language by Apple
Objective-C: Links, Resources, Stuff Pascal :
ISO Pascal (document)
Pascal and Delphi Perl :
Perl Home Page
Perl
Larry Wall's Very Own Home Page PHP :
PHP: Hypertext Preprocessor PL/I :
Multics PL/I
IBM PL/I family by IBM Plankalkül :
Plankalkül PostScript :
PostScript level 3 by Adobe
PostScript and GhostScript by Jim Land
GhostScript Home Page Prolog :
Prolog Programming Language
The Prolog Language Python :
Python Home Page Rexx :
IBM REXX Family by IBM
The Rexx Language Association Ruby :
Ruby Home Page
Ruby programming language (Wikipedia)
Ruby - doc Sail :
Sail (Stanford Artificial Intelligence Language) Sather :
Sather History
Sather
GNU Sather Scheme :
Scheme by MIT
The Revised5 Report on the Algorithmic Language Scheme (in PostScript)
Schemers Home Page
SCM Self :
Self Home Page from Sun Sh :
Korn Shell of David Korn
Bash from GNU
Zsh Simula :
Simula by Jan Rune Holmevik Smalltalk :
Smalltalk Home Page
Smalltalk FAQ
The Early History of Smalltalk
The Smalltalk Industry Council web site
VisualAge Smalltalk from IBM
VisualWorks from Cincom
The history of Squeak
ANSI Smalltalk SNOBOL :
Snobol4 Resources by Phil Budne
Introduction to SNOBOL Programming Language by Mohammad Noman Hameed
Snobol4 Tcl/Tk :
Tcl/Tk Information

Other links on same subject :
The Language List (about 2500 computer languages) by Bill Kinnersley
An interactive historical roster of computer languages by Diarmuid Pigott.
Programming languages by The Brighton University
Programming languages
Diagram of programming languages history
The Programming Languages Genealogy Project
History of Programming Languages
99 Bottles of Beer
Dictionary of Programming Languages
Wikipedia: Computer languages
Computer-Books.us: free computer books

Also see this links

I am getting money from this links after signing in for free. Don't wast time just join and earn without any hard word.....
Hello Friends,
     I want to tell you about great site I found. They pay me to read e-mail, visit web sites and much more.
JOIN A CERTIFIED LEGITIMATE ONLINE BIZ!!!!
Would you like to Earn money without spending even a single penny?
Now! It is possible..
No Registration Fee
No Credit Cards required
No Hassle
No Risk
Not Nesseary to Join others
It's free to join and easy to sign up! CLICK THIS LINK TO VISIT:
Earn money without Investment
Earn money for getting ads to u r cell phone numbers what u want to get.

1) http://earnbyads.co.in/PI1.aspx?RC=5ba4f5ae
2) http://www.mginger.com/index.jsp?inviteId=883819
3) http://www.youmint.com/network-ramu4all_31
4) http://www.sms2earn.com?refid=5713
5) www.sms2india.co.in/?user=ramu4all_31
6) http://www.admad.mobi/112411-ThulasiramS.admad
7) http://www.mgarlic.com/?invite=222242142
The more time you spend surfing, the more chances of earning money.
1) http://www.earnptr.com/pages/index.php?refid=ramu4all31
3. Each time you refer a new user, you earn 10% of their image views forever!
http://www.capitalmails.net/pages/index.php?refid=ramu4all31

capitalmails.net
http://www.homepagepublicity.com/?referer=166996
http://www.jaxtr.com/ramu4all_31
Earn money without Investments:
Login for free and Earn money without any investment by clicking the below links...
I really getting money from this websites
I just joined Shelfari to connect with other book lovers. Come see the books I love and see if we have any in common. Then pick my next book so I can keep on reading. See by clicking the below link...
http://www.shelfari.com/invite/RJNuEo$a2-E6REr8y2iIPQ
http://ramu4all31.sulit.com.ph
http://www.resource-a-day.net/member/index.cgi?ramu4all_31
Earn money for reading E-mails:
The easiest way to make more money is to let others make them for you. Cashfiesta pays you for your referrals up to the 8th level. See for yourself how much you can earn, click on the Fiesta Calculator.
http://www.cashfiesta.com/php/join.php?ref=ramu4all_31
http://rolex-mails.com/pages/index.php?refid=ramu4all31
rolex-mails.com
Get paid to take surveys! Get $6 after signing up! Get $1.25 per referred friend. Low Payout! Create your account absolutely free!

http://www.AWSurveys.com/HomeMain.cfm?RefID=ramu4all31

http://www.earnptr.com/pages/index.php?refid=ramu4all31
http://www.advercash.net/signup.php?ref=ramu4all_31
http://bux.to/?r=ramu4all_31
Payout : US$ 10.00
Per Click : US$ 0.01
Per Sign up : US$ 0.30
Referrals : 50%
http://www.masterbux.com/?r=ramu4all_31
http://www.bux3.com/?r=ramu4all31
http://www.just-click.us/?r=ramu4all_31
http://clix4coins.com/index1.php?ref=ramu4all_31

http://www.gjobsdataservice.com/affiliate/idevaffiliate.php?id=812