Main | July 2007 »

June 2007 Archives

June 10, 2007

Cerchi una consulenza su Flex 3, AIR, Livecycle data services e Java per lo sviluppo di RIA ? E' nata Comtaste Consulting

Dopo oltre un decennio di attività da free lance per lo sviluppo e la consulenza su Flash, Flash Media Server e, successivamente, Flex (fin dalla versione 1) e Flash Lite, ho formato e dirigo un team di professionisti che hanno una profonda conoscenza di queste tecnologie ed un solido background in Java, EJB3, Struts, Hibernate, POJO e Spring in ambiente Java Enterprise (J2EE).
Oltre a frequenti attività di supporto ad Adobe in importanti progetti nell’area EMEA (EuropeMiddleEastAfrica), questo team di consulenza e sviluppo è stato ingaggiato più volte da prestigiose aziende worldwide per consulenza in materia di analisi, sviluppo e ottimizzazione di applicazioni in cui gli aspetti gestionali e di sicurezza tipici del mondo enterprise integrano saggiamente l’attenzione alla user experience che è il fulcro dell’approccio RIA (Rich Internet Applications).

Se hai bisogno di assistenza per un'applicazione interna o vuoi rendere un'applicazione eistente più ricca e accattivante, o se hai un'idea che vuoi realizzare utilizzando le più moderne, efficaci ed affidabili tecnologie disponibili sul mercato quello che stai cercando è il mio team! Forniamo consulenza e assistenza in ogni parte del mondo, on site e off site, both on a Time&Material and on a TurnKey basis.

Per contattarmi in merito ad attività di consulenza, scrivi una email a consulting[ AT ]comtaste.com

June 11, 2007

Flex 3 and Flash Player 9 update on the Labs

Today Adobe released a lot of new technologies on its Labs section: Flex 3 Flash Player 9 update 3 and Adobe AIR (Adobe Intergrated Runtime).

flex3_fx_124x120.jpgFlex 3 is the one we are waiting for and the new features of this release are a lot and Adobe made an excellent work. As you can read from the Introduction to Flex 3 article by Matt Chotin :
the Flex 3 release is divided into four major themes: designer/developer workflow, working with data, Adobe AIR applications, and platform evolution. Let's quickly review some of the highlights:

* Native support for Adobe AIR – Flex 3 introduces new components and incorporates the Adobe AIR development tools into the SDK and Flex Builder.
* Persistent framework caching – You can make Flex 3 applications as small as 50K when leveraging the new Flash Player cache for Adobe platform components.
* Flex Builder productivity enhancements – Flex Builder 3 introduces refactoring support, new profilers for performance and memory tuning, and code generation tools for data access.
* Integration with Creative Suite 3 – The Flex Component Kit for Flash CS3 allows Flash CS3 users to build components that can be seamlessly integrated into a Flex application, while Flex Builder 3 adds new wizards for importing assets from CS3 applications as skins.
* Advanced DataGrid – The Advanced DataGrid is a new component that adds commonly requested features to the DataGrid such as support for hierarchical data, and basic pivot table functionality.
* First steps toward open source Flex. As a first step toward making Flex an open source project, we've opened up the Flex and Flex Builder bug tracking system to the public, as well as published detailed roadmap information.


Emmy Huang wrote on his blog about the the Flash Player 9 update 3 and its 300 bug fixes :

The Flash Player 9 update 3 beta (9.0.60.120) has a little something for everyone. In addition over 300 bug fixes, and the new player cache for Adobe platform components that Ted mentioned on Thursday, we've added performance enhancements that will improve your video and interactive content. The hot new feature is full-screen mode with hardware scaling, which can be used to deliver significant improvements in visual quality and performance for video. If you're interested in the technical details behind this feature and the rest of the performance enhancements, Tinic will be talking about the under-the-hood details on his blog and has also written an article on Adobe Labs on the new API for accessing this feature. There is also a video you can use to see the difference between software and hardware full-screen mode. Check back, if it hasn't gone live yet...

Full-Screen mode with hardware scaling for the update 3 of Flash Player 9

The new Flash Player 9 update 3 has been released on the Adobe Labs

Flash Player 9 Update 3 introduces a new property called fullScreenSourceRect on the Stage object. It is available in ActionScript 2.0 and ActionScript 3.0. This property allows developers to specify which part of a SWF is displayed in full-screen mode. This allows Flash Player to leverage hardware scaling which can significantly improve quality and performance.

Read the full " Flash Player:9:Update:Full-Screen Mode HW" article.

You can download Flash Player 9 from the Flash Player Download Center. For an overview of Flash Player features, visit the Features section of the product page.

June 12, 2007

Something in the AIR (Adobe Integrated Runtime)

Logo_air_156x136Adobe announced the final name for Apollo : Adobe AIR.

A free AIR software development kit has released today.

You can download it on the Adobe Labs together with the Apollo Extension for Dreaweaver.

Also on Monday, Adobe plans to release the beta of Flex 3, its software development tool that can now be used for writing AIR applications in addition to Flash and HTML-based Web applications. (via Marco Casario)

LiveCycle Data Services ES 2.5 Documentation

Past week the Flex Doc Team at Adobe released the documentation for LiveCycle Data Services Es 2.5. The documentation was realeased in livedocs format so you were able to read on the web.

Randy Nielsen, the Learning Resources Manager at Adobe Systems Incorporated, send me an email to point me out that the LiveCycle Data Services Developer’s Guide has been released in PDF format.
So we're now ready to download and print it !

This is the entire LiveCycle Data Services documentation :

* Getting started - http://livedocs.adobe.com/livecycle/es/sdkHelp/programmer/lcds/getstarted_1.html
* LiveCycle Data Services Developer’s Guide - [ LiveDocs ] | [ PDF ]
* LiveCycle Remoting - http://livedocs.adobe.com/livecycle/es/sdkHelp/programmer/sdkHelp/Invoking_LiveCycle/invokingLCRemoting.2.1.html
* LiveCycle ES ActionScript Language Reference (includes Flash Player, Flex SDK 2.0.1 hotfix 2, Data Services, and LiveCycle Form Guide classes) - http://livedocs.adobe.com/livecycle/es/sdkHelp/common/langref/index.html
* LiveCycle Data Services JavaDoc - http://livedocs.adobe.com/livecycle/es/sdkHelp/programmer/lcdsjavadoc


Flex Doc Team rocks !
They made an excellent job for the Flex and LiveCycle Data Services Es 2.5 documentation.
Thanks guys !

June 13, 2007

What is “social” in mobile web 2.0 ? - Cos'è "social" nel mobile web 2.0 ?

I admit that it is not easy to synthesize the concept of “mobile web 2.0”, not because the concept is not, in itself, defined and realistic enough, but because the variables which are in play to define it are quite articulated and elude the attempt to synthesize.

For those who intend to deepen their knowledge of the topic, there is a very interesting text available written by Ajit Jaokar and Tony Fish which is entitled Mobile Web 2.0, published by Futuretext; it requires (it is worth mentioning) an attentive read and is quite challenging (also due to the fact that the many graphs which it contains are not always so easily understood).

For now, I would like to attempt a synthesis of one of the central features for the understanding of mobile web 2.0, the concept of “social”. In fact, in mobile web 2.0 “social” is the creation and “social” is the fruition of contents. By “social” it subsequently depends on a logical sequence of surprising simplicity, a great part of the salient characteristics of the mobile web 2.0. The route is the following.

In mobile web 2.0, the creation of contents centres itself on the mobile device, capable of “capturing” the content, in multimedia format, “at the point of inspiration”, that is, in the exact moment in which the inspiration and the opportunity exists to do it. The creation of contents is “social”, therefore, since it centres itself on a myriad of little writers and editors scattered all over the world (potentially every one of us), everyone in possession of his own mobile device, and is capable of changing the traditional equilibrium of power between publisher and media content (but here opens a theme which deserves a chapter apart!).

Also the fruition of contents in the mobile web 2.0 occurs, to a large part, through the mobile devices and is “social” in the sense that it is shared, unlike the old model of the “walled gardens” and articulated according to a taxonomy no more established univocally from high, but rather, decided in a diffused manner thanks to the use of tags (that is why we talk about folksonomy or rather common taxonomy, from folks+taxonomy).

The “social” creation and fruition of contents brings further logical evolution: the combination of “social” contents evolve in “collective” intelligence, made by people who, by interacting between themselves, express opinions statistically, attentively considered, and, therefore, “intelligent”, from which the concept of “wisdom of the crowd”, wisdom of the masses (which could correspond to the more familiar latin ‘brocardo’ “vox populi, vox dei”!); a fitting example given by the evaluation system of vendors and buyers on eBay. Collective intelligence is founded on the law of great numbers, therefore, that, adequately managed and evaluated, is the motor of web 2.0 and of mobile web 2.0 (this is the sense of the notorious motto “harnessing collective intelligence”). And exquisitely social, to not say “democratic”, it is also the attention given to the “long tail”, the long line of the minor web sites, also those which are improvable and improved in a context typical of web 2.0.

So there you go, that is the long conceptual declension of the term “social” which covers a good half of the concepts of mobile web 2.0. The rest is essentially centred on the user experience, and merits a separate discourse.


Versione italiana

Ammetto che non è facile sintetizzare il concetto di “mobile web 2.0”, non perché il concetto in sè non sia abbastanza definito e realistico, ma perché le variabili in gioco per definirlo sono abbastanza articolate e sfuggono al tentativo di sintesi.

Per chi intende approfondire l’argomento è disponibile l’interessantissimo testo di Ajit Jaokar e Tony Fish che si intitola appunto Mobile Web 2.0, pubblicato da Futuretext; richiede (è bene dirlo) una lettura attenta e un tantino impegnativa (anche perché non sempre i numerosi grafici che contiene risultano di facile comprensione).

Per ora vorrei tentare una sintesi di una delle colonne portanti per la comprensione del mobile web 2.0, il concetto di “social”. Infatti nel mobile web 2.0 “social” è la creazione e “social” è la fruizione dei contenuti. Da “social” dipende a cascata, in una sequenza logica di sorprendente semplicità, gran parte delle caratteristiche salienti del mobile web 2.0. Ecco qui di seguito il percorso.

Nel mobile web 2.0 la creazione dei contenuti si incentra sul dispositivo mobile, in grado di “catturare” il contenuto, in formato multimediale, “at the point of inspiration”, cioè nel momento esatto in cui c’è l’ispirazione e l’opportunità per farlo. La creazione dei contenuti è “social”, quindi, poichè si incentra su una miriade di piccoli articolisti e redattori sparsi sul territorio (potenzialmente ciascuno di noi), ciascuno in possesso del proprio dispositivo mobile, ed è tale da cambiare i tradizionali equilibri di potere tra content publisher e media (ma su questo si apre una tematica da affrontare a sè!). Anche la fruizione dei contenuti nel mobile web 2.0 avviene per buona parte attraverso i dispositivi mobili ed è “social” nel senso di condivisa, in contrapposizione al vecchio modello dei “walled gardens” (giardini recintati) e articolata secondo una tassonomia non più stabilita univocamente dall’alto, bensì decisa in maniera diffusa grazie all’uso dei tag (perciò si parla di folksonomy, ovvero tassonomia popolare, da folks+taxonomy).

La creazione e la fruizione “social” dei contenuti porta all’ulteriore evoluzione logica: l’insieme dei contenuti “social” evolve in “collective intelligence”, fatta di persone che interagendo tra loro esprimono giudizi statisticamente ponderati e quindi “intelligenti”, da cui il concetto di “wisdom of the crowd”, saggezza della massa (che potrebbe corrispondere al più familiare brocardo latino “vox populi, vox dei”!); un esempio calzante è dato dal sistema di valutazione di venditori e acquirenti su eBay. Intelligenza collettiva fondata sulla legge dei grandi numeri, quindi, che adeguatamente gestita e valorizzata è il motore del web 2.0 e del mobile web 2.0 (è questo il senso del famigerato motto “harnessing collective intelligence”). E squisitamente social, per non dire “democratica”, è anche l’attenzione data alla “long tail”, la lunga coda dei siti web minori, anch’essa valorizzabile e valorizzata in un contesto tipicamente web 2.0.

Ecco quindi che lungo la declinazione concettuale del termine “social” si snoda una buona metà dei significati del mobile web 2.0. Il resto è essenzialmente incentrato sulla user experience, e merita un discorso a parte.

June 14, 2007

Adobe AIR, Flex 3 and Integration between Fireworks,Photoshop and Flash CS3 with Flex. All of these topics at the AdobeLive 2007

Today is the second day of AdobeLiveConference here in Italy.
I'm here with Enrique (and some enormous mosquitos) in the business room of the AdobeLive and we're about to start our presentation.

Enrique will present Adobe AIR (formerly Apollo) and talk about Flex 3 and new features.

After his presentantion I'll show the integration of the Adobe CS3 with Flex and Flex Builder.
It's incredible how many things designers and creative are now able to do to help Flex developersin creating the user interface of Flex applications.
Using Photoshop CS3, Fireworks CS, Illustrator CS3 and Flash CS3 , of course, they can export graphic symbols, layouts and components for the Flex enviroment.

With Fireworks CS3 you can now use the Exoprt as MXML features to convert a PNG layouts into MXML code. You can do this using the new Flex Component Common Library (you can also create your own Flex components using an image and a javascript JSF file).
The MXML code generated from Fireworks is ready to be edited and customized by the developer in Flex Builder.

With Illustrator CS3 you can create vector based symbols and export them as SWF files, ready to be used and imported in Flex. For example you can export your vector symbols and then use them for change the style of a button flex component usign :

overSkin: Embed(source='styles.swf', symbol='mysymbol');
upSkin: Embed(source='styles.swf', symbol='mysymbol');
downSkin: Embed(source='styles.swf', symbol='mysymbol');

Then in Flash CS3 you can do whatever you want with the Flash CS3 Component Kit for Flex. You can interact in Flex with Flash contents, call public methods, refer to each single object.

If you're in Milan come to see the sessions !
They're great !

June 18, 2007

Form fields focus and keyboard events in Flex 3 form based applications

We're working on some projects in Flex where the use of the keyboard to navigate through the application is a key aspect.
They're both Flex 2 form based application

Our goals were :
- at the start up of the application give the focus to the first form field
- pressing the tab key cycling the focus through all the form fields

Although it seams like very simple, the focus in Flex 2 is not so easy.
We had strange behaviour that mostly depend on how the Internet Explorer uses the ActiveX contents :
- although when the application has been loaded the foucs was on the first field, pressing the tab key once, the focus goes outside the Flash Player applet to the browser controls

To solve the problem of the fucus lost by the Flash Player you can use this small workaround :

keyFocusChange="event.preventDefault();focusManager.getNextFocusManagerComponent(event.shiftKey).setFocus()"

The keyFocusChange is on the Application tag.

In order to make the focus in Flex 2 works for Internet Explorer, it's not enough to set it up using Javascript when the page loads.
Internet Explorer does not give you the ability to an ActiveX content to get the focus.
So for example in a Flex 2 application that has 3 text inputs when the last one has the focus and you click on the tab, the focus quits from the Flash Player 9 ActiveX and goes to the HTML page content.

That's a bad behavior for your application.

To overcome this problem we have to intercept the key pressed by the user and disable the default action of the browser to prevent the browser handling of the key.

Continue reading "Form fields focus and keyboard events in Flex 3 form based applications" »

Quality Control phase of enterprise Flex application with the The Flex Automation Framework

When you develop enterprise flex application the Quality Control phase (QC) is a fundamental aspect of each software development activity.
Flex and the LiveCycle Data Services ES include The Flex Automation Framework.

The Flex Automation Package provides developers with the ability to create Flex applications
that use the Automation API. You can use this API to create automation agents or to ensure
that your applications are ready for testing. In addition, the Flex Automation Package includes
support for Mercury QuickTest Professional (QTP) automation tool.

You can create applications and components that can be tested with automated testing tools
such as Mercury QuickTest Professional (QTP). This topic includes information intended for
Flex developers who write applications that are then tested by Quality Control (QC)
professionals who use these testing tools.

Continue reading the full Creating Flex Applications for Testing document.

Continue reading "Quality Control phase of enterprise Flex application with the The Flex Automation Framework " »

June 21, 2007

Using Cairngorm 2 in Enterprise RIA development: when and why use (or not) it

What is Cairngorm?
Cairngorm 2 is a lightweight framework for Enterprise RIA development in Flex 2; Cairngorm encourages the use of the best development practices on developer's side.
It takes advantage of well know Java and J2EE design patterns such as the Model View Controller, the Service Locator, the Model Locator and the View Helper.
The architecture is totally free and you can download the latest version (Cairngorm 2.2, at the moment of writing) from Adobe Labs:
http://labs.adobe.com/wiki/index.php/Cairngorm#Downloads

Why to use Cairngorm 2 in Flex development ?

Cairngorm is made up of only few Actionscript 3 classes, but in order to start implement it fast in enterprise project, you have to spend some time on it. For me this time just last a few days, spent in developing two small Flex applications.
Once you reach the top of the Cairngorm's small learning curve, you will have a complete view of the framework's functionalities and Flex as well, and the development time of enterprise application will be faster.
One of the benefits in using Cairgorm 2 is that it helps to concentrate on the application business logic.
The use of universally recognized design patterns in the enterprise application field helps enormously the insertion of new software developers into an already started project. The main reason of that is that they will have already a clear idea of the data flow because of the use of a standard and rigid architecture, very similar to Java and J2EE ones(I mean the use of Service Locator, Model Locator and the View Helper i.e.).

Moreover thanks to a coding activity that follows specific rules, the debugging phase of the application will become remarkably faster.
With the use of Cairngorm my mental approach to Flex application planning is changed, now starting from the use cases I'm able to have an idea of the final structure.

Why not to use it?

As I already said, the use of Cairngorm offers remarkable advantages, but someone seems to consider it the silver bullet of Flex development. You have to evaluate if you effectively need your application to be based on Cairngorm and not using it only to be fashionable
Steven Webster himself, tha author of Cairngorm, wrote an interesting post in his blog titles: “Why I think you shouldn’t use Cairngorm”, with a checklist to evaluate before using it: http://weblogs.macromedia.com/swebster/archives/2006/08/why_i_think_you.cfm

On my personal experience I can say that the determining elements for using or not Cairngorm should be:
use case number,
developers number,
a plan to introduce or not new developers to the project
future implementation of new features
scalability, mantainability and reuse of the code written across different projects

Documentation and other resources
There is a community driven site with the scope of collecting Cairngorm documentation: http://www.cairngormdocs.org/
The six parts article from Steven Wester is interesting too:
http://www.adobe.com/devnet/flex/articles/cairngorm_pt1_04.html
Cairngen is an automatic Cairngorm code generator, I never used it so I cannot judge, but I think it is worth a try:
http://www.ericfeminella.com/blog/cairngen/

In the next posts about Cairngorm I'll go deep in the code and illustrate the use of Cairngorm in specific situations.

June 25, 2007

Flex 3,LiveCycle Data Services and Adobe AIR sessions at the MAX 2007 Conference

On the Adobe MAX 2007 blog has been published the pre-conference training day, a full-day hands-on training sessions. These are the tracks dedicated to Flex 3, Adobe AIR and LiveCycle Data Services :

Flex 3: Integrating with ColdFusion
This session provides ColdFusion developers with hands-on, practical experience connecting their Flex 3 client applications to remote, dynamic data provided by ColdFusion and LiveCycle Data Services.

Flex 3: Integration with Java
This session provides experienced application developers with hands-on, practical experience connecting their Flex front ends to remote, dynamic data using LiveCycle Data Services.

Flex 3: Developing Rich Client Applications
Get hands-on, practical experience using Flex.

Adobe Integrated Runtime (AIR): Bringing Rich Internet Applications to the Desktop
This full-day course will include everything you need to get started building applications with Adobe AIR.

June 29, 2007

Enterprise RIA development with Flex/LiveCycle Data Services and Java persistence

LiveCycle Data Services overview

LiveCycle Data Services, formerly known as Flex Data Services, is a powerful Adobe product that allows seamless interaction between a Flex client and any Java EE based server or most J2EE servers.
These services allow Java object or services to be called directly from the Flex client, in a transparent way: all the developer has to do, in the Flex code, is call remote services just like they were Flex functions or methods. All the problems related to marshalling / unmarshalling, mapping Flex and Java classes and types are solved internally by LiveCycle Data Services. For all of this to work, LiveCycle Data Services only requires some configuration to be provided, that will define the required behavior.
Using LiveCycle Data Services is, without doubt, one of the best approaches to consider in developing enterprise RIA applications, as it takes care, in an efficient and scalable way, of all the information exchanged by the Flex client and the Java server.

An eye on the server side

Connecting the client to the server being taken cared of, the development can just focus on creating a client and a server layer that handles any required business logic and persistence. LiveCycle Data Services is a Java EE web application, that has to be deployed into a Java EE container. From there it can access whatever server side required functionality and provide it to the Flex client. This kind of deploy ensures compatibility with existing Java EE application as well as with newly created applications. Connecting a LiveCycle application with an existing Java EE or J2EE application requires a little work, but we’ll cover it up in a future post.
The Java EE applications covered in the following blog posts will be the ones that use either Hibernate as a persistence manager or EJB3 in Java enterprise applications. We will see how to access Hibernate or EJB3 from LiveCycle Data Services, how to keep the data services separated from the Java business logic, using clean, modular and distinct components.

The world behind LiveCycle Data Service and Java

LiveCycle Data Services offers many possibilities, like accessing remote Java objects, binding client to server data sources, using publisher/subscribe messaging to communicate with the server, with or without JMS. Aside all these it’s also possible to configure a LiveCycle Data Services EE application to allow a controlled Flex client access to areas like Hibernate’s named queries, JNDI lookup or web server custom login.
LiveCycle Data Services offers numerous possibilities and can be configured and understood to get the outmost out of this potential.

Web resources
LiveCycle Data Services can be found here, http://www.adobe.com/products/livecycle/dataservices/, Hibernate http://www.hibernate.org/ contains all required resources and libraries. A commonly used Java EE web servers is Tomcat http://tomcat.apache.org/, while JBoss http://labs.jboss.com/ is an enterprise application container.

About June 2007

This page contains all entries posted to Comtaste Consulting | Enterprise RIA consulting and development in June 2007. They are listed from oldest to newest.

July 2007 is the next archive.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.33